Réduire le lag de son serveur Minecraft en réglant server.properties
Réduisez le lag de votre serveur Minecraft gratuit : view-distance, simulation-distance, compression réseau, Paper et spark expliqués pas à pas.
Votre serveur Minecraft gratuit rame dès que quelques amis se connectent ? Bonne nouvelle : une bonne partie du lag se règle dans un seul fichier, server.properties. Ce guide vous explique quels paramètres modifier, quelles valeurs choisir et comment mesurer le résultat.
Pourquoi chaque réglage compte sur un serveur gratuit
Un serveur gratuit dispose de ressources limitées : peu de mémoire, une part de processeur partagée et un stockage restreint. Minecraft est pourtant exigeant : il calcule le monde 20 fois par seconde, charge des chunks en permanence et déplace des centaines d'entités. Les réglages par défaut sont pensés pour une machine confortable. En les adaptant à votre serveur, vous pouvez obtenir une partie fluide sans rien changer d'autre.
Lag serveur ou lag réseau : identifiez d'abord le problème
Avant de toucher à quoi que ce soit, il faut savoir de quel lag vous souffrez. Les deux n'ont ni les mêmes causes ni les mêmes solutions.
| Type | Symptômes | Indicateur |
|---|---|---|
| Lag serveur | Blocs cassés qui réapparaissent, mobs figés, fours lents, tous les joueurs touchés en même temps | TPS sous 20, MSPT au-dessus de 50 ms |
| Lag réseau | Un seul joueur saccade, retours en arrière (rubber-banding), actions qui arrivent en retard | Ping élevé (barres de connexion dans la liste Tab) |
TPS et MSPT
Le serveur fait avancer le jeu par ticks. L'objectif est de 20 ticks par seconde (TPS), ce qui laisse un budget de 50 millisecondes par tick (MSPT). Tant que le MSPT reste sous 50 ms, le serveur tient ses 20 TPS. Au-delà, il prend du retard et tout le monde le ressent.
Sur Paper ou Purpur, deux commandes affichent ces valeurs directement en jeu :
/tps
/mspt
Le ping
Si les TPS restent à 20 mais qu'un joueur se plaint, le problème vient probablement de sa connexion ou de la distance qui le sépare du serveur. Les réglages de cet article n'y changeront pas grand-chose, à part la compression réseau.
Les réglages de server.properties qui comptent
Le fichier server.properties se trouve à la racine de votre serveur. Arrêtez le serveur avant de le modifier, puis redémarrez-le pour appliquer les changements.
| Clé | Défaut | Conseillé sur un serveur gratuit | Effet |
|---|---|---|---|
view-distance | 10 | 6 à 8 | Rayon de chunks envoyés aux joueurs |
simulation-distance | 10 | 4 à 6 | Rayon où le monde est simulé |
max-players | 20 | Selon vos ressources | Joueurs connectés en même temps |
network-compression-threshold | 256 | 256 ou 512 | Taille à partir de laquelle les paquets sont compressés |
entity-broadcast-range-percentage | 100 | 50 à 80 | Distance d'envoi des entités |
sync-chunk-writes | true | true (false avec prudence) | Écriture synchrone des chunks |
max-tick-time | 60000 | 60000 | Garde-fou contre un serveur bloqué |
view-distance : la distance d'affichage
C'est le rayon, en chunks, de la zone envoyée à chaque joueur. C'est aussi le réglage le plus coûteux, car le nombre de chunks chargés augmente avec le carré de la distance. Avec une valeur de 10, chaque joueur charge une zone de 21 × 21 = 441 chunks. Avec 6, il n'en charge plus que 13 × 13 = 169, soit environ 2,6 fois moins.
view-distance=6
Les joueurs peuvent choisir une distance plus faible dans leurs options, mais jamais plus élevée que celle du serveur.
simulation-distance : la zone où le monde vit
Depuis Minecraft 1.18, la simulation est séparée de l'affichage. simulation-distance fixe le rayon dans lequel les entités bougent, les cultures poussent et la redstone fonctionne. Plus loin, les chunks restent visibles mais figés. Une valeur de 4 à 6 suffit pour la plupart des serveurs entre amis.
simulation-distance=4
Gardez en tête que les fermes automatiques ne tournent que si un joueur se trouve à portée de simulation.
max-players : un nombre de joueurs réaliste
Chaque joueur charge sa propre zone de chunks et ajoute des entités autour de lui. Mieux vaut 8 joueurs sur un serveur fluide que 20 joueurs sur un serveur qui rame. Fixez une limite réaliste par rapport aux ressources de votre serveur, puis augmentez-la si les TPS restent stables.
network-compression-threshold : la compression réseau
Ce réglage indique la taille, en octets, à partir de laquelle les paquets sont compressés. Compresser économise de la bande passante, mais consomme du processeur. Sur un serveur au processeur limité, une valeur plus élevée comme 512 réduit le travail de compression. La valeur -1 désactive complètement la compression : réservez-la aux serveurs placés derrière un proxy (BungeeCord, Velocity) sur le même réseau.
entity-broadcast-range-percentage : la portée des entités
Ce pourcentage règle la distance à laquelle les entités (mobs, animaux, objets au sol, cadres) sont envoyées aux joueurs. Le baisser entre 50 et 80 réduit les données à transmettre sur les serveurs remplis d'animaux ou de décorations. Les joueurs voient simplement les entités apparaître un peu plus près d'eux.
sync-chunk-writes : l'écriture des chunks
Activé par défaut, ce réglage fait écrire les chunks sur le disque de façon synchrone. Cela protège le monde contre la corruption en cas de crash, mais peut ralentir les sauvegardes sur un stockage lent. Le passer à false peut fluidifier le serveur, au prix d'un risque de perdre les dernières modifications si le serveur plante. Ne le faites que si vous sauvegardez régulièrement votre monde.
max-tick-time : un garde-fou, pas un réglage de performance
Cette valeur, en millisecondes, est la durée maximale d'un tick avant que le serveur considère qu'il est bloqué et s'arrête de lui-même. Par défaut, 60000, soit une minute. Ce réglage ne réduit pas le lag. Laissez la valeur par défaut : avec -1, la protection est désactivée et un serveur figé reste bloqué au lieu de s'arrêter.
Exemple de configuration pour un serveur gratuit
view-distance=6
simulation-distance=4
max-players=10
network-compression-threshold=256
entity-broadcast-range-percentage=75
sync-chunk-writes=true
max-tick-time=60000
Partez de ces valeurs, jouez quelques sessions avec vos amis, puis augmentez view-distance d'un cran si le serveur reste stable.
Pré-générer le monde
Générer de nouveaux chunks est l'une des tâches les plus lourdes pour un serveur, surtout quand les joueurs explorent vite en elytra. Pré-générer la carte avant d'ouvrir le serveur supprime ces pics : notre guide complet sur le plugin Chunky explique comment faire.
Pensez aussi à limiter la taille du monde avec une bordure, pour éviter de remplir votre espace de stockage :
/worldborder center 0 0
/worldborder set 6000
Aller plus loin avec Paper
Si votre serveur tourne encore en vanilla, passer à Paper (ou à Purpur, qui est basé sur Paper) est souvent le gain le plus important. Ce logiciel optimise de nombreuses parties du jeu tout en restant compatible avec la plupart des plugins Spigot. Il ajoute aussi des fichiers de configuration avancés, dont config/paper-world-defaults.yml, qui s'applique à tous vos mondes.
Voici quelques réglages souvent utilisés. Leurs noms peuvent changer d'une version à l'autre : vérifiez-les dans la documentation de votre version de Paper.
environment:
optimize-explosions: true # calcul des explosions plus léger
hopper:
cooldown-when-full: true # un entonnoir plein attend avant de réessayer
disable-move-event: false # true allège les entonnoirs, mais peut gêner certains plugins de protection
entities:
armor-stands:
tick: false # supports d'armure moins coûteux, mais moins réactifs
Modifiez un seul réglage à la fois et mesurez son effet avant de passer au suivant. Sinon, impossible de savoir ce qui a vraiment aidé.
Mesurer avec spark
spark est un outil de profilage gratuit qui montre précisément ce qui consomme les ressources de votre serveur. Selon votre version de Paper, il peut déjà être intégré ; sinon, installez-le comme un plugin depuis Modrinth ou SpigotMC.
| Commande | Utilité |
|---|---|
/spark tps | TPS, MSPT et utilisation du processeur |
/spark health | État général : mémoire, disque, TPS |
/spark profiler start | Démarre l'analyse |
/spark profiler stop | Arrête l'analyse et génère un lien vers le rapport |
Lancez le profileur pendant un moment de lag, laissez-le tourner quelques minutes, puis ouvrez le rapport. Vous verrez si le temps est passé dans les entités, la génération de chunks ou un plugin en particulier.
Récapitulatif
- Vérifiez d'abord s'il s'agit de lag serveur (TPS, MSPT) ou de lag réseau (ping).
- Réduisez
view-distanceetsimulation-distance. - Fixez un nombre de joueurs adapté à vos ressources.
- Ajustez la compression réseau et la portée des entités.
- Pré-générez votre monde et posez une bordure.
- Passez à Paper et mesurez chaque changement avec spark.
Conclusion
Un serveur Minecraft gratuit peut être parfaitement fluide si ses réglages sont adaptés à ses ressources. Commencez par la distance d'affichage et de simulation, qui apportent le gain le plus visible, puis affinez avec Paper et spark. Avancez par petites étapes : c'est la mesure, et non l'intuition, qui doit guider vos choix.