Сначала определите само решение, а уже потом файл
Быстрая карта выбора перед первым кликом
| Ветка | Когда подходит | Главный сигнал |
|---|---|---|
minecraft:model | Нужен один фиксированный внешний вид. | На деле никакого дерева решений нет. |
minecraft:select | Одно именованное свойство выбирает между ветками. | Состояния можно назвать словами вроде pass, relic, broken, ritual. |
minecraft:range_dispatch | Число проходит через пороги. | Есть стадии, заряд, износ или прогресс. |
minecraft:condition | Результат зависит от true/false. | Предмет выбран, используется, повреждён или иным образом бинарен. |
Практический пример: один реликт, три состояния
select.Безопасный workflow внутри конструктора
- Сначала задайте путь файла внутри
assets/<namespace>/items/. - Выберите самый маленький тип ветвления, который реально описывает предмет.
- Настройте fallback до всех красивых ответвлений.
- Используйте quick starts, если уже ясно, что у вас прямой model, переключение по состояниям или лестница порогов.
- Скопируйте JSON, проверьте один предмет в игре и только потом размножайте паттерн по паку.
Когда пора переключаться на другой инструмент
Типичные ошибки
- Брать
selectпросто потому, что он кажется “правильнее”, хотя хватило бы обычногоmodel. - Пропускать fallback и ломать читаемость файла с первой же строки.
- Смешивать числовые и именованные ожидания в одном definition, не решив, какое свойство вообще главное.
- Называть JSON-файл, model path и внутренний ярлык команды так по-разному, что связь между ними исчезает.
- Копировать ветки сразу на много предметов, не проверив один живой пример в игре.
FAQ
Нужен ли select всегда, если речь про CustomModelData?
Нет. Если у предмета только один внешний вид, прямой model-файл чище. select нужен тогда, когда один definition действительно должен ветвиться на несколько обликов.
Когда range_dispatch лучше?
Когда изменение упорядочено и числовое: стадии урона, заряд, шкала прогресса или любое состояние с порогами.
Почему так важно начать с fallback?
Потому что fallback — это спокойное базовое чтение предмета. Когда опора выставлена правильно, все остальные ветки проще оценивать.
Можно ли держать item-команду отдельно от definition-файла?
Да, и это одно из лучших качеств новой системы. Визуальный файл не обязан тащить на себе ещё и командную сторону.
А если мне нужен просто красивый пропуск на базе paper?
Тогда почти наверняка достаточно прямого minecraft:model-файла. Не раздувайте дерево решений там, где сама задача маленькая.