Skip to content

Item components and model data

Item components expose modern Minecraft item properties. Use them while holding an item in authorized Build/Dev mode.

/item component
/item component minecraft:rarity
/item component minecraft:rarity "epic"
/item component minecraft:rarity clear
/item component minecraft:rarity reset

No component name lists the held item’s effective components. A name with no value inspects that property. clear removes it, including a material’s built-in property. reset restores the material default. These are different operations.

/item nbt displays the component patch with click-to-copy. It is inspection, not arbitrary server-code execution.

/item maxstack 16
/item maxdamage 300
/item rarity epic
/item model minecraft:diamond
/item tooltipstyle craftly:custom
/item glider true

Direct component commands use registry names when no existing command occupies that name. Underscore-free aliases are supplied where available. Friendly aliases include equipment → equippable, cooldown → use_cooldown, leftover → use_remainder, bundle → bundle_contents, and crossbow → charged_projectiles.

If a direct name conflicts with an older item command, use /item component minecraft:<name> for unambiguous component access. The component reference indexes the available API component names; direct shortcuts remain subject to these collisions.

/item component minecraft:use_cooldown {seconds:1.5,cooldown_group:"craftly:test"}
/item component minecraft:tool {rules:[],default_mining_speed:2.0,damage_per_block:1}

Structured components use Minecraft’s component-value SNBT. Registry keys and fields must be valid for the running Minecraft version. A namespaced key identifies a registry entry; it does not create a resource pack or guarantee the client has a custom visual asset.

Damageable items require maximum stack size one. Set that before adding durability to an otherwise stackable item. For valued components, use the correct structured or scalar representation. Non-valued friendly shortcuts accept true/false. The generic component command follows SNBT rather than every friendly shorthand.

Input is limited to 16,384 characters and 32 nested levels. Each command changes one component, preserves stack amount/unrelated metadata, and applies only after validation.

/item modeldata 123
/item modeldata numbers 1.5 2
/item modeldata strings red blue
/item modeldata flags true false
/item modeldata colors #FF0000 00FF00
/item modeldata clear

Each named form updates one array while preserving the others. Arrays accept at most 256 values. Numbers must be finite, flags Boolean, and colors six-digit RGB. The numeric shorthand remains available. Rendering a custom model still requires matching client assets.