Framework

bridge.framework wraps your active framework provider (qbx_core, qb-core, or es_extended). Client and server expose different methods.

  • Client — local player status, job cache, display money
  • Server — identity, jobs, money, metadata, commands, item use

Host-proxied in consumer resources. Do not call bridge.framework.* per-frame.

-- Client
if bridge.framework.hasJob('police', 2, true) then
    local cash = bridge.framework.getAccountBalance('cash')
end
 
-- Server
if bridge.framework.hasJob(source, 'police', nil, true) then
    bridge.framework.addMoney(source, 'bank', 500, 'paycheck')
end

Types

PlayerJobData

Normalized job table from getPlayerJobData().

FieldType
jobNamestring
jobLabelstring
gradenumber
gradeNamestring
onDutyboolean
isBossboolean

OwnedVehicle

Entry from getOwnedVehicles().

FieldType
vehiclestring
platestring

ItemUseItem

Passed to registerItemUse callback as item.

FieldType
namestring
labelstring
metadatatable
infotable?
slotnumber
countnumber

MetadataPayload

setMetadata(src, payload) value shape.

---@type table<string, { type: 'set' | 'add' | 'remove', value: any }>

BridgePlayer

Cached snapshot from getPlayer(src).

Field / methodType
sourcenumber
charIdstring
namestring
groupstable<string, number>
jobNamestring?
onDutyboolean
player:hasGroup(group, grade?, duty?)boolean
player:getCharId()string
player:getName()string
player:getGroups()table<string, number>

MoneyType

'cash' | 'bank' | 'crypto' (QBX client balance also accepts 'money')