Guides / Troubleshooting

Converting .mrpack to a normal modpack zip — and why extractors fail

A .mrpack is a manifest, not an archive of mods. Unzipping it gives you a JSON file and no jars. Here is what is actually inside and what a converter has to do.

Rename a .mrpack to .zip, open it, and you find almost nothing: an modrinth.index.json, maybe an overrides/ folder. The mods are missing. This is not corruption — it is the format working as designed.

What is inside

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

Each entry in the manifest looks like:

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

The pack ships references, not files. That is why a 40-mod pack is a 200 KB download and why every generic extractor "fails" — there is nothing to extract.

What a conversion has to do

  1. Read modrinth.index.json.
  2. Fetch every entry from its CDN URL.
  3. Verify each file against the sha512 in the manifest. Skipping this is how a

corrupted or substituted jar gets into a pack.

  1. Place each at its path.
  2. Copy overrides/ over the top — overrides win, that is their purpose.
  3. Zip the result.

Step 3 is the one converters quietly skip. A mismatched hash means the download was truncated or the file changed; installing it anyway produces a pack that crashes on load with an error pointing at the wrong mod.

Why do it at all

  • Launchers that do not speak mrpack. ATLauncher, MultiMC and manual installs want a

folder of jars.

  • Server side. Server hosts almost never accept a .mrpack; they want the mods

folder.

  • Offline install. Once converted, the pack no longer needs the CDN.

The env field decides client versus server

Each file carries:

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

A server pack must skip everything marked unsupported on the server side — mostly shaders, minimaps and HUD mods. Copying the full client mods folder onto a server is the usual cause of a crash on startup that names a rendering class.

Going the other way

Building a .mrpack from a folder is the reverse and has one trap: any mod not on Modrinth cannot be a manifest entry. It must go in overrides/mods/, which makes the pack bigger but keeps it working. Silently dropping those mods produces a pack that installs cleanly and is missing content.

Convert in either direction, with hash verification and the env split handled, in the Resource Pack Zip Tools.

Open the Resource Pack Zip Tools →

More guides

Browse all →

Looking for more Minecraft tools?

A suite of client-side generators, viewers and converters — all free, all in your browser.