Describe the script and Codella writes it against the real qb-core API — the Player object, callbacks, useable items, jobs and society money — with qb-inventory or ox_inventory, qb-target or ox_target, whichever your server runs. Qbox servers get native qbx_core exports.
local QBCore = exports['qb-core']:GetCoreObject()QBCore.Functions.CreateCallback('codella_mechanic:repair', function(source, cb, netId) local Player = QBCore.Functions.GetPlayer(source) if not Player or Player.PlayerData.job.name ~= 'mechanic' then return cb(false) end local vehicle = NetworkGetEntityFromNetworkId(netId) if #(GetEntityCoords(GetPlayerPed(source)) - GetEntityCoords(vehicle)) > 6.0 then return cb(false) end exports['qb-banking']:AddMoney('mechanic', Config.RepairPrice * 0.6, 'repair') cb(true)end)Player.PlayerData for citizenid, job, gang, money and metadata; Player.Functions.AddMoney, RemoveMoney, SetJob, SetMetaData and Save with reasons on every money change, so your logs show why a balance moved.
QBCore.Functions.CreateCallback on the server and TriggerCallback on the client (or lib.callback on the ox stack), so a menu opens with real data and a purchase returns success or failure to the client that asked.
Item definitions in the right file for your inventory, images referenced by the right path, CreateUseableItem handlers or ox_inventory useable exports, HasItem checks that read the server, and add and remove calls with reasons.
Job entries with grades and isboss, duty-aware behaviour, job-only target options and blips, boss menus wired to society accounts, and OnJobUpdate handlers so the client reacts when an admin changes a job mid-session.
qb-menu and qb-input when you want the classic look, ox_lib context menus, input dialogs and progress bars when you run the ox stack, qb-core DrawText prompts or lib.showTextUI, and QBCore.Functions.Notify or lib.notify.
Hunger, thirst, stress, licences, handcuffs and death state read from Player.PlayerData.metadata and updated with SetMetaData, with the qb-hud events fired so the HUD stays in sync.
Keys and fuel follow the same rule: qb-vehiclekeys or qbx_vehiclekeys, LegacyFuel, ps-fuel, cdn-fuel or ox_fuel, named in the prompt or detected at start.
Running ESX? Generate against ESX Legacy instead.
A QBCore taxi job with qb-target and ox_lib: duty toggle at the depot, a job vehicle garage with keys and fuel, NPC passenger fares that pay cash on delivery with a 40% cut to the taxi society in qb-banking, and a job blip only on duty.
Yes. It writes against exports['qb-core']:GetCoreObject(), the Player object returned by QBCore.Functions.GetPlayer, QBCore.Functions.CreateCallback and TriggerCallback, CreateUseableItem, the QBCore:Client:OnPlayerLoaded and OnJobUpdate events, and the runtime AddItem and AddJob exports. It knows the 2026 core refactor and the qb-inventory 2.x exports, and it avoids the removed client-triggerable add-item and add-money events.
Yes. Say Qbox and it targets qbx_core directly — exports.qbx_core:GetPlayer, the money exports, QBX.PlayerData on the client — with ox_lib, ox_inventory and ox_target, which Qbox requires. It also knows that most qb-core style code still runs on Qbox through the bridge, and prefers the native exports when you ask for them.
qb-inventory (the 2024 rewrite and the older event-based version), ox_inventory, qb-target and ox_target. Tell it which ones your server runs; it uses the matching exports for items, stashes, shops and interaction options, and writes the item definitions in the right place — qb-core/shared/items.lua or ox_inventory/data/items.lua.
Yes. Jobs and gangs entries in the shared format or via AddJob and AddGang at runtime, duty toggles through QBCore:ToggleDuty, job-gated target options and blips, and society payouts through qb-banking or Renewed-Banking exports. It does not use qb-management money exports, which no longer exist.
Vehicles are spawned on the server with CreateVehicleServerSetter or on the client with the QBCore helpers, plates are generated and trimmed correctly, keys go through qb-vehiclekeys or qbx_vehiclekeys, and fuel through LegacyFuel, ps-fuel, cdn-fuel or ox_fuel, depending on what you tell it you run. Ownership checks read player_vehicles by citizenid.
There are free credits that refresh daily, which is enough to build and iterate on a script without paying. Larger resources and heavier refinement use more credits; the pricing page lists what each plan includes.
The FiveM overview covers every framework Codella targets; the ideas page is a list of scripts described precisely enough to build.