Uma confusão comum entre quem está começando a administrar um servidor Minecraft é não saber a diferença entre o que se configura no arquivo server.properties e o que se configura via flags de JVM. Entender essa divisão evita horas perdidas procurando uma configuração no lugar errado.

O que é o server.properties

Esse arquivo controla as regras e comportamentos do próprio jogo Minecraft: modo de jogo padrão, dificuldade, se PvP está ativado, distância de visão, número máximo de jogadores, e dezenas de outras opções específicas da experiência de jogo em si. Ele é lido pelo próprio software do servidor Minecraft depois que a JVM já está rodando.

O que são as flags de JVM

Flags de JVM controlam como a Java Virtual Machine em si se comporta antes mesmo de carregar o Minecraft — coisas como quanta memória alocar, qual coletor de lixo usar, e outras otimizações de baixo nível do próprio ambiente de execução Java. Elas são definidas no comando usado para iniciar o servidor, não em nenhum arquivo de configuração do jogo.

A divisão em termos práticos

Tipo de ajusteOnde configurarExemplos
Regras e comportamento do jogoserver.propertiesDificuldade, PvP, view-distance, max-players
Comportamento da JVM/memóriaFlags de inicializaçãoQuantidade de RAM, coletor de lixo, otimizações de startup

Por que essa distinção importa na prática

Se você está tentando resolver um problema de lag causado por processamento excessivo do jogo (muitos mobs, redstone complexo), a solução provavelmente está no server.properties ou em plugins. Se o problema é relacionado a picos de pausa por coleta de lixo ou uso de memória, a solução está nas flags de JVM. Procurar no lugar errado é uma fonte comum de frustração desnecessária.

Painéis de gerenciamento costumam separar visualmente os dois: a maioria dos painéis modernos (como o Pterodactyl) oferece uma seção específica para configurações do servidor (equivalente ao server.properties) e outra para configurações de inicialização/variáveis de ambiente (onde entram as flags de JVM), o que ajuda a evitar essa confusão mesmo sem editar arquivos manualmente.

Configurações específicas do Paper: uma terceira categoria

Servidores rodando Paper (e forks) têm ainda uma terceira camada de configuração, específica dessas implementações, cobrindo otimizações de performance mais avançadas que não existem no Minecraft vanilla — como as configurações de spawn de mobs e simulation-distance já cobertas em outros artigos deste blog. Essas ficam em arquivos próprios, separados tanto do server.properties quanto das flags de JVM.

Ordem de prioridade ao diagnosticar um problema

  1. Identifique se o sintoma é de processamento de jogo (lag de tick, TPS baixo) ou de memória (pausas, uso crescente de RAM)
  2. Para sintomas de jogo, revise primeiro o server.properties e as configurações específicas do Paper
  3. Para sintomas de memória, revise as flags de JVM e o coletor de lixo configurado
  4. Use ferramentas de diagnóstico como o comando /mspt e o plugin Spark (cobertos em outro artigo) para confirmar a causa antes de mudar qualquer configuração às cegas

Não misture as duas coisas por engano

Um erro específico e comum é tentar colocar uma flag de JVM dentro do server.properties (ou vice-versa) — isso simplesmente não funciona, já que cada arquivo é lido em um momento e por um componente diferente do processo de inicialização do servidor.