Convertir .mrpack a un zip de modpack normal — y por qué fallan los extractores
Un .mrpack es un manifiesto, no un archivo de mods. Al descomprimirlo obtienes un archivo JSON y ningún jar. Esto es lo que hay realmente dentro y lo que tiene que hacer un conversor.
Renombra un .mrpack a .zip, ábrelo y no encuentras casi nada: un modrinth.index.json, quizá una carpeta overrides/. Los mods no están. Esto no es corrupción — es el formato funcionando tal como fue diseñado.
Qué hay dentro
modrinth.index.json the manifest: name, version, loader, and a list of downloads
overrides/ config files, resource packs, anything not on Modrinth
Cada entrada del manifiesto tiene este aspecto:
{
"path": "mods/sodium.jar",
"hashes": { "sha1": "…", "sha512": "…" },
"downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
"fileSize": 812345
}
El paquete incluye referencias, no archivos. Por eso un pack de 40 mods es una descarga de 200 KB y por eso todo extractor genérico "falla" — no hay nada que extraer.
Qué tiene que hacer una conversión
- Leer
modrinth.index.json. - Descargar cada entrada desde su URL del CDN.
- Verificar cada archivo contra el sha512 del manifiesto. Saltarse esto es como un jar corrupto o sustituido acaba dentro de un pack.
- Colocar cada uno en su
path. - Copiar
overrides/, y luegoclient-overrides/oserver-overrides/, por encima — los overrides ganan, ese es su propósito. - Comprimir el resultado.
El paso 3 es el que los conversores se saltan en silencio. Un hash que no coincide significa que la descarga se truncó o que el archivo cambió; instalarlo de todos modos produce un pack que crashea al cargar con un error que apunta al mod equivocado.
Para qué hacerlo
- Lanzadores que no entienden mrpack. ATLauncher, MultiMC y las instalaciones manuales quieren una carpeta de jars.
- Lado servidor. Los hosts de servidores casi nunca aceptan un
.mrpack; quieren la carpeta de mods. - Instalación sin conexión. Una vez convertido, el pack ya no necesita el CDN.
El campo env decide cliente o servidor
Cada archivo lleva:
"env": { "client": "required", "server": "unsupported" }
Un pack de servidor debe omitir todo lo marcado como unsupported en el lado del servidor — sobre todo shaders, minimapas y mods de HUD. Copiar la carpeta completa de mods de cliente a un servidor es la causa habitual de un crash al arrancar que menciona una clase de renderizado.
El camino inverso
Construir un .mrpack a partir de una carpeta es lo contrario y tiene una trampa: cualquier mod que no esté alojado en Modrinth, GitHub o GitLab no puede ser una entrada del manifiesto — y Modrinth solo acepta su propio CDN para los packs publicados. Tiene que ir en overrides/mods/, lo que hace el pack más grande pero lo mantiene funcional. Descartar esos mods en silencio produce un pack que se instala limpiamente y le falta contenido.
Convierte un .mrpack en un ZIP de cliente o servidor, con verificación de hash y la separación env gestionada, en el MRPACK to ZIP Converter.