pack.mcmeta: números do pack_format e o aviso de "incompatível"
Um único campo errado faz o Minecraft desativar seu pacote. Veja o formato que a versão 26.x exige, como abranger versões antigas e novas em um só arquivo e onde ele precisa ficar.
Quase todo caso de "meu pacote aparece como incompatível" se resume a um campo em um arquivo pequeno.
O arquivo
{
"pack": {
"min_format": 97,
"max_format": 97,
"description": "My pack"
}
}
Esse é um pacote de recursos 26.3; um pacote de dados 26.3 usa 121. Desde a 1.21.9, qualquer formato acima de 64 (recursos) ou 81 (dados) precisa ser declarado com min_format e max_format. Um pacote que ainda traz um "pack_format": 97 solto — como a maioria dos tutoriais e dos geradores ainda mostra — é recusado e aparece como incompatível.
Ele precisa se chamar exatamente pack.mcmeta e ficar na raiz do zip — ao lado de assets/ ou data/, e não dentro de uma pasta dentro do zip. Compactar a pasta que contém os arquivos em vez do conteúdo dela é a segunda falha mais comum, e o resultado é idêntico ao de um número de formato errado.
Pacotes de recursos e pacotes de dados usam números diferentes
É aqui que muita gente tropeça: os dois contadores se separaram anos atrás e não são intercambiáveis. Um pacote de dados que usa o número de pacote de recursos fica desativado mesmo que o número esteja "atual".
Em vez de decorar uma tabela que fica desatualizada a cada lançamento, leia o número direto de um pacote vanilla da versão que você está usando como alvo — ou deixe um gerador preencher isso para você.
Um arquivo para versões antigas e novas
Fixar um único número significa que o pacote quebra no próximo lançamento. Um intervalo não quebra — mas um intervalo que alcança a linha 26.x precisa ser escrito para duas gerações do jogo ao mesmo tempo:
{
"pack": {
"pack_format": 46,
"supported_formats": { "min_inclusive": 46, "max_inclusive": 64 },
"min_format": 46,
"max_format": 97,
"description": "My pack"
}
}
min_format/max_format é o intervalo que a linha 26.x lê. pack_format e supported_formats existem apenas para clientes anteriores à 1.21.9: supported_formats precisa terminar exatamente em 64 (81 para um pacote de dados), min_format precisa ser igual ao limite inferior e pack_format precisa estar dentro dele. O conselho antigo — supported_formats até algum número alto como 99 — agora é justamente o formato que a linha 26.x recusa de imediato. Para um pacote que só adiciona texturas ou receitas — a maioria deles —, um intervalo amplo é honesto, porque nada nele quebra de fato entre as versões.
A descrição aceita componentes de texto
"description": [
{ "text": "My pack ", "color": "gold" },
{ "text": "v2", "color": "gray", "italic": true }
]
Os códigos com § (§6) também continuam funcionando, mas o formato JSON sobrevive ao copiar e colar por ferramentas que removem caracteres de controle.
Overlays, para dar suporte a várias versões ao mesmo tempo
"overlays": { "entries": [
{ "formats": { "min_inclusive": 42, "max_inclusive": 45 }, "directory": "older" }
] }
A pasta older/ na raiz do pacote é usada apenas nesses formatos. É assim que um único download dá suporte a duas versões com formatos de modelo diferentes, em vez de exigir dois zips.
Diagnóstico rápido
| Sintoma | Causa |
|---|---|
| Desativado, "feito para uma versão mais antiga/mais nova" | número de formato errado ou (1.21.9 e posteriores) ausência de min_format/max_format |
| Pacote não aparece na lista | pack.mcmeta fora da raiz do zip ou JSON inválido |
| Carrega, mas faltam texturas | formato do pacote ok; os caminhos das texturas estão errados |
| Funciona no modo um jogador, mas não em um servidor | pacote de dados na pasta de mundo errada |
Uma vírgula sobrando torna o JSON inválido e gera o caso "não aparece na lista", e não uma mensagem de erro.
Gere um arquivo válido para o tipo do seu pacote e a versão desejada — com min_format/max_format e os campos legados onde uma versão mais antiga precisar deles — usando o Gerador de pack.mcmeta.