Датапаки (пакеты данных) добавляют в Minecraft функции, рецепты, достижения или новую генерацию мира, а ресурспаки приносят текстуры и звуки. Оба типа привязаны к формату данных, который меняется почти с каждой версией Minecraft. Если пак не подходит к версии твоего сервера или файл в нём повреждён, сервер записывает сообщение в лог. Обычно он просто пропускает проблемную запись, но в одном случае запуск прерывается.

Каждый раздел ниже посвящён одному из таких сообщений. Полный текст сообщения вместе со строками под ним ты найдёшь в Консоль или в разделе Файлы в logs/latest.log. Часть перед двоеточием в названиях вроде <pack>:<eintrag> называется пространством имён и почти всегда показывает, из какого пака или мода пришла ошибка. Перед любым вмешательством в папку мира или файлы пака создай резервную копию в разделе Резервные копии.

«Failed to load datapacks»: Minecraft прерывает запуск сервера

Так выглядит сообщение:

Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Overworld settings missing

В чём причина: Minecraft прерывает запуск, потому что не удалось загрузить датапаки или необходимые данные генерации мира. Сервер остаётся выключенным. Чаще всего датапак не подходит к версии Minecraft или содержит повреждённый файл. Overworld settings missing означает, что настройки основного мира отсутствуют или их не удалось прочитать.

Как это исправить:

  1. Создай резервную копию в разделе Резервные копии.
  2. Прочитай в Консоль ошибки до этого сообщения и после него. Проверь последние добавленные, обновлённые или удалённые датапаки и моды.
  3. Открой в разделе Файлы папку datapacks своего мира. Скачай последний добавленный пакет в виде копии и для пробы удали его.
  4. Перезапусти сервер. Если сервер снова работает, используй версию пакета, подходящую к версии Minecraft.
  5. Если миру нужен этот пакет для биомов или измерений, восстанови подходящую версию или полное предыдущее состояние из резервной копии.

Полезно знать: После смены ПО файлы мира могут располагаться иначе. Изучи инструкцию по переносу для соответствующего ПО; в этом поможет Как безопасно сменить версию Minecraft и загрузчик модов.

«Failed to load function»: не удаётся загрузить функцию датапака

Так выглядит сообщение:

Failed to load function <Pack>:<Path>
java.lang.IllegalArgumentException: Whilst parsing command on line <Line>: Incorrect argument for command at position <Position>: …
java.lang.IllegalArgumentException: Whilst parsing command on line <Line>: Can't find element '<Pack>:<Entry>' in registry 'minecraft:item_modifier' …

В чём причина: датапаки управляют процессами с помощью функций: это текстовые файлы с расширением .mcfunction, содержащие команды. Команда неизвестна, ожидает другие аргументы или ссылается на отсутствующую запись данных, например на модификатор предмета (item_modifier). Чаще всего пак не подходит к версии Minecraft. Функция не работает; сервер продолжает работать, но зависящие от неё функции пака не выполняются.

Как это исправить:

  1. Прочитай строку ошибки под «Failed to load function»: line указывает строку, position — место в ней. «Can't find element» указывает на отсутствующую запись.
  2. Замени пак в папке datapacks своего мира версией для твоей версии Minecraft. Если не хватает записей, проверь также дополнительные паки, которые нужны этому паку.
  3. Если пак твой собственный, исправь указанную строку в data/<Pack>/function/<Path>.mcfunction; в более старых паках папка называется functions.
  4. Перезапусти сервер или введи в Консоль команду reload. На Paper и Spigot используй minecraft:reload, чтобы перезагрузились только датапаки.

Полезно знать: необязательные функции модов требуют соответствующего мода. Игнорируй такие ошибки, только если автор пака прямо описывает эти дополнительные функции как необязательные.

«Couldn't load … pack metadata»: метаданные пака не подходят к версии Minecraft

Так выглядит сообщение:

Couldn't load file/<Pack>.zip pack metadata: Pack declares support for version newer than <Number>, but is missing mandatory fields min_format and max_format
Couldn't load file/<Pack>.zip pack metadata: Multi-version packs cannot support minimum version of less than <Number>, since this will leave versions in range unable to load pack.

В чём причина: файл pack.mcmeta описывает формат и поддерживаемый диапазон версий датапака или ресурспака. Если не хватает обязательных полей или указанный диапазон недопустим, сервер не загружает пак. Без этого пака сервер продолжает работать. Сообщение может появиться и тогда, когда диапазон версий уходит слишком далеко в прошлое.

Как это исправить:

  1. Имя файла после file/ указывает на пак. Проверь свою версию Minecraft в разделе Версия.
  2. Скачай подходящую версию пака и замени проблемный файл в разделе Файлы. Датапаки лежат в папке datapacks твоего мира; ресурспаки заменяй там, где они лежали раньше. Затем перезапусти сервер.
  3. Если пак твой собственный, настрой метаданные в соответствии с требованиями целевой версии: в старых форматах используется pack_format, в новых — min_format и max_format. Для паков, работающих на нескольких версиях, могут понадобиться и старые поля.
  4. Проверь, допустим ли указанный диапазон версий и исчезло ли сообщение после перезапуска.

Полезно знать: изменённые данные о формате не адаптируют команды и другое содержимое пака автоматически.

«Couldn't load tag»: датапак ссылается на отсутствующие записи

Так выглядит сообщение:

Couldn't load tag minecraft:load as it is missing following references: <Pack>:<Function> (from file/<Pack>.zip)
Couldn't load tag <Namespace>:<Tag> as it is missing following references: <Mod>:<Entry> (from <Mod>.jar)
Couldn't load tag <Namespace>:<Tag> as it is missing following references: #<Mod>:<Tag> (from mod/<Mod>)

В чём причина: тег — это именованный список. minecraft:load и minecraft:tick перечисляют функции; другие теги объединяют, например, блоки или предметы. Нужную запись не удалось загрузить, потому что функция содержит ошибку либо отсутствует пак или мод. Может отсутствовать и другой тег: это видно по символу #. Такой тег тогда недоступен; у тегов функций соответствующие процессы не работают.

Как это исправить:

  1. Сначала устрани сообщения «Failed to load function» от того же пака.
  2. Проверь источник в скобках. Если отсутствующая запись относится к другому паку или моду, установи его подходящую версию.
  3. Если не хватает записей с префиксом minecraft:, также проверь, подходит ли пак к твоей версии Minecraft.
  4. После изменений в модах перезапусти сервер. Датапаки можно перезагрузить в Консоль командой reload; на Paper и Spigot используй minecraft:reload.

Полезно знать: .jar или mod/ в качестве источника указывает на мод: Ошибки модов на серверах Forge, NeoForge и Fabric.

«Couldn’t parse data file …»: файл датапака имеет неподходящий формат

Так выглядит сообщение:

Couldn't parse data file '<Pack>:<Entry>' from '<Pack>:recipe/<File>.json': DataResult.Error['Unknown registry key …']
Couldn't parse data file '<Pack>:<Entry>' from '<Pack>:recipe/<File>.json': DataResult.Error['List is too short: 0, expected range [1-9]']
Couldn't parse data file '<Pack>:<Entry>' from '<Pack>:recipe/<File>.json': DataResult.Error['Not a string: {"item":"minecraft:tnt"}; List must have contents']

В чём причина: датапаки описывают, среди прочего, рецепты и достижения в JSON — текстовом формате для структурированных данных. Такие файлы есть и в модах. Файл является корректным JSON, но содержит неподходящие поля, пустые списки или ссылки на неизвестные записи, например на сериализатор рецептов, который обрабатывает формат рецепта. Minecraft пропускает затронутую запись: рецепт отсутствует, а сервер продолжает работать.

Как это исправить:

  1. После from посмотри, какой файл затронут; DataResult.Error[…] указывает на ошибку.
  2. Если файл из датапака, замени его в разделе Файлы в папке datapacks твоего мира версией для твоей версии Minecraft.
  3. Если файл из мода, проверь его версию и необходимые зависимости; при использовании Modpack обнови весь пакет.
  4. Для собственных паков приведи файл в соответствие с форматом твоей версии Minecraft. Форматы файлов описаны в Minecraft Wiki.
  5. Перезапусти сервер и проверь, осталось ли сообщение.

Полезно знать: Not a string здесь означает, что в этом месте ожидается текст, а не объект.

«Couldn't parse data file»: данные из пака или мода не читаются

Так выглядит сообщение:

Couldn't read tag list <Namespace>:<Tag> from <File> in data pack mod/<Mod>
Couldn't parse data file '<Namespace>:<Entry>' from '<File>.json': … Failed to parse either …
java.lang.IllegalStateException: Failed to parse <Namespace>:<Entry> from pack file/<Pack>.zip

В чём причина: Minecraft не может прочитать запись данных. «Failed to parse either» означает, что её содержимое не соответствует ни одному из ожидаемых вариантов записи; First и Second указывают на соответствующие ошибки. Чаще всего мод или датапак не подходит к версии Minecraft либо пак повреждён. Это могут быть и рецепты, таблицы добычи и достижения. Запись не работает; у списков тегов может остаться пустой целая группа. Из-за этого могут нарушиться рецепты или генерация мира.

Как это исправить:

  1. Найди источник в полном тексте ошибки: mod/<Mod> или .jar указывает на мод, file/<Pack>.zip — на датапак. Дополнительной подсказкой служит пространство имён.
  2. Проверь в разделе Моды или в папке datapacks своего мира, подходят ли версии к твоей версии Minecraft. Unknown registry key указывает на отсутствующую запись данных; проверь необходимые дополнительные паки.
  3. Сделай резервную копию текущего состояния, останови сервер и обнови последний добавленный мод или пак.
  4. Если ошибка появилась после установки нового датапака, ради проверки убери его и перезапусти сервер.

Полезно знать: при ошибках модов поможет статья Ошибки модов на серверах Forge, NeoForge и Fabric.

«Couldn’t load advancements»: достижения отсутствуют или недействительны

Так выглядит сообщение:

Couldn't load advancements: [<pack>:<progress>, <pack>:<progress>]

В чём причина: Advancements — это достижения, которые игроки открывают в игре. Minecraft не смог разрешить указанные записи при загрузке датапаков, например потому, что они ссылаются на то, чего нет в этой версии. Многие датапаки и моды также используют достижения как невидимые триггеры, например чтобы определить, что игрок нашёл структуру. Такие функции тогда перестают работать, а сервер продолжает работу.

Как это исправить:

  1. Пространство имён перед двоеточием помогает найти нужный датапак или мод. Для этого проверь установленное содержимое и строки перед сообщением.
  2. Обнови этот пак или мод до версии для твоей версии Minecraft. Если он тебе не нужен, удали его после создания копии в разделе Резервные копии.
  3. После изменений в модах перезапусти сервер. При изменениях только в датапаках подойдёт и reload в Консоль, на Paper и Spigot — minecraft:reload.
  4. Если сообщение после этого всё ещё появляется, прочитай строки перед ним в logs/latest.log. Там сервер часто указывает, какая часть записи не подходит.

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

У предиката датапака неверный формат

Как выглядит сообщение:

Couldn't parse element predicates:<pack>:<name> - Not a json array: {"condition":"minecraft:any_of","terms":[…]}

В чём причина: Предикат — это сохранённое условие, которое проверяет датапак, например имеет ли игрок определённое количество очков. Команды и таблицы добычи обращаются к нему. Твоя версия Minecraft ожидает здесь список в квадратных скобках [ … ], но пак предоставляет одиночный объект в фигурных скобках { … }. Поэтому Minecraft не загружает предикат. Всё в паке, что от него зависит, работает неправильно или не работает вовсе. Сам сервер продолжает работать.

Как это исправить:

  1. Имя после predicates: показывает пак и предикат.
  2. Скачай версию датапака для твоей версии Minecraft и замени старую в папке datapacks твоего мира.
  3. Для собственных паков открой data/<pack>/predicate/<name>.json (в старых паках папка называется predicates) и приведи файл к актуальному формату, как описано в Minecraft Wiki.
  4. Перезапусти сервер или перезагрузи датапаки.

Текст сообщения для серверного набора ресурсов имеет неверный формат

Как выглядит сообщение:

Failed to parse resource pack prompt '<Текст сообщения>'
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setStrictness(Strictness.LENIENT) to accept malformed JSON at line 1 column 1 path $

В чём причина: параметром resource-pack-prompt в файле server.properties ты задаёшь текст, который видят игроки, когда сервер предлагает им набор ресурсов. Minecraft ожидает здесь текстовый компонент в формате JSON, а не обычное предложение. Если сервер не может прочитать значение, он пропускает сообщение. Сервер при этом продолжает работать в обычном режиме, просто твой собственный текст не отображается.

Как это исправить:

  1. Открой во вкладке Файлы файл server.properties в главной папке сервера.
  2. Запиши значение в виде JSON-текста, например resource-pack-prompt={"text":"<Текст сообщения>"}.
  3. Если собственное сообщение тебе не нужно, оставь значение после знака равенства пустым.
  4. Сохрани файл и перезапусти сервер.

Полезно знать: остальные значения файла объясняет статья Настройка server.properties для Minecraft.

Файл pack.mcmeta пака содержит ошибку

Как выглядит сообщение:

Couldn't load file/<Pack>.zip pack metadata: com.google.gson.stream.MalformedJsonException: <Details>

В чём причина: pack.mcmeta — это файл-описание каждого пака, он лежит в его корневой папке. Здесь он не является корректным JSON: например, не хватает запятой, кавычки или скобки. Поэтому Minecraft не может распознать пак и не загружает его. Сервер продолжает работать без этого пака.

Как это исправить:

  1. Проще всего заново скачать пак с его официальной страницы и заменить файл в папке datapacks твоего мира.
  2. Для собственных паков открой pack.mcmeta. Если пак представлен в виде ZIP-архива, скачай его, исправь файл на своём компьютере и снова загрузи архив.
  3. Проверь содержимое с помощью JSON-валидатора, то есть веб-сайта или редактора, который подсвечивает синтаксические ошибки, и исправь отмеченное место. В сообщении часто указаны строка и столбец.
  4. Перезапусти сервер.

Полезно знать: Типичные ошибки — запятая после последней записи, типографские кавычки вместо прямых и отсутствующая закрывающая скобка.

В рецепте указан несуществующий предмет

Как выглядит сообщение:

Expected item to be an item, was unknown string '<mod>:<item>'

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

Как это исправить:

  1. Прочитай имя в кавычках. Перед двоеточием указан соответствующий мод: в случае horsepower:flour это мод «horsepower».
  2. Проверь в разделе Моды, установлен ли этот мод.
  3. Если он установлен, сравни его версию с той, которая предусмотрена в твоём Modpack, и приведи их в соответствие.
  4. Перезапусти сервер и проверь, исчезло ли сообщение.

Полезно знать: Если мод отсутствует намеренно, например потому, что ты убрал его из Modpack, сообщение можно игнорировать. Тогда не будет только этого рецепта. О том, как моды и Modpack сочетаются друг с другом, рассказывает Правильная настройка модов и модпаков Minecraft.

Рецепт использует неизвестный способ обработки

Как выглядит сообщение:

com.google.gson.JsonSyntaxException: Unknown recipe '<mod>:<recipe-type>'

В чём причина: Многие моды добавляют собственные типы рецептов, например для мельницы или пресса. Здесь рецепт использует такой способ обработки, который сервер не знает. Мод, определяющий его, отсутствует или слишком старый. Рецепт пропускается, сервер продолжает работать.

Как это исправить:

  1. Имя перед двоеточием указывает на соответствующий мод.
  2. Установи его в разделе Моды или обнови до версии, которая подходит к твоему Modpack.
  3. Если рецепт происходит из датапака, который ты добавил сам, удали рецепт оттуда или убери весь пак из папки datapacks твоего мира.
  4. Перезапусти сервер.

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

Пустой JSON-файл в данных мода или датапака

Как выглядит сообщение:

com.google.gson.JsonParseException: java.io.EOFException: End of input at line 1 column 1 path $

Что за этим стоит: При загрузке игровых данных, то есть рецептов, таблиц добычи, тегов и подобного, Minecraft обнаружил пустой JSON-файл. «End of input at line 1 column 1» означает: файл заканчивается раньше, чем появляется первый символ. Чаще всего такой файл относится к моду, датапаку или к неполной либо повреждённой загрузке. Затронутая запись пропускается, сервер продолжает работать.

Как это исправить:

  1. Загляни в Консоль или в logs/latest.log и прочитай строки непосредственно до и после этого сообщения. Обычно там указано, какой файл или какой мод затронут.
  2. Если файл находится в твоём собственном датапаке, замени его полной версией или удали.
  3. Если файл относится к моду или скачанному датапаку, скачай его заново и загрузи снова. Следи за тем, чтобы загрузка прошла полностью.
  4. Перезапусти сервер.

Полезно знать: Для множества файлов или больших файлов SFTP-программа часто удобнее, чем загрузка через браузер: Редактирование файлов сервера в панели и подключение по SFTP.

Архив ресурспака имеет неверную структуру

Как выглядит сообщение:

<Pack> does not contain a valid pack_manifest.json or manifest.json
The resource pack <Pack> is invalid and failed to load

Что за этим стоит: Ресурспак не удалось загрузить. Чаще всего это касается паков для Bedrock: им нужен файл manifest.json или pack_manifest.json, который описывает пак. Самая частая причина — лишний уровень папок: в архиве сначала лежит папка, а файл находится только внутри неё. К этому сообщению также приводят повреждённый архив или неподходящий формат пака. Тогда пак отсутствует, а сервер продолжает работать.

Как это исправить:

  1. Прочитай подробное сообщение в строках вокруг этой записи; в нём указана точная причина.
  2. Открой архив на своём компьютере. Файл manifest.json или pack_manifest.json должен лежать прямо на верхнем уровне, а не в подпапке.
  3. Если файл лежит в подпапке, заново упакуй содержимое этой папки в ZIP-архив и загрузи его снова.
  4. Если архив повреждён, скачай пак заново. Ресурспак для Java с pack.mcmeta вместо манифеста здесь не подходит; его нужно заново создать в формате Bedrock.
  5. Перезапусти сервер.

Полезно знать: Другие сообщения Bedrock разбираются в статье Сервер Bedrock и Geyser: сообщения в логе.

Блок Jigsaw указывает неизвестный блок для замены

Как выглядит сообщение:

Failed to parse jigsaw replacement state '<Block>' at BlockPos{x=<x>, y=<y>, z=<z>}

Что за этим стоит: Блоки Jigsaw — это технические блоки, с помощью которых структуры собираются из отдельных частей. Каждый блок Jigsaw определяет, каким блоком он будет заменён после сборки. Здесь этот блок замены неизвестен, чаще всего из-за опечатки вроде minecrat: вместо minecraft:. При генерации на этом месте остаётся пустота. Сервер продолжает работать, в структуре просто есть пробел.

Как это исправить:

  1. Запиши позицию из BlockPos{…}: x, y и z.
  2. Перейди туда с правами оператора в творческом режиме, например командой /tp <x> <y> <z>.
  3. Открой блок Jigsaw правым щелчком и исправь название в поле блока замены (в английском клиенте «Turns into»).
  4. Если структура взята из датапака или мода, ошибка находится в его файле структуры. Тогда поможет исправленная версия пака или мода; сообщи об ошибке автору.

Полезно знать: Для работы сервера это сообщение безвредно. Оно влияет только на внешний вид структуры в этом одном месте. О том, как выдавать права оператора, написано в статье Права оператора и команды на сервере Minecraft.

Твоего сообщения нет в списке?

Прочитай сообщение целиком в Консоль или в logs/latest.log, включая строки прямо перед ним: часто там указано, какой пак загружался в этот момент. Пространство имён перед двоеточием и такие указания, как file/<Pack>.zip или mod/<mod>, показывают источник. Если следом идёт стектрейс, то есть строки с отступом вида at …, названия папок и пакетов в нём подскажут, какой мод или плагин задействован. Перед изменением файлов мира или паков создай резервную копию в разделе Резервные копии. Если не получается разобраться, открой тикет и укажи время появления сообщения.