The Best Resource for Minecraft
The Best Resource for Minecraft

Um .mrpack quase não contém seus próprios mods

Um .mrpack quase não contém seus próprios mods

O arquivo é um ZIP, mas os jars não estão dentro dele. Ele traz um manifesto de URLs de download com hashes SHA-512, por isso um pacote de 40 KB pode instalar quatrocentos megabytes — e por isso ele falha offline.

Renomear qualquer .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.

O que realmente está dentro

EntradaObrigatórioConteúdo
modrinth.index.jsonSimO manifesto: cada arquivo, seu caminho, tamanho, hashes e URLs de download
overrides/NãoArquivos reais copiados como estão — configs, scripts, pacotes de recursos
client-overrides/, server-overrides/Não Mesma ideia, aplicada apenas naquele lado

O manifesto contém um 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 que foi feito assim

Redistribuição. O criador de um pacote quase nunca tem permissão para rehospedar cada mod da lista, mas sempre pode apontar para o arquivo do próprio autor. Enviar URLs em vez de jars mantém o pacote legal para compartilhar e pequeno o suficiente para enviar no chat.

Os hashes são a outra metade. Uma URL pode começar a fornecer algo diferente amanhã; um SHA-512 não. Um launcher que verifica o hash após o download confere se o arquivo recebido é byte a byte o arquivo que o autor do pacote testou.

As três maneiras como isso dá errado

  • Sem rede, sem pacote. Um .mrpack is an installer, not an archive. Offline it produces a folder of configs and nothing else.
  • Uma URL inativa é fatal, não ignorável. Se um mod for deslistado, a entrada ainda resulta em um 404 e a instalação para em um arquivo marcado como obrigatório.
  • Arquivos apenas do servidor e apenas do cliente. Copie uma instância de cliente descompactada para um servidor e você trará mods do lado do cliente que se recusarão a carregar — o env flags exist precisely to keep those apart.

Transformando um em uma pasta comum

Converter significa fazer o que um launcher faz: ler o manifesto, baixar cada arquivo para o seu declarado 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.

Dois detalhes valem a pena manter ao fazer isso manualmente. Respeite o 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.