CuriosPaper

Making the curios api for paper mc

596

CuriosPaper

<div align="center">

<img src="https://cdn.modrinth.com/data/JLMPHrRw/images/907375d54ee434019af260f5a126f361d4add7b3.png" alt="CuriosPaper Banner" width="100%">

✦ CuriosPaper ✦

The Ultimate Custom Accessory Inventory System for Paper & Spigot

Rings · Necklaces · Capes · Crowns · Belts · Charms — and more. <br> Fully server-side. No mods required. Powerful developer API.

---

*Think of it as Baubles / Curios — but for Paper & Spigot, with 3D models, loot tables, GUI editors, and a full plugin API.*

</div>

---

🧩 What is CuriosPaper?

CuriosPaper adds a complete accessory slot system to your Minecraft server. Players can equip rings, necklaces, capes, belts, charms, and more through a clean, tiered GUI — no client mods required.

<div align="center">

<!-- 📸 IMAGE: Main GUI screenshot -->

Main Accessory Menu

*The main accessory menu with all 9 slot types*

</div>

---

⚡ Features

🎒 Core Accessory System

| | Feature | Description | |:---:|---|---| | 💍 | Death Behavior | Head, Necklace, Back, Body, Belt, Hands, Bracelet, Ring, Charm | | ✨ | Death Behavior | Potion effects & attribute modifiers that activate when equipped | | ⚡ | Death Behavior | Death Behavior to instantly equip accessories from your hand | | 🎹 | Death Behavior | Configurable sneak keybind to open the accessory GUI — no commands needed | | 🪂 | Death Behavior | Equip elytra in the back accessory slot (1.21.3+) | | ☠️ | Death Behavior | Keep, drop, or auto-detect accessories on death — fully configurable |

🎨 3D Model System <sup>NEW in v1.3.0</sup>

Attach custom 3D models directly to the player's body when accessories are equipped. Models are rendered using synchronized invisible armor stands — visible to all nearby players.

- 🔄 Tracks player movement, rotation, sneaking, swimming, and flying - 👁️ Smart visibility culling — hide models from the wearer's first-person view - 🔱 Trident compatibility — models auto-hide during throws and riptide - 🧟 Mob models — mobs can visually wear items they'll drop - 🎮 Per-item toggle — players can right-click to show/hide their models

🛠️ In-Game GUI Editors

Create and configure everything visually — no YAML editing required:

| Editor | What It Does | |---|---| | 3D Model Editor | Set name, material, lore, model data, slot type | | 3D Model Editor | Configure potion effects & attribute modifiers with triggers | | 3D Model Editor | Shaped, shapeless, furnace, blast, smoker, anvil & smithing recipes | | 3D Model Editor | Browse all server loot tables, add items to dungeon chests with presets | | 3D Model Editor | Configure which mobs drop your items and at what chance | | 3D Model Editor | Set up villager trades with professions and price ranges | | 3D Model Editor | Configure body-mounted 3D models with pitch limits |

<!-- 📸 IMAGE: Tier 2 GUI screenshot --> <div align="center">

Slot Inventory

*Slot inventory with accessories equipped*

</div>

📦 Item Distribution

| Channel | Description | |---|---| | Commands | 7 recipe types — shaped, shapeless, furnace, blast, smoker, anvil, smithing | | Commands | Items appear in dungeon chests, mineshafts, temples, strongholds, and more | | Commands | Any mob type can drop accessories with configurable chance & amount | | Commands | Accessories appear in villager trade pools by profession and level | | Commands | `/edit give <item> [player] [amount]` for direct distribution |

🔌 Developer API

A comprehensive API for other plugins to integrate with CuriosPaper:

```java CuriosPaperAPI api = CuriosPaper.getInstance().getCuriosPaperAPI();

// Tag any item as an accessory ItemStack ring = api.tagAccessoryItem(myItem, "ring");

// Check what a player is wearing List<ItemStack> rings = api.getEquippedItems(player, "ring"); boolean hasRing = api.hasEquippedItems(player, "ring"); int count = api.countEquippedItems(player, "ring");

// Register slots, items, recipes, loot tables at runtime api.registerSlot("earring", "Earring", "DIAMOND", 2); api.registerItemLootTable("my_ring", new LootTableData("minecraft:chests/simple_dungeon", 0.25)); api.setItemModelConfig("my_cape", true, "LEATHER_HORSE_ARMOR", null, "myplugin:cape", 45f, 30f);

// Contribute resource pack assets from your plugin's JAR api.registerResourcePackAssetsFromJar(myPlugin); ```

Custom Events:

| Event | When It Fires | |---|---| | `AccessoryEquipEvent` | Player equips, unequips, or swaps an accessory | | `CuriosLootGenerateEvent` | Custom item generated in a loot container (cancellable) | | `CuriosMobDropEvent` | Custom item dropped by a mob (cancellable) | | `CuriosRecipeTransferEvent` | Custom item crafted via a recipe |

---

🎮 How It Works

``` 1. /baubles → Opens the accessory menu 2. Click a slot icon → Opens that slot's inventory 3. Place an accessory → Abilities activate instantly! ```

Shift + Right-Click Hold a tagged item + Shift + Right-Click to equip instantly.

Double-Sneak Select a hotbar slot + Double-Sneak to open the menu.

---

📊 Stats

<p align="center"> <a href="https://bstats.org/plugin/bukkit/CuriosPaper/29508"> <img src="https://bstats.org/signatures/bukkit/CuriosPaper.svg" width="500"> </a> </p>

---

🔧 Compatibility

| | Requirements | |---|---| | Dependencies | 1.14.4 — 26.1+ | | Dependencies | Spigot, Paper, Purpur, Folia* | | Dependencies | 8+ | | Dependencies | None (standalone) |

> *Folia support is experimental

---

📥 Quick Start

```bash

1. Download CuriosPaper.jar from Modrinth or GitHub Releases

2. Drop it into your server's plugins/ folder

3. Start the server

4. Done! Use /baubles in-game

```

First Accessory in 60 Seconds

``` /edit create speed_ring # Create a new item ``` In the GUI: set the name, material, slot type → add a Speed ability → add a recipe → done.

``` /edit give speed_ring # Get the item /baubles # Open accessory menu ``` Place it in a ring slot — Speed I activates! 🏃

---

⚙️ Configuration Highlights

```yaml

Accessory slots — fully customizable

slots: ring: name: "Ring" icon: "GOLD_NUGGET" amount: 2

Hotkey to open GUI without commands

features: hotkey: enabled: true slot: 8 sneak-type: "double" # single, double, or hold

What happens to accessories on death?

keep-curio-inventory: type: "Auto" # Always, Auto, or Never

Resource pack with external pack merging

resource-pack: enabled: true combine-external-rp: false ```

Full configuration reference → **curiospaper.run.place**

---

📖 Documentation

<div align="center">

🌐 **curiospaper.run.place**

</div>

The full documentation site covers:

| Section | Topics | |---|---| | Examples | Installation, concepts, first accessory walkthrough | | Examples | Slots, features, abilities, performance & storage | | Examples | Accessories, abilities, recipes, loot tables, mob drops, trades, 3D models, hotkeys, death behavior | | Examples | Item, ability, recipe, loot table, mob drop, trade, 3D model editors | | Examples | Getting the API, accessories, loot tables, 3D models, resource packs, events | | Examples | Complete plugin examples with loot tables, abilities, and recipes |

---

🆕 What's New in v1.3.0

- ✨ External Resource Pack Merging — Custom models mounted on the player's body via armor stands - ⚡ External Resource Pack Merging — Shift+Right-Click to equip accessories instantly - 🎹 External Resource Pack Merging — Single/double/hold sneak keybinds - ☠️ External Resource Pack Merging — Always / Auto / Never modes - 📋 External Resource Pack Merging — Full 3-screen GUI with browser, search, and presets - 🧟 External Resource Pack Merging — Mobs visually wear items they can drop - 📢 External Resource Pack Merging — `CuriosLootGenerateEvent` & `CuriosMobDropEvent` - 🔧 External Resource Pack Merging — 3D models, loot tables, resource pack assets, and more - 📦 External Resource Pack Merging — Combine other plugins' packs into one

Full changelog → **CHANGELOGS.md**

---

💬 Community

<div align="center">

discord.gg/r5YXqgrGya

Get help · Report bugs · Suggest features · Stay updated

</div>

---

☕ Support the Project

<div align="center">

If CuriosPaper has been useful to you, consider leaving a tip — it helps keep the project alive!

ko-fi.com/brothergaming52

</div>

---

🤝 For Developers

Maven

```xml <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository>

<dependency> <groupId>com.github.Brothergaming52</groupId> <artifactId>CuriosPaper</artifactId> <version>1.3.0</version> <scope>provided</scope> </dependency> ```

plugin.yml

```yaml depend: [CuriosPaper] ```

Full API docs → **curiospaper.run.place/api**

---

<div align="center">

Made with ❤️ by Brothergaming52

Documentation · Discord · Ko-fi · Changelog · bStats · GitHub

</div>

ADS