Links
๐ŸŽฎ

Client Function Reference

Learn about and how to use common core client functions!

QBCore.Functions.GetPlayerData

  • Perhaps the most used function in the framework. This function returns the players data of the current source which, since its used client side, is automatically the client or player. It can be used with modifiers on the end starting with a "." (period)
function QBCore.Functions.GetPlayerData(cb)
if not cb then return QBCore.PlayerData end
cb(QBCore.PlayerData)
end
โ€‹
-- Example
โ€‹
local Player = QBCore.Functions.GetPlayerData()
print(QBCore.Debug(Player))
โ€‹
OR
โ€‹
local Player = QBCore.Functions.GetPlayerData()
local jobName = Player.job.name
print(jobName)

QBCore.Functions.GetCoords

  • This function operates very similarly to how the native GetEntityCoords does, but it returns the heading as well
function QBCore.Functions.GetCoords(entity)
return vector4(GetEntityCoords(entity), GetEntityHeading(entity))
end
โ€‹
-- Example
โ€‹
local coords = QBCore.Functions.GetCoords(PlayerPedId())
print(coords)

QBCore.Functions.HasItem

  • Returns whether a player has a certain item
function QBCore.Functions.HasItem(item)
local p = promise.new()
QBCore.Functions.TriggerCallback('QBCore:HasItem', function(result)
p:resolve(result)
end, item)
return Citizen.Await(p)
end
โ€‹
-- Example
โ€‹
local hasItem = QBCore.Functions.HasItem('my_cool_item')
print(hasItem)

QBCore.Functions.Notify

Arguments
Type
Required
Default
message
string | table
yes
'Placeholder'
type
string
yes
'primary'
length
number
yes
5000
function QBCore.Functions.Notify(text, textype, length)
if type(text) == "table" then
local ttext = text.text or 'Placeholder'
local caption = text.caption or 'Placeholder'
local ttype = textype or 'primary'
local length = length or 5000
SendNUIMessage({
type = ttype,
length = length,
text = ttext,
caption = caption
})
else
local ttype = textype or 'primary'
local length = length or 5000
SendNUIMessage({
type = ttype,
length = length,
text = text
})
end
end
โ€‹
-- Example
โ€‹
QBCore.Functions.Notify('This is a test', 'success', 5000)
โ€‹
QBCore.Functions.Notify({text = 'Test', caption = 'Test Caption'}, 'police', 5000)

QBCore.Functions.TriggerCallback

  • Function used to call from the client to the server and receive a value back
function QBCore.Functions.TriggerCallback(name, cb, ...)
QBCore.ServerCallbacks[name] = cb
TriggerServerEvent('QBCore:Server:TriggerCallback', name, ...)
end
โ€‹
-- Example
โ€‹
QBCore.Functions.TriggerCallback('callbackName', function(result)
print('I got this from the CreateCallBack --> '..result)
end, 'my_parameter_name')

QBCore.Functions.Progressbar

  • Wrapper for progressbar export
function QBCore.Functions.Progressbar(name, label, duration, useWhileDead, canCancel, disableControls, animation, prop, propTwo, onFinish, onCancel)
exports['progressbar']:Progress({
name = name:lower(),
duration = duration,
label = label,
useWhileDead = useWhileDead,
canCancel = canCancel,
controlDisables = disableControls,
animation = animation,
prop = prop,
propTwo = propTwo,
}, function(cancelled)
if not cancelled then
if onFinish then
onFinish()
end
else
if onCancel then
onCancel()
end
end
end)
end
โ€‹
-- Available parameters to be called
โ€‹
local Action = {
name = "",
duration = 0,
label = "",
useWhileDead = false,
canCancel = true,
disarm = true,
controlDisables = {
disableMovement = false,
disableCarMovement = false,
disableMouse = false,
disableCombat = false,
},
animation = {
animDict = nil,
anim = nil,
flags = 0,
task = nil,
},
prop = {
model = nil,
bone = nil,
coords = { x = 0.0, y = 0.0, z = 0.0 },
rotation = { x = 0.0, y = 0.0, z = 0.0 },
},
propTwo = {
model = nil,
bone = nil,
coords = { x = 0.0, y = 0.0, z = 0.0 },
rotation = { x = 0.0, y = 0.0, z = 0.0 },
},
}
โ€‹
-- Example
โ€‹
QBCore.Functions.Progressbar('Changeme', 'What the player sees', 1500, false, true, {
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true
}, {}, {}, {}, function()
-- This code runs if the progress bar completes successfully
end, function()
-- This code runs if the progress bar gets cancelled
end)

QBCore.Functions.GetVehicles

  • Returns vehicle game pool (for backwards compatibility) - Not worth using
function QBCore.Functions.GetVehicles()
return GetGamePool('CVehicle')
end
โ€‹
-- Example
โ€‹
local vehicles = QBCore.Functions.GetVehicles()
print(QBCore.Debug(vehicles))
โ€‹
OR -- preferred method
โ€‹
local vehicles = GetGamePool('CVehicle')
print(QBCore.Debug(vehicles))

QBCore.Functions.GetCoreObject

  • Returns the core object for accessing
exports('GetCoreObject', function()
return QBCore
end)
โ€‹
-- Example
โ€‹
local QBCore = exports['qb-core']:GetCoreObject()
โ€‹
OR -- call the core in a single file that loads before the others
โ€‹
QBCore = exports['qb-core']:GetCoreObject()

QBCore.Functions.GetPlayers

  • Returns active players in OneSync scope (for backwards compatibility) - Not worth using
function QBCore.Functions.GetPlayers()
return GetActivePlayers()
end
โ€‹
-- Example
โ€‹
local players = QBCore.Functions.GetPlayers()
print(QBCore.Debug(players))
โ€‹
OR -- preferred method
โ€‹
local players = GetActivePlayers()
print(QBCore.Debug(players))

QBCore.Functions.GetPeds

  • Returns a model hash filtered ped game pool
function QBCore.Functions.GetPeds(ignoreList -- [[table]])
local pedPool = GetGamePool('CPed')
local ignoreList = ignoreList or {}
local peds = {}
for i = 1, #pedPool, 1 do
local found = false
for j=1, #ignoreList, 1 do
if ignoreList[j] == pedPool[i] then
found = true
end
end
if not found then
peds[#peds+1] = pedPool[i]
end
end
return peds
end
โ€‹
-- Example
โ€‹
local peds = QBCore.Functions.GetPeds({`mp_m_freemode_01`})
print(QBCore.Debug(peds))

QBCore.Functions.GetClosestPed

  • Returns the closest ped to the player after filtering
function QBCore.Functions.GetClosestPed(coords, ignoreList)
local ped = PlayerPedId()
if coords then
coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords
else
coords = GetEntityCoords(ped)
end
local ignoreList = ignoreList or {}
local peds = QBCore.Functions.GetPeds(ignoreList)
local closestDistance = -1
local closestPed = -1
for i = 1, #peds, 1 do
local pedCoords = GetEntityCoords(peds[i])
local distance = #(pedCoords - coords)
โ€‹
if closestDistance == -1 or closestDistance > distance then
closestPed = peds[i]
closestDistance = distance
end
end
return closestPed, closestDistance
end
โ€‹
-- Example
โ€‹
local coords = GetEntityCoords(PlayerPedId())
local closestPed, distance = QBCore.Functions.GetClosestPed(coords)
print(closestPed, distance)

QBCore.Functions.GetClosestVehicle

  • Returns the closest vehicle to the player
function QBCore.Functions.GetClosestVehicle(coords)
local ped = PlayerPedId()
local vehicles = GetGamePool('CVehicle')
local closestDistance = -1
local closestVehicle = -1
if coords then
coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords
else
coords = GetEntityCoords(ped)
end
for i = 1, #vehicles, 1 do
local vehicleCoords = GetEntityCoords(vehicles[i])
local distance = #(vehicleCoords - coords)
โ€‹
if closestDistance == -1 or closestDistance > distance then
closestVehicle = vehicles[i]
closestDistance = distance
end
end
return closestVehicle, closestDistance
end
โ€‹
-- Example
โ€‹
local coords = GetEntityCoords(PlayerPedId())
local closestVehicle, distance = QBCore.Functions.GetClosestVehicle(coords)
print(closestVehicle, distance)

QBCore.Functions.GetClosestObject

  • Returns the closest object to the player
function QBCore.Functions.GetClosestObject(coords)
local ped = PlayerPedId()
local objects = GetGamePool('CObject')
local closestDistance = -1
local closestObject = -1
if coords then
coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords
else
coords = GetEntityCoords(ped)
end
for i = 1, #objects, 1 do
local objectCoords = GetEntityCoords(objects[i])
local distance = #(objectCoords - coords)
if closestDistance == -1 or closestDistance > distance then
closestObject = objects[i]
closestDistance = distance
end
end
return closestObject, closestDistance
end
โ€‹
-- Example
โ€‹
local coords = GetEntityCoords(PlayerPedId())
local closestObject, distance = QBCore.Functions.GetClosestObject(coords)
print(closestObject, distance)

QBCore.Functions.GetClosestPlayer

  • Returns the closest player to the client
function QBCore.Functions.GetClosestPlayer(coords)
local ped = PlayerPedId()
if coords then
coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords
else
coords = GetEntityCoords(ped)
end
local closestPlayers = QBCore.Functions.GetPlayersFromCoords(coords)
local closestDistance = -1
local closestPlayer = -1
for i = 1, #closestPlayers, 1 do
if closestPlayers[i] ~= PlayerId() and closestPlayers[i] ~= -1 then
local pos = GetEntityCoords(GetPlayerPed(closestPlayers[i]))
local distance = #(pos - coords)
โ€‹
if closestDistance == -1 or closestDistance > distance then
closestPlayer = closestPlayers[i]
closestDistance = distance
end
end
end
return closestPlayer, closestDistance
end
โ€‹
-- Example
โ€‹
local coords = GetEntityCoords(PlayerPedId())
local closestPlayer, distance = QBCore.Functions.GetClosestPlayer(coords)
print(closestPlayer, distance)

QBCore.Functions.GetPlayersFromCoords

  • Returns all players within a radius of specific coordinates
function QBCore.Functions.GetPlayersFromCoords(coords, distance)
local players = QBCore.Functions.GetPlayers()
local ped = PlayerPedId()
if coords then
coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords
else
coords = GetEntityCoords(ped)
end
local distance = distance or 5
local closePlayers = {}
for _, player in pairs(players) do
local target = GetPlayerPed(player)
local targetCoords = GetEntityCoords(target)
local targetdistance = #(targetCoords - coords)
if targetdistance <= distance then
closePlayers[#closePlayers + 1] = player
end
end
return closePlayers
end
โ€‹
-- Example
โ€‹
local coords = GetEntityCoords(PlayerPedId())
local radius = 5.0
local closestPlayers = QBCore.Functions.GetPlayersFromCoords(coords, radius)
print(QBCore.Debug(closestPlayers))

QBCore.Functions.SpawnVehicle

  • Spawn a vehicle
function QBCore.Functions.SpawnVehicle(model, cb, coords, isnetworked)
local model = GetHashKey(model)
local ped = PlayerPedId()
if coords then
coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords
else
coords = GetEntityCoords(ped)
end
local isnetworked = isnetworked or true
if not IsModelInCdimage(model) then
return
end
RequestModel(model)
while not HasModelLoaded(model) do
Wait(10)
end
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, coords.w, isnetworked, false)
local netid = NetworkGetNetworkIdFromEntity(veh)
SetVehicleHasBeenOwnedByPlayer(veh, true)
SetNetworkIdCanMigrate(netid, true)
SetVehicleNeedsToBeHotwired(veh, false)
SetVehRadioStation(veh, 'OFF')
SetModelAsNoLongerNeeded(model)
if cb then
cb(veh)
end
end
โ€‹
-- Example
โ€‹
local coords = QBCore.Functions.GetCoords(PlayerPedId())
QBCore.Functions.SpawnVehicle('adder', function(veh)
SetVehicleNumberPlateText(veh, 'TEST')
SetEntityHeading(veh, coords.w)
exports['LegacyFuel']:SetFuel(veh, 100.0)
TaskWarpPedIntoVehicle(PlayerPedId(), veh, -1)
TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(veh))
SetVehicleEngineOn(veh, true, true)
end, coords, true)

QBCore.Functions.DeleteVehicle

  • Delete a specific vehicle through the client - Not worth using
function QBCore.Functions.DeleteVehicle(vehicle)
SetEntityAsMissionEntity(vehicle, true, true)
DeleteVehicle(vehicle)
end
โ€‹
-- Example
โ€‹
local ped = PlayerPedId()
local veh = GetVehiclePedIsUsing(ped)
if veh ~= 0 then
QBCore.Functions.DeleteVehicle(veh)
else
local pcoords = GetEntityCoords(ped)
local vehicles = GetGamePool('CVehicle')
for k, v in pairs(vehicles) do
if #(pcoords - GetEntityCoords(v)) <= 5.0 then
QBCore.Functions.DeleteVehicle(v)
end
end
end
โ€‹
OR -- preferred method
โ€‹
local ped = PlayerPedId()
local veh = GetVehiclePedIsUsing(ped)
if veh ~= 0 then
SetEntityAsMissionEntity(veh, true, true)
DeleteVehicle(veh)
else
local pcoords = GetEntityCoords(ped)
local vehicles = GetGamePool('CVehicle')
for k, v in pairs(vehicles) do
if #(pcoords - GetEntityCoords(v)) <= 5.0 then
SetEntityAsMissionEntity(v, true, true)
DeleteVehicle(v)
end
end
end

QBCore.Functions.GetPlate

  • Returns the plate text of a specific vehicle after trimming the whitespace from it
function QBCore.Functions.GetPlate(vehicle)
if vehicle == 0 then return end
return QBCore.Shared.Trim(GetVehicleNumberPlateText(vehicle))
end
โ€‹
-- Example
โ€‹
local vehicle = GetVehiclePedIsUsing(PlayerPedId())
local plate = QBCore.Functions.GetPlate(vehicle)
print(plate)

QBCore.Functions.GetVehicleProperties

  • Get all properties of a vehicle
function QBCore.Functions.GetVehicleProperties(vehicle)
if DoesEntityExist(vehicle) then
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
local extras = {}
โ€‹
for extraId = 0, 12 do
if DoesExtraExist(vehicle, extraId) then
local state = IsVehicleExtraTurnedOn(vehicle, extraId) == 1
extras[tostring(extraId)] = state
end
end
โ€‹
if GetVehicleMod(vehicle, 48) == -1 and GetVehicleLivery(vehicle) ~= -1 then
modLivery = GetVehicleLivery(vehicle)
else
modLivery = GetVehicleMod(vehicle, 48)
end
โ€‹
return {
model = GetEntityModel(vehicle),
plate = QBCore.Functions.GetPlate(vehicle),
plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
bodyHealth = QBCore.Shared.Round(GetVehicleBodyHealth(vehicle), 0.1),
engineHealth = QBCore.Shared.Round(GetVehicleEngineHealth(vehicle), 0.1),
tankHealth = QBCore.Shared.Round(GetVehiclePetrolTankHealth(vehicle), 0.1),
fuelLevel = QBCore.Shared.Round(GetVehicleFuelLevel(vehicle), 0.1),
dirtLevel = QBCore.Shared.Round(GetVehicleDirtLevel(vehicle), 0.1),
color1 = colorPrimary,
color2 = colorSecondary,
pearlescentColor = pearlescentColor,
interiorColor = GetVehicleInteriorColor(vehicle),
dashboardColor = GetVehicleDashboardColour(vehicle),
wheelColor = wheelColor,
wheels = GetVehicleWheelType(vehicle),
windowTint = GetVehicleWindowTint(vehicle),
xenonColor = GetVehicleXenonLightsColour(vehicle),
neonEnabled = {
IsVehicleNeonLightEnabled(vehicle, 0),
IsVehicleNeonLightEnabled(vehicle, 1),
IsVehicleNeonLightEnabled(vehicle, 2),
IsVehicleNeonLightEnabled(vehicle, 3)
},
neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)),
extras = extras,
tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)),
modSpoilers = GetVehicleMod(vehicle, 0),
modFrontBumper = GetVehicleMod(vehicle, 1),
modRearBumper = GetVehicleMod(vehicle, 2),
modSideSkirt = GetVehicleMod(vehicle, 3),
modExhaust = GetVehicleMod(vehicle, 4),
modFrame = GetVehicleMod(vehicle, 5),
modGrille = GetVehicleMod(vehicle, 6),
modHood = GetVehicleMod(vehicle, 7),
modFender = GetVehicleMod(vehicle, 8),
modRightFender = GetVehicleMod(vehicle, 9),
modRoof = GetVehicleMod(vehicle, 10),
modEngine = GetVehicleMod(vehicle, 11),
modBrakes = GetVehicleMod(vehicle, 12),
modTransmission = GetVehicleMod(vehicle, 13),
modHorns = GetVehicleMod(vehicle, 14),
modSuspension = GetVehicleMod(vehicle, 15),
modArmor = GetVehicleMod(vehicle, 16),
modTurbo = IsToggleModOn(vehicle, 18),
modSmokeEnabled = IsToggleModOn(vehicle, 20),
modXenon = IsToggleModOn(vehicle, 22),
modFrontWheels = GetVehicleMod(vehicle, 23),
modBackWheels = GetVehicleMod(vehicle, 24),
modCustomTiresF = GetVehicleModVariation(vehicle, 23),
modCustomTiresR = GetVehicleModVariation(vehicle, 24),
modPlateHolder = GetVehicleMod(vehicle, 25),
modVanityPlate = GetVehicleMod(vehicle, 26),
modTrimA = GetVehicleMod(vehicle, 27),
modOrnaments = GetVehicleMod(vehicle, 28),
modDashboard = GetVehicleMod(vehicle, 29),
modDial = GetVehicleMod(vehicle, 30),
modDoorSpeaker = GetVehicleMod(vehicle, 31),
modSeats = GetVehicleMod(vehicle, 32),
modSteeringWheel = GetVehicleMod(vehicle, 33),
modShifterLeavers = GetVehicleMod(vehicle, 34),
modAPlate = GetVehicleMod(vehicle, 35),
modSpeakers = GetVehicleMod(vehicle, 36),
modTrunk = GetVehicleMod(vehicle, 37),
modHydrolic = GetVehicleMod(vehicle, 38),
modEngineBlock = GetVehicleMod(vehicle, 39),
modAirFilter = GetVehicleMod(vehicle, 40),
modStruts = GetVehicleMod(vehicle, 41),
modArchCover = GetVehicleMod(vehicle, 42),
modAerials = GetVehicleMod(vehicle, 43),
modTrimB = GetVehicleMod(vehicle, 44),
modTank = GetVehicleMod(vehicle, 45),
modWindows = GetVehicleMod(vehicle, 46),
modLivery = modLivery,
}
else
return
end
end
โ€‹
-- Example
โ€‹
local vehicle = GetVehiclePedIsUsing(PlayerPedId())
local vehicleProps = QBCore.Functions.GetVehicleProperties(vehicle)
print(QBCore.Debug(vehicleProps))

QBCore.Functions.SetVehicleProperties

  • Set all properties for a vehicle
function QBCore.Functions.SetVehicleProperties(vehicle, props)
if DoesEntityExist(vehicle) then
local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
SetVehicleModKit(vehicle, 0)
if props.plate then
SetVehicleNumberPlateText(vehicle, props.plate)
end
if props.plateIndex then
SetVehicleNumberPlateTextIndex(vehicle, props.plateIndex)
end
if props.bodyHealth then
SetVehicleBodyHealth(vehicle, props.bodyHealth + 0.0)
end
if props.engineHealth then
SetVehicleEngineHealth(vehicle, props.engineHealth + 0.0)
end
if props.fuelLevel then
SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0)
end
if props.dirtLevel then
SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0)
end
if props.color1 then
SetVehicleColours(vehicle, props.color1, colorSecondary)
end
if props.color2 then
SetVehicleColours(vehicle, props.color1 or colorPrimary, props.color2)
end
if props.pearlescentColor then
SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor)
end
if props.interiorColor then
SetVehicleInteriorColor(vehicle, props.interiorColor)