Um servidor de Minecraft calcula o mundo 20 vezes por segundo: são os TPS (ticks por segundo). Se não tiver tempo, descem abaixo de 20 e tudo vai em câmara lenta: os blocos demoram a partir, os mobs dão saltos, as quintas falham. Isso é lag do servidor, que não é o mesmo que o ping (a tua ligação).
1. Mede antes de mexeres em alguma coisa
As versões recentes do Paper trazem o spark de origem (nas antigas, instala-o como plugin):
/spark tps: TPS e MSPT (milissegundos que demora cada tick). Abaixo de 50 ms está folgado; se passar de 50, os TPS começam a cair./spark profiler starte, depois de uns minutos com gente a jogar,/spark profiler stop: dá-te uma ligação para um relatório do que está a gastar o tempo (um plugin, uma quinta, entidades...).
Se vires muitas vezes na consola Can't keep up! Is the server overloaded?, o servidor está a ficar para trás. Ao arrancar é normal; se for constante, continua a ler e vê também o consumo do teu VPS.
2. Usa o Paper, não o servidor oficial
O Paper (ou derivados como o Purpur) corrige muitos problemas de desempenho do servidor da Mojang sem mudar o jogo. Se jogas com mods (Fabric, Forge, NeoForge), o Paper não serve; no Fabric, o mod Lithium melhora muito o desempenho.
3. O comando de arranque recomendado
A documentação do Paper recomenda as chamadas flags do Aikar, que ajustam a forma como o Java liberta memória para evitar soluços. Para um VPS de 8 GB com Linux (6,5 GB para o Minecraft):
java -Xms6500M -Xmx6500M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar --nogui
Muda só os dois primeiros valores conforme a tua memória (como a calcular). Se lhe fores dar mais de 12 GB, a documentação do Paper ajusta alguns valores: usa o gerador de comandos de arranque dela.
Mais RAM não é mais velocidade. O Minecraft faz quase todo o trabalho num só núcleo do processador. Passada a memória de que precisa, dar-lhe mais não sobe os TPS.
4. Baixa as distâncias
No server.properties:
simulation-distance: até onde o mundo «funciona» à volta de cada jogador (mobs, culturas, redstone). É o que mais pesa: entre 6 e 8 serve para quase tudo.view-distance: até onde se vê. Entre 8 e 10 é um bom equilíbrio.
5. Pré-gera o mundo
Gerar terreno novo enquanto as pessoas exploram é do mais pesado que há, sobretudo com élitros. Com o plugin Chunky geras o terreno antecipadamente, melhor quando não houver ninguém:
/worldborder set 10000
/chunky radius 5000
/chunky start
A borda impede que se gere terreno para lá do que foi pré-gerado.
6. O que mais lag costuma causar
- Demasiadas entidades: quintas enormes, animais amontoados, objetos espalhados pelo chão.
- Redstone em ciclo: relógios que nunca param.
- Plugins pesados ou mal feitos: o relatório do spark diz-te qual.
- Um mundo por pré-gerar com muitos jogadores a explorar ao mesmo tempo.
Se depois de tudo isto o processador do VPS continuar a 100 % com gente a jogar, o servidor ficou pequeno: melhora o plano sem migrares nada.