Monter votre premier serveur FiveM

De rien à un serveur où vos amis peuvent se connecter : artifacts, clé de licence, server.cfg, le port qui piège tout le monde, et le verrouillage avant d'inviter qui que ce soit.

6 minutes de lecture

Voici le chemin le plus court entre rien et un serveur où vos amis peuvent se connecter, avec le raisonnement derrière chaque étape plutôt qu'une liste de commandes à coller.

Comptez une quarantaine de minutes, dont l'essentiel en téléchargement.

Tout ce qui suit vaut pour FiveM Legacy. FiveM for GTAV Enhanced diffère sur quelques points, signalés au fil du texte.

Ce qu'il faut d'abord

ÉlémentPourquoi
Une copie de GTA VUniquement pour jouer. Le serveur lui-même n'en a pas besoin.
Un compte Cfx.rePour créer la clé de licence, gratuit.
Windows ou Linux2 cœurs et 4 Go de RAM suffisent pour démarrer.
Un port ouvert30120 par défaut, en TCP et en UDP.

C'est cette dernière ligne qui fait échouer la plupart des premières tentatives, d'où la section qui lui est consacrée plus bas.

1. Récupérer les fichiers du serveur

Le serveur s'appelle FXServer. Téléchargez la dernière version recommandée depuis la page des artifacts Cfx.re et placez-la dans son propre dossier, par exemple C:\FXServer\server.

Gardez les fichiers du serveur et vos données dans des dossiers séparés :

C:\FXServer\    server\          les artifacts, remplacés à chaque mise à jour    server-data\     vos ressources et votre server.cfg

La raison est la mise à jour. Quand un nouvel artifact sort, vous supprimez server et décompressez le nouveau. Si votre dossier resources vit à l'intérieur, vous venez de supprimer votre serveur.

2. Obtenir votre clé de licence

Rendez-vous sur portal.cfx.re, connectez-vous et créez une clé. Elle demande une adresse IP : indiquez la machine qui fera tourner le serveur, et choisissez le bon type, car une clé créée pour la mauvaise IP refuse simplement de démarrer.

La clé est un secret. Quiconque la détient peut faire tourner un serveur en votre nom et la faire révoquer. Sa place est dans server.cfg, et server.cfg ne va jamais dans un dépôt git public.

3. Écrire server.cfg

C'est le fichier auquel tout le reste s'accroche. Plutôt que de copier celui d'un autre en vous demandant à quoi sert la moitié, construisez-le avec le générateur de server.cfg : il écrit les sections dans le bon ordre, utilise des noms de convars vérifiés dans la référence des commandes Cfx.re, et explique chaque option au moment où vous la réglez.

Les parties qui comptent sur un premier serveur :

# Une ligne par protocole, les deux sur le même port.endpoint_add_tcp "0.0.0.0:30120"endpoint_add_udp "0.0.0.0:30120"# 32 slots et plus exigent onesync on ou legacy ; au-delà de 64, on.set onesync onsv_hostname "Mon premier serveur"sv_maxClients 48# À récupérer sur portal.cfx.resv_licenseKey changeme

L'ordre de chargement n'est pas décoratif

Les ressources démarrent dans l'ordre où elles sont listées. Une ressource qui dépend d'une autre doit venir après elle :

ensure oxmysqlensure ox_libensure es_extendedensure mon_script

Presque tous les « attempted to index a nil value » sur un serveur neuf sont un problème d'ordre de chargement, pas un script cassé.

4. Ouvrir le port, correctement

FiveM a besoin du TCP et de l'UDP sur le même port. N'ouvrir que le TCP produit le symptôme le plus déroutant du domaine : le serveur apparaît dans votre propre liste, accepte votre connexion, puis reste bloqué sur « Connecting ».

Trois endroits distincts peuvent bloquer, et les trois demandent en général d'être traités :

  1. Le pare-feu Windows ou ufw sous Linux : autorisez 30120 en TCP et UDP en entrée.
  2. Votre box, si la machine est chez vous : redirigez 30120 TCP et UDP vers l'IP locale de la machine.
  3. Le pare-feu de votre hébergeur, si vous louez un VPS. Celui-là est un panneau web, pas la machine, et c'est celui qu'on oublie.

Pour vérifier que c'est bien le port, demandez à quelqu'un de se connecter pendant que vous regardez la console du serveur. Si rien n'y apparaît du tout, le trafic ne vous parvient pas et le problème est réseau, pas config.

5. Le démarrer

Depuis le dossier server-data :

C:\FXServer\server\FXServer.exe +exec server.cfg

Sous Linux :

bash /home/fivem/server/run.sh +exec server.cfg

Sur Enhanced, l'exécutable s'appelle cfx-server.exe.

Un premier démarrage sain affiche une ligne indiquant que le serveur écoute, puis la liste des ressources. Deux erreurs sont assez fréquentes pour être nommées :

  • « Could not find licence key » signifie que sv_licenseKey est absente, erronée, ou liée à une autre IP.
  • « onesync is not enabled » avec plus de 32 slots signifie qu'il manque set onesync on.

6. Ajouter un framework, ou pas

Vous n'en avez pas besoin. Un framework apporte les jobs, l'argent, l'inventaire et un système de personnage ; sans lui vous avez du free roam, ce qui est un très bon point de départ.

Si vous en voulez un, choisissez un seul écosystème et restez dedans :

FrameworkCaractère
QboxActivement maintenu, Lua moderne, bâti sur ox_lib et ox_inventory.
QBCoreTrès large catalogue de scripts, base de code plus ancienne.
ESX LegacyLe plus ancien, encore très répandu, la plupart des scripts tiers le visent.

Les mélanger est la façon la plus courante de finir avec un serveur que personne ne peut déboguer. Quel que soit votre choix, le générateur de jobs et le générateur d'items écrivent le format correct pour les trois.

7. Le verrouiller avant d'inviter qui que ce soit

Une configuration par défaut n'est pas une configuration sûre.

# Bloque les fichiers de jeu modifiés. 2 bloque aussi les fichiers inconnus.sv_pureLevel 1# Contrôle ce que les clients ont le droit de créer.sv_entityLockdown relaxed# Trainers et menus. Laissez ça désactivé.sv_scriptHookAllowed false

Réglez ensuite les permissions d'administration proprement avec le générateur de permissions ACE plutôt que d'accorder group.admin à la main. Et avant d'installer la moindre ressource téléchargée, lisez comment repérer un script backdooré. Sur un serveur public, c'est une question de quand, pas de si.

Ne définissez pas rcon_password si vous n'utilisez pas réellement RCON. Un mot de passe non défini est une chose de moins qui peut fuiter.

Pour la suite

Les outils utilisés dans ce guide