ESX, QBCore et Qbox : Configurez votre framework et créez des métiers
Un framework fonctionnel est la base de votre serveur FiveM. Avant d'ajouter des garages, des tablettes ou des entreprises, faites fonctionner la création de personnage, la base de données et l'attribution des métiers. Ce guide couvre une installation fraîche et un petit exemple de métier dans ESX Legacy, QBCore ou Qbox. Suivez la section correspondant à votre framework ; l'installation des trois ensemble ne fait pas partie de la configuration.
Commencez par une installation propre
Préparez un compte Cfx.re, une clé d'enregistrement de serveur, un artefact FXServer approprié et un service MariaDB en cours d'exécution. Utilisez la version de la base de données supportée par le framework choisi ; Qbox nécessite explicitement MariaDB et ne supporte pas MySQL ou XAMPP. Sur un hébergement managé, utilisez le serveur et les contrôles txAdmin du fournisseur. Consultez le guide officiel de configuration du serveur FiveM et les exigences Qbox.
- Ouvrez txAdmin et choisissez un déploiement de recette fraîche dans un nouveau répertoire de données de serveur.
- Sélectionnez la recette officielle de votre framework : ESX Legacy, QBCore ou Qbox.
- Entrez la clé du serveur et les détails de connexion MariaDB corrects. Utilisez un compte de base de données dédié avec accès à la base de données de ce serveur.
- Exécutez la recette, passez en revue la configuration générée et démarrez le serveur. Conservez les dépendances et l'ordre des ressources de la recette.
- Rejoignez, créez un personnage, reconnectez-vous et confirmez que le personnage se charge toujours avant d'ajouter d'autres ressources.
Les recettes téléchargent les ressources et exécutent leur installation SQL. N'importez pas un second schéma de framework complet par la suite et ne déployez pas une nouvelle recette sur un serveur existant. Sauvegardez les fichiers et la base de données avant toute modification ultérieure. Pour les étapes d'installation spécifiques au framework, suivez le guide d'installation ESX, le guide Windows de QBCore ou le guide d'installation Qbox.
Comprendre ce qu'un métier contient réellement
Chaque métier possède une clé interne, un libellé d'affichage et des grades numérotés. Nous utilisons sky_example, avec les grades 0 et 1, tout au long du processus. Conservez cette clé identique dans le framework, le script du métier et toutes les intégrations. Un libellé tel que « Entreprise Exemple » n'est que le nom que les joueurs voient.
| Framework | Définitions de métiers | Clés de grade dans ce guide |
|---|---|---|
| ESX Legacy | MariaDB : jobs et job_grades | Valeurs SQL 0, 1 |
| QBCore | qb-core/shared/jobs.lua | Chaînes de caractères : ['0'], ['1'] |
| Qbox | qbx_core/shared/jobs.lua | Nombres : [0], [1] |
L'enregistrement d'un métier crée son identité dans le framework. Le gameplay, les garages, les entrepôts, les menus de boss et les comptes d'entreprise nécessitent leurs propres ressources et configurations compatibles. Un métier de framework n'est pas une entreprise terminée. Les emplacements ci-dessus suivent le schéma ESX, le fichier de métiers QBCore et le fichier de métiers Qbox.
ESX Legacy : créer le métier dans MariaDB
Ouvrez la base de données configurée pour ce serveur, et non la base de données d'un autre serveur. Vérifiez d'abord si la clé d'exemple existe déjà :
SELECT name FROM jobs WHERE name = 'sky_example';
SELECT grade FROM job_grades WHERE job_name = 'sky_example';
N'exécutez les insertions suivantes que si les deux vérifications ne retournent aucune ligne. Si le métier existe, inspectez et modifiez ses enregistrements existants au lieu d'insérer des doublons.
INSERT INTO jobs (name, label)
VALUES ('sky_example', 'Example Company');
INSERT INTO job_grades
(job_name, grade, name, label, salary, skin_male, skin_female)
VALUES
('sky_example', 0, 'employee', 'Employee', 100, '{}', '{}'),
('sky_example', 1, 'boss', 'Manager', 200, '{}', '{}');
job_name lie chaque grade au métier. La colonne grade est le rang utilisé pour l'attribution ; le id automatique de la ligne n'est pas le rang. Un métier sans grades est ignoré. Rechargez le catalogue des métiers via la console du serveur :
refreshjobs
L'ESX Legacy actuel commence par oxmysql, puis esx_lib, puis es_extended ; les tutoriels plus anciens peuvent omettre esx_lib. Conservez les dépendances fournies par votre recette. Consultez la configuration actuelle de la recette et l'implémentation du chargement des métiers.
Pour une intégration esx_society, le nom de grade interne boss est reconnu par sa configuration de boss par défaut. Le libellé visible « Manager » seul ne donne rien. L'enregistrement de la société, les comptes et l'ordre des dépendances restent des étapes de configuration distinctes. Suivez la documentation de la société si votre ressource de métier l'utilise.
QBCore : ajoutez une entrée à la table des métiers
Ouvrez qb-core/shared/jobs.lua. Insérez cet à l'intérieur de la table des métiers existante, aux côtés des autres entrées de métiers et avant son accolade de fermeture. Conservez la déclaration de table existante et tous les métiers existants ; il s'agit d'une entrée, pas d'un fichier de remplacement.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
['0'] = { name = 'Employee', payment = 100 },
['1'] = { name = 'Manager', payment = 200, isboss = true },
},
},
Conservez les clés de grade sous forme de chaînes de caractères, y compris le grade zéro. Vérifiez les virgules et les accolades autour des entrées voisines, enregistrez, puis effectuez un redémarrage complet prévu du serveur afin que les ressources dépendantes chargent les mêmes définitions. La commande refresh de FiveM rescane les ressources et les manifestes ; elle ne recharge pas une table de métiers Lua en cours d'exécution. Ne créez pas de lignes SQL jobs de style ESX pour QBCore. Ses définitions de métiers sont en Lua, tandis que les données de personnages utilisent toujours la base de données.
isboss indique le grade de manager ; cela ne donne pas les permissions de commande framework-admin. Une ressource de gestion compatible doit toujours fournir et configurer le menu réel et son emplacement.
Qbox : utilisez son propre fichier de métiers et des grades numériques
Ouvrez qbx_core/shared/jobs.lua et insérez ce à l'intérieur du tableau renvoyé par return { ... }, avant l'accolade de fermeture finale. Préservez ses autres entrées. Qbox utilise des clés de grade numériques ici ; ne collez pas les clés de chaîne de QBCore telles quelles.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
[0] = { name = 'Employee', payment = 100 },
[1] = { name = 'Manager', payment = 200, isboss = true, bankAuth = true },
},
},
Enregistrez et effectuez un redémarrage complet prévu du serveur. bankAuth est distinct de isboss et est utilisé par les intégrations bancaires compatibles ; aucun des deux flags ne crée de compte ou de menu. Adaptez votre configuration aux définitions de métiers officielles de Qbox .
Qbox inclut le support multijob. Sa limite de métiers et la question de savoir si /setjob remplace ou ajoute l'adhésion sont configurables. Utilisez ses commandes d'adhésion prises en charge lors de la gestion de plusieurs métiers ; ne supposez pas qu'une ressource multijob externe QBCore est compatible. Voir les commandes Qbox et la configuration multijob .
Assigner, tester et reconnecter
Rejoignez avec un personnage de test et utilisez un compte avec les permissions de commande framework/ACE requises. Une connexion txAdmin seule n'établit pas ces permissions. Si Qbox a requireOptIn activé, utilisez /optin avant les commandes admin. Remplacez 1 ci-dessous par l'ID serveur actuel de votre personnage de test connecté ; /job indique le métier du joueur qui l'entre :
/setjob 1 sky_example 0
/job
/setjob 1 sky_example 1
/job
Vérifiez que les deux grades affichent le métier et le rang attendus. La syntaxe d'assignation est documentée pour ESX, QBCore et Qbox ; la vérification d'adhésion conditionnelle de Qbox se trouve dans l'implémentation de sa commande.
Pour QBCore et Qbox, cet exemple commence hors service et désactive la paie hors service. Utilisez l'action de service de votre ressource de métier installée ; il n'existe pas de commande /duty universelle pour l'assumer. Les paramètres de connexion affectent également si le service sauvegardé ou defaultDuty l'emporte. Reconnectez-vous ensuite et vérifiez le métier sauvegardé, le grade et le comportement de service prévu.
Avant d'ouvrir le métier aux joueurs, testez ses permissions avec les deux grades. Un employé ne doit pas accéder aux fonctionnalités réservées à la direction. Attendez votre intervalle de paie configuré au lieu de vous attendre à un paiement immédiat après l'attribution ; les montants de l'exemple sont des espaces réservés pour votre économie. Si une vérification échoue, lisez la première erreur de console pertinente et résolvez-la avant d'ajouter une autre ressource.
| Symptôme | Première vérification |
|---|---|
| Métier impossible à attribuer | Clé exacte, grade existant et définitions chargées |
| Commande refusée | Permissions du framework et configuration ACE |
| La ressource échoue après une modification Lua | Première erreur de console, virgules et accolades |
| Métier correct mais aucun menu | Ressource de métier, emplacement configuré, grade et service |
| Mauvaise paie | Paie du grade, règles de service et configuration de la paie/du compte |
Connectez votre métier Sky ensuite
Une fois que l'attribution par le framework fonctionne, suivez le guide d'installation Sky et configurez votre ressource de métier installée avec la même clé de framework et les mêmes grades. Utilisez les fonctionnalités partagées de Jobs Base pour les paramètres partagés pertinents. Ne configurez une paire de métiers hors service que si votre configuration Sky choisie en utilise une, et créez les deux métiers avec chaque grade requis.
Dernière vérification : 25 octobre 2026. Les sources ci-dessus sont la documentation officielle du framework, des recettes maintenues et des implémentations GitHub. Vérifiez votre version installée avant d'appliquer des exemples provenant d'une version plus récente.