Configurarea framework-ului·

ESX, QBCore și Qbox: Configurează-ți framework-ul și creează joburi

Un ghid de pornire practic pentru FiveM: instalează-ți framework-ul, creează corect joburile și gradele, înțelege accesul de serviciu și de șef și verifică dacă totul se salvează.

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.

  1. Deschide txAdmin și alege o instalare nouă pe baza unei rețete (recipe) într-un director nou de date pentru server.
  2. Selectează recipe-ul oficial al framework-ului tău: ESX Legacy, QBCore sau Qbox.
  3. 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.
  4. Rulează recipe-ul, revizuiește configurația generată și pornește serverul. Păstrează dependențele și ordinea resurselor recipe-ului.
  5. 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.

FrameworkDefiniții profesiiCheile gradelor din acest ghid
ESX LegacyMariaDB: jobs și job_gradesValori SQL 0, 1
QBCoreqb-core/shared/jobs.luaȘiruri de caractere: ['0'], ['1']
Qboxqbx_core/shared/jobs.luaNumere: [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:

Check existing jobs
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.

Create the example job
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:

Server console
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.

qb-core/shared/jobs.lua
['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.

qbx_core/shared/jobs.lua
['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:

In-game chat
/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ă.

SimptomPrima verificare
Jobul nu poate fi atribuitCheia exactă, gradul existent și definițiile încărcate
Comandă refuzatăPermisiunile framework-ului și configurarea ACE
Resursa eșuează după o editare LuaPrima eroare din consolă, virgule și acolade
Job corect, dar fără meniuResursa 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ă.