The Best Resource for Minecraft
The Best Resource for Minecraft

Curios API Wiki

Curios API is a foundational library mod for Minecraft that provides a flexible and expandable accessory equipment system, allowing players to equip items like rings, necklaces, and belts in dedicated inventory slots.

8 sections · 906 words

Overview#

Curios API is a library mod designed to provide a standardized framework for accessory and equipment slots. It allows other mods to add their own unique slots—such as rings, charms, and backpacks—without conflicting with the vanilla armor system or other mods. By default, Curios does not add many items or slots itself; instead, it provides the necessary infrastructure and a centralized user interface for players to manage their extended equipment.

Key Features

  • Expandable Inventory: Adds a dedicated GUI for accessory slots that can grow as needed based on the mods installed.
  • Compatibility: Fully integrates with vanilla mechanics, including Mending, Unbreaking, and Curses.
  • On-Demand Slots: Slots are only created when a mod or data pack requires them, preventing UI clutter.
  • Customization: Players and pack makers can configure slot types, amounts, and GUI positions through config files and data packs.

User Interface#

The primary way to interact with Curios is through the expanded inventory GUI.

Accessing the Menu

Players can access the Curios equipment screen by clicking the orange ring icon located in the top-left corner of the player's character preview in the standard inventory. Alternatively, the default keybinding to open the Curios GUI directly is 'G'.

The Curios Screen

When opened, the screen displays all currently active slots. If a player has no items that fit into a specific slot type and no mod has force-enabled that slot, it may remain hidden to keep the interface clean. The GUI supports scrolling if the number of active slots exceeds the display area.

Slot Types#

Curios uses a system of identifiers to categorize slots. While mods can define any custom slot, the following are the standard presets often used across the ecosystem:

Slot Identifier Description Default Icon
back Used for capes, backpacks, or quivers.
belt Used for tool belts or sash-style items.
body Used for tabards or chest-worn accessories.
charm Used for small magical trinkets or totems.
head Used for goggles, crowns, or masks.
necklace Used for amulets and pendants.
ring Used for rings (often allows multiple slots).
hands Used for gloves or bracelets.
bracelet A specific slot for wrist-worn items.

Items#

Curios API is primarily a library and does not add survival-ready items. However, it includes two "test" items available in the Creative Menu (under the Curios tab) to demonstrate functionality for developers and players.

Test Items

Item Slot Description
Curious Crown Head A golden crown that serves as an example of a head-slot curio.
Curious Knuckles Hands A set of iron knuckles that demonstrates the hands-slot functionality.

How Items Become Curios

Items from other mods (or vanilla) are assigned to Curios slots using the Vanilla Tag System. To make an item compatible with a slot, it must be added to a tag file located at data/curios/tags/items/[slot_identifier].json. For example, adding an item to the curios:ring tag allows it to be equipped in any Ring slot.

Mechanics#

Attribute Modifiers

Curios can grant players attribute modifiers (like increased health, attack damage, or movement speed) while equipped. These modifiers are visible in the item's tooltip, similar to vanilla armor.

Drop Rules

By default, Curios follow the same rules as the player's inventory upon death. If keepInventory is false, curios will drop on the ground. However, Curios API provides a dropRules configuration to override this behavior for specific slots or items (e.g., making certain items always stay with the player).

Cosmetic Slots

Some slot types can be configured to have a "Cosmetic" toggle. This allows a player to equip an item for its stats in the functional slot while wearing a different item in the cosmetic slot to change their appearance.

Commands#

Curios includes several commands for server administrators to manage player slots and equipment.

Command Description
/curios list <player> Lists all registered slots for the specified player and their current contents.
/curios add <player> <slot> <amount> Adds a specific number of slots of a certain type to a player.
/curios remove <player> <slot> <amount> Removes a specific number of slots from a player.
/curios replace <player> <slot> <index> with <item> [count] Replaces the item in a specific slot index with a new item.
/curios drop <player> <slot> <index> Forces the player to drop the item in the specified slot.

Configuration#

Curios uses TOML files for configuration, located in the /config folder of your Minecraft instance.

curios-client.toml

Controls the visual aspects of the mod.

  • showButtons: (Boolean) Whether to show the Curios button in the inventory.
  • lockButton: (Boolean) If true, prevents the button from being moved.
  • buttonXOffset / buttonYOffset: Adjusts the position of the Curios button relative to the inventory.

curios-server.toml

Controls gameplay mechanics and slot counts.

  • keepCurios: (Boolean) If true, Curios will not be dropped on death regardless of keepInventory settings.
  • enableLegacyMenu: (Boolean) Switches back to the older, non-scrolling GUI style if preferred.

curios-common.toml

Used for defining default slot configurations that apply to both client and server.

Data Packs & Custom Slots#

Users and modpack creators can add custom slots without writing code by using a Data Pack.

To create a custom slot, place a JSON file in: data/curios/curios_slots/[slot_name].json

Example Slot JSON:

{
  "size": 1,
  "operation": "set",
  "icon": "curios:gui/slots/ring",
  "priority": 10,
  "add_cosmetic": true
}

This system allows for infinite customization, enabling slots for specific mod mechanics like "Spell Focus" or "Quiver."