Os datapacks (pacotes de dados) expandem o Minecraft com funções, receitas, conquistas ou uma nova geração de mundo, e os resourcepacks fornecem texturas e sons. Ambos dependem de um formato de dados que muda em quase todas as versões do Minecraft. Se um pack não for compatível com a versão do teu servidor ou se um ficheiro dentro dele estiver danificado, o servidor escreve uma mensagem no log. Na maioria dos casos, ignora apenas a entrada afetada; num caso, interrompe o arranque.

Cada secção abaixo trata de uma destas mensagens. Encontras a mensagem completa, com as linhas que se seguem, na Consola ou em Ficheiros, em logs/latest.log. A parte antes dos dois pontos em nomes como <pack>:<entrada> chama-se espaço de nomes e revela quase sempre de que pack ou mod vem o erro. Antes de qualquer intervenção na pasta do mundo ou em ficheiros de packs, cria uma cópia de segurança em Cópias de segurança.

O servidor não arranca: não é possível carregar um datapack

Assim é a mensagem:

Failed to load datapacks, can't proceed with server load. You can either fix your datapacks or reset to vanilla with --safeMode
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: <Motivo>

O que está por trás: o Minecraft interrompe o arranque porque pelo menos um datapack não pôde ser carregado. O servidor fica desligado até isto ser resolvido. Na maioria dos casos, o pack foi criado para uma versão mais antiga ou mais recente do Minecraft, ou um ficheiro dentro dele está danificado. A linha abaixo indica o motivo; Overworld settings missing, por exemplo, aponta para um pack que altera a geração do mundo.

Como resolver:

  1. Em Cópias de segurança, cria uma cópia de segurança.
  2. Em Ficheiros, abre a pasta do mundo (por predefinição world) e, dentro dela, a pasta datapacks.
  3. Remove o último pack adicionado. Se o quiseres manter, descarrega-o primeiro.
  4. Reinicia o servidor. Se voltar a funcionar, instala novamente o pack numa versão adequada à tua versão do Minecraft.
  5. Se não souberes qual é o pack responsável, retira os packs um a um e reinicia sempre que o fizeres.

Bom saber: não precisas do parâmetro de arranque --safeMode indicado na mensagem. Se removeres um pack que altera a geração do mundo, os novos chunks voltam a ser criados segundo as regras normais; no limite com os chunks antigos costuma notar-se uma aresta. Depois de uma mudança de versão, ajuda o guia Mudar a versão do Minecraft e o modloader em segurança.

A função de um datapack contém um comando desconhecido

Assim é a mensagem:

Failed to load function <pack>:<caminho>
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Whilst parsing command on line 4: Unknown or incomplete command, see below for error at position 0: <--[HERE]

O que está por trás: os datapacks controlam os seus processos através de funções: ficheiros de texto com a extensão .mcfunction, onde estão escritos comandos. Num desses ficheiros há um comando que a tua versão do Minecraft não conhece ou espera de outra forma; na maioria dos casos, o pack foi criado para outra versão. Só essa função falha e o servidor continua a funcionar; as partes do pack que dependem dela não funcionam.

Como resolver:

  1. Lê a primeira linha: antes dos dois pontos está o namespace do pack e depois o caminho da função. line 4 indica a linha e position 0 a posição nela; em 0, o próprio nome do comando já é desconhecido.
  2. Substitui o pack na pasta datapacks do teu mundo pela versão adequada à tua versão do Minecraft.
  3. No caso de packs próprios, abre data/<pack>/function/<caminho>.mcfunction (em packs mais antigos a pasta chama-se functions) e corrige a linha indicada.
  4. Reinicia o servidor ou introduz reload na Consola. No Paper e no Spigot, o reload volta a carregar todos os plugins; usa aí minecraft:reload.

Bom saber: alguns packs contêm funções para mods opcionais, cujos comandos são desconhecidos sem o mod. Se a mensagem disser respeito apenas a essas partes adicionais, podes ignorá-la.

O pack foi criado para outra versão do Minecraft

Assim é a mensagem:

Couldn't load file/<Pack>.zip pack metadata: Pack declares support for version newer than <Número>, but is missing mandatory fields min_format and max_format
Couldn't load file/<Pack>.zip pack metadata: Pack declares support for format <Número>, but game versions supporting formats …

O que está por trás: cada datapack e resourcepack tem, na sua pasta principal, o ficheiro pack.mcmeta. Nele consta, como número, o formato do pack para o qual foi criado, e cada versão do Minecraft só suporta determinados formatos. Se um pack indicar que foi criado para formatos mais recentes, o servidor exige também os campos min_format e max_format. Se faltarem ou se o número não corresponder, o servidor não carrega o pack. Continua a funcionar, mas sem esse pack.

Como resolver:

  1. O nome do ficheiro a seguir a file/ mostra qual é o pack afetado.
  2. Em Versão, verifica que versão do Minecraft o teu servidor tem.
  3. Na página do pack, descarrega a versão exatamente para essa versão, substitui com ela o ficheiro antigo na pasta datapacks do teu mundo e reinicia.
  4. No caso de packs próprios, indica em pack.mcmeta o pack_format adequado à tua versão e, em versões mais recentes, também min_format e max_format. Os números de cada versão constam na wiki do Minecraft.

Bom saber: as indicações de versão no nome do ficheiro só dizem para que o autor pensou o pack. O que conta é o que está em pack.mcmeta.

A tag de um datapack refere entradas que não existem

Assim é a mensagem:

Couldn't load tag minecraft:load as it is missing following references: <pack>:tick (from file/<Pack>.zip)
Couldn't load tag <namespace>:<tag> as it is missing following references: <mod>:<entrada> (from <mod>.jar)

O que está por trás: uma tag é uma lista com nome. minecraft:load e minecraft:tick listam funções que são executadas ao carregar e continuamente, respetivamente; outras tags agrupam blocos, objetos ou criaturas. Aqui, uma tag indica entradas que não puderam ser carregadas. Na maioria dos casos, a própria função associada tem um erro, ou falta outro pack ou um mod. Entre parênteses consta a origem da tag. O Minecraft omite então a tag inteira, também para outros packs que a utilizem; no caso de minecraft:load ou minecraft:tick, os respetivos processos não arrancam.

Como resolver:

  1. Resolve primeiro as mensagens „Failed to load function“ do mesmo pack. Muitas vezes, esta mensagem desaparece também.
  2. Se a entrada em falta pertencer a outro pack ou mod, instala-o na versão adequada à tua versão do Minecraft.
  3. Se faltarem até entradas com minecraft: à frente, o pack foi quase sempre criado para outra versão. Substitui-o pela versão adequada.
  4. Reinicia ou volta a carregar os datapacks (reload, no Paper e no Spigot minecraft:reload).

Bom saber: se entre parênteses constar um ficheiro .jar, a tag vem de um mod: Erros de mods em servidores Forge, NeoForge e Fabric.

Uma receita ou outro ficheiro de datapack não corresponde ao formato de dados

Assim é a mensagem:

Couldn't parse data file '<pack>:<nome>' from '<pack>:recipe/<nome>.json': DataResult.Error['List is too short: 0, expected range [1-9]']

O que está por trás: os datapacks descrevem receitas, conquistas (advancements), predicados e tabelas de saque (loot tables) em ficheiros JSON. O JSON é um formato de texto composto por chavetas, nomes de campos e valores. O ficheiro indicado é JSON válido, mas utiliza campos ou referências que a tua versão do Minecraft não conhece. O Minecraft ignora essa entrada. Uma receita afetada não pode então ser fabricada, e o servidor continua a funcionar normalmente.

Como resolver:

  1. A parte a seguir a from mostra o pack e o ficheiro; o texto em DataResult.Error[…] diz o que não corresponde. List is too short: 0 significa, por exemplo: uma lista está vazia, apesar de se esperarem entradas.
  2. Descarrega a versão do datapack adequada à tua versão do Minecraft e substitui a antiga na pasta datapacks do teu mundo.
  3. No caso de packs próprios, ajusta o ficheiro ao formato atual. A wiki do Minecraft descreve como cada tipo de ficheiro está estruturado.
  4. Reinicia o servidor.

Bom saber: Not a string: {"item":"minecraft:tnt"} significa que o ficheiro utiliza um formato de receita mais antigo. Esta versão espera aí apenas o nome como texto, ou seja, "minecraft:tnt".

Uma entrada de um datapack ou mod não é legível

Assim é a mensagem:

Couldn't read tag list <namespace>:<tag> from <namespace>:tags/block/<tag>.json in data pack mod/<mod>
java.lang.IllegalStateException: Failed to parse either. First: Not a string: null; Second: Not a JSON object: null

O que está por trás: para algumas entradas, o Minecraft aceita duas formas de escrita. „Failed to parse either“ significa: o conteúdo não corresponde a nenhuma das duas; depois de First e Second consta o motivo da falha em cada uma. Na maioria dos casos, a entrada provém de um mod criado para outra versão do Minecraft ou de um datapack danificado. O grupo afetado, por exemplo uma lista de blocos ou de objetos, fica vazio. Isto pode afetar receitas ou a geração do mundo.

Como resolver:

  1. Descobre a origem: in data pack mod/<mod> indica um mod e file/<Pack>.zip um datapack. O namespace antes dos dois pontos também ajuda.
  2. Em Mods ou na pasta datapacks do teu mundo, verifica se todos os mods e datapacks são compatíveis com a tua versão do Minecraft.
  3. Atualiza o último mod ou o último pack que adicionaste.
  4. Se a mensagem surgiu logo depois de instalares um datapack, retira-o a título de teste e reinicia.

Bom saber: se a mensagem disser respeito a um mod, ajudam as secções do artigo Erros de mods em servidores Forge, NeoForge e Fabric.

Faltam progressos (advancements) de um datapack

Assim aparece a mensagem:

Couldn't load advancements: [<pack>:<progress>, <pack>:<progress>]

O que está por trás: Os advancements são os progressos que os jogadores desbloqueiam no jogo. O Minecraft não conseguiu resolver as entradas indicadas ao carregar os datapacks, por exemplo porque remetem para algo que não existe nesta versão. Muitos datapacks e mods também usam progressos de forma invisível como gatilho, por exemplo para detetar que um jogador encontrou uma estrutura. Essas funções deixam então de funcionar. O servidor continua a funcionar.

Como resolver:

  1. O espaço de nomes antes dos dois pontos indica que datapack ou mod fornece os progressos.
  2. Atualiza esse pack ou mod para a versão correspondente à tua versão do Minecraft. Se não precisares dele, remove-o.
  3. Reinicia o servidor ou volta a carregar os datapacks (reload, no Paper e no Spigot minecraft:reload).
  4. Se a mensagem continuar a aparecer, lê as linhas anteriores em logs/latest.log. Aí o servidor indica muitas vezes que parte de uma entrada não está correta.

Bom saber: Mesmo que o espaço de nomes seja minecraft, a origem pode ser um datapack. Os packs podem criar entradas próprias sob esse nome.

O predicado do datapack tem o formato errado

Assim aparece a mensagem:

Couldn't parse element predicates:<pack>:<name> - Not a json array: {"condition":"minecraft:any_of","terms":[…]}

O que está por trás: Um predicado é uma condição guardada que um datapack verifica, por exemplo se um jogador tem determinada pontuação. Os comandos e as tabelas de saque recorrem a ele. A tua versão do Minecraft espera neste ponto uma lista entre parênteses retos [ … ], mas o pack fornece um único objeto entre chavetas { … }. Por isso, o Minecraft não carrega o predicado. Tudo o que depende dele no pack comporta-se de forma errada ou não funciona. O servidor em si continua a funcionar.

Como resolver:

  1. O nome a seguir a predicates: indica o pack e o predicado.
  2. Descarrega a versão do datapack para a tua versão do Minecraft e substitui a antiga na pasta datapacks do teu mundo.
  3. No caso de packs próprios, abre data/<pack>/predicate/<name>.json (em packs mais antigos a pasta chama-se predicates) e coloca o ficheiro no formato atual, tal como descrito na wiki do Minecraft.
  4. Reinicia ou volta a carregar os datapacks.

O texto de aviso do resource pack do servidor está mal formatado

Assim aparece a mensagem:

Failed to parse resource pack prompt '<Hint>'
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setStrictness(Strictness.LENIENT) to accept malformed JSON at line 1 column 1 path $

O que está por trás: Com resource-pack-prompt em server.properties defines o texto que os jogadores veem quando o servidor lhes oferece um resource pack. O Minecraft espera aí um componente de texto em formato JSON, não uma frase simples. Se o servidor não conseguir ler o valor, omite o aviso. O servidor continua a funcionar normalmente, apenas o teu texto de aviso não aparece.

Como resolver:

  1. Em Ficheiros, abre o ficheiro server.properties na pasta principal do servidor.
  2. Escreve o valor como texto JSON, por exemplo resource-pack-prompt={"text":"<Hint>"}.
  3. Se não precisares de um aviso próprio, deixa o valor depois do sinal de igual vazio.
  4. Guarda o ficheiro e reinicia o servidor.

Bom saber: Os restantes valores do ficheiro são explicados em Configurar o server.properties do Minecraft.

O ficheiro pack.mcmeta de um pack está com erros

Assim aparece a mensagem:

Couldn't load file/<Pack>.zip pack metadata: com.google.gson.stream.MalformedJsonException: <Details>

O que está por trás: O pack.mcmeta é o ficheiro de identificação de cada pack e encontra-se na sua pasta de topo. Aqui não é um JSON válido: falta, por exemplo, uma vírgula, umas aspas ou um parêntese. Por isso, o Minecraft não consegue classificar o pack e não o carrega. O servidor continua a funcionar sem o pack.

Como resolver:

  1. O mais simples é descarregares de novo o pack a partir da página oficial e substituíres o ficheiro na pasta datapacks do teu mundo.
  2. No caso de packs próprios, abre o pack.mcmeta. Se o pack estiver num arquivo ZIP, descarrega-o, corrige o ficheiro no teu computador e volta a carregar o arquivo.
  3. Verifica o conteúdo com um validador de JSON, ou seja, uma página web ou um editor que assinale erros de sintaxe, e corrige o ponto assinalado. A mensagem indica muitas vezes a linha e a coluna.
  4. Reinicia o servidor.

Bom saber: Os erros típicos são uma vírgula a seguir à última entrada, aspas tipográficas em vez de aspas retas e um parêntese de fecho em falta.

A receita refere um item que não existe

Assim aparece a mensagem:

Expected item to be an item, was unknown string '<mod>:<item>'

O que está por trás: Uma receita refere um item que não existe no servidor. Quase sempre falta o mod que traz esse item, ou está numa versão em que o item tem outro nome. Apenas a receita afetada é ignorada. O servidor arranca normalmente, mas essa receita não pode ser fabricada no jogo.

Como resolver:

  1. Lê o nome entre aspas. Antes dos dois pontos está o mod responsável: em horsepower:flour trata-se do mod "horsepower".
  2. Verifica em Mods se esse mod está instalado.
  3. Se estiver instalado, compara a versão dele com a que o teu modpack prevê e ajusta-a.
  4. Reinicia o servidor e verifica se a mensagem deixa de aparecer.

Bom saber: Se o mod falta de propósito, por exemplo porque o removeste do modpack, podes ignorar a mensagem. Nesse caso falta apenas essa receita. Como combinar mods e modpack, mostra-o Configurar corretamente mods e modpacks do Minecraft.

A receita usa um tipo de processamento desconhecido

Assim aparece a mensagem:

com.google.gson.JsonSyntaxException: Unknown recipe '<mod>:<recipe-type>'

O que está por trás: Muitos mods trazem tipos de receita próprios, por exemplo para um moinho ou uma prensa. Aqui, uma receita usa um tipo de processamento que o servidor não conhece. O mod que o define falta ou é demasiado antigo. A receita é ignorada e o servidor continua a funcionar.

Como resolver:

  1. O nome antes dos dois pontos indica o mod responsável.
  2. Instala-o em Mods ou atualiza-o para uma versão compatível com o teu modpack.
  3. Se a receita vier de um datapack que adicionaste tu mesmo, remove aí a receita ou retira o pack inteiro da pasta datapacks do teu mundo.
  4. Reinicia o servidor.

Bom saber: Se faltar um mod por completo, a mensagem aparece muitas vezes seguidas com o mesmo nome antes dos dois pontos. Nesse caso, basta instalar esse mod. Se ele falta de propósito, faltam apenas as receitas que usam o seu tipo de processamento.

Ficheiro JSON vazio nos dados de mods ou datapacks

Este é o aspeto da mensagem:

com.google.gson.JsonParseException: java.io.EOFException: End of input at line 1 column 1 path $

O que está por trás disto: Ao carregar os dados do jogo, ou seja, receitas, tabelas de saque, tags e semelhantes, o Minecraft encontrou um ficheiro JSON vazio. «End of input at line 1 column 1» significa: o ficheiro termina antes de aparecer o primeiro carácter. Muitas vezes provém de um mod, de um datapack ou de um carregamento incompleto ou danificado. A entrada afetada é ignorada e o servidor continua a funcionar.

Como resolver:

  1. Na Consola ou em logs/latest.log, lê as linhas imediatamente antes e depois. Normalmente aí indica-se qual é o ficheiro ou o mod afetado.
  2. Se o ficheiro estiver num datapack teu, substitui-o por uma versão completa ou remove-o.
  3. Se pertencer a um mod ou a um datapack transferido, transfere-o de novo e volta a carregá-lo. Garante que o carregamento é concluído por completo.
  4. Reinicia o servidor.

Bom saber: Para muitos ficheiros ou ficheiros grandes, um programa SFTP costuma ser mais cómodo do que o carregamento pelo navegador: Editar ficheiros do servidor no painel e ligar por SFTP.

O arquivo do resource pack tem uma estrutura inválida

Este é o aspeto da mensagem:

<Pack> does not contain a valid pack_manifest.json or manifest.json
The resource pack <Pack> is invalid and failed to load

O que está por trás disto: Não foi possível carregar o resource pack. Isto afeta sobretudo packs Bedrock: precisam de um ficheiro manifest.json ou pack_manifest.json que descreva o pack. O motivo mais comum é um nível de pasta adicional, em que o arquivo contém primeiro uma pasta e o ficheiro só se encontra dentro dela. Um arquivo danificado ou um formato de pack inadequado também originam esta mensagem. O pack fica então em falta, mas o servidor continua a funcionar.

Como resolver:

  1. Lê a mensagem de detalhe nas linhas em redor desta mensagem; ela indica o motivo exato.
  2. Abre o arquivo no teu computador. O manifest.json ou pack_manifest.json tem de estar diretamente no nível mais alto, não numa subpasta.
  3. Se o ficheiro estiver numa subpasta, volta a compactar o conteúdo dessa pasta num arquivo ZIP e carrega-o novamente.
  4. Se o arquivo estiver danificado, transfere o pack de novo. Um resource pack Java com pack.mcmeta em vez de manifesto não serve aqui; tem de ser recriado no formato Bedrock.
  5. Reinicia o servidor.

Bom saber: Outras mensagens do Bedrock são explicadas em Servidor Bedrock e Geyser: mensagens no registo.

O bloco Jigsaw indica um bloco de substituição desconhecido

Este é o aspeto da mensagem:

Failed to parse jigsaw replacement state '<Block>' at BlockPos{x=<x>, y=<y>, z=<z>}

O que está por trás disto: Os blocos Jigsaw são blocos técnicos com os quais as estruturas são montadas a partir de peças individuais. Cada bloco Jigsaw define por que bloco será substituído depois da montagem. Aqui, esse bloco de substituição é desconhecido, normalmente devido a um erro de escrita como minecrat: em vez de minecraft:. Ao gerar, o bloco fica vazio nesse ponto. O servidor continua a funcionar, a estrutura apenas tem uma falha.

Como resolver:

  1. Anota a posição de BlockPos{…}: x, y e z.
  2. Vai para lá com permissões de OP em modo criativo, por exemplo com /tp <x> <y> <z>.
  3. Abre o bloco Jigsaw com o botão direito do rato e corrige o nome no campo do bloco de substituição (no cliente em inglês, «Turns into»).
  4. Se a estrutura vier de um datapack ou de um mod, o erro está no ficheiro de estrutura respetivo. Nesse caso, ajuda uma versão corrigida do pack ou do mod; comunica o erro ao autor.

Bom saber: A mensagem é inofensiva para o funcionamento. Afeta apenas o aspeto da estrutura nesse único ponto. Como atribuir permissões de OP está explicado em Permissões de OP e comandos no servidor de Minecraft.

A tua mensagem não está aqui?

Lê a mensagem completa na Consola ou em logs/latest.log, incluindo as linhas imediatamente anteriores; muitas vezes indicam qual o pack que estava a ser carregado. O espaço de nomes antes dos dois pontos e indicações como file/<Pack>.zip ou mod/<mod> mostram a origem. Se se seguir um stacktrace, ou seja, linhas indentadas com at …, os nomes das pastas e dos pacotes aí presentes revelam o mod ou o plugin envolvido. Antes de alterares ficheiros do mundo ou de packs, cria uma cópia de segurança em Cópias de segurança. Se não conseguires avançar, abre um ticket e indica a hora da mensagem.