Руководства / Устранение неполадок
mrpack — это zip-архив, который притворяется не zip-архивом
Если переименовать .mrpack в .zip, вы получите манифест и папку overrides, но не моды — jar-файлы лежат на CDN Modrinth и загружаются по хешу.
.mrpack — это ZIP-архив, поэтому его можно переименовать в .zip и распаковать — и получить почти ничего полезного. Вы увидите modrinth.index.json, папку overrides и ни одного мода. Jar-файлов там никогда и не было.
Почему моды отсутствуют
Паки Modrinth хранят манифест, а не содержимое. Каждая запись в modrinth.index.json содержит URL для скачивания, а также хеши SHA-1 и SHA-512 для файла, который должен вернуть этот URL. Лаунчер читает манифест, скачивает каждый файл, проверяет хеш и только потом помещает его в инстанс.
Такая схема позволяет пакам оставаться компактными и обновляться без повторной загрузки каждого jar-файла. Но она же означает, что пак бесполезен офлайн, пока кто-то не разрешит его хотя бы один раз.
Что на самом деле содержит манифест
| Поле | Значение |
|---|---|
formatVersion | Версия схемы манифеста |
game | Целевая версия Minecraft и загрузчик |
files | Массив из path, hashes, downloads, env |
dependencies | Версии загрузчика и Minecraft, которые нужно установить первыми |
Поле env у каждого файла — то, которое все пропускают. Оно помечает файл как client, server или и то, и другое. Мод, помеченный как client-only, вообще не следует копировать в папку mods сервера — это частая причина того, что сервер отказывается запускаться.
Проверка хеша не опциональна
Если SHA-1 скачанного файла не совпадает с манифестом, файл неверный: обрезанная загрузка, страница ошибки CDN, сохранённая как jar, или поддельное зеркало. Конвертер, пропускающий проверку, с радостью соберёт сломанный инстанс. Проверка — это и есть вся причина делать это локально, а не доверять случайной пересборке.
Клиентский и серверный вывод
Один и тот же манифест создаёт два разных архива в зависимости от цели:
- Клиентский пак — всё, плюс
overrides, объединённые в корне инстанса, готовые для лаунчера, принимающего ZIP. - Серверный пак — пропустить записи
env: client, сохранитьenv: serverи непомеченные, а также убрать клиентские конфиги из overrides.
Только Java Edition. В Bedrock нет эквивалентного формата; аддоны Bedrock — это архивы .mcaddon/.mcpack с manifest.json совершенно другой формы, и ни один пак Modrinth в них не разрешается.
Overrides перезаписывают, а не объединяют
Файлы в overrides/ копируются поверх инстанса после размещения модов. Файл конфигурации в overrides полностью заменяет стандартный конфиг мода. Если пак поставляет конфиг в overrides, а вы также редактируете этот конфиг в инстансе, копия из overrides побеждает при следующем разрешении.
Конвертируйте манифест, проверяйте каждый хеш и получайте готовый для лаунчера или сервера ZIP в конвертере MRPACK в ZIP.