Le fichier server.cfg est le cœur de votre serveur FiveM. Il dit à FXServer quelles ressources démarrer, comment s'afficher dans la liste des serveurs, combien de joueurs accepter et qui a le droit de faire quoi. Ce guide passe en revue chaque commande utile, avec des exemples prêts à copier.
Avec txAdmin, ouvrez le menu CFG Editor. Sur EsoterHost, le fichier se trouve aussi dans le gestionnaire de fichiers, dans le dossier txData/<nom du serveur>/server.cfg. Après une modification, redémarrez le serveur depuis txAdmin.
Les règles de syntaxe
- Une commande par ligne.
- Les lignes qui commencent par
#sont des commentaires. - Les valeurs qui contiennent des espaces s'écrivent entre guillemets :
sv_hostname "Mon serveur RP". - Les commandes sont lues de haut en bas : une ressource doit être démarrée après ses dépendances.
exec autre.cfgcharge un autre fichier, comme s'il était collé à cet endroit.
Exemple complet pour un serveur roleplay
## ───── Réseau ─────
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
## ───── Identité dans la liste des serveurs ─────
sv_hostname "^3Paris RP ^7| Roleplay sérieux | Whitelist"
sets sv_projectName "Paris RP"
sets sv_projectDesc "Roleplay francophone sérieux, recrutement ouvert"
sets locale "fr-FR"
sets tags "roleplay, french, serious, economy"
sets banner_detail "https://exemple.fr/banniere.png"
sets banner_connecting "https://exemple.fr/chargement.png"
sets Discord "discord.gg/votre-code"
load_server_icon logo.png
## ───── Joueurs et synchronisation ─────
sv_maxclients 48
set onesync on
sv_enforceGameBuild 3258
## ───── Sécurité ─────
sv_scriptHookAllowed 0
sv_pureLevel 1
set sv_filterRequestControl 4
## ───── Base de données ─────
set mysql_connection_string "mysql://fivem:motdepasse@127.0.0.1/fivem?charset=utf8mb4"
## ───── Ressources ─────
exec resources.cfg
## ───── Permissions ─────
exec permissions.cfg
## ───── Licence ─────
sv_licenseKey "cfxk_votre_cle"# Ressources système de Cfx.re
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure hardcap
# Bibliothèques (toujours en premier)
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# Scripts du serveur, rangés par dossier
ensure [esx]
ensure [scripts]
ensure [cartes]ensure [scripts] démarre toutes les ressources du dossier [scripts]. Pratique, mais l'ordre n'est alors plus garanti à l'intérieur du dossier : gardez les dépendances dans des lignes séparées au-dessus.
Réseau : endpoint_add_tcp et endpoint_add_udp
Ces deux lignes indiquent l'adresse et le port d'écoute du serveur, par défaut 30120. Le jeu utilise les deux protocoles : TCP pour le téléchargement des ressources, UDP pour la partie en direct.
txAdmin impose l'adresse et le port attribués à votre serveur et les marque « EsoterHost: do not modify! ». Si vous les changez, le serveur devient injoignable.
Liste des serveurs : nom, description, tags
| Commande | Effet |
|---|---|
sv_hostname "..." | Nom affiché dans la liste. Les codes ^0 à ^9 changent la couleur |
sets sv_projectName "..." | Nom du projet, affiché en titre |
sets sv_projectDesc "..." | Description courte |
sets locale "fr-FR" | Langue du serveur, utilisée par les filtres de la liste |
sets tags "a, b, c" | Mots-clés de recherche |
load_server_icon logo.png | Icône 96 × 96 pixels, au format PNG, placée à côté du server.cfg |
sets banner_detail "url" | Bannière de la fiche du serveur (1920 × 200 conseillé) |
sets banner_connecting "url" | Bannière affichée pendant la connexion |
Les codes couleur de sv_hostname :
| Code | Couleur | Code | Couleur |
|---|---|---|---|
^0 | Blanc | ^5 | Bleu clair |
^1 | Rouge | ^6 | Violet |
^2 | Vert | ^7 | Blanc (par défaut) |
^3 | Jaune | ^8 | Rouge foncé |
^4 | Bleu | ^9 | Gris |
Joueurs : sv_maxclients
sv_maxclients 48 fixe le nombre de places. La clé gratuite de Cfx.re autorise 48 places au maximum. Au-delà, il faut un abonnement Element Club (palier Argentum ou plus) sur le compte qui a créé la clé. Sans lui, les joueurs sont refusés à la connexion.
OneSync
set onesync onOneSync déplace la synchronisation des entités (joueurs, véhicules, PNJ) vers le serveur. Il est indispensable au-delà de 32 joueurs, et la plupart des frameworks récents (ESX Legacy, QBCore, Qbox, ox_lib) en ont besoin. Laissez-le activé.
Version du jeu : sv_enforceGameBuild
GTA V reçoit des mises à jour qui ajoutent des véhicules, des vêtements et des cartes. sv_enforceGameBuild impose à tous les joueurs la même version, pour que ces contenus soient disponibles :
| Valeur | Mise à jour de GTA Online |
|---|---|
| 2802 | Los Santos Drug Wars |
| 2944 | San Andreas Mercenaries |
| 3095 | The Chop Shop |
| 3258 | Bottom Dollar Bounties |
| 3407 | Agents of Sabotage |
Une ressource qui utilise un véhicule ou un vêtement récent demande souvent une version minimale dans son README. Si vous changez cette valeur, les joueurs téléchargent les données correspondantes à leur prochaine connexion.
Sécurité
| Commande | Effet |
|---|---|
sv_scriptHookAllowed 0 | Interdit les menus « ScriptHook » côté joueur (à laisser à 0) |
sv_pureLevel 1 | Refuse les fichiers de jeu modifiés côté joueur (1 : souple, 2 : strict) |
set sv_filterRequestControl 4 | Limite la prise de contrôle des entités par les joueurs, une protection contre certains tricheurs |
sv_endpointPrivacy true | Masque les adresses IP des joueurs dans la liste des joueurs |
Variables : set, sets, setr
| Commande | Portée |
|---|---|
set nom valeur | Variable lisible par les scripts serveur (GetConvar('nom', 'défaut')) |
sets nom valeur | Même chose, et visible publiquement dans la liste des serveurs |
setr nom valeur | Variable répliquée : lisible aussi par les scripts client |
Exemple avec une variable lue par un script :
set discord_webhook "https://discord.com/api/webhooks/..."
setr serveur_nom_court "Paris RP"local webhook = GetConvar('discord_webhook', '')
if webhook == '' then
print('^1Aucun webhook Discord configuré^7')
endlocal nom = GetConvar('serveur_nom_court', 'Serveur')
print(('Bienvenue sur %s'):format(nom))Permissions : add_ace, add_principal
Le système ACE accorde des droits à des groupes, puis rattache des joueurs à ces groupes.
# Un groupe "admin" qui peut tout faire sauf arrêter le serveur
add_ace group.admin command allow
add_ace group.admin command.quit deny
# Un groupe "moderateur" limité
add_ace group.moderateur command.kick allow
add_ace group.moderateur command.annonce allow
add_ace group.moderateur moderation.voir allow
# Héritage : un admin est aussi modérateur
add_principal group.admin group.moderateur
# Joueurs (identifiants visibles dans txAdmin)
add_principal identifier.fivem:1234567 group.admin
add_principal identifier.license:0123456789abcdef0123456789abcdef01234567 group.moderateur
add_principal identifier.discord:123456789012345678 group.moderateurDans un script, vérifiez un droit avec IsPlayerAceAllowed(source, 'moderation.voir'). Une commande déclarée avec RegisterCommand('kick', fonction, true) n'est utilisable que par les joueurs qui ont command.kick.
Erreurs fréquentes
| Message | Cause | Solution |
|---|---|---|
Couldn't find resource nom | Le dossier n'existe pas ou le nom diffère | Vérifiez l'orthographe exacte, majuscules comprises |
Could not load resource nom | Pas de fxmanifest.lua à la racine du dossier | Remontez le contenu du sous-dossier d'un niveau |
license key authentication failed | Clé invalide ou liée à une autre IP | Recréez la clé sur portal.cfx.re avec l'IP du serveur |
This server uses more slots than allowed | sv_maxclients au-dessus de ce que permet la clé | Revenez à 48 ou prenez Element Club |
No such export ... in resource oxmysql | Ressource démarrée avant oxmysql | Placez ensure oxmysql plus haut |
EsoterHost n'est ni approuvé, ni sponsorisé, ni affilié à Rockstar Games ou à Cfx.re. FiveM et Grand Theft Auto V sont des marques de leurs propriétaires.
