Руководства / Строительство и ресурсы
Кастомные модели предметов: один предмет — много моделей без замены чего-либо
Система item-model заменила старый предикат CustomModelData. Здесь — структура папок, JSON, сопоставляющий значения с моделями, и объяснение, почему ваша текстура отображается фиолетовым кубом.
Кастомные модели предметов позволяют серверу выдать «волшебную палочку», которая на самом деле является удочкой с морковкой с другой моделью. Механизм изменился, но большинство руководств всё ещё описывают старый.
Что изменилось
Старый способ — блок predicate внутри файла модели базового предмета, с ключом по custom_model_data в виде числа:
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Текущий способ — определение items/, которое выбирает модель:
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" } }
]
}
}
fallback — это то, как обычная удочка с морковкой всё ещё выглядит. Без него каждый немодифицированный экземпляр в мире отображается как фиолетово-чёрный куб отсутствующей модели.
Структура папок
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 в простейшем виде:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Обратите внимание: путь к текстуре не имеет префикса textures/ и не имеет .png — это самая распространённая причина фиолетово-чёрного куба.
Выдача предмета
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
Компонент теперь принимает объект с типизированными списками, а не просто целое число. custom_model_data=1 — это старый синтаксис, и команда теперь отклоняет его как некорректный.
Почему он отображается фиолетовым кубом
В порядке вероятности:
- Неверный путь к текстуре — включает
textures/или.png, либо файл находится не там, где указано в пути. - Регистр в имени файла — игра чувствительна к регистру, даже если ваша ОС — нет.
- Устаревший
pack.mcmeta— 26.x требуетmin_formatиmax_format; актуальный номер формата в простомpack_formatделает пак несовместимым. - Неверная упаковка в zip —
pack.mcmetaдолжен находиться в корне zip-архива, а не внутри папки внутри архива.
Другие селекторы
range_dispatch по числу — лишь один из вариантов. Вы также можете выбирать по minecraft:display_context (разная модель в руке и в рамке), minecraft:using_item или minecraft:selected — именно так лук отображает натянутое состояние.
Соберите JSON-диспетчер, файл модели и команду выдачи вместе в Custom Model & Item Component Tools.