MC Toolkit

Руководства / Строительство и ресурсы

Кастомные модели предметов: один предмет — много моделей без замены чего-либо

Система 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 — это старый синтаксис, и команда теперь отклоняет его как некорректный.

Почему он отображается фиолетовым кубом

В порядке вероятности:

  1. Неверный путь к текстуре — включает textures/ или .png, либо файл находится не там, где указано в пути.
  2. Регистр в имени файла — игра чувствительна к регистру, даже если ваша ОС — нет.
  3. Устаревший pack.mcmeta — 26.x требует min_format и max_format; актуальный номер формата в простом pack_format делает пак несовместимым.
  4. Неверная упаковка в zip — pack.mcmeta должен находиться в корне zip-архива, а не внутри папки внутри архива.

Другие селекторы

range_dispatch по числу — лишь один из вариантов. Вы также можете выбирать по minecraft:display_context (разная модель в руке и в рамке), minecraft:using_item или minecraft:selected — именно так лук отображает натянутое состояние.

Соберите JSON-диспетчер, файл модели и команду выдачи вместе в Custom Model & Item Component Tools.

Инструменты модели и компонентов предмета →

Другие руководства

Смотреть все →