Cómo convertir un .mrpack a un zip de modpack normal — y por qué fallan los extractores
Un .mrpack es un manifiesto, no un archivo de mods. Descomprimirlo te da un archivo JSON y ningún jar. Aquí te explicamos qué contiene realmente y qué debe hacer un conversor.
Renombra un .mrpack a .zip, ábrelo, y encontrarás casi nada: un modrinth.index.json, quizás una carpeta overrides/. Faltan los mods. Esto no es corrupción, es el formato funcionando según lo 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 en el manifiesto se ve así:
{
"path": "mods/sodium.jar",
"hashes": { "sha1": "…", "sha512": "…" },
"downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
"fileSize": 812345
}
El paquete envía referencias, no archivos. Por eso un paquete de 40 mods es una descarga de 200 KB y por qué cada extractor genérico "falla" — no hay nada que extraer.
Qué debe hacer una conversión
- Leer
modrinth.index.json. - Descargar cada entrada desde su URL de CDN.
- Verificar cada archivo contra el sha512 en el manifiesto. Omitir esto es cómo un
jar corrupto o sustituido entra en un paquete.
- Colocar cada uno en su
path. - Copiar
overrides/encima — los overrides ganan, ese es su propósito. - Comprimir el resultado.
El paso 3 es el que los conversores omiten silenciosamente. Un hash no coincidente significa que la descarga fue truncada o el archivo cambió; instalarlo de todos modos produce un paquete que falla al cargar con un error que apunta al mod incorrecto.
Por qué hacerlo
- Lanzadores que no entienden mrpack. ATLauncher, MultiMC y las instalaciones manuales quieren una
carpeta de jars.
- Lado del servidor. Los hosts de servidores casi nunca aceptan un
.mrpack; quieren la carpeta de mods. - Instalación sin conexión. Una vez convertido, el paquete ya no necesita la CDN.
El campo env decide entre cliente y servidor
Cada archivo contiene:
"env": { "client": "required", "server": "unsupported" }
Un paquete de servidor debe omitir todo lo marcado como unsupported en el lado del servidor — principalmente shaders, minimapas y mods de HUD. Copiar la carpeta completa de mods del cliente a un servidor es la causa habitual de un fallo al iniciar que nombra una clase de renderizado.
Ir en la otra dirección
Construir un .mrpack a partir de una carpeta es lo contrario y tiene una trampa: cualquier mod que no esté en Modrinth no puede ser una entrada de manifiesto. Debe ir en overrides/mods/, lo que hace que el paquete sea más grande pero lo mantiene funcionando. Eliminar silenciosamente esos mods produce un paquete que se instala limpiamente y le falta contenido.
Convierte en cualquier dirección, con verificación de hash y la división env manejada, en las Herramientas de Zip de Paquetes de Recursos.