Un serveur FiveM parle beaucoup. Presque tout ce qui ne marche pas est écrit quelque part : dans la console AMP au démarrage, ou dans la console F8 du joueur. Ce chapitre t'apprend à lire ces messages, puis te donne un catalogue des erreurs fréquentes avec cause et solution.
1. La méthode #
Quatre gestes, avant de chercher sur le forum.
Lire la console AMP au démarrage #
- Ouvre
Consoledans AMP. - Clique sur Restart dans Status, puis lis en direct.
- Cherche
[ERROR],Could not,Failed,error,Warning. Les erreurs de démarrage arrivent dans les 30 premières secondes, pendant lesStarted resource …. - Note le nom de la ressource entre crochets en tête de ligne :
[ script:ox_inventory ]te dit qui parle.
La console AMP ne garde que les dernières lignes. Pour l'historique : File Manager → AMP_Logs. Côté joueur, F8 garde tout depuis le lancement du jeu.
Isoler avec stop / start #
- Tape
stop <ressource>dans la console AMP pour la ressource ajoutée en dernier. - Reproduis le problème en jeu.
- Si le problème disparaît, c'est elle. Sinon,
start <ressource>et passe à la suivante. - Quand tu as trouvé,
restart <ressource>et lis les lignes qui suivent.
Plus rapide que de retirer dix scripts d'un coup, et tu gardes ton ordre de ensure.
Regarder F8 côté client #
Affichage, menus, touches, MLO, véhicules : tout ça se passe chez le joueur, le serveur n'en voit rien.
- Ouvre la console avec F8 dans le jeu.
- Reproduis le problème.
- Lis les lignes rouges : elles nomment la ressource et la ligne du fichier.
- Copie le message exact : c'est lui que tu chercheras dans ce chapitre ou sur le forum.
Référence : https://docs.fivem.net/docs/client-manual/console-commands/
Reproduire avant de corriger #
Une erreur que tu ne sais pas déclencher, tu ne sauras pas vérifier qu'elle est corrigée. Note l'action, le joueur, le moment (connexion, spawn, menu). Corrige, puis refais exactement la même action.
✅ À retenir : console AMP au démarrage → stop/start pour isoler → F8 chez le joueur → reproduire. Toujours le message exact.
2. Catalogue des erreurs fréquentes #
Chaque fiche : le message tel qu'il apparaît → la cause → ce que tu fais.
Could not find gameName value in vehicles.meta for vehicle model X #
- Où : console serveur, au démarrage de
qbx_core. - Cause : le modèle
Xest listé dansvehicles.luadu framework mais absent du jeu chargé : DLC plus récent que ton Enforce Game Build, ou pack addon pas installé (ou pas encore démarré). - Solution : sans gravité si tu n'attends pas cette voiture. Sinon : monte le build (chapitre 07, section 5) ou installe le pack addon avec son
ensureavant le framework. Pour faire taire l'avertissement, retire la ligne dansvehicles.lua.
No such export X in resource Y #
- Où : console serveur ou F8.
- Cause : un script appelle
exports['Y']:X()etYn'a pas cet export. Trois cas :Yn'est pas démarrée (ordre desensure),Yn'est pas la version attendue, ouYest le nom fourni parprovideet pas le vrai nom. Exemple :qbx_corefournitqb-core, mais l'export s'appelle par le vrai nom de la ressource. - Solution : vérifie que
Yest dans Starting Resources au-dessus de l'appelant. Ouvrefxmanifest.luadeYet chercheexports/server_exports: siXn'y est pas, mets à jour selon la page du script. SiYest un nomprovide, remplace par le vrai nom du dossier.
attempt to index a nil value (field 'X' / global 'X') #
- Où : serveur ou F8, avec fichier et numéro de ligne.
- Cause : le script lit
X.quelquechosealors queXest vide : dépendance pas encore démarrée (framework, ox_lib), clé de configuration supprimée ou mal orthographiée, joueur pas encore chargé. - Solution : va à la ligne indiquée. Si
Xvient d'une autre ressource, remonte-la dans Starting Resources. SiXest une clé deconfig.lua, compare avec le fichier d'origine du script.
attempt to compare string with number (ou number with nil) #
- Où : serveur ou F8.
- Cause n°1 : un fichier de sauvegarde (
main.lua.bak,server.lua.old) dans un dossier dont le manifeste chargeserver/**ouclient/**. La copie s'exécute comme un script : événements doublés, variables écrasées. - Cause n°2 : un nombre de config écrit entre guillemets (
Config.Prix = "100"). - Solution : supprime tout
.bak/.old/- Copiedansresources/, range tes sauvegardes dansserver-data/sauvegardes/, puisrefreshetrestart <ressource>. Pour la config, retire les guillemets.
Resource X uses the deprecated … #
- Où : console serveur au démarrage.
- Cause : format ancien. La fin de la ligne dit lequel :
__resource.luaau lieu defxmanifest.lua, ou unfx_versiondépassé. Référence : https://docs.fivem.net/docs/scripting-reference/resource-manifest/. - Solution : avertissement, pas une panne. Cherche une version récente. Si le script est abandonné, renomme
__resource.luaenfxmanifest.lua, ajoutefx_version 'cerulean'etgame 'gta5'en tête, puisrefreshetrestart.
Unable to establish a connection to the database (ER_ACCESS_DENIED_ERROR) #
- Où : console serveur, au démarrage de
oxmysql. - Cause : utilisateur, mot de passe ou hôte faux dans
mysql_connection_string. Sur TeamKit le mot de passe de la base est celui de ton compte AMP ; l'hôte est l'hôte « local » du tableau de bord teamkit.fr, pas l'IP publique. - Solution : recopie la chaîne du tableau de bord telle quelle dans
Additional Server Settings:
set mysql_connection_string "mysql://UTILISATEUR:MOT_DE_PASSE@HOTE:PORT/BASE?charset=utf8mb4"
Redémarre l'instance. Détail au chapitre 06.
ECONNREFUSED #
- Où : console serveur,
oxmysql. - Cause : hôte ou port faux. Le port de la base n'est pas 3306 : c'est celui affiché sur le tableau de bord pour ton serveur.
- Solution : corrige
HOTE:PORTdans la chaîne de connexion, redémarre l'instance.
Server license key authentication failed #
- Où : console serveur, juste après le démarrage.
- Cause : clé absente, mal collée (espace en trop), révoquée, ou liée à une autre IP que celle de ton serveur TeamKit.
- Solution : sur https://portal.cfx.re/servers/registration-keys, crée une clé pour l'IP de ton serveur (celle du tableau de bord), colle-la dans
Configuration → FiveM → Cfx.re Server Registration Key, Save, Restart. Une clé par serveur.
Could not load 'locales/fr.json' #
- Où : console serveur ou F8, à l'initialisation d'un script.
- Cause : tu as demandé la langue
fr(souventsetr ox:locale fr) et cette ressource n'a pas delocales/fr.json. Ou le fichier existe mais n'est pas dansfilesdu manifeste, ou son JSON est invalide. - Solution : dans
locales/, copieen.jsonenfr.jsonet traduis (ou laisse en anglais en attendant). Vérifiefiles { 'locales/*.json' }dans le manifeste, puisrefreshetrestart. Si le JSON est refusé, voir la fiche CRLF/UTF-8.
Oversized assets … WILL lead to streaming issues #
- Où : console serveur au démarrage d'un MLO ou d'un pack de véhicules.
- Cause : un fichier de plus de ~16 Mo dans
stream/. - Solution : ça fonctionne, mais des textures peuvent manquer chez certains joueurs. Demande à l'auteur une version optimisée ou accepte le défaut. Ne découpe pas le fichier toi-même.
Failed to fetch / erreurs de téléchargement côté joueur #
- Où : F8, ou écran d'erreur au chargement.
- Cause : le joueur n'arrive pas à télécharger un fichier. Soit le serveur ne répond pas sur 30120 en TCP (instance arrêtée, redémarrage en cours), soit une ressource charge un élément externe (
ui_pageen URL, police ou script sur un CDN) injoignable ou bloqué chez le joueur. - Solution : vérifie que l'instance est Running dans Status et demande au joueur de relancer FiveM. Si l'erreur cite une URL externe, ouvre-la dans un navigateur : si elle est morte, remplace-la par une copie locale dans
html/déclarée dansfiles.
Le joueur reste bloqué à l'écran de chargement #
- Où : chez le joueur, sans message.
- Cause : un script client ne finit pas de charger : erreur Lua côté client (visible dans F8), boucle sans
Wait, framework sans base de données (le joueur ne peut pas être créé), ouspawnmanager/sessionmanagerretirés par erreur. - Solution : le joueur ouvre F8 pendant le chargement et te copie les lignes rouges. Toi, vérifie dans la console AMP que
oxmysqls'est connecté et que les ressources[system]de cfx-server-data sont toujours dans Starting Resources. Isole avecstop/startsur les derniers scripts client ajoutés.
Une ressource ne démarre pas #
- Messages :
Couldn't find resource X,Could not start resource X,resource X has no manifest. - Cause :
fxmanifest.luan'est pas à la racine du dossier (le zip a crééresources/monscript/monscript-main/), le nom du dossier ne correspond pas auensure, ou le serveur n'a pas relu le dossier depuis l'upload. - Solution :
- Vérifie dans File Manager que
resources/<nom>/fxmanifest.luaexiste à ce niveau exact. Déplace les fichiers si un sous-dossier s'est glissé. - Tape
refreshdans la console. - Tape
ensure <nom>et lis la réponse. - Si
dependency Y is not running: ajoute ou remonteYdans Starting Resources, Save, Restart.
Modified client files (pure mode) #
- Où : chez le joueur, refus à la connexion, avec le nom du fichier modifié.
- Cause : ton serveur est en
sv_pureLevel 1ou2(Block Modified Client Files) et le joueur a des fichiers de jeu modifiés. Niveau 1 : seuls l'audio et les mods graphiques connus passent ; niveau 2 : rien. Référence : https://docs.fivem.net/docs/server-manual/server-commands/#sv_purelevel-level. - Solution : le joueur retire le fichier nommé (ou vérifie son installation GTA), puis redémarre son jeu. Au premier changement de niveau, tout le monde doit relancer FiveM. Pour tolérer les packs graphiques, reste au niveau 1.
Doublons de ressources #
- Symptômes : deux inventaires, deux menus de vêtements, un MLO qui clignote, événements déclenchés deux fois,
resource X already existsdans la console. - Cause : deux dossiers du même nom dans deux catégories, ou deux scripts qui font la même chose (deux inventaires, deux HUD, deux MLO au même endroit).
- Solution : cherche le nom dans tout
resources/. Un seul dossier par nom, une seule ressource par fonction. Supprime l'autre (après copie hors deresources/),refresh, Restart.
Sauvegardes .bak dans server/** #
- Symptômes :
attempt to compare string with number, événements doublés, un script qui garde l'ancien comportement malgré tes modifications. - Cause :
main.lua.bak,main.lua.old,main - Copie.luachargés par un jokerserver/**ouclient/**. - Solution : jamais de sauvegarde dans un dossier de ressource. Range-les dans
server-data/sauvegardes/, puisrefreshetrestart.
Chaînes Lua multilignes côté client #
- Symptômes : le script passe côté serveur, mais le client plante ou le script client ne se charge pas. Dans F8 :
unfinished stringavec un numéro de ligne. - Cause : une chaîne
'...'ou"..."coupée par un vrai retour à la ligne. Le serveur la tolère, le client FiveM non. Un copier-coller depuis un forum en produit facilement. - Solution : va à la ligne citée, remplace par des crochets longs ou une concaténation :
-- refusé côté client
local texte = 'Bonjour
ville'
-- accepté
local texte = [[Bonjour
ville]]
local texte2 = 'Bonjour' .. '\n' .. 'ville'
Caractères CRLF et UTF-8 dans les fichiers édités sous Windows #
- Symptômes : un JSON refusé (
Unexpected tokenouCould not load 'locales/fr.json'), un.luaqui échoue sur sa première ligne, des accents affichés ené. - Cause : le Bloc-notes et certains éditeurs ajoutent une marque BOM en tête des fichiers UTF-8, ou enregistrent en ANSI. Lua tolère les fins de ligne Windows (CRLF), mais tous les lecteurs JSON ne tolèrent pas le BOM.
- Solution : édite avec l'éditeur du File Manager d'AMP, VS Code ou Notepad++. Enregistre en UTF-8 sans BOM, fins de ligne LF. Fichier déjà abîmé : « Convertir en UTF-8 sans BOM », enregistre,
restart <ressource>.
Le serveur n'apparaît pas dans la liste #
- Symptômes : le serveur tourne, tes amis se connectent par
connect ip:portdans F8, mais rien dans l'onglet Servers. - Causes, dans l'ordre à vérifier :
- Clé Cfx.re absente ou liée à une autre IP (fiche
Server license key). - Project Name non conforme : plusieurs noms, tags, majuscules abusives → serveur masqué.
- Mark Server Private coché : AMP écrit
sv_master1 "", le serveur n'est plus joignable par la liste. sets localelaissé sur une valeur d'exemple ; metsfr-FRoufr-BE.- Port bloqué ou instance pas Running.
- Zéro joueur depuis longtemps : la liste favorise l'activité. Connecte-toi à deux et attends quelques minutes.
- Solution : corrige dans
Configuration → FiveM, Save, Restart, puis cherche ton Project Name dans le client FiveM. Voir chapitre 07, section 8.
✅ À retenir : lis la ressource nommée entre crochets, cherche le message exact dans ce catalogue, applique la solution, reproduis pour vérifier. Et un seul changement à la fois : trois scripts ajoutés d'un coup, tu ne sais plus lequel casse.
3. Demander de l'aide au staff TeamKit : quoi fournir #
Le staff ne voit pas ton écran. Un message complet est traité en une fois ; un message vague fait trois allers-retours. Fournis :
- L'extrait de console du démarrage : de
Restartjusqu'à la première erreur, plus les 20 lignes qui suivent. Du texte copié-collé, pas une photo. - Ton Starting Resources complet, copié depuis
Configuration → FiveM, sans le mot de passe de la base. - Ce qui a changé depuis la dernière fois où ça marchait : script ajouté, fichier modifié, build changé, réglage touché, avec l'heure approximative.
- Le message exact côté joueur (F8) et l'action qui le déclenche.
- Ce que tu as déjà essayé :
refresh,stop/startde quelle ressource, redémarrage de l'instance.
Où poster : le salon d'aide du Discord TeamKit ou un ticket depuis teamkit.fr. Ne colle jamais ta chaîne mysql_connection_string ni ta clé Cfx.re en public : remplace la valeur par xxx.
Pour qu'un membre du staff regarde directement, crée-lui un sous-compte Observateur (lecture de console) depuis le tableau de bord, et retire-le une fois le problème réglé.
✅ À retenir : console du démarrage + Starting Resources + ce qui a changé + message F8 + ce que tu as essayé. Sans mot de passe.
✅ Checklist du chapitre #
❓ Si ça ne marche pas #
- Je ne trouve aucune erreur dans la console AMP. L'erreur est chez le joueur : ouvre F8 pendant l'action qui échoue. Si F8 est vide aussi,
stople dernier script ajouté et recommence. - L'erreur nomme une ressource que je n'ai pas installée. C'est une ressource de base de cfx-server-data (
[system],[managers]) ou une dépendance d'un script. Ne la supprime pas ; cherche qui l'appelle dans lesdependenciesdes manifestes. - Ça marchait hier, je n'ai rien changé. Un sous-compte Fichiers ou Technicien a peut-être modifié un fichier : regarde les dates dans File Manager. Ou un redémarrage planifié dans Schedule a relu une modification en attente.
- Le même message revient après correction. Tu n'as pas fait
refreshavantrestart(manifeste), ou pas redémarré l'instance (Configuration). Fais les deux, puis reproduis. - Le serveur redémarre en boucle. Lis les dernières lignes avant chaque redémarrage dans
AMP_Logs. Clé Cfx.re invalide ou base injoignable font quitter FXServer, et AMP le relance selon son réglage. Corrige la cause. - J'ai tout essayé. Rassemble les cinq éléments de la section 3 et poste-les.