Un fichier .mrpack ne contient presque aucun de ses propres mods

Le fichier est un ZIP, mais les jars ne sont pas à l'intérieur. Il contient un manifeste d'URL de téléchargement avec des hashs SHA-512, ce qui explique pourquoi un pack de 40 Ko peut installer quatre cents mégaoctets — et pourquoi il échoue hors ligne.
Renommer n'importe lequel .mrpack to .zip, open it, and the surprise is how
little is there. A pack with two hundred mods is often under 100 KB. The mods are not
missing — they were never included.
Ce qu'il contient réellement
| Entrée | Requis | Contenu |
|---|---|---|
modrinth.index.json | Oui | Le manifeste : chaque fichier, son chemin, sa taille, ses hashs et ses URL de téléchargement |
overrides/ | Non | Fichiers réels copiés tels quels — configs, scripts, packs de ressources |
client-overrides/, server-overrides/ | Non | Même idée, appliquée uniquement de ce côté |
Le manifeste contient un formatVersion, a dependencies map
naming the loader and Minecraft version, and a files array. Each file entry
holds the destination path, a fileSize, a hashes
object with sha1 and sha512, an env block marking it
required or optional per side, and one or more downloads URLs.
Pourquoi c'est conçu ainsi
Redistribution. L'auteur d'un pack n'a presque jamais la permission d'héberger à nouveau chaque mod de la liste, mais il peut toujours pointer vers le fichier de l'auteur d'origine. Fournir des URL au lieu de jars permet de partager le pack légalement et de le garder assez léger pour l'envoyer par chat.
Les hashs représentent l'autre moitié. Une URL peut commencer à distribuer autre chose demain ; un SHA-512 ne le peut pas. Un lanceur qui vérifie le hash après le téléchargement vérifie que le fichier reçu correspond octet par octet à celui testé par l'auteur du pack.
Les trois façons dont cela échoue
- Pas de réseau, pas de pack. Un
.mrpackis an installer, not an archive. Offline it produces a folder of configs and nothing else. - Une URL morte est fatale, pas ignorée. Si un mod est retiré de la liste, l'entrée aboutit toujours à une erreur 404 et l'installation s'arrête sur un fichier marqué comme requis.
- Fichiers côté serveur uniquement et côté client uniquement. Copiez une instance client décompressée
sur un serveur et vous apporterez des mods côté client qui refuseront de se charger — le
envflags exist precisely to keep those apart.
Convertir en dossier standard
Convertir signifie faire ce que fait un lanceur : lire le manifeste, récupérer chaque fichier vers son
emplacement déclaré path, verify each hash, then lay the overrides on top.
What comes out is an ordinary mods/ tree you can drop into any launcher or
upload to a host that has never heard of Modrinth.
Deux détails méritent d'être gardés en tête lors d'une opération manuelle. Respectez le env flags
so a server build does not inherit client mods. And check the hash rather than the file
size — a truncated download and a redirected HTML error page can both land at a plausible
size, and only the hash catches them.