MC Toolkit

Руководства / Устранение неполадок

pack.mcmeta: номера pack_format и предупреждение «несовместимо»

Одно неверное поле — и Minecraft закрасит ваш пак серым. Вот какая структура нужна в 26.x, как охватить старые и новые версии одним файлом и где этот файл должен лежать.

Почти каждое «мой пак отображается как несовместимый» — это одно поле в одном маленьком файле.

Файл

{
  "pack": {
    "min_format": 97,
    "max_format": 97,
    "description": "My pack"
  }
}

Это ресурспак для 26.3; датапак для 26.3 использует 121. Начиная с 1.21.9 любой формат выше 64 (ресурспак) или 81 (датапак) должен объявляться через min_format и max_format. Пак, в котором всё ещё записан голый "pack_format": 97 — а именно так показывают большинство руководств и большинство генераторов, — отклоняется и отображается как несовместимый.

Файл должен называться ровно pack.mcmeta и лежать в корне zip-архива — рядом с assets/ или data/, а не внутри папки внутри архива. Упаковка содержащей папки вместо её содержимого — вторая по частоте ошибка, и выглядит она точно так же, как неверный номер формата.

Ресурспаки и датапаки используют разные номера

Вот что сбивает с толку: эти два счётчика разошлись много лет назад и не взаимозаменяемы. Датапак с номером ресурспака будет закрашен серым, даже если номер «актуальный».

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

Один файл для старых и новых версий

Фиксация одного номера означает, что пак сломается в следующем релизе. Диапазон — нет, но диапазон, доходящий до 26.x, приходится писать сразу для двух поколений игры:

{
  "pack": {
    "pack_format": 46,
    "supported_formats": { "min_inclusive": 46, "max_inclusive": 64 },
    "min_format": 46,
    "max_format": 97,
    "description": "My pack"
  }
}

min_format/max_format — это диапазон, который читает 26.x. pack_format и supported_formats нужны только для клиентов старше 1.21.9: supported_formats должен заканчиваться ровно на 64 (81 для датапака), min_format должен совпадать с его нижней границей, а pack_format должен находиться внутри него. Старый совет — supported_formats вплоть до какого-нибудь большого числа вроде 99 — теперь та самая форма, которую 26.x отклоняет сразу. Для пака, который только добавляет текстуры или рецепты — а это большинство паков, — широкий диапазон честен, потому что между версиями в нём на самом деле ничего не ломается.

Описание принимает текстовые компоненты

"description": [
  { "text": "My pack ", "color": "gold" },
  { "text": "v2", "color": "gray", "italic": true }
]

Коды через знак параграфа (§6) тоже всё ещё работают, но форма JSON переживает копирование через инструменты, которые вырезают управляющие символы.

Оверлеи — для поддержки нескольких версий сразу

"overlays": { "entries": [
  { "formats": { "min_inclusive": 42, "max_inclusive": 45 }, "directory": "older" }
] }

Папка older/ в корне пака используется только для этих форматов. Так одна загрузка поддерживает две версии с разными форматами моделей вместо двух zip-архивов.

Быстрая диагностика

СимптомПричина
Закрашен серым, «сделан для старой/новой версии»неверный номер формата или (1.21.9 и новее) отсутствует min_format/max_format
Пак вообще не в спискеpack.mcmeta не в корне архива или невалидный JSON
Загружается, текстуры пропалиформат пака в порядке; неверны пути к текстурам
Работает в одиночной игре, но не на сервередатапак лежит не в той папке мира

Запятая в конце — невалидный JSON, и это даёт случай «вообще не в списке», а не сообщение об ошибке.

Сгенерируйте корректный файл для вашего типа пака и целевой версии — с min_format/max_format и устаревшими полями там, где они нужны старой версии, — с помощью генератора pack.mcmeta.

Генератор pack.mcmeta →

Другие руководства

Смотреть все →