Optimiser un serveur Minecraft Paper contre le lag
Un serveur Minecraft doit calculer 20 ticks par seconde (TPS). Quand un tick dure plus de 50 ms, le jeu ralentit pour tout le monde : c'est le lag serveur. Le lag côté joueur (latence réseau, ordinateur trop faible) est un autre problème, que ces réglages ne résolvent pas.
La bonne méthode tient en trois temps : mesurer, corriger la cause principale, mesurer à nouveau. Empiler des plugins « anti-lag » sans savoir ce qui coûte cher fait souvent plus de mal que de bien.
Ce guide s'applique à Paper 1.19 et plus récents, dont les réglages sont dans le dossier
config/. Faites une sauvegarde depuis le panel avant toute modification, et changez un réglage à la fois.
1. Mesurer avec spark
spark est le profileur de référence ; il est intégré à Paper depuis la 1.21 et s'installe comme plugin sur les versions antérieures.
/spark tps
/spark health
/spark profiler start
(laisser tourner quelques minutes pendant que le lag se produit)
/spark profiler stopLa commande stop renvoie un lien vers un rapport. Regardez ce qui occupe le plus de temps dans le fil principal (Server thread) :
- entités (mobs, objets au sol, supports d'armure) : fermes trop grandes, élevages ;
- chunks (génération, chargement) : joueurs qui explorent des zones neuves ;
- tile entities (entonnoirs, fours, coffres) : usines de redstone ;
- un plugin précis : à mettre à jour, reconfigurer ou remplacer.
/spark health montre aussi l'usage de la mémoire. Une mémoire toujours pleine avec des pauses de ramasse-miettes fréquentes indique une formule trop juste (voir Combien de RAM pour Minecraft).
2. Pré-générer la carte
Générer de nouveaux chunks est l'une des opérations les plus coûteuses. Fixez une bordure et générez la carte à l'avance, serveur vide, avec le plugin Chunky :
/worldborder set 10000
/chunky radius 5000
/chunky startUn rayon de 5 000 blocs autour du centre couvre largement un serveur entre amis. La génération prend du temps et de l'espace disque : lancez-la la nuit ou en dehors des heures de jeu, puis vérifiez la place restante.
3. Les distances : le premier levier
Dans server.properties :
view-distance=8
simulation-distance=6view-distance: jusqu'où les chunks sont envoyés aux joueurs. Chaque cran de plus augmente fortement le nombre de chunks chargés.simulation-distance: jusqu'où les entités, les cultures et la redstone sont actives. La baisser soulage beaucoup le serveur, au prix de fermes qui ne tournent que lorsqu'un joueur est proche.
Les deux réglages sont indépendants : une view-distance confortable avec une simulation-distance basse garde une belle vue sans payer la simulation des chunks lointains. Commencez par baisser simulation-distance, puis view-distance si cela ne suffit pas.
4. Réglages Paper
Les fichiers sont config/paper-global.yml (tout le serveur) et config/paper-world-defaults.yml (valeurs par défaut de chaque monde). Quelques réglages sans effet visible pour les joueurs, dans paper-world-defaults.yml :
environment:
optimize-explosions: true
entities:
armor-stands:
tick: false
collisions:
max-entity-collisions: 2
tick-rates:
mob-spawner: 2
chunks:
prevent-moving-into-unloaded-chunks: trueoptimize-explosions: calcul des explosions plus rapide, résultat identique en jeu.armor-stands.tick: false: les supports d'armure ne sont plus simulés. À éviter si des plugins ou des machines de redstone les déplacent.max-entity-collisions: limite les calculs de collision dans les fermes très denses.mob-spawner: les cages à monstres sont évaluées un tick sur deux.
Pour limiter l'accumulation d'objets dans un chunk (fermes qui débordent), utilisez chunks.entity-per-chunk-save-limit, par exemple pour les flèches et les orbes d'expérience.
La documentation officielle de Paper décrit toutes les clés de votre version.
5. Réglages Spigot et Bukkit
Dans spigot.yml, la portée d'activation des entités réduit le travail sur les mobs éloignés des joueurs :
world-settings:
default:
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
merge-radius:
item: 3.5
exp: 4.0Les rayons de fusion regroupent les objets et les orbes d'expérience proches en une seule entité.
Dans bukkit.yml, spawn-limits fixe le nombre de mobs par joueur. Le baisser un peu (par exemple monsters: 50 au lieu de 70) se ressent peu en jeu et allège les serveurs chargés.
6. Les plugins
- Gardez spark (mesure) et Chunky (pré-génération).
- Méfiez-vous des plugins qui suppriment périodiquement les entités au sol : ils masquent la cause (une ferme trop grande) et suppriment parfois des objets que les joueurs voulaient garder. Les réglages ci-dessus font le même travail plus finement.
- Mettez à jour vos plugins et Paper : beaucoup de corrections de performance arrivent par les mises à jour.
- Retirez ce qui ne sert plus : chaque plugin chargé consomme de la mémoire et du temps de tick.
7. La mémoire et Java
Plus de mémoire ne règle pas un problème de TPS causé par une ferme ou un plugin : le calcul d'un tick reste sur un seul cœur. En revanche, un serveur qui manque de mémoire passe son temps à la libérer, et le lag apparaît par à-coups.
Si le panel permet de modifier les options de démarrage de Java, les options d'Aikar (réglage du ramasse-miettes G1) sont un bon point de départ éprouvé pour Paper. Laissez toujours une marge entre la mémoire donnée à Java et celle de la formule : Java consomme aussi de la mémoire en dehors de son tas.
Nos formules Paper donnent 2 Go (Starter, 1 cœur dédié, 3,99 €), 4 Go (Standard, 2 cœurs, 7,99 €) ou 8 Go (Premium, 3 cœurs, 14,99 €) ; Purpur existe en Standard (4 Go). Si spark confirme un manque de mémoire après optimisation, le bouton « Mettre à niveau » de la fiche du service vous fait passer à la formule supérieure en ne facturant que la différence. Voir la grille complète.
8. Les bonnes habitudes
- Un redémarrage planifié par jour, via les tâches planifiées du panel, aux heures creuses.
- Une sauvegarde avant chaque mise à jour de Paper ou de plugin.
- Un nouveau profil spark après chaque changement, pour vérifier son effet.
Besoin d'aide ?
Ouvrez un ticket depuis votre espace client en joignant le lien de votre rapport spark : c'est ce qui permet de vous répondre précisément.