All Mods Resource Packs Data Packs Shaders Modpacks Plugins
CuriosPaper

CuriosPaper

by Brothergaming52 • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions
CuriosPaper Banner

✦ CuriosPaper ✦

The Ultimate Custom Accessory Inventory System for Paper & Spigot

Version Minecraft bStats Docs Rings · Necklaces · Capes · Crowns · Belts · Charms — and more. Fully server-side. No mods required. Bedrock Edition compatible. Powerful developer API.


Think of it as Baubles / Curios — but for Paper & Spigot, with 3D models, loot tables, GUI editors, Bedrock container support, 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 — with full support for Java and Bedrock Edition players.

Main Accessory Menu

The main accessory menu with all 9 slot types


⚡ Features

🎒 Core Accessory System

Feature Description
💍 9 Slot Types Head, Necklace, Back, Body, Belt, Hands, Bracelet, Ring, Charm
✨ Ability System Potion effects & player attribute modifiers with custom operations
⚡ Quick Equip Shift + Right-Click to instantly equip accessories from your hand
🎹 Hotkey System Configurable sneak keybind to open the accessory GUI — no commands needed
🪂 Elytra Back Slot Equip elytra in the back accessory slot (1.21.3+)
☠️ Death Behavior Keep, drop, or auto-detect accessories on death — fully configurable
📱 Bedrock Support Native Geyser & Floodgate support with custom Anvil & Smithing GUIs

🎨 3D Model System

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, flying, and spectator mode
  • 👁️ Smart visibility culling — hide models from wearer's first-person view or during flight/dismount
  • 🔱 Trident & Elytra compatibility — models auto-hide during throws, riptide, and elytra flight
  • 🧟 Mob models — mobs can visually wear items they'll drop
  • 🎮 Per-item toggle — players can right-click to show/hide their models
  • 🚪 GUI Dismount Protection — models temporarily dismount when opening inventories to prevent visual overlap

🛠️ In-Game GUI Editors

Create and configure everything visually — no manual YAML editing required:

Editor What It Does
Item Editor Set name, material, lore, model data, slot type
Ability Editor Configure potion effects & attribute modifiers with operations (ADD_NUMBER, ADD_SCALAR, MULTIPLY_SCALAR_1)
Recipe Editor Shaped, shapeless, furnace, blast, smoker, anvil & smithing recipes
Loot Table Editor Browse all server loot tables, add items to dungeon chests with presets
Mob Drop Editor Configure which mobs drop your items and at what chance
Trade Editor Set up villager trades with professions and price ranges
3D Model Editor Configure body-mounted 3D models with pitch limits

Slot Inventory

Slot inventory with accessories equipped

📦 Item Distribution

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

🔌 Developer API

A comprehensive API for other plugins to integrate with CuriosPaper:

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 (data transfer)
CuriosCraftEvent Custom item created via craft/smelt/smith (final)
CuriosModelEquipEvent 3D model about to be displayed on player
CuriosMobModelEquipEvent 3D model about to be displayed on mob
PlayerDeathCurioDropEvent Fired on player death to filter/cancel curio drops

🛠️ Configuration Showcase & Setup Instructions

⚙️ Click to Expand Setup & Configuration Files

1. Installation & Initial Setup

  1. Download CuriosPaper.jar and place it into your server's plugins/ directory.
  2. Start the server to generate default configuration files (config.yml, messages.yml, items.yml, etc.).
  3. Choose your desired Resource Pack Delivery Mode in config.yml:
    • SELF: CuriosPaper hosts the resource pack on an embedded HTTP server (port: 8080).
    • LINK: Serve your resource pack via an external URL (e.g. Modrinth, Dropbox, or web host).
    • NONE: Disable automatic resource pack prompt completely.

2. Bedrock & Geyser Integration Setup

CuriosPaper includes automatic detection and support for Bedrock Edition players connecting via GeyserMC / Floodgate.

  • Automatic Setup (Geyser on same server): CuriosPaper automatically detects Geyser, extracts CuriosPaper_Geyser.zip and CuriosPaper_mappings.json into plugins/CuriosPaper/geyser/, and copies them to Geyser's packs/ and custom_mappings/ folders.
  • Bedrock Custom Containers: Bedrock players cannot natively use Java Anvil/Smithing container packets without glitches. CuriosPaper provides native 3-row Chest GUIs (BedrockAnvilGUI and BedrockSmithingGUI) for Bedrock players, supporting 1.20+ template smithing and XP repair/renaming.

3. Main Plugin Config (/plugins/CuriosPaper/config.yml)

# Configuration for CuriosPaper Custom Accessory Slots
version: "2.0.1"

# Update Checker
updates:
  check-for-updates: true

# Storage Engine Settings
storage:
  # Selected engine: YAML (flatfile), SQLITE, MYSQL, or MONGODB
  engine: "YAML"
  mysql:
    host: "localhost"
    port: 3306
    database: "minecraft"
    username: "root"
    password: ""
    table-prefix: "curios_"
  mongodb:
    connection-string: "mongodb://localhost:27017"
    database: "minecraft"
    collection: "curios_playerdata"

# Resource Pack Settings
resource-pack:
  # Mode: SELF (embedded HTTP host), LINK (external URL), or NONE
  mode: SELF
  port: 8080
  host-ip: "123.45.67.89"
  url: ""
  hash: ""
  force-pack: false
  prompt-message: "Please accept the resource pack to view custom accessories!"

# Feature Toggles
features:
  # Allow elytra equipping in back slots
  allow-elytra-on-back-slot: true

  # Custom Bedrock GUIs for Anvils and Smithing Tables
  use-custom-smithing-gui: true
  use-custom-anvil-gui: true

  # Display empty accessory slots in GUI
  show-empty-slots: true

  # Keep Curios on Death: Always, Auto (follows keepInventory), or Never
  keep-curio-inventory:
    type: "Auto"

  # Sneak keybind hotkey to open accessory menu
  hotkey:
    enabled: true
    slot: 8
    sneak-type: "double" # single, double, or hold

4. Messages Configuration (/plugins/CuriosPaper/messages.yml)

# Message customization with legacy (&a) and HEX (<#FF5555>) color support
prefix: "&6[CuriosPaper] "

items:
  quick-equip-lore: "&8▶ Shift + Right Click to equip"
  slot-lore: "&6Slot: &e{slots}"
  ability-when-worn: "&7When worn:"
  ability-potion-effect: "&9{effect} {level}"

  # Attribute Modifier Operation Lore Formatting (v2.0.1)
  ability-attribute-positive: "&9+{value} {attribute}"
  ability-attribute-negative: "&c-{value} {attribute}"
  ability-attribute-scalar-positive: "&9+{value}% {attribute}"
  ability-attribute-scalar-negative: "&c-{value}% {attribute}"
  ability-attribute-multiply-positive: "&9x{value} {attribute}"
  ability-attribute-multiply-negative: "&cx{value} {attribute}"

🎮 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!

Or use Quick Equip: Hold a tagged item + Shift + Right-Click to equip instantly.

Or use the Hotkey: Select a hotbar slot + Double-Sneak to open the menu.


📊 Stats


🔧 Compatibility

Requirements
Minecraft 1.14.4 — 1.21+
Server Spigot, Paper, Purpur, Folia*
Java 8+
GeyserMC Supported (custom Bedrock resource pack & mappings included)
Dependencies None (standalone)

*Folia support is experimental

🌐 Geyser & Bedrock Edition Support

CuriosPaper provides full GUI slot icon and custom container support for Bedrock Edition players joining via GeyserMC.

  • Automatic Setup: If Geyser is running on the same server, CuriosPaper will automatically detect Geyser's folder on startup, extract the mappings and resource pack, and copy them directly to Geyser's packs/ and custom_mappings/ folders.
  • Custom Bedrock GUIs (Anvil & Smithing): Bedrock players get dedicated 3-row chest interfaces for Anvils (repair, rename, combine) and Smithing Tables (supports 1.20+ Netheriite templates and legacy recipes).
  • Manual Setup (Proxy/Separate Server):
    1. Retrieve files from your server's plugins/CuriosPaper/geyser/ directory.
    2. Copy CuriosPaper_Geyser.zip into your Geyser packs/ folder.
    3. Copy CuriosPaper_mappings.json into your Geyser custom_mappings/ folder.
    4. Ensure enable-custom-content is set to true in Geyser's config.yml and restart Geyser.

📥 Quick Start

# 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

/curios create speed_ring          # Create a new item

In the GUI: set the name, material, slot type → add a Speed ability → add a recipe → done.

/curios give speed_ring             # Get the item
/baubles                          # Open accessory menu

Place it in a ring slot — Speed I activates! 🏃


📖 Documentation

The full documentation site covers:

Section Topics
Getting Started Installation, concepts, first accessory walkthrough
Configuration Slots, features, abilities, performance, databases & Bedrock GUIs
Systems Accessories, abilities, recipes, loot tables, mob drops, trades, 3D models, Bedrock support, hotkeys, death behavior
GUI Editors Item, ability, recipe, loot table, mob drop, trade, 3D model editors
Developer API 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 v2.0.1

  • 📱 Bedrock Anvil & Smithing GUIs — Dedicated 3-row chest interfaces for Bedrock Edition players to access Anvil (combining, repairing, renaming with XP cost) and Smithing Tables (1.20+ templates & legacy smithing).
  • 📊 Attribute Modifier Operations — Configure player modifier abilities with specific operations: ADD_NUMBER (flat value), ADD_SCALAR (percentage %), and MULTIPLY_SCALAR_1 (multiplier x).
  • ✈️ Flight & Spectator Model Auto-Hiding — ArmorStand 3D models automatically hide when players toggle flight (isFlying), enter spectator mode, or enter special poses (SWIMMING, FALL_FLYING, SPIN_ATTACK).
  • 🚪 Inventory Dismount Safety — 3D models temporarily dismount when opening inventories and auto-remount 2 ticks after close to eliminate visual GUI overlaps.
  • 🛠️ Flexible Server Version Parsing — Improved version parsing regex in VersionUtil for non-standard Paper dev builds (e.g. 26.2.build.48-alpha).
  • 💬 Command & GUI Improvements — Fixed give command messaging targeting and case-insensitive color-stripped GUI title matching.

Full changelog → CHANGELOGS.md


💬 Community

discord.gg/r5YXqgrGya

Get help · Report bugs · Suggest features · Stay updated


☕ Support the Project

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

ko-fi.com/brothergaming52


🤝 For Developers

Maven

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

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

plugin.yml

depend: [CuriosPaper]

Full API docs → curiospaper.run.place/api


Made with ❤️ by Brothergaming52

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

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x 1.21.x +7
Paper Purpur Spigot
20h ago 1
26.1.x 1.21.x 1.20.x +6
Bukkit Paper Purpur Spigot
20h ago 1
26.1.x 1.21.x 1.20.x +6
Bukkit Paper Purpur Spigot
20h ago 1
26.1.x 1.21.x 1.20.x +6
Paper Purpur Spigot
20h ago 1
26.1.x 1.21.x 1.20.x +6
Paper Purpur Spigot
20h ago 1
1.21.x 1.20.x 1.19.x +5
Paper Purpur Spigot
20h ago 1
1.21.x 1.20.x 1.19.x +5
Paper Purpur Spigot
20h ago 1
1.21.x
Paper Spigot
20h ago 1
1.21.x
Paper Spigot
20h ago 1
1.21.x
Paper
20h ago 1
1.21.x
Paper
20h ago 1
1.21.x
Paper
20h ago 1
1.21.x
Paper
20h ago 1
[2.0.1] CuriosPaper 2.0.1 by Brothergaming52 on Oct 15, 2026
Download
## v2.0.1

### 📱 Bedrock Edition & Geyser Integration

CuriosPaper now includes native container support and automatic detection for Bedrock Edition players connecting via GeyserMC and Floodgate:

  • Automatic Geyser Detection & Setup (BedrockUtil):** Detects Bedrock players via Floodgate API, Geyser API, or offline Floodgate UUID prefixes (00000000-0000-0000-...). On startup, CuriosPaper automatically extracts and copies CuriosPaper_Geyser.zip and CuriosPaper_mappings.json into Geyser's packs/ and custom_mappings/ folders.
  • Custom Bedrock Anvil GUI (BedrockAnvilGUI):** Bedrock players opening an Anvil receive a dedicated 3-row Chest GUI allowing combination, repair, and renaming with accurate XP cost and level calculation.
  • Custom Bedrock Smithing GUI (BedrockSmithingGUI):** Bedrock players opening a Smithing Table receive a dedicated 3-row Chest GUI supporting 1.20+ Template Smithing (Template + Base + Addition) and pre-1.20 legacy Smithing (Base + Addition).
  • New Feature Config Toggles:** Added features.use-custom-anvil-gui (default: true) and features.use-custom-smithing-gui (default: true) in config.yml.

### 📊 Attribute Modifier Operations & Lore Formatting

  • Attribute Operations Support:** AbilityData and AbilityEditorGUI now support three distinct attribute modifier operations:
  • ADD_NUMBER — Flat value addition/subtraction (e.g. +5 or -5).
  • ADD_SCALAR — Percentage scalar based on base attribute (e.g. +0.20 formats as +20%, -0.15 formats as -15%).
  • MULTIPLY_SCALAR_1 — Multiplier size (e.g. 1.20 formats as x1.20).
  • Lore Formatting & Message Customization:** Updated updateAbilityLore to format positive and negative values according to the operation type, adding % for scalar operations and x multiplier prefixes for multiply operations.
  • New Message Keys in messages.yml:** Added items.ability-attribute-scalar-positive, items.ability-attribute-scalar-negative, items.ability-attribute-multiply-positive, and items.ability-attribute-multiply-negative.

### ✈️ 3D Model Display (ArmorStand) Improvements & Dismount Safety

  • Flight & Spectator Model Auto-Hiding:** ArmorStand models automatically hide when players toggle flight (isFlying(), PlayerToggleFlightEvent), enter Spectator mode (GameMode.SPECTATOR), or perform special poses (Pose.SWIMMING, Pose.FALL_FLYING, Pose.SPIN_ATTACK).
  • Inventory Dismount Safety:** 3D models temporarily dismount when players open any inventory (InventoryOpenEvent) and automatically remount 2 ticks after inventory closure (InventoryCloseEvent), preventing visual model overlaps in GUIs.

### 🛠️ Compatibility, Performance & Bug Fixes

  • Flexible Version Parsing (VersionUtil):** Upgraded version parsing regex ((\\d+)\\.(\\d+)(?:\\.(\\d+))?) to gracefully handle non-standard Paper build strings (e.g. Paper dev builds like 26.2.build.48-alpha or custom server forks).
  • Case-Insensitive GUI Title Matching (AccessoryGUI):** Fixed title comparison logic to use color-stripped case-insensitive matching (equalsIgnoreCase), preventing GUI title bugs caused by legacy color codes.
  • Give Command Target Message Fix (CuriosCommand):** Fixed output message target calculation when giving items to other players.

[2.0.0] CuriosPaper 2.0.0 by Brothergaming52 on Oct 15, 2026
Download
### 🗄️ Multi-Database Storage Support

CuriosPaper now supports multiple robust database engines for player accessory storage alongside standard flat-file YAML:

  • SQLite Backend:** Perfect for single-server setups, storing accessory data in a local, optimized database file (storage/curiospaper.db).
  • MySQL Backend:** Recommended for BungeeCord/Velocity proxy networks to share accessory inventories across multiple server instances with HikariCP connection pooling.
  • MongoDB Backend:** Recommended for large-scale deployments, using a native document-oriented Mongo client.
  • Automatic Migration:** On first boot with a database backend configured, CuriosPaper will automatically parse and migrate all legacy .yml files in the playerdata/ folder into the database tables, renaming migrated files to .yml.migrated.

### 🧬 Dynamic Resource Pack & Model Customization

  • Programmatic Custom Model Overrides:** Added CuriosPaperAPI#registerItemModelOverride(String material, int customModelData, String modelPath) allowing other plugins to dynamically inject model predicates (e.g. into carrot_on_a_stick.json) without editing raw assets by hand.
  • Combined Elytra Asset Generator:** If a custom Elytra item (possessing a custom equippable asset ID) is placed in the back slot, CuriosPaper scans the resource pack and automatically builds merged humanoid/wings JSON files combining chestplate textures with the custom wings layer. This ensures proper custom textures are displayed on the player model during flight.

### 🔌 API & Event System Extensions

  • New PlayerDeathCurioDropEvent:** Fired when a player dies. Implements Cancellable, permitting developers to prevent specific accessories from dropping on death, keeping them equipped (e.g., for keep-inventory perks or specific soulbound items).
  • Addon Storage API Hook:** Added CuriosPaperAPI#getStorageAPI() which returns the CuriosStorageAPI instance. This allows third-party addon plugins to save, query, and delete custom data asynchronously using CuriosPaper's configured database backend.

### ⚡ Performance & Quality of Life

  • Asynchronous Resource Pack Rebuilds:** The /curios rp rebuild command execution has been offloaded to an asynchronous Bukkit task to prevent main-thread freezing on servers with large packs or extensive asset overrides.
  • Enhanced Elytra Slot Listeners:** Added additional InventoryDragEvent and InventoryCloseEvent logic to protect slot 38 (armor slot) from ghost items, duplications, and glitched secret elytras.
  • Paper AsyncScheduler Support:** Uses Paper's native region-aware threaded AsyncScheduler via reflection on Minecraft 1.20.6+ servers, falling back to standard Bukkit schedulers on older servers.
  • Improved JVM Version Detection:** Version utility improved to correctly resolve Java execution runtimes for compatibility handling.
  • Mob Drop Model Cleanup:** Fixed passenger armor stands occasionally leaving persistent ghost stands upon entity death.
[1.3.2] CuriosPaper 1.3.2 by Brothergaming52 on Oct 15, 2026
Download
### 🛠️ Administrative Improvements

#### Admin Inspect Command (/curios inspect)
  • NEW:** Added /curios inspect <player> [slot] to inspect and manage other players' accessories (works for both online and offline players).
  • If no slot is specified, it opens a read-only **Overview GUI** showcasing all equipped slots and their item counts. Admins can click a slot button to open the detailed slot GUI.
  • If a slot is specified, opens a **Slot Detail GUI** where admins can add, remove, or swap accessories directly. Saving automatically invokes equip events and updates 3D models for online players.
  • Requires curiospaper.admin permission.

#### Custom NBT & Enchants Editor GUI
  • NEW:** Added an **NBT & Enchants Editor** button (Command Block) in the main Custom Item Editor (slot 21).
  • Manage NBT (PDC Keys):** Interactively add or delete custom NBT tags stored in the item's Persistent Data Container (PDC) via simple chat input (key = type:value, e.g., myplugin:power = int:42).
  • NBT Key Suggester:** Browse and select existing NBT keys from standard Minecraft data components, other custom items, or the admin's inventory.
  • Supported PDC types: string, int, double, float, byte, short, long.
  • Manage Enchantments:** Add or remove enchantments on the custom item with configurable levels.
  • Hide Enchantments:** Toggle whether enchantment tooltips are hidden from lore (glint only) via ItemFlag.HIDE_ENCHANTS.
  • Unbreakable Toggle:** Easily make the custom item unbreakable.
  • Placeable Toggle:** Prevent players from placing custom blocks or custom player heads on the ground (cancelled via BlockPlaceEvent).

### 📦 Compatibility & Networking

#### Random Teleport (RTP) Compatibility / Dismount System
  • NEW:** Added a temporary dismount mechanism to resolve passenger teleportation failures during random teleports (RTP) or portal transitions.
  • RTP Command Recording:** Interactively record sequences (commands, stepped-on blocks, clicked levers/buttons, entity/NPC clicks, and GUI clicks) using /curios recordrtp.
  • When a player triggers an RTP interaction, their 3D model armor stands are temporarily dismounted. Once the teleport completes and the player moves again, the armor stands are seamlessly remounted at the destination.
  • Configurable under features.rtp in config.yml. Can be disabled entirely via features.rtp.enabled: false.

#### Resource Pack Hosting Modes
  • NEW:** Added resource-pack.mode setting supporting three hosting modes:
  • SELF — Host the pack locally on the Minecraft server using the built-in Netty HTTP server.
  • LINK — Provide a direct download link (resource-pack.url) for external hosting.
  • NONE — Completely disable automatic resource pack hosting/delivery.
  • Query Parameter Cache-Busting:** On player join, the resource pack URL is automatically appended with ?v=<hash> (or &v=<hash> if a query string already exists) to bust the client cache and force the Minecraft client to redownload the resource pack when it is updated.

### 🧪 Crafting & Recipe Logic

#### Strict Crafting with ExactChoice
  • Upgraded custom recipe ingredient resolution to use RecipeChoice.ExactChoice for shaped, furnace, smoker, blasting, campfire, smithing, and shapeless recipes (if supported by server).
  • This ensures recipes strictly require the exact custom Curios item instead of just any item matching the base material.
  • Added strict crafting protection: custom Curios items can no longer be used in vanilla recipes (clears craft results or cancels CraftItemEvent/PrepareItemCraftEvent).

### ⚡ Performance & API Enhancements

#### Ability Modifier Reconciliation Task
  • NEW:** Added a background task (ModifierReconciliationTask) that runs every 5 seconds to automatically detect and remove orphaned/stale attribute modifiers from players.
  • Fully strips all CuriosPaper-related modifiers (curiospaper_ability_) from players on plugin shutdown/reload to prevent persistent attributes across reloads.
  • Upgraded item ID lookup in AbilityListener to prioritize PDC metadata (curiospaper:item_id) over display name lookup, making tracking much more robust.

#### Custom PLAYER_HEAD Skin Support
  • NEW:** Setting item-model to a base64 skin texture or skin URL on a PLAYER_HEAD custom item now automatically downloads and applies the texture using reflection (supporting 1.14-1.21+).
  • Added ItemStack createBase64Skull(String base64) to CuriosPaperAPI for developers to programmatically create player heads with custom skins.
[1.3.1] CuriosPaper 1.3.1 by Brothergaming52 on Oct 15, 2026
Download
### 🛠️ Administrative Improvements

#### Consolidated Command System
  • NEW:** The /edit command has been merged into /curios for a more unified administrative experience.
  • All management actions are now subcommands of /curios:
  • /curios list — Opens the new Paginated Item Browser
  • /curios create <id> — Create a new custom item
  • /curios edit <id> — Open the editor for an existing item
  • /curios delete <id> — Delete a custom item
  • /curios give <id> [player] [amount] — Distribute custom items
  • /curios reload — Reload configuration and messages
  • Command aliases updated: /cp, /curiospaper.
  • Permission node curiospaper.edit has been merged into curiospaper.admin.

#### Paginated Item Browser (ItemListGUI)
  • NEW:** A dedicated GUI to browse all custom items in a paginated view.
  • Supports left-click to view item recipes and right-click to jump directly into the item editor.
  • Navigation buttons for previous/next pages and a close button.

#### Localization & Messaging (MessagesManager)
  • NEW:** Added messages.yml for full customization of all plugin messages and GUI titles.
  • Supports Hex colors and legacy color codes.
  • Messages can be reloaded on the fly using /curios reload.

#### Auto-Update Checker (UpdateChecker)
  • NEW:** Built-in update checker that notifies administrators of new releases on startup and login.
  • Can be toggled in config.yml.

### ✨ API & Event Enhancements

#### New Events
  • NEW:** CuriosCraftEvent — Fired when a custom item is created via crafting, smelting, smithing, or anvil repair. Allows final modification of the result item.
  • NEW:** CuriosModelEquipEvent — Fired when a 3D model is about to be displayed on a player. Allows modifying the model material, CMD, or item model on the fly.
  • NEW:** CuriosMobModelEquipEvent — Fired when a 3D model is about to be displayed on a mob.

#### API Improvements
  • Added CuriosPaperAPI#reload() to trigger a full plugin reload from other plugins.
  • Enhanced ItemData with visibility flags to support hidden items in the browser.

### ⚙️ Configuration Changes

#### New Config File: messages.yml
  • Contains all user-facing strings, categorized by system (commands, GUI, errors, etc.).

#### Updated config.yml
  • Added features.update-checker toggle.
  • Removed hardcoded message strings (moved to messages.yml).

### 🐛 Bug Fixes & Refinement
  • Fixed an issue where the Elytra model would occasionally fail to sync after teleportation.
  • Improved ModelStandManager performance during high-frequency movement.
  • Standardized all GUI titles to use the new messaging system.
  • Refactored CuriosCommand to handle the expanded subcommand set with better tab-completion.

[1.3.0] CuriosPaper 1.3.0 by Brothergaming52 on Oct 15, 2026
Download

## CuriosPaper v1.3.0

  • Release Date:** 2026-04-27

### ✨ New Features
  • 3D Model System** — Accessories now render as 3D models on players using invisible armor stands. Supports sneaking, swimming, gliding, scaling, and trident compatibility. Players can toggle visibility per-item.
  • Quick Equip** — Shift + Right-Click to instantly equip accessories into the first available slot.
  • Accessory Hotkey** — Configurable sneak-based hotkey to open the accessory GUI (single, double, or hold sneak modes).
  • Keep Curio Inventory on Death** — Three modes: Always, Auto (follows keepInventory gamerule), or Never.
  • Loot Table Editor GUI** — Complete 3-screen rewrite with browsing, filtering, and quick config presets.
  • 3D Model Config GUIs** — In-game editors for item and mob drop 3D model settings.
  • Custom Events** — CuriosLootGenerateEvent and CuriosMobDropEvent for intercepting and modifying generated items.

### 🔧 API Additions
  • countEquippedItems, unregisterSlot, registerItemRecipe, registerItemLootTable, registerItemMobDrop, registerItemVillagerTrade
  • getItemData, createItem, saveItemData, deleteItem
  • setItemModelConfig, setMobDropModelConfig
  • registerResourcePackAssets, registerResourcePackAssetsFromJar
  • New/updated data classes: LootTableData, MobDropData, ItemData

### ⚙️ Configuration
  • New: features.hotkey, features.keep-curio-inventory, resource-pack.combine-external-rp
  • Simplified slot display names (removed decorative Unicode)
  • GUI size is now auto-calculated (gui.main-slots and gui.main-layout removed)

### 🐛 Fixes & Improvements
  • Improved loot table injection and mob drop logic
  • Better external resource pack combining
  • Codebase reformatted to 2-space indentation

[1.2.1] CuriosPaper 1.2.1 by Brothergaming52 on Oct 15, 2026
Download
# Critical bug Fixes

  • fixed smithing table recipe related bugs
  • fixed the broken resource pack pipeline
  • fixed a error in the api
  • optimized the plugin for better performance
[1.2.0] CuriosPaper 1.2.0 by Brothergaming52 on Oct 15, 2026
Download
<div align="center">

# ✦ CuriosPaper ✦

  • Custom Accessory Inventory System for Spigot & Paper**

1.14.4 — 1.21+ · Lightweight · Developer API · Fully Configurable

</div>


  • Added support for MC version 1.14 to 1.21
  • Works with spigot, paper, and purpur
  • Added a new /curios editmenu command to rearrange the bbag menu as you wish
  • Updated the documentation with latest info
  • Minor API changes you can check the documentation for it
  • Minor bug fixes report by our respected Discord members
[1.1.2] CuriosPaper 1.1.2 by Brothergaming52 on Oct 15, 2026
Download

## ✅ CuriosPaper v1.1.2 – Bug Fix Update

  • Fixed**

  • 🛠️ Resolved issues in the **recipe system** that could cause incorrect behavior or failures.
  • 🪂 Fixed bugs in the **Elytra back slot system** to ensure proper equipping and functionality.

  • Credits**
Huge thanks to **Vague Ideas** for reporting these bugs and helping improve the plugin. Your feedback directly made this update possible. 🙌

  • Help Improve CuriosPaper**
If you find any bugs, weird behavior, or have feature suggestions, join the Discord and report them.
The faster issues are reported, the faster they get fixed.

👉 *Join the Discord & help make CuriosPaper better.*

[1.1.1] CuriosPaper 1.1.1 by Brothergaming52 on Oct 15, 2026
Download
# **CuriosPaper v1.1.1 — Advanced Recipe System & API Expansion**

This update expands CuriosPaper beyond basic crafting by introducing **full vanilla recipe support**, safer item upgrades, and tighter server control over in-game editors.


## 🚀 **Major Features**

### **Expanded Recipe System**

CuriosPaper now supports **non-crafting recipe mechanics**, enabling real progression and upgrade systems.

  • New supported recipe types:**

  • FURNACE** — Smelting with configurable time & XP
  • BLAST_FURNACE** — Fast smelting
  • SMOKER** — Food cooking
  • ANVIL** — Item combination & upgrade recipes with XP cost
  • SMITHING** — Base / addition / template based upgrades

This unlocks:

  • Tiered item upgrades
  • Anvil-based enhancements
  • Smithing-table item evolution
  • Smelting-based custom materials


### **NEW: CuriosRecipeTransferEvent**

A new **cancelable event** fired whenever CuriosPaper transfers custom item data during any recipe operation.

  • Purpose:**
Vanilla recipes normally discard custom metadata.
This event gives addons **full control** over how data moves from source → result.

  • Key points:**

  • Fires for **ALL recipe types**
  • Provides source and result ItemStack
  • Allows safe upgrades (e.g. backpack tiers)
  • Can cancel crafting if transfer fails


## 🔧 **API Enhancements**

### **RecipeData Expansion**

RecipeData now supports **all recipe types** with strict validation.

  • New fields include:**

  • Furnace / Smoker / Blast Furnace**

  • inputItem
  • cookingTime (ticks, default 200)
  • experience

  • Anvil**

  • leftInput
  • rightInput
  • experience (XP cost)

  • Smithing**

  • baseItem
  • additionItem
  • templateItem (optional, version-safe)

  • Validation**

  • isValid() now validates per recipe type
  • Prevents invalid or partial registrations


### **CuriosPaperAPI Improvements**

  • New registration methods for all recipe types
  • Stronger validation & error feedback
  • Automatic integration with CuriosRecipeTransferEvent
  • Safer addon-facing API boundaries


## ⚙ **Configuration Changes**

### **Item Editor Toggle (NEW)**

A new config option allows **server owners to completely disable all in-game item editors**.

``yml
item-editor:
enabled: true
`

  • When set to false:**

  • /edit and related item editor commands are disabled
  • All item editor GUIs are blocked
  • API functionality remains fully usable for addons
  • Ideal for production servers that only want addon-defined items


## 🧰 **Commands & Permissions**

### **Commands**

  • /edit

  • Alias: itemedit
  • Opens the in-game item editor (if enabled)

### **Permissions**

  • curiospaper.admin — Full admin access
  • curiospaper.edit — Item editor access (default: OP)


## 🛠 **Internal Improvements**

### **RecipeListener (Refactored)**

  • Unified handling for all recipe types
  • Reliable data transfer pipeline
  • Safer failure handling (no silent corruption)
  • Faster recipe lookups

### **RecipeEditorGUI**

  • Support for all new recipe types
  • Furnace time & XP configuration
  • Anvil input & XP cost handling
  • Smithing base/addition/template UI
  • Improved validation feedback

### **ItemDataManager**

  • Improved serialization & deserialization
  • More reliable autosave logic
  • Better external plugin compatibility


## 🐛 **Fixes & Stability**

  • Fixed recipe data persistence issues
  • Fixed edge cases in recipe validation
  • Improved slot manager stability
  • More reliable autosave behavior


## ⚡ **Performance Improvements**

  • Faster recipe lookup & caching
  • Optimized inventory event handling
  • Reduced memory footprint for recipe data
  • Improved async save operations


## 🔄 **Compatibility**

  • Fully backward compatible with **v1.1.0**
  • Existing SHAPED & SHAPELESS recipes continue to work
  • No migration required
  • Addons automatically benefit from new recipe handling


## 🧭 **Addon Developer Notes**

  • CuriosRecipeTransferEvent now fires for **all recipe types**
  • Use event.getRecipeType()` if logic differs per recipe
  • Source & result items are always initialized


[1.1.0] CuriosPaper 1.1.0 by Brothergaming52 on Oct 15, 2026
Download
## **v1.1.0 — Major Rewrite & Feature Expansion**

This update completely transforms CuriosPaper into a **full in-game custom item creation framework** — no more manual configs, no more external editors. Everything can now be created, edited, and managed directly inside the game.


## ⭐ **Major Additions**

### **✔ Full In-Game Custom Item Editor**

A complete GUI-driven system for creating and editing custom items:

  • Set name, material, slot type, model
  • Edit lore
  • Real-time item previews
  • Save or cancel changes safely

### **✔ New Data Systems**

New modular data models powering the editor:

  • ItemData** – Core container for everything about a custom item
  • RecipeData** – Shaped & shapeless recipes
  • LootTableData** – Chest loot integration
  • MobDropData** – Entity drop configuration
  • VillagerTradeData** – Profession & level-based trading
  • AbilityData** – Triggers & effects for equipped items


## ⭐ **New Editors / GUIs**

### **Item Editing System**

  • EditGUI** — Central editor hub
  • RecipeEditorGUI** — Drag-and-drop recipe builder
  • LootTableBrowser** — Browse, add, and configure loot sources
  • MobDropEditor** — Configure drops for every entity type
  • TradeEditor** — Build villager trades with full control
  • AbilityEditorGUI** — Add potion effects or attribute modifiers with EQUIP/UNEQUIP/WHILE_EQUIPPED triggers


## ⭐ **New Gameplay Systems**

### **Ability System**

Items can now apply:

  • Potion effects
  • Attribute modifiers (health, armor, speed, etc.)

Full trigger support:

  • EQUIP**
  • DE_EQUIP**
  • WHILE_EQUIPPED** (auto-refreshing every second)

### **Loot Table Injection**

  • Works with all vanilla & custom tables
  • Smart matching ("dungeon" → all dungeon loot)
  • Fully configurable chance & amount

### **Mob Drop System**

  • Supports all mobs
  • Chance, min/max amounts
  • Looting enchantment support

### **Villager Trade System**

  • Profession & level filtering
  • Wandering trader support
  • 1–2 cost items
  • Prevents duplicate trades


## ⭐ **API Expansion**

CuriosPaperAPI now includes:

### **Item Management**

  • getItemData(id)
  • createItem(id)
  • saveItemData(id)
  • deleteItem(id)

### **Integration Registration**

  • registerItemRecipe
  • registerItemLootTable
  • registerItemMobDrop
  • registerItemVillagerTrade

### **Accessory Utilities**

  • Tagging & validation for accessory slot types


## ⭐ **Improved Infrastructure**

  • Better error handling & validation
  • Improved CustomModelData + NamespacedKey model support
  • Cleanup tasks on plugin shutdown
  • New event listeners for abilities, recipes, mob drops, trades


## 🐛 **Fixes & Stability Improvements**

  • More reliable accessory slot tagging
  • Fixed duplicate registrations for trades/drops/loot
  • Better debug logging across all systems
  • File saving/loading is now far more robust


## 📁 **File System Changes**

  • All custom items now stored cleanly in /items/
  • Automatic serialization via YAML
  • No breaking changes — older setups continue to work

[1.0.2] CuriosPaper 1.0.2 by Brothergaming52 on Oct 15, 2026
Download
## 🚀 **Major Resource Pack System Overhaul**

The entire resource pack pipeline has been redesigned for stability, performance, and extensibility.

### **✔ Dirty-Flag Build System**

  • Pack now builds **only once** after plugins finish registering.
  • No more multiple rebuilds spamming your server startup.
  • /curios rp rebuild forces a rebuild when needed.

### **✔ Proper Namespace Enforcement**

  • Reserved namespace **curiospaper** is now locked.
Only CuriosPaper itself can use it.
  • Addons attempting to use it are rejected (no crashes).
  • Minecraft namespace (minecraft:) is only allowed when enabled in config.

### **✔ Namespace Conflict Logging**

New conflict categories are now visible via:

``
/curios rp conflicts
`

Logs include:

  • Reserved namespace violations
  • Minecraft namespace violations
  • Duplicate namespace owners
  • Allowed (config-enabled) conflicts

### **✔ File Conflict Handling**

  • Only curated files support JSON merging:

  • curios_item_base.json
  • curios_combined_override.json
  • All other files use **strict copy-or-skip** logic.
  • Conflicting files are logged cleanly without stopping the build.


## 📦 **Resource Pack Delivery Improvements**

  • Rebuilds now automatically **re-send** the updated pack to all online players.
  • Clients receive the correct updated assets without needing to relog.
  • Pack SHA1 hash is recalculated and applied correctly.


## 🛠 **New Admin Commands**

### **
/curios rp info**

Shows:

  • RP server status
  • Host + port
  • Pack size
  • Hash
  • Dirty state
  • Registered namespaces
  • Registered sources

### **
/curios rp rebuild**

  • Forces full rebuild
  • Sends the updated pack to all online players

### **
/curios rp conflicts**

  • Shows namespace + file conflicts in one place


## 🐛 **Fixes**

  • Plugin no longer crashes when addons misuse namespaces.
  • CuriosPaper no longer blocks itself from using curiospaper or minecraft`.
  • Rebuild now correctly refreshes the pack for all players.
  • Removed unsafe deep JSON merging everywhere except curated overrides.


## ❤️ **Developer Improvements**

  • Added new getters for debugging and integration.
  • Enforced consistent namespace ownership model.
  • Simplified addon RP registration behavior.
  • Removed fragile merging code in favor of predictable behavior.


# 🎉 Update Summary

CuriosPaper v1.0.2 is a **massive stability overhaul**, especially in how resource packs are validated, built, and distributed.
Addons are now safer, conflicts are predictable, and server owners have better control + visibility.

[1.0.1] CuriosPaper 1.0.1 by Brothergaming52 on Oct 15, 2026
Download
  • Added Elytra support for the back slot**

now you can use the elytra and your chestplate at the same time enable this in the config
[1.0.0] CuriosPaper 1.0.0 by Brothergaming52 on Oct 15, 2026
Download
  • First Release of the CuriosPaper Api**

1. Custom Gui
2. Automatic resource pack generation and server
3. Configurable slots
4. easy to use api [check the example pack for help with the api usage]
CuriosPaper Icon
Download CuriosPaper
Select game version
Select platform