CuriosPaper
Making the curios api for paper mc
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
CuriosPaper

✦ CuriosPaper ✦
The Ultimate Custom Accessory Inventory System for Paper & Spigot
Rings · Necklaces · Capes · Crowns · Belts · Charms — and more.
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.*
---
🧩 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.

*The main accessory menu with all 9 slot types*
---
⚡ 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 |

*Slot inventory with accessories equipped*
📦 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
---
🔧 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
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
---
☕ Support the Project
If CuriosPaper has been useful to you, consider leaving a tip — it helps keep the project alive!
---
🤝 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**
---