Guides / Troubleshooting

Датапак не загружается? Структура папок и три совпадающих имени

Если датапак не отображается в /datapack list, проблема не в коде, а в пути. Вот точное дерево, правило пространств имён и переименованные папки.

/datapack list ничего не показывает или отображает пак как отключенный. Почти всегда JSON в порядке, а папки неправильные.

Дерево

world/datapacks/my_pack/
├── pack.mcmeta
└── data/
    └── my_namespace/
        ├── function/         one .mcfunction per file
        ├── recipe/
        ├── loot_table/
        ├── advancement/
        ├── predicate/
        └── tags/
            └── function/
                └── load.json

Три имени должны совпадать, и одно из них не очевидно:

  1. pack.mcmeta в корне пака — рядом с data/, а не внутри него.
  2. data/<namespace>/ — ваше пространство имён, строчными буквами, без пробелов. Оно станет префиксом в my_namespace:my_function.
  3. Названия папок категорий, которые изменились и являются обычной причиной проблем.

Папки были переименованы в единственное число

Это сломало множество паков и руководств:

СтароеТекущее
functions/function/
recipes/recipe/
loot_tables/loot_table/
advancements/advancement/
predicates/predicate/
structures/structure/

Пак, использующий названия во множественном числе, загружается — он появляется в /datapack list — и просто ничего не делает, что является самым запутанным режимом отказа из всех. tags/ осталось во множественном числе, как и tags/function/, ставшее единственным числом внутри него. Да, это непоследовательно.

Автоматический запуск чего-либо

Два специальных тега:

data/minecraft/tags/function/load.json   → runs once on load/reload
data/minecraft/tags/function/tick.json   → runs every tick

Обратите внимание на data/minecraft/, а не на ваше собственное пространство имён — тег принадлежит Minecraft, а функции, на которые он указывает, принадлежат вам:

{ "values": ["my_namespace:setup"] }

Диагностика по порядку

  1. /datapack list — если пак вообще не отображается, pack.mcmeta отсутствует, поврежден или находится на один уровень глубже, чем нужно.
  2. Отображается, но отключен/datapack enable "file/my_pack". Обратите внимание на префикс file/ и кавычки.
  3. Отображается и включен, но неактивен — неправильный pack_format или названия папок во множественном числе.
  4. /reload и читайте чат. Синтаксические ошибки в функциях появляются там, а не молча.

Заархивирован или нет

Работают оба варианта. Заархивированный означает pack.mcmeta в корне zip-архива, точно так же, как для ресурс-паков. Форма папки проще при разработке, потому что /reload подхватывает изменения без повторной архивации.

Размещение на сервере

На сервере путь <world>/datapacks/, где <world> — это значение level-name в server.properties — а не корневая папка сервера. Помещение пака в папку сервера — самая распространенная ошибка на стороне сервера.

Соберите пак с текущими названиями папок, действительным pack.mcmeta и уже подключенным тегом загрузки, затем скачайте его готовым к использованию с Datapack Studio.

Datapack Studio →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.