QBCore Functions Library
Use this guide to locate commonly used QBCore framework functions, then verify their current
signatures and behavior in the deployed qb-core commit.
Getting QBCore Object
Before using any QBCore functions, you must get the QBCore object:
local QBCore = exports['qb-core']:GetCoreObject()Player Functions
QBCore.Functions.GetPlayer(source)
Gets a player object by their server source ID.
local Player = QBCore.Functions.GetPlayer(source)
if Player then
print('Player found:', Player.PlayerData.charinfo.firstname)
else
print('Player not found')
endReturns: Player object or nil if not found
QBCore.Functions.GetPlayerByCitizenId(citizenid)
Gets a player object by their citizen ID.
local Player = QBCore.Functions.GetPlayerByCitizenId('ABC12345')
if Player then
print('Player online:', Player.PlayerData.charinfo.firstname)
endReturns: Player object or nil if player is offline
QBCore.Functions.GetOfflinePlayer(citizenid)
Gets offline player data from the database.
QBCore.Functions.GetOfflinePlayer('ABC12345', function(player)
if player then
print('Offline player:', player.PlayerData.charinfo.firstname)
end
end)Returns: Calls callback with player data or nil
QBCore.Functions.GetPlayerByPhone(phone)
Gets a player object by their phone number.
local Player = QBCore.Functions.GetPlayerByPhone('555-0123')
if Player then
print('Player found with phone:', phone)
endReturns: Player object or nil
QBCore.Functions.GetQBPlayers()
Gets all online players.
local players = QBCore.Functions.GetQBPlayers()
for src, Player in pairs(players) do
print('Online player:', Player.PlayerData.charinfo.firstname)
endReturns: Table of all online Player objects
QBCore.Functions.CreateUseableItem(item, cb)
Creates a useable item that triggers when used.
QBCore.Functions.CreateUseableItem('lockpick', function(source, item)
local Player = QBCore.Functions.GetPlayer(source)
-- Handle item usage
if Player.Functions.GetItemByName('lockpick') then
TriggerClientEvent('lockpick:client:use', source)
end
end)Parameters:
item: Item name to make useablecb: Callback function when item is used
Player Object Functions
When you have a Player object, these functions are available:
Player.Functions.AddItem(item, amount, slot, info)
Adds an item to the player’s inventory.
local Player = QBCore.Functions.GetPlayer(source)
local success = Player.Functions.AddItem('water_bottle', 1, false, {
quality = 100,
description = 'Fresh water'
})
if success then
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['water_bottle'], 'add')
endParameters:
item: Item nameamount: Quantity to addslot: Specific slot (optional)info: Item metadata (optional)
Returns: true if successful, false if failed
Player.Functions.RemoveItem(item, amount, slot)
Removes an item from the player’s inventory.
local Player = QBCore.Functions.GetPlayer(source)
local success = Player.Functions.RemoveItem('lockpick', 1)
if success then
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['lockpick'], 'remove')
endReturns: true if successful, false if failed
Player.Functions.GetItemByName(item)
Gets an item from the player’s inventory by name.
local Player = QBCore.Functions.GetPlayer(source)
local item = Player.Functions.GetItemByName('phone')
if item then
print('Player has phone in slot:', item.slot, 'with info:', json.encode(item.info))
else
print('Player does not have a phone')
endReturns: Item object or nil if not found
Player.Functions.GetItemBySlot(slot)
Gets an item from a specific inventory slot.
local Player = QBCore.Functions.GetPlayer(source)
local item = Player.Functions.GetItemBySlot(1)
if item then
print('Slot 1 contains:', item.name)
endReturns: Item object or nil if slot is empty
Player.Functions.GetItemsByName(item)
Gets all instances of an item from inventory.
local Player = QBCore.Functions.GetPlayer(source)
local items = Player.Functions.GetItemsByName('water_bottle')
print('Player has', #items, 'water bottles')
for i, item in pairs(items) do
print('Slot:', item.slot, 'Amount:', item.amount)
endReturns: Array of item objects
Money Functions
Player.Functions.AddMoney(moneytype, amount, reason)
Adds money to the player.
local Player = QBCore.Functions.GetPlayer(source)
local success = Player.Functions.AddMoney('cash', 1000, 'Job payment')
if success then
TriggerClientEvent('QBCore:Notify', source, 'You received $1000 cash', 'success')
endMoney types:
'cash': Physical cash'bank': Bank account'crypto': Cryptocurrency
Returns: true if successful
Player.Functions.RemoveMoney(moneytype, amount, reason)
Removes money from the player.
local Player = QBCore.Functions.GetPlayer(source)
local success = Player.Functions.RemoveMoney('bank', 500, 'Store purchase')
if success then
TriggerClientEvent('QBCore:Notify', source, 'Paid $500 from bank', 'success')
else
TriggerClientEvent('QBCore:Notify', source, 'Insufficient funds', 'error')
endReturns: true if successful, false if insufficient funds
Player.Functions.SetMoney(moneytype, amount, reason)
Sets the player’s money to a specific amount.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.SetMoney('cash', 5000, 'Admin adjustment')Player.Functions.GetMoney(moneytype)
Gets the player’s current money amount.
local Player = QBCore.Functions.GetPlayer(source)
local cash = Player.Functions.GetMoney('cash')
local bank = Player.Functions.GetMoney('bank')
print('Player has $' .. cash .. ' cash and $' .. bank .. ' in bank')Returns: Current amount for the specified money type
Job Functions
Player.Functions.SetJob(job, grade)
Sets the player’s job.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.SetJob('police', 0)
TriggerClientEvent('QBCore:Notify', source, 'You are now a police officer', 'success')Parameters:
job: Job name fromqb-core/shared/jobs.luagrade: Job grade level (0 = lowest)
Player.Functions.SetGang(gang, grade)
Sets the player’s gang.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.SetGang('lostmc', 1)Player.Functions.SetJobDuty(onDuty)
Sets the player’s duty status.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.SetJobDuty(true)
-- Check if on duty
local isOnDuty = Player.PlayerData.job.ondutyMetadata Functions
Player.Functions.SetMetaData(meta, val)
Sets player metadata.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.SetMetaData('hunger', 75)
Player.Functions.SetMetaData('thirst', 50)
-- For stress (QBCore specific)
Player.Functions.SetMetaData('stress', 25)Player.Functions.GetMetaData(meta)
Gets player metadata.
local Player = QBCore.Functions.GetPlayer(source)
local hunger = Player.Functions.GetMetaData('hunger')
local stress = Player.Functions.GetMetaData('stress')
print('Player hunger:', hunger, 'stress:', stress)Player.Functions.AddMetaData(meta, val)
Adds to existing metadata value.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.AddMetaData('stress', 10) -- Add 10 stressCharacter Functions
Player.Functions.UpdatePlayerData()
Saves player data to database and syncs with client.
local Player = QBCore.Functions.GetPlayer(source)
-- After making changes to PlayerData
Player.PlayerData.charinfo.phone = newPhoneNumber
Player.Functions.UpdatePlayerData()Player.Functions.SetPlayerData(key, val)
Sets specific player data.
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.SetPlayerData('charinfo', {
firstname = 'John',
lastname = 'Doe',
birthdate = '1990-01-01',
gender = 0,
backstory = 'A mysterious person',
nationality = 'USA',
phone = '555-0123',
account = 'US00QBCore000000000'
})Server Utility Functions
QBCore.Functions.GetCoords(entity)
Gets entity coordinates in vector3 format.
local coords = QBCore.Functions.GetCoords(GetPlayerPed(source))
print('Player coordinates:', coords.x, coords.y, coords.z)Returns: vector3 coordinates
QBCore.Functions.GetIdentifier(source, idtype)
Gets player identifier by type.
local license = QBCore.Functions.GetIdentifier(source, 'license')
local discord = QBCore.Functions.GetIdentifier(source, 'discord')
local steam = QBCore.Functions.GetIdentifier(source, 'steam')
print('Player license:', license)ID Types:
'license': FiveM license'discord': Discord ID'steam': Steam ID'ip': IP address
QBCore.Functions.GetSource(identifier)
Gets player source by identifier.
local source = QBCore.Functions.GetSource('license:1234567890abcdef')
if source then
print('Player is online with source:', source)
endReturns: Player source or nil
QBCore.Functions.GetPlayers()
Gets all connected player sources.
local players = QBCore.Functions.GetPlayers()
for i, source in pairs(players) do
print('Connected player:', source)
endReturns: Array of player sources
QBCore.Functions.CreateCallback(name, cb)
Creates a server callback that can be triggered from client.
QBCore.Functions.CreateCallback('server:getPlayerMoney', function(source, cb, moneyType)
local Player = QBCore.Functions.GetPlayer(source)
if Player then
cb(Player.Functions.GetMoney(moneyType))
else
cb(0)
end
end)Usage from client:
QBCore.Functions.TriggerCallback('server:getPlayerMoney', function(money)
print('Player has $' .. money .. ' cash')
end, 'cash')Client Utility Functions
QBCore.Functions.GetPlayerData()
Gets the local player’s data (client-side only).
local PlayerData = QBCore.Functions.GetPlayerData()
print('Local player:', PlayerData.charinfo.firstname)
-- Access specific data
local job = PlayerData.job
local money = PlayerData.money
local metadata = PlayerData.metadataQBCore.Functions.GetCoords(entity)
Gets coordinates of an entity (client-side).
local playerPed = PlayerPedId()
local coords = QBCore.Functions.GetCoords(playerPed)
print('I am at:', coords.x, coords.y, coords.z)QBCore.Functions.SpawnVehicle(model, coords, warpPed)
Spawns a vehicle (client-side).
QBCore.Functions.SpawnVehicle('adder', function(veh)
SetVehicleNumberPlateText(veh, 'QBCORE')
TaskWarpPedIntoVehicle(PlayerPedId(), veh, -1)
-- Vehicle spawned successfully
print('Vehicle spawned:', veh)
end, coords, true)QBCore.Functions.DeleteVehicle(vehicle)
Deletes a vehicle (client-side).
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
if vehicle ~= 0 then
QBCore.Functions.DeleteVehicle(vehicle)
endQBCore.Functions.GetPlate(vehicle)
Gets formatted license plate from vehicle.
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
if vehicle ~= 0 then
local plate = QBCore.Functions.GetPlate(vehicle)
print('Vehicle plate:', plate)
endQBCore.Functions.GetVehicleLabel(model)
Gets display name for vehicle model.
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
if vehicle ~= 0 then
local model = GetEntityModel(vehicle)
local label = QBCore.Functions.GetVehicleLabel(model)
print('You are in a:', label)
endQBCore.Functions.TriggerCallback(name, cb, …)
Triggers a server callback from client.
QBCore.Functions.TriggerCallback('server:getPlayerMoney', function(money)
print('Server returned money amount:', money)
-- Use the callback result
if money >= 1000 then
-- Player has enough money
TriggerServerEvent('shop:server:purchaseItem', 'expensive_item')
end
end, 'bank')Math and Utility Functions
QBCore.Shared.Round(value, numDecimalPlaces)
Rounds a number to specified decimal places.
local rounded = QBCore.Shared.Round(123.456789, 2)
print(rounded) -- Output: 123.46QBCore.Shared.Trim(value)
Removes whitespace from string.
local trimmed = QBCore.Shared.Trim(' Hello World ')
print('"' .. trimmed .. '"') -- Output: "Hello World"QBCore.Functions.GetStreetLabel()
Gets current street name (client-side).
local street = QBCore.Functions.GetStreetLabel()
print('Current street:', street)QBCore.Functions.GetZoneLabel()
Gets current zone name (client-side).
local zone = QBCore.Functions.GetZoneLabel()
print('Current zone:', zone)QBCore.Functions.GetCardinalDirection()
Gets cardinal direction player is facing.
local direction = QBCore.Functions.GetCardinalDirection()
print('Facing:', direction) -- Output: North, South, East, WestCommand Functions
🔗 For more details on registering and managing commands, read the Commands API reference.
QBCore.Commands.Add(name, help, arguments, argsrequired, callback, permission)
Creates a chat command.
QBCore.Commands.Add('giveitem', 'Give an item to a player', {
{name = 'id', help = 'Player ID'},
{name = 'item', help = 'Item name'},
{name = 'amount', help = 'Amount to give'}
}, true, function(source, args)
local Player = QBCore.Functions.GetPlayer(source)
local target = QBCore.Functions.GetPlayer(tonumber(args[1]))
if target then
target.Functions.AddItem(args[2], tonumber(args[3]))
TriggerClientEvent('QBCore:Notify', source, 'Item given successfully', 'success')
end
end, 'admin')QBCore.Commands.Refresh(source)
Refreshes commands for a player.
QBCore.Commands.Refresh(source)Debug and Development Functions
QBCore.Debug(resource)
Prints debug information for development.
QBCore.Debug('My debug message from ' .. GetCurrentResourceName())Master QBCore development! These functions provide the foundation for creating powerful and integrated scripts within the QBCore framework ecosystem.
For event handling, see our QBCore Events reference guide.