Custom model data: надання одному предмету багатьох моделей без заміни
Система item-model замінила старий предикат CustomModelData. Ось структура папок, JSON, що зіставляє значення з моделями, і чому ваша текстура відображається фіолетовим кубом.
Власні моделі предметів дозволяють серверу видати «чарівну паличку», яка насправді є вудкою з морквою з іншою моделлю. Механізм змінився, і більшість посібників усе ще описують старий.
Що змінилося
Старий спосіб — a predicate block inside the base item's model file, keyed on custom_model_data as a number:
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Поточний спосіб — items/ definition that selects a model:
assets/minecraft/items/carrot_on_a_stick.json
{
"model": {
"type": "minecraft:range_dispatch",
"property": "minecraft:custom_model_data",
"fallback": { "type": "minecraft:model", "model": "minecraft:item/carrot_on_a_stick" },
"entries": [
{ "threshold": 1, "model": { "type": "minecraft:model", "model": "minecraft:item/wand" } }
]
}
}
The fallback is what a plain carrot on a stick still looks like. Without it, every unmodified one in the world turns into your wand.
Структура папок
pack.mcmeta
assets/minecraft/
├── items/carrot_on_a_stick.json the dispatch
├── models/item/wand.json the model
└── textures/item/wand.png the texture
models/item/wand.json at its simplest:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Зверніть увагу, що шлях до текстури містить немає textures/ prefix and no .png — це найпоширеніша причина появи фіолетово-чорного куба.
Видача предмета
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
Тепер компонент приймає об'єкт із типізованими списками, а не просто ціле число. custom_model_data=1 is the old syntax and silently does nothing.
Чому відображається фіолетовий куб
У порядку ймовірності:
- Неправильний шлях до текстури — містить
textures/or.png, or the file is not where the
вказує шлях.
- Регістр назви файлу — гра чутлива до регістру, навіть якщо ваша ОС — ні.
pack_formattoo low — пакунок завантажується, алеitems/folder is ignored. Match
формат відповідно до поточної версії гри.
- Неправильно заархівовано —
pack.mcmetamust be at the корінь архіву zip, а не всередині
папки всередині zip.
Інші селектори
range_dispatch on a number is only one option. You can also dispatch on minecraft:display_context (different model in hand versus in a frame), minecraft:using_item, or minecraft:selected — which is how a bow shows a drawn state.
Створюйте диспетчерський JSON, файл моделі та команду give разом у Інструменти Custom Model & Item Component.