Чтобы включить датапак в Minecraft Java Edition, поместите пак (файл .zip или папку, в корне которой лежит pack.mcmeta) в папку datapacks вашего мира и загрузите мир. В новом одиночном мире это можно сделать прямо на экране Create New World: More, затем Data Packs, затем перенесите пак из колонки Available в Selected. В существующем мире или на сервере положите файл в world/datapacks/ и выполните /reload, либо включите пак по имени командой /datapack enable "file/<name>". Новые паки, найденные в этой папке, включаются автоматически, если только что-то не пометило их как отключённые. Большая часть этой статьи как раз о таких случаях.
Датапаки есть только в Java Edition. В Bedrock датапаков нет, там есть аналог - behaviour packs, но они устанавливаются и включаются совсем другим способом.
Короткий ответ по ситуациям#
Включить пак можно в четырёх местах, и у них нет ни общего экрана, ни общей команды:
| Где вы играете | Как включить | Когда вступает в силу |
|---|---|---|
| Новый одиночный мир | Create New World, More, Data Packs | При создании мира |
| Существующий одиночный мир | Папка мира, datapacks, перезагрузка | При следующей загрузке или /reload |
| Выделенный сервер | world/datapacks/, затем /datapack enable | Сразу |
| Realm | Загрузить мир, в котором пак уже есть | После загрузки |
Когда вы уже в мире или в консоли сервера, почти всю работу делают две команды:
$ datapack list$ datapack enable "file/house-rules.zip"Дальше в статье каждый путь разобран по шагам, а затем рассмотрено то, из-за чего пак отображается отключённым: экспериментальные паки, предупреждения о pack_format, безопасный режим и собственные стартовые настройки сервера. Подробно об установке, порядке, написании и отладке паков рассказано в руководстве по датапакам Minecraft, здесь это не повторяется.
Одиночная игра: включаем паки при создании мира#
Экран Create New World - единственное место в игре с нормальным интерфейсом для датапаков, и существует он только до того, как создан сам мир.
- На титульном экране выберите Singleplayer, затем Create New World.
- Откройте вкладку More и нажмите Data Packs. В версиях до появления экрана с вкладками (примерно 1.19.4) Data Packs - это кнопка прямо на экране создания мира.
- Нажмите Open Pack Folder. Файловый менеджер откроет временную папку. Скопируйте в неё свои файлы
.zipили папки паков. В актуальных версиях можно также перетащить zip прямо на окно игры и подтвердить копирование. - Вернувшись в игру, вы увидите пак в колонке Available слева. Наведите на него курсор и нажмите стрелку, чтобы перенести его в Selected справа.
- Нажмите Done, настройте остальное как обычно и создайте мир.
Игра копирует каждый выбранный пак в собственную папку datapacks нового мира, так что дальше мир хранит свои паки у себя. Порядок в колонке Selected имеет значение, когда два пака меняют один и тот же файл: пак выше в списке перекрывает те, что ниже, а встроенные данные ванильной игры всегда находятся в самом низу.
Если пак вообще не появился в Available, игра не смогла прочитать его как пак. Обычная причина - zip с лишней папкой внутри, из-за чего pack.mcmeta оказывается на один уровень глубже, чем нужно. Эта и другие структурные проблемы разобраны в руководстве по датапакам.
Одиночная игра: добавляем пак в уже существующий мир#
Для существующего мира кнопки Data Packs нет. Файл добавляется вручную:
- В Singleplayer выберите мир, нажмите Edit, затем Open World Folder. Папка этого сохранения откроется в файловом менеджере.
- Откройте внутри неё папку
datapacks. Если её нет, создайте: имя должно быть именноdatapacks, в нижнем регистре и без пробела. - Скопируйте пак в папку, в виде zip или в виде распакованной папки.
- Загрузите мир.
В Windows сохранения лежат в %APPDATA%\.minecraft\saves\<world name>\, если вы предпочитаете открыть эту папку напрямую. Имя папки мира не всегда совпадает с названием в меню, поэтому путь через Edit надёжнее.
При загрузке мира игра сравнивает паки в папке со списками, записанными в level.dat. Пак, которого она раньше не видела, включается автоматически. Для большинства людей это и вся процедура: скопировали, загрузили, готово.
Если мир уже открыт, выходить из него не нужно. Выполните /reload, и игра заново просканирует папку, включит новые паки и перезагрузит все данные. Для команд нужны читы, поэтому в мире, созданном без них, можно открыть его для LAN с включённым Allow Commands - это даст разрешение только на текущий сеанс. Проверьте результат:
$ /datapack list enabledПак должен появиться как file/<name>. Если он виден только в /datapack list available, значит, игра его нашла, но что-то удерживает его в отключённом состоянии. Следующий шаг - раздел об этом ниже.
Выделенные серверы: папка, команды и перезагрузка#
Сервер читает паки из одного места: папки datapacks внутри основной папки мира, имя которой берётся из level-name в server.properties (по умолчанию world). На Paper незер и энд лежат в отдельных папках, но паки, помещённые в world_nether или world_the_end, игнорируются: учитывается только папка основного мира.
Загрузите пак, затем либо перезапустите сервер, либо перезагрузите данные из консоли. На работающем сервере последовательность выглядит так:
$ minecraft:reload$ datapack list$ datapack enable "file/vt-graves.zip"Несколько правил, которые сэкономят время:
- Имя - это
file/и следом имя файла или папки в точности так, как оно записано на диске, включая.zip, если это zip. Берите его в кавычки из-за косой черты. /datapack enableи/datapack disableсами запускают перезагрузку. Выполнять после них/reloadне нужно.- Одиночный
/reloadтоже подхватывает новые паки и включает их, если они не в списке отключённых. - На Paper, Spigot и их ответвлениях обычный
/reload- это перезагрузка плагинов Bukkit, а на работающем сервере она небезопасна. Используйтеminecraft:reload- это ванильная перезагрузка датапаков. - В консоли команды вводятся без начальной косой черты. В игре она нужна, и нужен уровень оператора 2.
Полный набор команд:
| Команда | Что делает |
|---|---|
datapack list | Показывает включённые и доступные паки |
datapack list available | Только найденные, но не включённые паки |
datapack list enabled | Только паки, которые сейчас включены |
datapack enable "file/x" | Включает пак, по умолчанию ставит его последним |
datapack enable "file/x" first | Включает с самым низким приоритетом |
datapack enable "file/x" before "file/y" | Ставит его относительно другого пака |
datapack disable "file/x" | Отключает пак и перезагружает данные |
Позиция важна, только когда два пака заменяют один и тот же файл. Как порядок решает, какой из них победит, объясняется в руководстве по датапакам.
Отключение пака его не удаляет. Файл остаётся в папке, а сам пак попадает в список отключённых в level.dat, поэтому после перезапуска он сам не вернётся. Чтобы убрать пак насовсем, отключите его, остановите сервер и удалите файл. Отключать пак, который добавлял рецепты, лут или функции, безвредно. А вот отключать пак, добавлявший измерения или биомы, в мире, где они уже использовались, нельзя, поэтому сначала сделайте backup.
На RE:NODE серверы Minecraft работают на Paper с уже сгенерированным миром, так что world/datapacks/ существует уже при первом открытии файлового менеджера. Паки загружаются через браузер или по SFTP (см. SFTP и файловый менеджер), а консоль панели принимает команды minecraft:reload и datapack напрямую, с историей и автодополнением по Tab.
initial-enabled-packs и initial-disabled-packs#
Начиная с 1.19.3 в server.properties есть два ключа, определяющих, с какими паками стартует совершенно новый мир:
initial-enabled-packs=vanillainitial-disabled-packs=Оба принимают имена паков через запятую. Они применяются один раз, когда сервер генерирует мир, а для уже существующего мира игнорируются. Это сбивает многих: добавить имя пака в initial-enabled-packs и перезапустить существующий сервер - значит не изменить вообще ничего.
Они полезны в двух случаях. Первый - включение экспериментальных паков на выделенном сервере, где нет экрана создания мира; об этом в следующем разделе. Второй - с самого начала держать пак выключенным. Если вы заранее заполнили папку datapacks до первого запуска, то при генерации мира будет включён каждый пак из неё; если указать один из них в initial-disabled-packs, он останется в папке, но будет выключен, пока кто-нибудь его не включит.
initial-enabled-packs=vanilla,trade_rebalanceinitial-disabled-packs=file/test-packОстальные настройки этого файла, ключ за ключом, разобраны в статье server.properties: разбор настроек.
Экспериментальные паки: экран Experiments и feature flags#
Mojang выпускает будущие возможности как встроенные паки, которые по умолчанию выключены. Их включение меняет генерацию мира или игровые механики, поэтому игра обращается с ними иначе, чем с обычными паками: они устанавливают в мире feature flags, а feature flags можно задать только при создании мира.
Какие экспериментальные паки существуют, целиком зависит от версии. Каждый добавляется на время предварительного тестирования и удаляется, когда его возможность попадает в обычный релиз. Для примера: примерно в 1.19.3 и 1.19.4 были update_1_20 и bundle; в 1.20.5 появился update_1_21; trade_rebalance присутствует уже в нескольких релизах; в 1.21.2 добавились minecart_improvements и redstone_experiments. Имена из старого руководства в вашей версии могут просто отсутствовать, поэтому проверяйте, а не копируйте.
Чтобы увидеть паки, которые действительно есть в вашей версии:
- В одиночной игре откройте Create New World, затем More, затем Experiments. Каждый переключатель там - это один экспериментальный пак. В старых версиях они вместо этого показаны на экране Data Packs с пометкой experimental.
- На сервере выполните
datapack listи поищите встроенные имена, кромеvanillaи записейfile/.... Исчерпывающий список - в примечаниях к выпуску вашей версии.
На выделенном сервере единственный чистый способ включить такой пак - initial-enabled-packs до того, как мир появился:
- Остановите сервер.
- Перенесите или удалите существующую папку мира (сохраните копию, если она нужна).
- Укажите в
server.propertiesзначениеinitial-enabled-packs=vanilla,<experiment name>. - Запустите сервер, чтобы он сгенерировал новый мир с этим флагом.
Команда datapack enable для экспериментального пака в существующем мире завершается ошибкой с сообщением о том, что нужные feature flags в этом мире не включены. Это не баг: игра отказывается добавлять экспериментальные блоки и механики в мир, который не был для них сгенерирован.
Предупреждения о pack_format и несовместимые паки#
Каждый пак объявляет в своём pack.mcmeta значение pack_format - число, соответствующее формату данных одной версии Minecraft или диапазона версий. Если число не совпадает с тем, что ожидает ваша игра, пак помечается как несовместимый.
В одиночной игре экран Data Packs показывает такой пак красным с пометкой, что он создан для более старой или более новой версии Minecraft. Выбрать его всё равно можно: игра попросит подтверждения. В консоли сервера запроса нет, и пак загружается в любом случае.
Работает ли несовместимый пак - это отдельный вопрос от того, загружается ли он. Несовпадающее число при правильной структуре файлов часто работает отлично. Совпадающее число при старой структуре файлов не делает ничего. Типичный случай - пак, собранный для 1.20, на сервере 1.21: он включается без ошибок, /datapack list его показывает, но эффекта нет, потому что в 1.21 папки внутри паков переименовали из множественного числа в единственное. Таблица номеров форматов и переименование папок есть в руководстве по датапакам.
Практическое правило: скачивайте сборку пака, сделанную именно под вашу версию Minecraft. Готовые паки вроде Vanilla Tweaks именно поэтому спрашивают версию перед загрузкой. Правьте pack_format самостоятельно, только если знаете, что файлы внутри уже имеют правильную структуру.
Почему датапак отображается отключённым#
datapack list разделяет включённые паки и доступные. Пак, который лежит в папке, но застрял среди доступных, отключён по одной из таких причин, расположенных примерно в порядке вероятности:
- Его раньше кто-то отключил.
/datapack disableили снятие выбора на экране Data Packs записывает пак в список отключённых вlevel.dat. Паки из этого списка не включаются заново ни перезагрузкой, ни перезапуском. Включите его по имени. - Ему нужен feature flag, которого нет в мире. Экспериментальный пак или сторонний пак, объявляющий такое требование, нельзя включить в мире, созданном без этого эксперимента.
- Он был указан в `initial-disabled-packs` при генерации мира, из-за чего попал в список отключённых с самого первого тика.
- Мир открыт в безопасном режиме. Если пак загружается настолько плохо, что это становится проблемой, одиночная игра предлагает открыть мир в безопасном режиме только с ванильными данными, а выделенный сервер отказывается запускаться и предлагает флаг запуска
--safeMode. В обоих случаях мир загружается без ваших паков; когда неисправный пак исправлен или удалён, включите остальные заново и проверьте список. - Пак не загрузился. Сломанный файл JSON или ошибка в функции не всегда отключают пак целиком, но при загрузке или перезагрузке консоль выводит ошибку с именем файла. Прочитайте лог, прежде чем менять что-то ещё.
А если пака нет ни в одном из списков, сервер его просто не нашёл: неправильная папка (папка незера или папка мира, на которую не указывает level-name), zip с лишней папкой внутри или файл с именем, которое на деле pack.zip.zip, потому что Windows скрывает расширения.
Здесь же стоит упомянуть мелкую, но частую ошибку: datapack enable "file/graves" завершается ошибкой о неизвестном паке, если на диске файл называется graves.zip. Копируйте точное имя из datapack list available; автодополнение в консоли подставляет его правильно.
Realms, LAN-миры и серверы - не одно и то же#
Realms - это хостинг от Mojang, и в Java Edition он не даёт доступа к файлам. Папки datapacks, куда можно загрузить пак, нет, консоли тоже нет. Путь получается окольным:
- Соберите мир в одиночной игре с нужными паками, включёнными и работающими.
- В настройках Realm воспользуйтесь опцией загрузки мира и выберите это сохранение.
- Загрузка заменяет мир в этом слоте Realm, вместе с паками.
После этого команды /datapack работают у оператора в Realm, так что можно отключать или переставлять уже имеющиеся там паки. Чтобы позже добавить новый пак, придётся повторить загрузку, которая заменяет мир Realm вашей локальной копией. Сначала скачайте мир из Realm, добавьте пак локально и загрузите результат, иначе вы откатите всё, что игроки сделали после вашей последней копии. Realms для Bedrock датапаки вообще не принимают, там используются add-ons.
LAN-мир - это просто ваш одиночный мир, открытый для других игроков, поэтому паками в нём управляют точно так же, как в разделах об одиночной игре выше, на вашем компьютере.
Выделенный сервер - единственный из этих трёх вариантов, где вы напрямую управляете файлами, видите лог и можете включать или удалять паки, пока люди играют. Если компания переросла схему с загрузкой миров туда и обратно, то обычно как раз поэтому. Перенос одиночного мира вместе с паками на сервер ничем не отличается от переноса любого мира: загрузите папку мира вместе с datapacks и укажите её в level-name. О безопасном переносе и восстановлении миров рассказано в статье резервные копии мира Minecraft и восстановление.
FAQ#
Нужно ли перезапускать сервер после добавления датапака?
Нет. Загрузите пак и выполните в консоли minecraft:reload либо включите его по имени командой datapack enable, которая перезагружает данные сама. Перезапуск тоже подойдёт и надёжнее, если пак добавляет генерацию мира.
Почему /datapack enable пишет, что пака не существует?
Имя указано неверно. Оно должно состоять из file/ и точного имени файла или папки, включая .zip, в кавычках. Выполните datapack list available и скопируйте имя оттуда.
Можно ли включить экспериментальные возможности в уже существующем мире?
Средствами игры нет. Экспериментальные паки задают feature flags, которые фиксируются при создании мира. Создайте новый мир с выбранным экспериментом или на сервере укажите initial-enabled-packs и дайте ему сгенерировать новый мир.
Нужно ли, чтобы датапак был установлен у каждого игрока?
Нет. Датапаки работают на сервере или, для LAN-мира, на компьютере хозяина. Игрокам нужен только resource pack, если датапак использует собственные текстуры или модели, а это отдельный файл.
Работают ли датапаки в Bedrock Edition?
Нет. Датапаки есть только в Java. В Bedrock используются behaviour packs, и датапак для Java нельзя превратить в них простым переименованием файлов.
Изменит ли включение датапака мой существующий мир?
Рецепты, лут, достижения и функции применяются сразу после загрузки пака. Паки генерации мира влияют только на чанки, созданные после их включения, поэтому изученные области останутся прежними, а новая местность может неаккуратно стыковаться на границе.


