THE ORB
Démarrage du studio

le champ « Jobs » est nil

Votre liste de métiers n'a pas pu être lue. Une faute de frappe dans le fichier des métiers casse d'un coup tous les scripts qui en dépendent.

groupsTous les métiers cessent de marcherpersonVous pouvez le corriger

Faites d'abord ceci

Si vous avez récemment modifié votre fichier de métiers, annulez ce changement et redémarrez.

bug_reportCollez plutôt toute votre console

Ce que ça veut dire

Le code a lu le registre des métiers du framework et il n'était pas là. Dans QBCore c'est QBCore.Shared.Jobs, dans ESX il est chargé depuis la table jobs de la base. Quand cela arrive, tous les scripts conditionnés par le métier échouent d'un coup, ce qui donne l'impression d'un problème plus gros qu'il n'est.

Ce qui la provoque

Classé par fréquence : la cause la plus probable en premier.

  1. 1

    Une erreur de syntaxe dans la config des métiers

    qb-core/shared/jobs.lua est du Lua. Une accolade manquante et tout le fichier ne charge pas, donc la table n'est jamais assignée — et l'erreur que vous voyez est dans le script qui la lit, pas dans le fichier cassé.

  2. 2

    La table des métiers n'a jamais été importée (ESX)

    ESX lit les métiers depuis la base. Pas de lignes, pas de métiers.

  3. 3

    Un métier qui existe d'un côté et pas de l'autre

    Un joueur dont la colonne job nomme un métier que la config ne définit pas. Le registre va bien ; c'est cette recherche-là qui est nil.

  4. 4

    Le lire avant le chargement du core

    Le même problème de timing qu'avec l'objet core lui-même.

  5. 5

    Un fichier partagé modifié qu'une mise à jour a remplacé

    Une mise à jour a écrasé vos métiers personnalisés.

Comment savoir laquelle est la vôtre

Remontez à la recherche d'une erreur de chargement dans les fichiers du framework : un jobs.lua cassé s'annonce toujours avant que quoi que ce soit d'autre se plaigne. Puis :

print(json.encode(QBCore.Shared.Jobs and 'loaded' or 'nil'))

Où regarder

qb-core/shared/jobs.lua, ou la table jobs de la base pour ESX.

Comment la corriger

Validez le fichier de config avant de redémarrer :

luac -p qb-core/shared/jobs.lua

Et protégez la recherche d'un métier précis, qui est une clé légitimement absente plutôt qu'une table cassée :

local job = QBCore.Shared.Jobs[player.PlayerData.job.name]
if not job then return end

Toujours bloqué sur votre propre code ?

Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.

bug_reportOuvrir le Server Fixer

Pour ce type d'erreur, le Convertisseur de scripts traduit une ressource entre ESX, QBCore et Qbox.

Les erreurs qui voyagent avec celle-ci