DGuard

Дата-паки на сервере Minecraft: установка, команды, безопасность

Дата-пак меняет игру без единой строчки Java-кода: добавляет рецепты, достижения, таблицы добычи, структуры и даже новую генерацию мира. Он работает и на ванильном сервере, и на Paper. Разбираем, куда его класть, как включать и перечитывать, что значат номера в pack.mcmeta и чем дата-пак отличается от плагина.

Команда DGuard6 мин

Коротко: положите .zip или папку с файлом pack.mcmeta в world/datapacks и выполните из консоли minecraft:reload — или перезапустите сервер. Проверьте datapack list enabled: пакет появится как [file/имя]. Пакеты, которые меняют генерацию мира, измерения или зачарования, применяются только после перезапуска, а генерацию ставят до того, как мир создан.

Что такое дата-пак и чем он отличается от плагина

Дата-пак — папка или .zip-архив с файлом pack.mcmeta в корне и папкой data. Внутри — описания в JSON, функции .mcfunction (списки команд) и структуры .nbt. Сама игра хранит ванильные рецепты, добычу и генерацию во встроенном дата-паке vanilla, поэтому чужой пакет может их дополнить или заменить.

Дата-пакПлагин
Что внутриJSON, функции из команд, структурыJava-код
Где работаетЛюбой Java-сервер, включая ванильный, и одиночная играPaper, Spigot и их форки
Как меняет игруДанными игры и командамиЧерез API сервера: любая логика, базы данных, сеть
Куда кластьworld/datapacksplugins/ — см. как установить плагин

Что умеет дата-пак: рецепты, достижения, таблицы добычи, предикаты, теги, функции, структуры, генерацию мира, измерения, зачарования, варианты мобов, диалоги. Что требует плагина: свои команды с правами, экономика, приваты, работа с базой данных и всё, что нужно делать по сетевым пакетам игрока.

Как установить дата-пак на сервер

  1. 1

    Скачайте пакет под свою версию

    Это .zip или папка. Проверьте, что pack.mcmeta лежит в корне архива, а не во вложенной папке — иначе игра пакет не увидит.

  2. 2

    Положите в папку мира

    В datapacks внутри папки мира: по умолчанию world/datapacks (имя мира задаёт level-name в server.properties). Если папки нет, создайте её.

  3. 3

    Перечитайте или перезапустите

    Рецепты, добыча, достижения и функции подхватит minecraft:reload. Генерация мира, измерения, зачарования и другие «экспериментальные» разделы — только после перезапуска.

  4. 4

    Проверьте

    datapack list enabled в консоли. Если пакета нет в списке, ищите ошибку в logs/latest.log — см. логи и краши.

Если в пакете ошибка, например неверный формат рецепта, minecraft:reload изменения не применит, и игра продолжит работать на прежних данных. Ещё перечитать пакеты можно командами datapack enable и datapack disable.

Команда /datapack

КомандаЧто делает
datapack list [available|enabled]Все пакеты, только доступные или только включённые
datapack enable <имя>Включить пакет
datapack enable <имя> first|lastВключить с наименьшим или наибольшим приоритетом
datapack enable <имя> before|after <другой>Включить перед или после другого пакета
datapack disable <имя>Выключить пакет. Файл остаётся в папке
datapack create <id> <описание>Создать пустой пакет-папку для текущего мира (с 1.21.6, уровень оператора 4)
Уровень оператора 2, кроме create. Имя пакета из папки пишется как file/имя

Порядок важен: если один и тот же файл есть в нескольких пакетах, побеждает пакет, загруженный последним, а теги без "replace": true объединяются. Порядок хранится в level.dat мира. Пакеты, которым нужен экспериментальный флаг, включаются только при создании мира — командой их уже не включить.

Пакеты при создании мира: server.properties

Два ключа server.properties действуют только при создании нового мира — на готовый мир они не влияют:

КлючПо умолчаниюЧто делает
initial-enabled-packsvanillaКакие пакеты включить при создании мира, через запятую. Экспериментальные пакеты нужно перечислить явно
initial-disabled-packsпустоКакие пакеты не включать автоматически, через запятую

Пакет генерации мира меняет только новые чанки, а уже созданные останутся прежними. Поэтому ставьте его до первого запуска или до прогрузки мира, а не на обжитый сервер.

pack.mcmeta и номер формата

По pack.mcmeta игра узнаёт, для каких версий сделан пакет. С 1.21.9 вместо одного pack_format пишут диапазон min_format и max_format; старое поле нужно, только если пакет поддерживает и версии до этой схемы.

pack.mcmeta дата-пака для 1.21.11
{
  "pack": {
    "description": "Рецепты сервера",
    "min_format": 94,
    "max_format": 94
  }
}
ВерсияДата-пакРесурс-пак
1.21.46146
1.21.7–1.21.88164
1.21.1194.175.0
26.1–26.1.2101.184.0
26.2107.188.0
26.3121.097.1
Номера форматов — по Minecraft Wiki. Пакет с форматом новее, чем у игры, помечается несовместимым

Безопасность: только из проверенных источников

  • Функции пакета — это команды сервера. Они выполняются с уровнем прав из function-permission-level (по умолчанию 2) — на этом уровне доступны, например, /gamerule, /worldborder и /datapack. Пакет из сомнительного источника может незаметно поменять мир.
  • Смотрите, что внутри. Дата-пак — обычные текстовые файлы: перед установкой откройте папку function и проверьте, какие команды там выполняются, особенно в функциях с тегами minecraft:load (при загрузке) и minecraft:tick (каждый тик).
  • Функции каждого тика стоят TPS. Тяжёлая функция в minecraft:tick нагружает сервер постоянно — проверяйте нагрузку профайлером: см. spark.
  • Сначала бэкап. Пакет генерации или измерений меняет мир необратимо — сделайте резервную копию.
  • Если мир не грузится. Paper умеет запустить миры только со встроенным пакетом vanilla — аргументом запуска --safeMode. Так можно убрать сломанный пакет.

Дата-паки и античит

Дата-пак видит игру через данные и команды, а не через сетевые пакеты клиента. Поэтому проверок уровня пакетов — Timer, Blink, BadPackets — на функциях не построить: античит ставится плагином. DGuard — лучший античит для современного сервера Minecraft — работает на Paper и Leaf 1.21–26.3 рядом с PacketEvents и ловит читы в бою, движении, пакетах, инвентаре, постройке и мире.

Если дата-пак меняет скорость, отдачу или дальность удара — например, своими зачарованиями, — после установки посмотрите журнал наказаний: не стали ли попадать в него честные игроки. DGuard копит улики и не торопится с выводом, а строгость вы настраиваете сами. Как разбирать спорные случаи — в статье ложные баны.

Частые вопросы

Куда кидать дата-пак на сервере?

В папку datapacks внутри папки мира — по умолчанию world/datapacks. Не в plugins/: это не плагин.

Почему дата-пак не работает?

Чаще всего pack.mcmeta лежит не в корне архива, пакет сделан для другой версии или в нём ошибка — её покажет logs/latest.log. Проверьте datapack list enabled; генерация мира и измерения требуют перезапуска.

Как перезагрузить дата-паки на Paper?

Командой minecraft:reload. Просто /reload на Paper перезагружает плагины Bukkit — Paper её не рекомендует.

Дата-пак или плагин — что выбрать?

Для рецептов, добычи, достижений и генерации мира хватит дата-пака: он работает и на ванильном сервере. Для команд с правами, экономики, приватов и защиты от читов нужен плагин.

Источники

Все разделы
Миры и геймплей4 минРесурспак сервера: как подключить и обновлятьСерверный ресурспак игрок получает при входе: свои модели предметов, текстуры, звуки и шрифты без ручной установки. Настраивается он пятью ключами server.properties. Разбираем, какая нужна ссылка, как посчитать SHA-1, как сделать пакет обязательным и что делать, если игроки видят старую версию.ЧитатьПлагины7 минКак установить плагин на сервер MinecraftСкачайте .jar с официальной страницы, положите его в plugins/ и перезапустите сервер — не через /reload. Ниже — как проверить совместимость, что делать с зависимостями и почему плагин не загружается.ЧитатьМиры и геймплей5 минПравила игры (/gamerule) на сервере MinecraftПравила игры — переключатели механик мира: сохранять ли вещи после смерти, ломают ли мобы блоки, распространяется ли огонь, сколько игроков должно лечь спать. Разбираем команду /gamerule, полезные для сервера правила с значениями по умолчанию и главное изменение последних версий: с 1.21.11 все правила переименованы.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.