MC Toolkit

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

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" — версии хранятся в dependencies
filesМассив из path, hashes, downloads, env
dependenciesВерсии загрузчика и Minecraft, которые нужно установить первыми

Поле env у каждого файла — то, которое все пропускают. Оно указывает отдельно для client и server, является ли файл required, optional или unsupported — а файл без env обязателен для обоих. Мод, помеченный как client-only, вообще не следует копировать в папку mods сервера — это частая причина того, что сервер отказывается запускаться.

Проверка хеша не является опциональной

Если SHA-1 скачанного файла не совпадает с манифестом, файл неверный: обрезанная загрузка, страница ошибки CDN, сохранённая как jar, или поддельное зеркало. Конвертер, пропускающий проверку, с радостью соберёт сломанный инстанс. Проверка — это вся причина делать это локально, а не доверять случайной перепаковке.

Вывод для клиента и для сервера

Один и тот же манифест создаёт два разных архива в зависимости от цели:

  • Клиентский пак — всё, плюс overrides, объединённый в корне инстанса, готовый для лаунчера, принимающего ZIP.
  • Серверный пак — пропустить записи, у которых env.server равно unsupported, оставить остальные и наложить server-overrides/ поверх overrides/ вместо client-overrides/.

Только Java Edition. В Bedrock нет эквивалентного формата; аддоны Bedrock — это архивы .mcaddon/.mcpack с manifest.json совершенно другой формы, и ни один пак Modrinth в них не разрешается.

Overrides перезаписывают, а не объединяют

Файлы в overrides/ копируются поверх инстанса после размещения модов. Файл конфигурации в overrides полностью заменяет стандартный конфиг мода. Если пак поставляет конфиг в overrides, а вы также редактируете этот конфиг в инстансе, копия из overrides побеждает при следующем разрешении.

Конвертируйте манифест, проверьте каждый хеш и получите готовый для лаунчера или сервера ZIP в Конвертере MRPACK в ZIP.

Конвертер MRPACK в ZIP →

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

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