Pourquoi ton serveur FiveM lag : diagnostiquer client ou serveur
« Ça lag » ne veut rien dire. Il y a trois problèmes différents derrière ce mot, et trois outils pour les séparer. Méthode de diagnostic complète.
« Ça lag. » Deux mots qui ne disent rien. Derrière, il y a trois problèmes distincts, avec des causes différentes, des responsables différents et des solutions qui n’ont rien à voir. Tant que tu n’as pas identifié lequel des trois tu subis, tu bricoles à l’aveugle.
Voici la méthode : séparer les symptômes, mesurer avec les outils intégrés, et savoir quoi faire selon que tu es joueur ou gérant.
Les trois « lags » qui n’ont rien à voir
| Symptôme | Nature réelle | Où ça se passe | Outil de mesure |
|---|---|---|---|
| Image saccadée en permanence, mouvement de caméra pâteux | FPS bas | Ton PC (GPU/CPU) | Compteur de FPS |
| Les autres joueurs se téléportent, ton véhicule « rembobine » | Ping / réseau | Entre toi et le serveur | netgraph |
| Tout le monde freeze en même temps, par à-coups réguliers | Tick serveur / hitching | Le serveur | Console et profileur du serveur |
Le test le plus simple pour trancher : est-ce que ça arrive à tout le monde en même temps ? Si le Discord se remplit de « vous freezez aussi ? » à la seconde près, ce n’est pas ton PC. Si tu es le seul, arrête de chercher côté serveur.
FPS bas : c’est ta machine
Les FPS mesurent le nombre d’images que ton PC calcule par seconde. Aucun serveur au monde ne peut t’en donner. Si ton image est molle mais que les autres joueurs bougent de façon fluide et cohérente, le problème est local.
Le budget est simple à retenir : à 60 images par seconde, ton PC dispose d’environ 16,6 ms par image pour tout calculer — rendu, physique, scripts. C’est ce chiffre qui donne son sens à tout le reste.
Les causes classiques, dans l’ordre de fréquence :
- Trop d’assets streamés. Des centaines de véhicules add-on, de MLO et de packs de vêtements remplissent ta mémoire vidéo. Quand elle déborde, tu ne perds pas 5 % de performance : tu prends des saccades franches.
- Les textures. Un pack mal optimisé embarque des
.ytden résolution absurde pour des pièces qu’on ne voit jamais. C’est le poste n°1 de gaspillage sur les serveurs communautaires. - Les ombres et la distance d’affichage. Les deux réglages les plus coûteux et les moins utiles en poursuite. Baisse-les en premier.
- Une machine sous-dimensionnée, tout simplement — vois notre guide configuration PC pour FiveM sur GTA 5 Enhanced.
Ping : c’est le réseau
Le ping, c’est le temps d’aller-retour entre ton client et le serveur. Il ne dégrade pas ta fluidité d’image : il dégrade la cohérence de ce que tu vois.
Ouvre la console avec F8 et tape :
netgraph 1
Tu obtiens un graphe temps réel de ta connexion. Ce que tu cherches n’est pas la valeur moyenne mais sa stabilité : un ping élevé mais parfaitement plat reste jouable, ton cerveau compense. Un ping en dents de scie, ou de la perte de paquets, produit exactement la sensation de « joueurs qui se téléportent » et de véhicules qui reviennent en arrière.
Les signatures typiques :
- Perte de paquets visible → ta connexion (Wi-Fi, box saturée, colocataire qui télécharge) ou le chemin réseau. Passe en Ethernet avant toute autre chose.
- Ping élevé mais stable → distance géographique. Un serveur à l’autre bout du monde ne se corrige pas côté client.
- Ping qui explose uniquement quand le serveur se remplit → ce n’est plus toi, c’est le serveur qui n’encaisse pas sa population.
resmon : l’outil qui dit la vérité
C’est le seul outil qui désigne un coupable nommément. Dans la console F8 :
resmon 1
Tu obtiens la liste des ressources chargées avec, pour chacune, son temps CPU en millisecondes. C’est la colonne qui compte. Les autres (mémoire, streaming) sont utiles, mais c’est le temps CPU qui produit du hitching.
Comment lire les valeurs :
- En dessous de 0,05 ms : négligeable, ne perds pas ton temps.
- Autour de 0,10 à 0,50 ms : normal pour une ressource active qui fait vraiment quelque chose.
- Au-dessus de ~1 ms : ça mérite un regard, systématiquement. Rapporté au budget de 16,6 ms par image, une seule ressource à 1 ms mange déjà 6 % du temps disponible — et un serveur en fait tourner des dizaines.
- Plusieurs ms en continu : tu as trouvé ton problème, inutile de chercher ailleurs.
Le réflexe clé : regarde la valeur au repos, quand tu ne fais rien. Une ressource à 2 ms pendant que tu utilises son menu, c’est acceptable. La même à 2 ms alors que tu es planté sans rien toucher, c’est une boucle par frame laissée allumée en permanence. C’est de très loin la cause la plus fréquente de perte de performance, et c’est presque toujours une seule ressource fautive, pas « le serveur en général ».
Attention quand même : resmon est une commande client. Elle mesure ce que les ressources coûtent sur ta machine, pas le temps passé dans le tick du serveur. Pour ça, c’est la console du serveur et son profileur qu’il faut regarder.
Les causes serveur classiques
Si tu gères un serveur, ce sont les quatre coupables à connaître par cœur. Ce sont ceux qu’on interdit dans notre propre code.
1. Les boucles permanentes par frame. Un Citizen.Wait(0) dans un while true s’exécute à chaque image, pour toujours, même quand la fonctionnalité concernée n’est pas utilisée. La règle saine : une boucle par frame doit être conditionnelle — active uniquement quand la fonctionnalité est engagée (menu ouvert, mode de jeu en cours) — et repassée à une cadence lente, de l’ordre de 250 à 500 ms, le reste du temps. La détection de gameplay tourne très bien à ~100 ms ; un HUD se contente de 100 à 200 ms.
2. Du SQL dans un tick. Une requête base de données dans une boucle de jeu, ou dans un handler à haute fréquence, c’est la garantie du freeze périodique. Le bon modèle : cache mémoire chargé à la connexion, écritures sur événement uniquement (fin de manche, achat validé), jamais dans une boucle.
3. Les broadcasts à tous les joueurs. Envoyer un événement à 100 joueurs plusieurs fois par seconde, c’est 100 sérialisations réseau à répétition. Les listes (scoreboard, joueurs connectés) doivent être tirées à la demande par le client, pas poussées en boucle.
4. Trop d’entités. Véhicules abandonnés, PNJ, props posés au sol : chaque entité coûte à la synchronisation. Un serveur qui ne nettoie jamais se dégrade lentement, ce qui rend le problème difficile à relier à une cause.
Piège voisin côté interface : envoyer un message au NUI à chaque image. Chaque message est sérialisé en JSON vers le navigateur intégré — limite la cadence, et n’envoie que les changements d’état.
Que faire, concrètement
Si tu es joueur :
- Vérifie si les autres subissent la même chose. Ça élimine la moitié des hypothèses en dix secondes.
- Baisse ombres et distance d’affichage avant tout le reste.
- Passe en Ethernet si tu vois de la perte de paquets au
netgraph. - Vide ton cache FiveM si le problème est apparu d’un coup — la marche à suivre est dans notre guide FiveM qui plante.
- Si un serveur rame chez tout le monde en permanence, ce n’est pas réparable de ton côté : passe à autre chose, ou signale-le.
Si tu es gérant :
- Lance
resmonet trie par temps CPU. Ne devine pas, mesure. - Coupe la ressource la plus chère et regarde si le problème disparaît. La dichotomie bête et méchante reste la méthode la plus rapide.
- Dans le code fautif, cherche les
Wait(0)et les requêtes SQL avant tout le reste. - Teste en charge : un serveur vide ne dit rien, broadcasts et synchronisation ne coûtent qu’avec des joueurs dedans.
- Ne mélange jamais deux changements à la fois, sinon tu ne sauras pas lequel a aidé.
Et surtout : un serveur qui rame perd ses joueurs plus vite qu’un serveur qui manque de contenu. C’est le premier investissement à faire, pas le dernier. Si tu montes le tien, notre guide honnête pour créer un serveur FiveM en 2026 détaille ce qui compte vraiment dans le choix de la machine.
Chez nous, la performance est une contrainte d’écriture, pas un rattrapage : Chased est une resource standalone unique, pensée pour Enhanced, sans dette d’assets ni boucle par frame permanente. Le principe tient en une ligne — des duels 1v1 chasseur contre chassé, dans une voiture commune tirée au sort, où la seule variable est ton pilotage. Pas de streaming lourd, pas de dépendances : quand ça se joue à un dixième de seconde, la fluidité fait partie du gameplay. Si tu hésites encore sur la version à viser, notre comparatif Legacy ou Enhanced t’aidera à trancher.