.mrpack in eine normale Modpack-ZIP umwandeln — und warum Extraktoren scheitern
Eine .mrpack ist ein Manifest, kein Archiv voller Mods. Beim Entpacken erhält man eine JSON-Datei und keine Jars. Hier steht, was wirklich darin steckt und was ein Konverter leisten muss.
Benenne eine .mrpack in .zip um, öffne sie, und du findest fast nichts: eine modrinth.index.json, vielleicht einen overrides/-Ordner. Die Mods fehlen. Das ist keine Beschädigung — das Format funktioniert genau so, wie es soll.
Was darin steckt
modrinth.index.json the manifest: name, version, loader, and a list of downloads
overrides/ config files, resource packs, anything not on Modrinth
Jeder Eintrag im Manifest sieht so aus:
{
"path": "mods/sodium.jar",
"hashes": { "sha1": "…", "sha512": "…" },
"downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
"fileSize": 812345
}
Das Pack enthält Verweise, keine Dateien. Deshalb ist ein Pack mit 40 Mods ein 200-KB-Download, und deshalb „scheitert" jeder gewöhnliche Extraktor — es gibt nichts zu extrahieren.
Was eine Umwandlung leisten muss
modrinth.index.jsonlesen.- Jeden Eintrag von seiner CDN-URL herunterladen.
- Jede Datei gegen den sha512 im Manifest prüfen. Wer das überspringt, holt sich ein beschädigtes oder ausgetauschtes Jar ins Pack.
- Jede Datei an ihrem
pathablegen. overrides/und dannclient-overrides/oderserver-overrides/darüberkopieren — Overrides gewinnen, das ist ihr Zweck.- Das Ergebnis zippen.
Schritt 3 ist der, den Konverter still und heimlich auslassen. Ein nicht passender Hash bedeutet, dass der Download abgebrochen wurde oder die Datei sich geändert hat; wer sie trotzdem installiert, bekommt ein Pack, das beim Laden abstürzt, mit einer Fehlermeldung, die auf die falsche Mod zeigt.
Warum überhaupt umwandeln
- Launcher, die kein mrpack verstehen. ATLauncher, MultiMC und manuelle Installationen wollen einen Ordner voller Jars.
- Serverseite. Server-Hoster akzeptieren fast nie eine
.mrpack; sie wollen den Mods-Ordner. - Offline-Installation. Einmal umgewandelt, braucht das Pack das CDN nicht mehr.
Das Feld env entscheidet über Client und Server
Jede Datei trägt:
"env": { "client": "required", "server": "unsupported" }
Ein Server-Pack muss alles überspringen, was serverseitig mit unsupported markiert ist — vor allem Shader, Minimaps und HUD-Mods. Den kompletten Client-Mods-Ordner auf einen Server zu kopieren, ist die übliche Ursache für einen Absturz beim Start, in dem eine Rendering-Klasse genannt wird.
Der umgekehrte Weg
Ein .mrpack aus einem Ordner zu bauen, ist der umgekehrte Fall und hat eine Falle: Jede Mod, die nicht auf Modrinth, GitHub oder GitLab gehostet wird, kann kein Manifest-Eintrag sein — und Modrinth selbst akzeptiert für veröffentlichte Packs nur das eigene CDN. Sie muss also in overrides/mods/ wandern, was das Pack größer macht, aber funktionsfähig hält. Wer solche Mods stillschweigend weglässt, erhält ein Pack, das sich sauber installieren lässt und dem Inhalt fehlt.
Wandle eine .mrpack in eine Client- oder Server-ZIP um, mit Hash-Prüfung und korrekter env-Aufteilung, im MRPACK to ZIP Converter.