Un .mrpack casi no contiene mods propios

El archivo es un ZIP, pero los jars no están dentro. Incluye un manifiesto de URL de descarga con hashes SHA-512, por lo que un pack de 40 KB puede instalar cuatrocientos megabytes, y por eso falla sin conexión.
Renombrar cualquiera .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.
Qué hay realmente dentro
| Entrada | Requerido | Contenido |
|---|---|---|
modrinth.index.json | Sí | El manifiesto: cada archivo, su ruta, tamaño, hashes y URL de descarga |
overrides/ | No | Archivos reales copiados tal cual: configs, scripts, packs de recursos |
client-overrides/, server-overrides/ | No | Misma idea, aplicada solo en ese lado |
El manifiesto lleva 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.
Por qué está diseñado así
Redistribución. El autor de un pack casi nunca tiene permiso para realojar cada mod de la lista, pero siempre puede apuntar al archivo del propio autor. Enviar URL en lugar de archivos jar hace que el pack sea legal para compartir y lo mantiene lo bastante pequeño para enviarlo por chat.
Los hashes son la otra mitad. Una URL puede empezar a servir algo diferente mañana; un SHA-512 no. Un launcher que verifica el hash tras la descarga comprueba que el archivo recibido es byte por byte el archivo que probó el autor del pack.
Las tres formas en que puede fallar
- Sin red, no hay pack. Un
.mrpackis an installer, not an archive. Offline it produces a folder of configs and nothing else. - Una URL caída es fatal, no se puede omitir. Si un mod es retirado, la entrada sigue resolviendo a un 404 y la instalación se detiene en un archivo marcado como requerido.
- Archivos solo de servidor y solo de cliente. Copia una instancia de cliente descomprimida
en un servidor y traerás mods del lado del cliente que se negarán a cargar; el
envflags exist precisely to keep those apart.
Convertirlo en una carpeta normal
Convertir significa hacer lo que hace un launcher: leer el manifiesto, descargar cada archivo a su
declarada 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.
Vale la pena tener en cuenta dos detalles al hacerlo a mano. Respeta el 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.