MC Toolkit

Guias / Solução de problemas

Convertendo .mrpack para um zip de modpack normal — e por que os extratores falham

Um .mrpack é um manifesto, não um arquivo de mods. Descompactá-lo entrega um arquivo JSON e nenhum jar. Veja o que realmente há dentro e o que um conversor precisa fazer.

Renomeie um .mrpack para .zip, abra-o e você não encontra quase nada: um modrinth.index.json, talvez uma pasta overrides/. Os mods não estão lá. Isso não é corrupção — é o formato funcionando como foi projetado.

O que há 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 do manifesto se parece com isto:

{
  "path": "mods/sodium.jar",
  "hashes": { "sha1": "…", "sha512": "…" },
  "downloads": ["https://cdn.modrinth.com/data/…/sodium.jar"],
  "fileSize": 812345
}

O pacote traz referências, não arquivos. É por isso que um pacote de 40 mods é um download de 200 KB e por isso todo extrator genérico "falha" — não há nada para extrair.

O que uma conversão precisa fazer

  1. Ler o modrinth.index.json.
  2. Baixar cada entrada da sua URL de CDN.
  3. Verificar cada arquivo com o sha512 do manifesto. Pular essa etapa é como um jar corrompido ou substituído acaba dentro de um pacote.
  4. Colocar cada um no seu path.
  5. Copiar overrides/ e, em seguida, client-overrides/ ou server-overrides/, por cima — os overrides vencem, é para isso que servem.
  6. Compactar o resultado em zip.

A etapa 3 é a que os conversores silenciosamente ignoram. Um hash divergente significa que o download foi truncado ou que o arquivo mudou; instalá-lo mesmo assim gera um pacote que trava ao carregar com um erro apontando para o mod errado.

Por que fazer isso, afinal

  • Launchers que não entendem mrpack. ATLauncher, MultiMC e instalações manuais querem uma pasta de jars.
  • Lado do servidor. Provedores de servidor quase nunca aceitam um .mrpack; eles querem a pasta de mods.
  • Instalação offline. Depois de convertido, o pacote não precisa mais da CDN.

O campo env decide entre cliente e servidor

Cada arquivo carrega:

"env": { "client": "required", "server": "unsupported" }

Um pacote de servidor deve ignorar tudo marcado como unsupported no lado do servidor — principalmente shaders, minimapas e mods de HUD. Copiar a pasta de mods do cliente inteira para um servidor é a causa comum de uma trava na inicialização que cita uma classe de renderização.

Fazendo o caminho inverso

Montar um .mrpack a partir de uma pasta é o processo inverso e tem uma armadilha: qualquer mod que não esteja hospedado no Modrinth, GitHub ou GitLab não pode ser uma entrada do manifesto — e o próprio Modrinth só aceita sua própria CDN para pacotes publicados. Ele precisa ir para overrides/mods/, o que deixa o pacote maior, mas mantém tudo funcionando. Descartar esses mods sem avisar gera um pacote que instala sem erros e está sem conteúdo.

Converta um .mrpack em um ZIP de cliente ou servidor, com verificação de hash e a separação do env tratada, no Conversor de MRPACK para ZIP.

Ferramentas zip de pacotes de recursos →

Mais guias

Ver todos →