ESX, QBCore en Qbox: Stel je framework in en maak jobs aan
Een werkend framework is de basis van je FiveM server. Voordat je garages, tablets of bedrijven toevoegt, moet je de personagecreatie, de database en job-toewijzing werkend krijgen. Deze gids behandelt een schone installatie en één klein voorbeeld van een job in ESX Legacy, QBCore of Qbox. Volg de sectie voor jouw framework; het tegelijkertijd installeren van alle drie maakt geen deel uit van de setup.
Begin met een schone installatie
Bereid een Cfx.re account voor, een server registratiekey, een geschikte FXServer artifact en een draaiende MariaDB service. Gebruik de databaseversie die wordt ondersteund door je gekozen framework; Qbox vereist expliciet MariaDB en ondersteunt geen MySQL of XAMPP. Gebruik bij managed hosting de server en txAdmin-beheer van de provider. Zie de officiële FiveM server setup gids en Qbox vereisten.
- Open txAdmin en kies voor een nieuwe recipe deployment in een nieuwe server data directory.
- Selecteer de officiële recipe van je framework: ESX Legacy, QBCore of Qbox.
- Voer de server key en de juiste MariaDB verbindingsgegevens in. Gebruik een toegewezen database-account met toegang tot de database van deze server.
- Voer de recipe uit, controleer de gegenereerde configuratie en start de server. Behoud de dependencies en de volgorde van de resources van de recipe.
- Join de server, maak een personage aan, verbind opnieuw en bevestig dat het personage nog steeds laadt voordat je andere resources toevoegt.
Recipes download resources en voeren hun installatie-SQL uit. Importeer daarna geen tweede volledig framework-schema en installeer geen vers recept over een bestaande server. Maak zowel bestanden als de database een back-up voor latere wijzigingen. Volg voor framework-specifieke installatiestappen ESX's installatiehandleiding, QBCore's Windows-handleiding of Qbox's installatiehandleiding.
Begrijp wat een baan daadwerkelijk bevat
Elke baan heeft een interne sleutel, een weergavelabel en genummerde rangen. We gebruiken sky_example, met rangen 0 en 1, gedurende het hele proces. Houd die sleutel identiek in het framework, het script van de baan en alle integraties. Een label zoals “Voorbeeldbedrijf” is alleen de naam die spelers zien.
| Framework | Baan-definities | Rang-sleutels in deze handleiding |
|---|---|---|
| ESX Legacy | MariaDB: jobs en job_grades | SQL-waarden 0, 1 |
| QBCore | qb-core/shared/jobs.lua | Strings: ['0'], ['1'] |
| Qbox | qbx_core/shared/jobs.lua | Getallen: [0], [1] |
Het registreren van een baan creëert de framework-identiteit ervan. Gameplay, garages, opslag, baas-menu's en zakelijke rekeningen hebben hun eigen compatibele resources en configuratie nodig. Een framework-baan is geen voltooid bedrijf. De bovenstaande locaties volgen het ESX-schema, QBCore banenbestand en Qbox banenbestand.
ESX Legacy: maak de baan aan in MariaDB
Open de database die is geconfigureerd voor deze server, niet de database van een andere server. Controleer eerst of de voorbeeld-sleutel al bestaat:
SELECT name FROM jobs WHERE name = 'sky_example';
SELECT grade FROM job_grades WHERE job_name = 'sky_example';
Voer de volgende inserts alleen uit wanneer beide controles geen rijen retourneren. Als de job bestaat, inspecteer en bewerk dan de bestaande records in plaats van duplicaten in te voegen.
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 koppelt elke grade aan de job. De grade kolom is de rang die wordt gebruikt voor toewijzing; de automatische id van de rij is niet de rang. Een job zonder grades wordt genegeerd. Herlaad de jobcatalogus via de serverconsole:
refreshjobs
De huidige ESX Legacy begint met oxmysql, dan esx_lib, dan es_extended; oudere tutorials kunnen esx_lib weglaten. Behoud de dependencies die door je recept worden geleverd. Bekijk de huidige receptconfiguratie en de job-implementatie.
Voor een esx_society integratie wordt de interne gradenaam boss herkend door de standaard boss-configuratie. De zichtbare label “Manager” alleen verleent niets. Registratie van de society, rekeningen en de volgorde van dependencies blijven aparte instelstappen. Volg de society documentatie als jouw job-resource deze gebruikt.
QBCore: voeg een vermelding toe aan de jobs tabel
Open qb-core/shared/jobs.lua. Voeg deze binnen de bestaande jobs tabel in, naast de andere job-vermeldingen en voor de sluitende accolade. Behoud de bestaande tabelverklaring en alle bestaande jobs; dit is een vermelding, geen vervangend bestand.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
['0'] = { name = 'Employee', payment = 100 },
['1'] = { name = 'Manager', payment = 200, isboss = true },
},
},
Houd grade-keys als strings, inclusief grade nul. Controleer komma's en accolades rondom naburige vermeldingen, sla op, en voer vervolgens een geplande volledige serverherstart uit zodat afhankelijke resources dezelfde definities laden. De refresh opdracht van FiveM scant resources en manifests opnieuw; het herlaadt geen actieve Lua jobs tabel. Maak geen jobs SQL-rijen in ESX-stijl aan voor QBCore. De job-definities staan in Lua, terwijl karaktergegevens nog steeds de database gebruiken.
isboss markeert de manager-rang; het verleent geen framework-admin commando-machtigingen. Een compatibele management-resource moet nog steeds het eigenlijke menu en de locatie ervan leveren en configureren.
Qbox: gebruik het eigen jobs-bestand en numerieke rangen
Open qbx_core/shared/jobs.lua en voeg deze in de tabel die door return { ... } wordt geretourneerd, voor de laatste sluitende accolade. Behoud de andere vermeldingen. Qbox gebruikt hier numerieke rang-sleutels; plak de string-sleutels van QBCore niet ongewijzigd.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
[0] = { name = 'Employee', payment = 100 },
[1] = { name = 'Manager', payment = 200, isboss = true, bankAuth = true },
},
},
Opslaan en voer een geplande volledige server-restart uit. bankAuth staat los van isboss en wordt gebruikt door compatibele bank-integraties; geen van beide vlaggen maakt een account of menu aan. Stem je setup af op de officiële Qbox job-definities.
Qbox bevat multijob-ondersteuning. De job-limiet en of /setjob lidmaatschap vervangt of toevoegt, is configureerbaar. Gebruik de ondersteunde lidmaatschap-commando's bij het beheren van meerdere jobs; ga er niet vanuit dat een externe QBCore multijob-resource compatibel is. Zie Qbox-commando's en multijob-configuratie.
Toewijzen, testen en opnieuw verbinden
Join met een test-character en gebruik een account met de vereiste framework/ACE commando-machtigingen. Een txAdmin-login alleen stelt deze machtigingen niet vast. Als Qbox requireOptIn heeft ingeschakeld, gebruik dan /optin voor admin-commando's. Vervang 1 hieronder door het huidige server-ID van je verbonden test-character; /job rapporteert de job van de speler die het invoert:
/setjob 1 sky_example 0
/job
/setjob 1 sky_example 1
/job
Controleer of beide rangen de verwachte job en rang tonen. De toewijzings-syntax is gedocumenteerd voor ESX, QBCore en Qbox; de conditionele opt-in check van Qbox zit in de commando-implementatie.
Voor QBCore en Qbox begint dit voorbeeld buiten dienst en schakelt het betaling buiten dienst uit. Gebruik de dienst-actie van je geïnstalleerde job-resource; er is geen universeel /duty commando om aan te nemen. Login-instellingen bepalen ook of de opgeslagen dienststatus of defaultDuty wint. Verbind vervolgens opnieuw en controleer de opgeslagen job, rang en de beoogde dienststatus-functionaliteit.
Test de permissies met beide rangen voordat je de job openstelt voor spelers. Een werknemer mag geen toegang hebben tot functies die gereserveerd zijn voor het management. Wacht op je geconfigureerde salarisinterval in plaats van direct na toewijzing betaling te verwachten; de voorbeeldbedragen zijn placeholders voor jouw economie. Als een controle mislukt, lees de eerste relevante consolefout en los deze op voordat je een andere resource toevoegt.
| Symptoom | Eerste controle |
|---|---|
| Job kan niet worden toegewezen | Exacte sleutel, bestaande rang en geladen definities |
| Commando geweigerd | Framework permissies en ACE-configuratie |
| Resource faalt na een Lua-edit | Eerste consolefout, komma's en accolades |
| Correcte job maar geen menu | Job-resource, geconfigureerde locatie, rang en dienststatus |
| Verkeerd salaris | Rang-salaris, dienstregels en salaris/rekening-configuratie |
Verbind daarna je Sky job
Zodra de framework-toewijzing werkt, volg de Sky installatiegids en configureer je geïnstalleerde job-resource met dezelfde framework-sleutel en rangen. Gebruik Jobs Base gedeelde functies voor de relevante gedeelde instellingen. Configureer alleen een job-combinatie voor buiten dienst wanneer jouw gekozen Sky-setup een dergelijke gebruikt, en maak beide jobs aan met elke vereiste rang.
Laatst gecontroleerd: 25 oktober 2026. De bovenstaande bronnen zijn de officiële framework-documentatie, onderhouden recepten en GitHub-implementaties. Controleer je geïnstalleerde versie voordat je voorbeelden van een nieuwere release toepast.