Minecraft Custom Items Resource Pack Guide (26.3)
Make a Minecraft custom items resource pack: add a texture, model and item definition, then give the item with the item_model component.
Mis à jour le 5 nov. 2026Écrit pour Minecraft 26.32 min de lecture
Written for Minecraft 26.3.
A Minecraft custom items resource pack needs three files and one command. The files are a texture, a model and an item definition. The command gives a base item the item_model component so it uses your definition.
Before you start
A working pack with a valid
pack.mcmeta. See the pack basics guide.A 16 by 16 PNG for the item. We call it
ruby_wand.png.Cheats enabled, or operator rights, to use
/give.We use the namespace
myserver. Pick your own, in lowercase.
Add the files
Save the texture as
assets/myserver/textures/item/ruby_wand.png.Create the model at
assets/myserver/models/item/ruby_wand.json:
{
"parent": "item/generated",
"textures": {
"layer0": "myserver:item/ruby_wand"
}
}Create the item definition at
assets/myserver/items/ruby_wand.json:
{
"model": {
"type": "minecraft:model",
"model": "myserver:item/ruby_wand"
}
}The item definition is the file that tells the game which model to draw. Its name, ruby_wand, is the ID you use in the command. The model value points at the model file you made in step two.
Give the item
Item data is stored in data components, not NBT. Set the model with the item_model component:
/give @s stick[item_model="myserver:ruby_wand"]The player gets a stick that looks like your wand. The base item still behaves like a stick. You can also build commands with our give command tool.
The old custom_model_data approach
Before 1.21.4, packs edited the base item's model and added an overrides list keyed on custom_model_data. That approach is legacy. Item definitions replace it, and each item picks its own file through item_model.
custom_model_data still exists as a component. It carries floats, flags, strings and colors lists that an item definition can read to switch models or tints. Use it only when one item needs several looks.
Namespace the ID. Use
myserver:ruby_wand, not a bare name. A bare name means theminecraftnamespace, and a mismatch shows the missing model.
Check it worked
Press
F3 + Tto reload the pack.Run the
/givecommand.The stick should show your texture in the inventory, hand and on the ground.
Common problems
The item is a purple and black cube
A nonexistent model ID causes the missing model. Check that the item_model value matches assets/<namespace>/items/<name>.json exactly.
The model is there but the texture is missing
The layer0 path does not match the PNG. myserver:item/ruby_wand points to textures/item/ruby_wand.png.
The command is rejected
Use square brackets, and quote the ID. Old NBT syntax with curly braces no longer works for components.
It works locally but not on the server
Players need the pack. Check the steps in the pack basics guide and debug with the log reading guide.