Guides / Troubleshooting

Преобразование .mrpack в обычный модпак .zip — и почему экстракторы не справляются

.mrpack — это манифест, а не архив модов. Распаковка даст вам JSON-файл и никаких .jar. Вот что на самом деле внутри и что должен делать конвертер.

Переименуйте .mrpack в .zip, откройте его, и вы не найдете почти ничего: modrinth.index.json, возможно, папку overrides/. Моды отсутствуют. Это не повреждение — это формат, работающий так, как задумано.

Что внутри

modrinth.index.json     the manifest: name, version, loader, and a list of downloads
overrides/              config files, resource packs, anything not on Modrinth

Каждая запись в манифесте выглядит так:

{
  "path": "mods/sodium.jar",
  "hashes": { "sha1": "…", "sha512": "…" },
  "downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
  "fileSize": 812345
}

Пакет содержит ссылки, а не файлы. Вот почему модпак из 40 модов весит 200 КБ, и почему каждый универсальный экстрактор «не справляется» — извлекать нечего.

Что должен делать конвертер

  1. Прочитать modrinth.index.json.
  2. Загрузить каждую запись по её CDN-адресу.
  3. Проверить каждый файл по sha512 из манифеста. Пропуск этого шага приводит к тому, что поврежденный или подмененный .jar попадает в пак.
  4. Разместить каждый файл по его path.
  5. Скопировать overrides/ поверх — переопределения имеют приоритет, это их цель.
  6. Заархивировать результат.

Шаг 3 — это то, что конвертеры тихо пропускают. Несоответствие хеша означает, что загрузка была прервана или файл изменен; установка такого файла приводит к сбою пака при загрузке с ошибкой, указывающей на неправильный мод.

Зачем это вообще нужно

  • Лаунчеры, которые не поддерживают mrpack. ATLauncher, MultiMC и ручные установки требуют папку с .jar-файлами.
  • Серверная сторона. Серверные хостинги почти никогда не принимают .mrpack; им нужна папка с модами.
  • Оффлайн-установка. После конвертации пак больше не нуждается в CDN.

Поле env определяет клиентскую или серверную часть

Каждый файл содержит:

"env": { "client": "required", "server": "unsupported" }

Серверный пак должен пропускать всё, что помечено unsupported на стороне сервера — в основном шейдеры, миникарты и HUD-моды. Копирование полной папки клиентских модов на сервер — обычная причина сбоя при запуске, который указывает на класс рендеринга.

В обратную сторону

Создание .mrpack из папки — это обратный процесс, и у него есть одна ловушка: любой мод, не размещенный на Modrinth, не может быть записью манифеста. Он должен быть помещен в overrides/mods/, что делает пак больше, но сохраняет его работоспособность. Тихое удаление таких модов приводит к тому, что пак устанавливается чисто, но в нём отсутствует контент.

Конвертируйте в любом направлении, с проверкой хеша и обработкой разделения env, с помощью Resource Pack Zip Tools.

Zip-инструменты для ресурспаков →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.