Comment configurer le fichier server.cfg FiveM correctement ?
Par Benjamin D. · PDG
· Mis à jour le 14 août 2026 · Lecture 11 min

Sommaire
Le fichier server.cfg FiveM est le cœur de votre serveur : c'est lui qui décide du nom affiché dans la liste, du nombre de slots, des ressources chargées, des permissions administrateur et du comportement de OneSync. Mal configuré, il empêche le serveur de démarrer ou dégrade la latence. Ce tutoriel 2026 détaille chaque directive utile, avec des exemples concrets et des méthodes de dépannage.
Comprendre le rôle du server.cfg FiveM
Quand vous lancez FXServer, le processus lit un fichier de configuration passé en argument (+exec server.cfg). Ce fichier est un script de commandes console exécutées séquentiellement au démarrage. Autrement dit, tout ce que vous pouvez taper dans la console live du serveur peut être écrit dans le server.cfg FiveM, et l'ordre des lignes compte réellement.
Où se trouve le fichier ?
L'emplacement dépend de votre mode d'hébergement :
- Hébergement géré (panel) : dans le gestionnaire de fichiers, à la racine du serveur ou dans le dossier de données
server-data/. Sur Serveur FiveM, le fichier est éditable directement depuis NexusPanel, sans passer par FTP. - Installation manuelle sur VPS : typiquement
/home/fivem/server-data/server.cfgsur un VPS Linux, à côté du dossierresources/. - Avec txAdmin : txAdmin génère et gère son propre
server.cfgdans le dossier de la "recipe" déployée. Éditez-le via l'onglet dédié pour éviter les écrasements.
Ordre d'exécution : la règle à retenir
Une ressource ne peut pas être démarrée si elle n'a pas été déclarée après la définition de son dossier de ressources. De la même façon, un add_principal qui référence un ACE inexistant ne provoque pas d'erreur mais ne sert à rien. Structurez toujours le fichier ainsi :
- Endpoints réseau (ports, adresses)
- Déclaration des dossiers de ressources (
ensure) - Convars et variables de gameplay
- Permissions ACE et principals
- Identité du serveur (hostname, tags, locale, icône)
- OneSync, gamebuild, clé de licence
Configurer le server.cfg FiveM ligne par ligne
Un squelette fonctionnel commenté
# =========================
# Endpoints réseau
# =========================
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# =========================
# Ressources
# =========================
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure rconlog
# Frameworks / scripts custom
ensure oxmysql
ensure es_extended
ensure mon_script_perso
# =========================
# Paramètres serveur
# =========================
sv_hostname "^2[FR] Ma Ville RP ^7| ^3Serious RP ^7| ^1Whitelist"
sv_projectName "Ma Ville RP"
sv_projectDesc "Serveur RP francophone - economie custom - jobs illegaux"
sv_maxclients 64
sv_enforceGameBuild 3407
sv_scriptHookAllowed 0
sv_endpointprivacy true
# Localisation et tags (visibilite dans la liste)
sets locale "fr-FR"
sets tags "roleplay, francais, whitelist, serious rp, esx"
sets banner_detail "https://exemple.tld/banner_detail.png"
sets banner_connecting "https://exemple.tld/banner_connect.png"
load_server_icon myLogo.png
# =========================
# OneSync
# =========================
set onesync on
set onesync_population true
set onesync_enableInfinity true
# =========================
# Securite console
# =========================
rcon_password "UnMotDePasseTresLongEtAleatoire_2026!"
# =========================
# Permissions
# =========================
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1234567 group.admin
# =========================
# Cle de licence (Keymaster)
# =========================
sv_licenseKey "votre_cle_keymaster_ici"
Les directives à connaître
| Directive | Rôle | Piège fréquent |
|---|---|---|
endpoint_add_tcp / udp | Port d'écoute du serveur | Doit correspondre au port ouvert par l'hébergeur ou le firewall du VPS |
sv_hostname | Nom affiché dans le navigateur de serveurs | Les codes couleur ^1 à ^9 comptent dans la longueur |
sv_maxclients | Nombre de slots | Au-delà de 48, OneSync Infinity est obligatoire |
sv_licenseKey | Clé Keymaster liée à votre IP | Changer d'IP sans mettre à jour la clé bloque le démarrage |
sv_enforceGameBuild | Build GTA V imposé aux joueurs | Un build trop récent casse certains mods et véhicules add-on |
set onesync on | Synchronisation serveur-autoritaire | Doit être activé aussi côté Keymaster pour l'Infinity |
sets | Variable répliquée visible depuis l'extérieur | Ne jamais utiliser sets pour un mot de passe ou une clé API |
sv_scriptHookAllowed | Autorise ScriptHook côté client | Laisser à 0 sur un serveur RP, sinon triche assurée |
ensure, start, stop, restart : quelle différence ?
Beaucoup de configurations traînent encore des start. La commande ensure est préférable : elle démarre la ressource si elle est arrêtée, et la redémarre si elle tourne déjà. Elle rend le fichier idempotent, ce qui est très utile quand vous ré-exécutez la config à chaud avec refresh; exec server.cfg depuis la console.
# Dans la console live du panel
refresh
ensure mon_script_perso
restart es_extended
stop ressource_buguee
Gérer plusieurs dossiers de ressources
Sur un serveur RP, on sépare généralement les ressources par catégorie. La syntaxe avec crochets permet de charger un dossier entier :
ensure [core]
ensure [jobs]
ensure [voice]
ensure [maps]
Attention : charger un dossier complet démarre toutes les ressources qu'il contient, y compris celles laissées en test. Pour un contrôle fin, préférez lister les ressources une par une, quitte à avoir un fichier plus long. Vous pouvez aussi éclater la configuration :
# server.cfg principal
exec resources.cfg
exec permissions.cfg
exec convars.cfg
Permissions ACE, sécurité et OneSync
Le système ACE en pratique
FiveM utilise un système de permissions basé sur des principals (qui) et des aces (quoi). Un joueur est rattaché à un groupe, et le groupe reçoit des droits sur des commandes ou des objets nommés.
# Hierarchie de groupes
add_ace group.admin group.moderator allow
add_ace group.moderator group.user allow
# Droits par commande
add_ace group.moderator command.kick allow
add_ace group.moderator command.ban allow
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_ace group.admin command.stop deny
# Attribution a un joueur
add_principal identifier.license:110000112345678 group.admin
add_principal identifier.discord:198765432109876543 group.moderator
add_principal identifier.steam:110000100000000 group.user
Identifiants disponibles : license, steam, discord, fivem, xbl, live, ip. Le license est le plus fiable car indépendant de Steam ou Discord. Récupérez-le dans la console lors d'une connexion, ou via txAdmin.
Ne donnez jamaiscommand allowà un groupe autre que l'administration réelle. Une commandequitoustopaccessible à un modérateur suffit à couper le serveur en pleine soirée.
Sécuriser le fichier de configuration
Le server.cfg contient des secrets : clé Keymaster, mot de passe RCON, parfois des clés d'API tierces. Quelques règles simples :
- Mot de passe RCON long et aléatoire (32 caractères minimum), ou
rcon_password ""si vous ne l'utilisez pas — un RCON faible est une porte ouverte. - Jamais de secret dans un
sets: ces variables sont exposées publiquement dans l'endpoint d'information du serveur. sv_endpointprivacy truepour masquer les IP des joueurs dans les logs publics.- Sauvegardes automatiques du fichier et de la base de données avant toute modification lourde. Une config cassée se restaure en deux minutes si la sauvegarde existe.
- Sous-utilisateurs plutôt que mot de passe partagé : sur NexusPanel, créez un accès dédié pour chaque développeur, avec des droits limités aux fichiers et à la console.
Côté réseau, l'anti-DDoS volumétrique est déjà filtré à l'infrastructure chez Nexus Games, ce qui vous évite d'avoir à bricoler des règles iptables sur un serveur de jeu géré. Sur une installation autonome, un VPS Linux demande en revanche un durcissement classique :
# Durcissement de base d'un VPS hebergeant FXServer
ssh-keygen -t ed25519 -C "admin-fivem"
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart ssh
sudo apt update && sudo apt install -y ufw fail2ban
sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enable
sudo systemctl enable --now fail2ban
OneSync : le paramètre qui conditionne vos slots
OneSync remplace la synchronisation peer-to-peer historique par un modèle serveur-autoritaire. Concrètement :
- onesync off : 32 slots maximum, désynchronisations fréquentes, à éviter en 2026.
- onesync on (legacy) : jusqu'à 64 joueurs, bonne stabilité pour un serveur de taille moyenne.
- onesync_enableInfinity true : au-delà de 64 slots, avec culling par distance. Nécessite plus de CPU côté serveur et un tick rate maîtrisé.
set onesync on
set onesync_enableInfinity true
set onesync_population true
sv_maxclients 128
Le culling d'Infinity réduit fortement la bande passante par joueur, mais déplace la charge vers le processeur. C'est là qu'un CPU à haute fréquence par cœur, type Ryzen 9, associé à de la DDR5 ECC et du NVMe pour les lectures de ressources, fait la différence sur le temps de tick. Vous pouvez surveiller cela dans la console avec :
resmon 1
# Puis dans la console serveur :
svmain / resmon affiche le temps CPU par ressource
Optimiser, déboguer et maintenir son server.cfg FiveM
Les erreurs de démarrage les plus fréquentes
| Symptôme | Cause probable | Correction |
|---|---|---|
Could not find resource X | Nom de dossier différent du ensure | Vérifier la casse exacte du dossier dans resources/ |
| Serveur invisible dans la liste | sv_licenseKey absente, expirée ou liée à une autre IP | Régénérer la clé sur Keymaster avec la bonne IP |
Server is not listening | Port 30120 fermé ou déjà utilisé | Contrôler l'endpoint et les règles firewall |
| Joueurs bloqués sur "Loading" | Ressource lourde en streaming, ou build mal aligné | Vérifier sv_enforceGameBuild et alléger les assets |
| Admins sans droits | Identifiant incorrect dans add_principal | Relever le license: exact dans les logs de connexion |
| Config ignorée | Fichier non passé en +exec au lancement | Corriger la ligne de démarrage ou la config du panel |
Lire les logs efficacement
La console live du panel affiche la sortie du FXServer en temps réel. Sur un VPS géré à la main, utilisez un service systemd pour capturer proprement les logs :
sudo journalctl -u fivem -f --output=cat
# ou avec txAdmin
tail -f /home/fivem/txData/*/logs/fxserver.log
Filtrez sur les mots-clés utiles : error, failed, warning, hitch. Un hitch warning répété signale une ressource qui bloque le thread principal : identifiez-la avec resmon avant de toucher au reste de la config.
Performances : ce que la config peut (et ne peut pas) faire
Le server.cfg ne compense pas un script mal écrit ni un stockage lent. En revanche, quelques réglages évitent des pertes inutiles :
- Ne chargez que les ressources réellement utilisées. Chaque
ensuresuperflu consomme du temps de tick et de la mémoire. - Alignez
sv_maxclientsavec la réalité. Déclarer 128 slots sur un serveur qui en accueille 30 augmente la charge de synchronisation sans bénéfice. - Limitez le streaming lourd (véhicules add-on, MLO) : c'est le premier facteur de temps de chargement et de charge disque, où le NVMe reste déterminant.
- Séparez la base de données MySQL des ressources si votre trafic est important, et surveillez les requêtes avec
oxmysqlen mode debug. - Testez chaque modification isolément. Modifier cinq lignes d'un coup rend le diagnostic impossible.
Versionner et déployer sans casser la production
Traitez votre configuration comme du code. Un dépôt Git privé contenant server.cfg, permissions.cfg et vos ressources maison permet de revenir en arrière instantanément :
cd /home/fivem/server-data
git init
printf "cache/\nlogs/\n*.key\n" > .gitignore
git add server.cfg permissions.cfg resources/[custom]
git commit -m "Config de base - 64 slots - onesync legacy"
Excluez toujours les secrets du dépôt. Pour un environnement de test, dupliquez le serveur sur un second instance ou sur un VPS Pterodactyl : vous validez les mises à jour de ressources avant de les pousser en production, sans couper la communauté. La même logique s'applique si vous gérez en parallèle un Serveur RedM, dont la configuration suit une structure très proche.
Checklist avant ouverture publique
sv_licenseKeyvalide et liée à l'IP du serveursv_hostname,tagsetlocalerenseignés pour la découvrabilitércon_passwordfort ou désactivésv_scriptHookAllowed 0- OneSync cohérent avec le nombre de slots
- Groupes ACE testés avec un compte non-admin
- Sauvegardes automatiques actives (fichiers + base de données)
- Test de charge avec quelques joueurs avant l'annonce officielle
Pour les directives moins courantes et les changements introduits par les mises à jour du framework, la documentation officielle FiveM reste la référence à consulter avant toute modification structurelle. Et si vous administrez plusieurs jeux en parallèle, la logique de configuration se retrouve ailleurs : voyez Tous nos serveurs de jeux pour comparer les fichiers de config selon les titres.
Conclusion
Un server.cfg FiveM propre est structuré, commenté et versionné : endpoints, ressources, convars, permissions, identité, OneSync. Chaque ligne doit avoir une raison d'être. Modifiez un paramètre à la fois, relisez la console après chaque redémarrage et gardez une sauvegarde à jour. C'est cette discipline, plus que n'importe quel réglage magique, qui garantit un serveur stable dans la durée.
FAQ
Pourquoi mon serveur FiveM n'apparaît-il pas dans la liste publique malgré un server.cfg correct ?Dans la grande majorité des cas, la clé sv_licenseKey est en cause : elle est liée à une adresse IP précise sur Keymaster. Si vous avez changé d'hébergement ou d'IP, régénérez-la. Vérifiez ensuite que sv_master1 n'a pas été mis à "", que les endpoints TCP et UDP écoutent bien sur 0.0.0.0:30120 et que le port est ouvert côté firewall.
Récupérez son identifiant license: dans les logs de connexion de la console, puis ajoutez dans le server.cfg : add_principal identifier.license:xxxxx group.admin, avec un add_ace group.admin command allow déclaré au-dessus. Redémarrez ou exécutez exec server.cfg en console. Pensez à refuser explicitement command.quit et command.stop aux groupes intermédiaires.
Non. En dessous de 64 joueurs, set onesync on en mode legacy suffit et consomme moins de CPU. Infinity devient pertinent au-delà, grâce au culling par distance qui réduit la bande passante par client. Activez-le également côté Keymaster, puis surveillez le temps de tick avec resmon pour valider que votre configuration matérielle suit la charge.