← Blog

Comment configurer le fichier server.cfg FiveM correctement ?

Par Benjamin D. · PDG

· Mis à jour le 14 août 2026 · Lecture 11 min

Illustration de l'article : Comment configurer le fichier server.cfg FiveM correctement ?
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.cfg sur un VPS Linux, à côté du dossier resources/.
  • Avec txAdmin : txAdmin génère et gère son propre server.cfg dans 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 :

  1. Endpoints réseau (ports, adresses)
  2. Déclaration des dossiers de ressources (ensure)
  3. Convars et variables de gameplay
  4. Permissions ACE et principals
  5. Identité du serveur (hostname, tags, locale, icône)
  6. 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

DirectiveRôlePiège fréquent
endpoint_add_tcp / udpPort d'écoute du serveurDoit correspondre au port ouvert par l'hébergeur ou le firewall du VPS
sv_hostnameNom affiché dans le navigateur de serveursLes codes couleur ^1 à ^9 comptent dans la longueur
sv_maxclientsNombre de slotsAu-delà de 48, OneSync Infinity est obligatoire
sv_licenseKeyClé Keymaster liée à votre IPChanger d'IP sans mettre à jour la clé bloque le démarrage
sv_enforceGameBuildBuild GTA V imposé aux joueursUn build trop récent casse certains mods et véhicules add-on
set onesync onSynchronisation serveur-autoritaireDoit être activé aussi côté Keymaster pour l'Infinity
setsVariable répliquée visible depuis l'extérieurNe jamais utiliser sets pour un mot de passe ou une clé API
sv_scriptHookAllowedAutorise ScriptHook côté clientLaisser à 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 jamais command allow à un groupe autre que l'administration réelle. Une commande quit ou stop accessible à 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 true pour 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ômeCause probableCorrection
Could not find resource XNom de dossier différent du ensureVérifier la casse exacte du dossier dans resources/
Serveur invisible dans la listesv_licenseKey absente, expirée ou liée à une autre IPRégénérer la clé sur Keymaster avec la bonne IP
Server is not listeningPort 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 droitsIdentifiant incorrect dans add_principalRelever le license: exact dans les logs de connexion
Config ignoréeFichier non passé en +exec au lancementCorriger 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 ensure superflu consomme du temps de tick et de la mémoire.
  • Alignez sv_maxclients avec 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 oxmysql en 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

  1. sv_licenseKey valide et liée à l'IP du serveur
  2. sv_hostname, tags et locale renseignés pour la découvrabilité
  3. rcon_password fort ou désactivé
  4. sv_scriptHookAllowed 0
  5. OneSync cohérent avec le nombre de slots
  6. Groupes ACE testés avec un compte non-admin
  7. Sauvegardes automatiques actives (fichiers + base de données)
  8. 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.

Comment donner les droits admin à un joueur sans passer par un script externe ?

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.

Faut-il activer OneSync Infinity dès 64 slots ?

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.