Датапак — это набор файлов, который подключает в мир ванильные команды без единого командного блока. Через него делают карты вроде oneblock, кастомные крафты, лут-таблицы, свои измерения и целые игровые механики. По сути датапак — бесплатная и лёгкая замена большинству модов, потому что работает на движке самой игры.
Что нужно перед стартом
Датапак живёт внутри конкретного мира. Создайте новый мир (лучше плоский, с типом «пустота» — так проще тестировать), выйдите из него и откройте настройки → «Открыть папку мира». Внутри найдётся папка datapacks — туда и кладётся всё, что вы соберёте.
Для удобной работы стоит поставить Visual Studio Code с расширениями:
- Datapack Helper Plus (от Spyglass) — подсветка синтаксиса и подсказки по командам;
- Better Datapack или похожий плагин для json-файлов датапака;
- по желанию — расширение для синтаксиса функций (.mcfunction).
Структура: с чего строится датапак
- Папка датапака — название на латинице, без пробелов и заглавных букв.
- pack.mcmeta — текстовый файл (без расширения .txt), который сообщает игре версию и описание пака.
- Папка
data— корневая, без неё датапак не заработает вообще.
pack.mcmeta: что писать внутри
До версии 1.20.5 хватало одной строки pack_format. Начиная с более новых сборок 1.21.x игра умеет понимать диапазон версий через min_format и max_format — это позволяет одному датапаку работать сразу на нескольких релизах, а не только на одном.
| Параметр | За что отвечает |
|---|---|
description |
Текст, который видит игрок при выборе датапака. Пишется в кавычках |
pack_format |
Старый формат — одна цифра под конкретную версию |
min_format / max_format |
Новый формат — диапазон поддерживаемых версий |
Актуальную таблицу соответствия версии и цифры формата проще смотреть на wiki.vg или профильных сайтах-генераторах — она меняется почти с каждым крупным обновлением.
Функции: делаем датапак живым
Пустой датапак с одной папкой data ничего не выполняет. Чтобы появилась логика, нужны файлы-функции — списки команд, которые выполняются как в командном блоке.
Важный нюанс, который путает даже тех, кто уже делал датапаки на старых версиях: раньше папка называлась functions, а на новых версиях (после смены формата функций) — просто function, без буквы «s» на конце.
Два системных файла отвечают за автозапуск:
- load — срабатывает один раз при загрузке мира или перезагрузке датапака (команда
/reload); - tick — срабатывает каждый игровой тик, то есть 20 раз в секунду, пока датапак активен.
Чтобы игра понимала, какую функцию считать load, а какую tick, их нужно прописать в тегах: data/minecraft/tags/function/load.json и .../tick.json, указав внутри путь к вашей функции.
Пример: простое приветствие
Внутри вашей load-функции достаточно одной строки с командой вывода текста в чат — и при каждой перезагрузке датапака игрок увидит сообщение. Дальше это масштабируется: через tick-функцию и селекторы можно проверять, что держит игрок в руке, и выдавать эффект зелья, пока в слоте нужный предмет — с надетым сетом брони, например, эффект прыгучести и частицы вокруг персонажа.
Быстрый способ создать датапак командой
На последних версиях появилась команда /datapack create <id> <описание> — она сама создаёт структуру папок с нужным ID (только строчные латинские буквы, цифры и нижнее подчёркивание). После этого остаётся найти созданную папку в datapacks мира и перетащить её в окно VS Code для редактирования.
Другие возможности датапака
Кроме функций, датапак умеет менять:
- достижения — свои цепочки ачивок с иконкой, описанием и триггером (например, за подбор бревна);
- таблицы лута (loot tables) — что выпадает из блока, моба или сундука;
- рецепты крафта — новые или заменённые ванильные;
- предикаты — условия вида «сейчас идёт дождь» для команд execute;
- генерацию мира (world gen) — свои биомы, распределение структур, высоту мира, уровень моря;
- структуры — сохранённые постройки, которые можно вставлять через структурный блок.
Для достижений, лут-таблиц и рецептов удобнее не писать json руками, а пользоваться профильными генераторами — это экономит время и снижает число ошибок в синтаксисе.
Частые ошибки новичков
- Забыли создать папку
data— без неё пак не подключается вообще. - Перепутали
functions/functionдля своей версии игры. - Не поставили
#перед функцией в тегеtick.json/load.json, если ссылка идёт на тег, а не на саму функцию. - Пишут длинное описание в pack.mcmeta без учёта того, что конечная часть текста может обрезаться в интерфейсе — лучше делать его коротким.
FAQ
Нужны ли моды для создания датапака?
Нет, всё делается стандартными средствами Minecraft Java Edition. Программа вроде VS Code нужна только для удобства редактирования текстовых файлов.
Почему мой датапак не появляется в списке при создании мира?
Чаще всего дело в неверной версии в pack.mcmeta (пак «краснеет» в интерфейсе) или в отсутствии папки data.
Можно ли использовать несколько датапаков одновременно?
Да, в одном мире может быть любое количество датапаков — каждый в своей папке внутри datapacks.
Чем датапак отличается от мода?
Датапак работает только через штатные механики и команды игры и не требует Forge/Fabric, но и не может добавить принципиально новую графику или блоки с новым поведением на уровне кода — только то, что позволяют ванильные команды и json-конфигурация.