Каждый автор аддонов иногда ломает свой пакет. Хорошая новость: Minecraft сам говорит, что пошло не так, если знать, куда смотреть. На этой странице показано, как находить ошибки и исправлять самые частые из них.
Шаг 1: включите журнал контента
Журнал контента (Content Log) - это список проблем, которые Minecraft нашёл при загрузке ваших пакетов. Включите его один раз и не выключайте, пока работаете над аддоном.
- Откройте Minecraft и зайдите в Настройки.
- Откройте раздел Создатель (Creator).
- Включите Enable Content Log GUI (показ журнала контента на экране).
- Включите Enable Content Log File, если хотите ещё и сохранять ошибки в файл.
Теперь, когда вы загружаете мир со сломанным пакетом, ошибки всплывают на экране. Полный список можно открыть в любой момент из меню паузы или клавишами Ctrl + H на клавиатуре.
Как читать ошибку
Строка журнала контента обычно выглядит так:
[Item][error]-demo:ruby | items/ruby.json | minecraft:item | components | minecraft:max_stack_size | ...Читайте её слева направо:
[Item]: какая система пожаловалась (Item, Blocks, Entity, Json, Texture...).[error]или[warning]: ошибки обычно что-то ломают, предупреждения могут и не ломать.- Путь: файл, а затем точное место внутри него. Так вы поймёте, куда смотреть.
Совет
Сначала исправляйте первую ошибку. Одна оплошность, например пропущенная скобка, может вызвать за собой длинный список ошибок. Исправив первую, вы часто избавитесь и от остальных.
Пакет вообще не появляется
Если вашего пакета нет в списке в настройках мира, значит Minecraft не смог прочитать его манифест.
- Сломанный JSON в
manifest.json. Проверьте, нет ли пропущенных или лишних запятых и неправильных кавычек. См. JSON за 5 минут. - Манифест не на своём месте. Он должен лежать прямо в папке пакета, например
development_behavior_packs/MyPack/manifest.json. На одну папку глубже, и пакет станет невидимым. - Неверный тип модуля. Пакет поведения использует
"type": "data", пакет ресурсов -"type": "resources". BP в папке пакетов ресурсов (или наоборот) не появится. - Импорт не удался. Если
.mcpackпоказывает «Импорт не выполнен», скорее всего, манифест лежит в подпапке внутри ZIP. Архивируйте содержимое папки пакета, а не саму папку. См. Экспорт и игра.
Одинаковые UUID
У каждого заголовка пакета и у каждого модуля должен быть свой UUID. Проблемы начинаются, когда:
- вы скопировали манифест из урока или другого пакета и оставили его UUID
- вы скопировали манифест своего BP, чтобы сделать RP, и забыли их поменять
- старая копия того же пакета всё ещё установлена
Признаки: пакет не импортируется, загружается не тот пакет или ваши изменения так и не появляются. Решение: сгенерируйте четыре новых UUID и проверьте, что запись dependencies в BP указывает на новый UUID заголовка RP. Затем удалите старые копии пакета из behavior_packs и resource_packs.
Изменения не появляются
Вы изменили файл, но в игре ничего не поменялось.
- Файл сохранён? Включите автосохранение в редакторе.
- Вы редактируете нужную копию? Если вы импортировали пакет как
.mcpack, игра использует импортированную копию вbehavior_packs, а не вашу папку проекта. Работайте лучше в папках разработки. - Вы подняли версию? Когда импортируете обновлённый
.mcpack, увеличьтеversionв заголовке манифеста, иначе Minecraft может оставить старую версию. - Вы перезагрузили мир? Выйдите из мира и зайдите снова. В упрямых случаях полностью закройте Minecraft.
Пакет включён, но ничего не работает
- Включён только один пакет. Откройте настройки мира и убедитесь, что и пакет поведения, и пакет ресурсов находятся в разделе Активные. Если добавить в BP зависимость от RP, это будет происходить автоматически.
- Нужен эксперимент. Если возможность, которую вы используете, экспериментальная, её переключатель должен быть включён в разделе Эксперименты настроек мира.
- Неверный format_version. Если в файле написано
"format_version": "1.10", а используются новые компоненты, игра читает его по старым правилам и игнорирует или отвергает то, чего не знает. Используйте актуальную версию, например"1.26.30"для предметов, и ориентируйтесь на примеры из этой вики.
Предмета нет в творческом меню
Ваш предмет существует, но в творческом инвентаре его не найти.
Нет категории меню
Без menu_category категория по умолчанию равна none, и предмет скрыт из творческого меню. Добавьте её в описание предмета:
"description": {
"identifier": "demo:ruby",
"menu_category": {
"category": "items"
}
}Показать предмет можно в категориях construction, equipment, items и nature.
Другие причины
- Файл не загрузился. Поищите в журнале контента ошибки с именем вашего предмета.
- Попробуйте команду. Введите
/give @s demo:ruby. Если игра говорит, что такого предмета нет, пакет поведения не загружает файл. Если предмет выдался, неправильна только настройка меню.
Также загляните в справочник компонентов предметов и проверьте, что каждое имя компонента написано правильно.
Пропавшие или сломанные текстуры
Чёрно-фиолетовые квадраты
Чёрно-фиолетовая клетчатая текстура означает, что Minecraft не нашёл картинку, которую ему велели использовать.
- Неверный путь. Пути к текстурам пишутся без
.pngи начинаются от корня пакета, напримерtextures/items/ruby. Проверьте каждую букву. - Неверный регистр. Некоторые платформы, например Android, считают
Ruby.pngиruby.pngразными файлами. Везде используйте строчные буквы. - Неверный формат. Сохраняйте в настоящий PNG. JPG, переименованный в
.png, не загрузится. - RP не включён. Если пакет ресурсов выключен, пропадают все ваши текстуры.
Предметы без иконки
Если ваш предмет невидимый или без иконки:
- Проверьте, что
minecraft:iconв BP использует короткое имя, например"ruby". - Проверьте, что это же короткое имя прописано в
RP/textures/item_texture.json. - Проверьте, что путь в этом файле ведёт к вашему PNG.
{
"resource_pack_name": "my_first_addon",
"texture_name": "atlas.items",
"texture_data": {
"ruby": {
"textures": "textures/items/ruby"
}
}
}Странные названия предметов
Если предмет называется как-то вроде item.demo:ruby.name, а не «Ruby», в языковом файле нет нужной строки. Добавьте её в RP/texts/en_US.lang:
item.demo:ruby.name=RubyБыстрый чек-лист
Когда что-то сломалось и непонятно почему, пройдите по этому списку по порядку:
- Журнал контента включён? Прочитайте первую ошибку.
- Весь JSON правильный?
- Манифесты на своих местах, с уникальными UUID?
- Оба пакета включены в мире?
- Идентификаторы везде написаны одинаково и строчными буквами?
- Пути к текстурам правильные, без
.png? - Мир перезагружен или Minecraft перезапущен?
Как избежать ошибок с самого начала
Большинство этих проблем появляется, когда всё вводится вручную: тут запятая, там не тот UUID, а в пути к текстуре одна неверная буква. GodCraft сам пишет все эти файлы, поэтому манифесты, UUID, пути к текстурам и языковые строки всегда совпадают. Если вы постоянно застреваете, попробуйте собрать то же самое в Мастерской GodCraft и сравнить.