ESX, QBCore și Qbox: Configurează-ți framework-ul și creează joburi
Un framework funcțional este fundamentul serverului tău de FiveM. Înainte de a adăuga garaje, tablete sau afaceri, asigură-te că crearea personajului, baza de date și atribuirea joburilor funcționează. Acest ghid acoperă o instalare proaspătă și un mic exemplu de job în ESX Legacy, QBCore sau Qbox. Urmează secțiunea pentru framework-ul tău; instalarea tuturor trei împreună nu face parte din configurare.
Începe cu o instalare curată
Pregătește un cont Cfx.re, o cheie de înregistrare a serverului, un artifact FXServer potrivit și un serviciu MariaDB care rulează. Utilizează versiunea de bază de date suportată de framework-ul ales; Qbox solicită explicit MariaDB și nu suportă MySQL sau XAMPP. Pe hosting gestionat, utilizează controalele administrative ale furnizorului atât pentru server, cât și pentru txAdmin. Consultă ghidul oficial de configurare a serverului FiveM și cerințele Qbox.
- Deschide txAdmin și alege o instalare nouă pe baza unei rețete (recipe) într-un director nou de date pentru server.
- Selectează recipe-ul oficial al framework-ului tău: ESX Legacy, QBCore sau Qbox.
- Introdu cheia serverului și detaliile corecte de conexiune MariaDB. Folosește un cont de bază de date dedicat cu acces la baza de date a acestui server.
- Rulează recipe-ul, revizuiește configurația generată și pornește serverul. Păstrează dependențele și ordinea resurselor recipe-ului.
- Conectează-te, creează un personaj, reconectează-te și confirmă că personajul se încarcă în continuare înainte de a adăuga alte resurse.
Rețetele descarcă resursele și rulează instalarea SQL. Nu importa un al doilea schema complet de framework după aceea și nu implementa o rețetă nouă peste un server existent. Fă o copie de rezervă atât pentru fișiere, cât și pentru baza de date înainte de modificări ulterioare. Pentru pașii de instalare specifici framework-ului, urmează ghidul de instalare ESX, ghidul QBCore pentru Windows sau ghidul de instalare Qbox.
Înțelege ce conține, de fapt, o profesie
Fiecare profesie are o cheie internă, un etichetă de afișare și grade numerotate. Folosim sky_example, cu gradele 0 și 1, pe tot parcursul procesului. Menține acea cheie identică în framework, în scriptul profesiei și în orice integrare. O etichetă precum „Exemplu Companie” este doar numele pe care îl văd jucătorii.
| Framework | Definiții profesii | Cheile gradelor din acest ghid |
|---|---|---|
| ESX Legacy | MariaDB: jobs și job_grades | Valori SQL 0, 1 |
| QBCore | qb-core/shared/jobs.lua | Șiruri de caractere: ['0'], ['1'] |
| Qbox | qbx_core/shared/jobs.lua | Numere: [0], [1] |
Înregistrarea unei profesii îi creează identitatea în framework. Gameplay-ul, garajele, depozitele, meniurile de boss și conturile de afaceri au nevoie de propriile resurse și configurații compatibile. O profesie de framework nu este o afacere finalizată. Locațiile de mai sus urmează schema ESX, fișierul de profesii QBCore și fișierul de profesii Qbox.
ESX Legacy: creează profesia în MariaDB
Deschide baza de date configurată pentru acest server, nu baza de date a altui server. Mai întâi, verifică dacă cheia de exemplu există deja:
SELECT name FROM jobs WHERE name = 'sky_example';
SELECT grade FROM job_grades WHERE job_name = 'sky_example';
Rulați următoarele inserții numai dacă ambele verificări returnează zero rânduri. Dacă jobul există, inspectați și editați înregistrările existente în loc să inserați duplicate.
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 leagă fiecare grad de job. Coloana grade este rangul utilizat pentru asignare; id-ul automat al rândului nu este rangul. Un job fără grade este ignorat. Reîncărcați catalogul de joburi prin consola serverului:
refreshjobs
ESX Legacy-ul actual începe cu oxmysql, apoi esx_lib, apoi es_extended; tutorialurile mai vechi pot omite esx_lib. Păstrați dependențele furnizate de rețeta dumneavoastră. Consultați configurația actuală a rețetei și implementarea încărcării jobului.
Pentru o integrare esx_society, numele intern al gradului boss este recunoscut prin configurația sa implicită de boss. Eticheta vizibilă „Manager” în sine nu oferă nimic. Înregistrarea societății, conturile și ordinea dependențelor rămân pași de configurare separați. Urmați documentația societății dacă resursa dumneavoastră de job o utilizează.
QBCore: adăugați o intrare în tabelul jobs
Deschideți qb-core/shared/jobs.lua. Inserează această în interiorul tabelului de joburi existent, alături de celelalte intrări de job și înainte de acolada de închidere. Păstrați declararea tabelului existent și toate joburile existente; aceasta este o intrare, nu un fișier de înlocuire.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
['0'] = { name = 'Employee', payment = 100 },
['1'] = { name = 'Manager', payment = 200, isboss = true },
},
},
Păstrează cheile de grad ca șiruri de caractere, inclusiv gradul zero. Verifică virgulele și acoladele din jurul intrărilor vecine, salvează, apoi efectuează o repornire completă planificată a serverului pentru ca resursele dependente să încarce aceleași definiții. Comanda refresh a FiveM rescanează resursele și manifestele; aceasta nu reîncarcă o tabelă de joburi Lua în execuție. Nu crea rânduri SQL de tipul jobs-stil ESX pentru QBCore. Definițiile de job ale acesteia se află în Lua, în timp ce datele personajului folosesc în continuare baza de date.
isboss marchează gradul de manager; acesta nu acordă permisiuni de comandă de tip framework-admin. O resursă de management compatibilă trebuie în continuare să furnizeze și să configureze meniul propriu-zis și locația acestuia.
Qbox: folosește propriul său fișier de joburi și grade numerice
Deschide qbx_core/shared/jobs.lua și inserează acest în interiorul tabelului returnat de return { ... }, înainte de acolada finală de închidere. Păstrează celelalte intrări. Qbox folosește chei de grad numeric aici; nu lipi cheile de tip string de la QBCore fără modificări.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
[0] = { name = 'Employee', payment = 100 },
[1] = { name = 'Manager', payment = 200, isboss = true, bankAuth = true },
},
},
Salvează și efectuează o restartare completă planificată a serverului. bankAuth este separat de isboss și este utilizat de integrările bancare compatibile; niciun flag nu creează un cont sau un meniu. Potrivește configurația ta cu definițiile oficiale de job Qbox.
Qbox include suport pentru multijob. Limita de joburi și faptul că /setjob înlocuiește sau adaugă apartenența sunt configurabile. Folosește comenzile de apartenență suportate atunci când gestionezi mai multe joburi; nu presupune că o resursă externă de multijob QBCore este compatibilă. Vezi comenzile Qbox și configurația multijob.
Atribuie, testează și reconectează
Conectează-te cu un personaj de test și folosește un cont cu permisiunile de comandă framework/ACE necesare. O simplă autentificare txAdmin nu stabilește acele permisiuni. Dacă Qbox are requireOptIn activat, folosește /optin înainte de comenzile de admin. Înlocuiește 1 de mai jos cu ID-ul de server actual al personajului tău de test conectat; /job raportează jobul jucătorului care îl introduce:
/setjob 1 sky_example 0
/job
/setjob 1 sky_example 1
/job
Verifică dacă ambele grade afișează jobul și rangul așteptat. Sintaxa de atribuire este documentată pentru ESX, QBCore și Qbox; verificarea condițională de opt-in a lui Qbox se află în implementarea comenzii sale command.
Pentru QBCore și Qbox, acest exemplu începe în afara programului și dezactivează plata pentru timpul liber. Folosiți acțiunea de serviciu a resursei de job instalate; nu există o comandă universală /duty pentru a prelua serviciul. Setările de autentificare afectează, de asemenea, dacă câștigă starea de serviciu salvată sau defaultDuty. Ulterior, reconectați-vă și verificați jobul salvat, gradul și comportamentul de serviciu dorit.
Înainte de a deschide jobul pentru jucători, testați permisiunile acestuia cu ambele grade. Un angajat nu ar trebui să aibă acces la funcțiile rezervate managementului. Așteptați intervalul de plată configurat în loc să vă așteptați plata imediat după atribuire; sumele din exemplu sunt doar marcaje pentru economia dumneavoastră. Dacă o verificare eșuează, citiți prima eroare relevantă din consolă și rezolvați-o înainte de a adăuga o altă resursă.
| Simptom | Prima verificare |
|---|---|
| Jobul nu poate fi atribuit | Cheia exactă, gradul existent și definițiile încărcate |
| Comandă refuzată | Permisiunile framework-ului și configurarea ACE |
| Resursa eșuează după o editare Lua | Prima eroare din consolă, virgule și acolade |
| Job corect, dar fără meniu | Resursa de job, locația configurată, gradul și serviciul |
| Plată greșită | Plata gradului, regulile de serviciu și configurarea salariului/contului |
Conectați jobul Sky ulterior
Odată ce atribuirea în framework funcționează, urmați ghidul de instalare Sky și configurați resursa de job instalată cu aceeași cheie de framework și grade. Utilizați Funcțiile partajate Jobs Base pentru setările partajate relevante. Configurați un pereche de joburi în afara programului doar atunci când setarea Sky aleasă utilizează una și creați ambele joburi cu fiecare grad necesar.
Ultima verificare: 25 octombrie 2026. Sursele de mai sus sunt documentația oficială a framework-ului, rețetele menținute și implementările de pe GitHub. Verifică versiunea instalată înainte de a aplica exemple dintr-o versiune mai nouă.