Skip to main content

Server Exports

info

Some of these exports use custom types. You can learn more about those in the Types section of this resource.

CreateJob​

Adds or overwrite the given job.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:CreateJob(jobName, job)

Returns:

  • success: boolean
  • message: string

CreateJobs​

Adds or overwrites the given jobs.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:CreateJobs(jobs)

Returns:

  • success: boolean
  • message: string

RemoveJob​

Removes the given job.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:RemoveJob(jobName)
  • jobName: string

Returns:

  • success: boolean
  • message: 'success' | 'invalid_job_name' | 'job_not_exists'

CreateGangs​

Adds or overwrites the given gangs.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:CreateGangs(gangs)

RemoveGang​

Removes the given gang.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:RemoveGang(gangName)
  • gangName: string

Returns:

  • success: boolean
  • message: 'success' | 'invalid_gang_name' | 'gang_not_exists'

GetCoreVersion​

Returns the current version of qbx_core set in its fxmanifest.

exports.qbx_core:GetCoreVersion(InvokingResource)
  • InvokingResource: string

Returns: string

ExploitBan​

Bans the given player for the given reason.

exports.qbx_core:ExploitBan(playerId, origin)
  • playerId: integer
  • origin: string

GetSource​

Returns the ID of the player that has the given identifier, or 0 if the player is not in the server.

exports.qbx_core:GetSource(identifier)
  • identifier: string

Returns: integer

GetUserId​

Returns the userId of the player that has the given identifier, or 0 if the player is not in the server.

exports.qbx_core:GetUserId(identifier)
  • identifier: string

Returns: integer

GetPlayer​

Returns the Player object for the given player ID or identifier.

exports.qbx_core:GetPlayer(source)
  • source: integer

Returns: Player?

GetPlayerByCitizenId​

Returns the Player object for the given citizenid.

exports.qbx_core:GetPlayerByCitizenId(citizenid)
  • citizenid: string

Returns: Player?

GetPlayerByUserId​

Returns the Player object for the given userId.

exports.qbx_core:GetPlayerByUserId(citizenid)
  • userId: string

Returns: Player?

GetPlayerByPhone​

Returns the Player object for the given phone number.

exports.qbx_core:GetPlayerByPhone(number)
  • number: string

Returns: Player?

GetQBPlayers​

Returns the player ID to Player object map of logged-in players.

exports.qbx_core:GetQBPlayers()

Returns: table<integer, Player>

GetPlayersData​

Returns all PlayerData tables for all active players.

exports.qbx_core:GetPlayersData()

Returns: PlayerData[]

SetPlayerData​

Sets a specific players PlayerData key to a new value.

exports.qbx_core:SetPlayerData(identifier, key, value)
  • identifier: source | citizenid
  • key: string
  • value: any

UpdatePlayerData​

Triggers the players PlayerData to update.

exports.qbx_core:UpdatePlayerData(identifier)
  • identifier: source | citizenid

GetMetadata​

Gets a specific players metadata value.

exports.qbx_core:GetMetadata(identifier, metadata)
  • identifier: source | citizenid
  • metadata: string

SetMetadata​

Sets a specific players metadata key to a new value.

exports.qbx_core:SetMetadata(identifier, metadata, value)
  • identifier: source | citizenid
  • metadata: string
  • value: any

SetCharInfo​

Sets a specific players character information.

exports.qbx_core:SetCharInfo(identifier, charInfo, value)
  • identifier: source | citizenid
  • charInfo: string
  • value: any

GetDutyCountJob​

Returns the amount of players that are on-duty in the given job, and a list of their IDs.

exports.qbx_core:GetDutyCountJob(job)
  • job: string

Returns:

  • count: integer
  • players: integer[]

GetDutyCountType​

Returns the amount of players that are on-duty in the given job type, and a list of their IDs.

exports.qbx_core:GetDutyCountType(jobType)
  • jobType: string

Returns:

  • count: integer
  • players: integer[]

GetBucketObjects​

Returns the player to bucket and entity to bucket maps.

exports.qbx_core:GetBucketObjects()

Returns:

  • playerBuckets: table<integer, integer>
  • entityBuckets: table<integer, integer>

SetPlayerBucket​

Sets the given player to the given bucket.
Returns false if one of the parameters is nil, and true otherwise.

exports.qbx_core:SetPlayerBucket(source, bucket)
  • source: integer
  • bucket: integer

Returns: boolean

SetEntityBucket​

Sets the given entity (e.g. ped, vehicle, prop, etc.) to the given bucket.
Returns false if one of the parameters is nil, and true otherwise.

exports.qbx_core:SetEntityBucket(entity, bucket)
  • entity: integer
  • bucket: integer

Returns: boolean

GetPlayersInBucket​

Returns a list of all the players in the given bucket, or false if there are no known player buckets.

exports.qbx_core:GetPlayersInBucket(bucket)
  • bucket: integer

Returns: integer[] | false

GetEntitiesInBucket​

Returns a list of all the entities in the given bucket, or false if there are no known entity buckets.

exports.qbx_core:GetEntitiesInBucket(bucket)
  • bucket: integer

Returns: integer[] | false

CreateUseableItem​

Registers the given function to run when the given item is used.

exports.qbx_core:CreateUseableItem(item, data)
  • item: string
  • data: fun(source: integer, item: unknown)

CanUseItem​

Returns the data set to run when the given item is used, or nil if none exists.

exports.qbx_core:CanUseItem(item)
  • item: string

Returns: unknown

IsWhitelisted​

Returns whether the given player is whitelisted.

exports.qbx_core:IsWhitelisted(source)
  • source: integer

Returns: boolean

AddPermission​

warning

Deprecated as of v1.8.0. Use ox_lib ACE permissions instead

Adds the given permission to the given player.

exports.qbx_core:AddPermission(source, permission)
  • source: integer
  • permission: string

RemovePermission​

warning

Deprecated as of v1.8.0. Use ox_lib ACE permissions instead

Removes the given permission from the given player.

exports.qbx_core:RemovePermission(source, permission)
  • source: integer
  • permission: string

HasPermission​

warning

Deprecated as of v1.8.0. Use ACE permissions instead.

Returns whether the given player has the given permission.

exports.qbx_core:HasPermission(source, permission)
  • source: integer
  • permission: string

Returns: boolean

GetPermission​

warning

Deprecated as of v1.8.0. Use ACE permissions instead.

Gets the given player's permissions.

exports.qbx_core:GetPermission(source)
  • source: integer

Returns: table<string, boolean>

IsOptin​

Returns whether the given player is optin to admin reports.

exports.qbx_core:IsOptin(source)
  • source: integer

Returns: boolean

ToggleOptin​

Opts the given player in and out of admin reports.

exports.qbx_core:ToggleOptin(source)
  • source: integer

IsPlayerBanned​

Returns whether the given player is banned, and a message to be shown to the player.

exports.qbx_core:IsPlayerBanned(source)
  • source: integer

Returns:

  • banned: boolean
  • playerMessage: string
    • A message written to be shown to the player.

Notify​

info

See lib.notify for more details.

Text box popup for the given player which disappears after a given amount of time.

exports.qbx_core:Notify(source, text, notifyType, duration, subTitle, notifyPosition, notifyStyle, notifyIcon, notifyIconColor)
  • source: integer
  • text: table | string
    • The text of the notification.
    • Can be a string, or a table containing:
      • text?: string
      • caption?: string
  • notifyType?: 'inform' | 'error' | 'success' | 'warning'
    • Default: 'inform'
  • duration?: integer
    • The duration in milliseconds for which the notification will remain on screen.
    • Default: 5000
  • subTitle?: string
    • Additional text under the title.
  • notifyPosition?: 'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left' | 'center-right' | 'center-left'
    • Default: top-right (changable in config)
  • notifyStyle?: table
  • notifyIcon?: string
    • Font Awesome 6 icon name.
  • notifyIconColor?: string
    • Custom color for notifyIcon.

Login​

Logs into an existing character or creates a new one, and returns whether it was successful.
This is the preferred function for creating characters if the owning player is online.

exports.qbx_core:Login(source, citizenid, newData)

Returns: boolean

GetOfflinePlayer​

Gets a Player object using the given citizenid and returns it, or nil if nothing was found.

exports.qbx_core:GetOfflinePlayer(citizenid)
  • citizenid: string

Returns: Player?

Logout​

Logs the given player out of their current character.

exports.qbx_core:Logout(source)
  • source: integer

CreatePlayer​

Creates a new character and saves it to the database.

exports.qbx_core:CreatePlayer(playerData, offline)
  • playerData: PlayerData
  • offline: boolean

Returns: Player

Save​

Save the given player's info to the database.

exports.qbx_core:Save(source)
  • source: integer

SaveOffline​

Saves the given PlayerData to the database.

exports.qbx_core:SaveOffline(playerData)

DeleteCharacter​

Delete a character permanently by the given citizenid.

warning

This action cannot be undone.

exports.qbx_core:DeleteCharacter(citizenid)
  • citizenid: string

GenerateUniqueIdentifier​

Returns unique values for player identifiers.

exports.qbx_core:GenerateUniqueIdentifier(type)
  • type: 'citizenid' | 'AccountNumber' | 'PhoneNumber' | 'FingerId' | 'WalletId' | 'SerialNumber'

Returns: string | number

UpsertJobData​

Inserts or overwrites fields of the given job temporarily.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:UpsertJobData(jobName, data)

UpsertGangData​

Inserts or overwrites fields of the given gang temporarily.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:UpsertGangData(gangName, data)

UpsertJobGrade​

Inserts or overwrites fields of the given job's grade temporarily.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:UpsertJobGrade(jobName, grade, data)

UpsertGangGrade​

Inserts or overwrites fields of the given gang's grade temporarily.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:UpsertGangGrade(gangName, grade, data)

RemoveJobGrade​

Removes the given job's grade temporarily.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:RemoveJobGrade(jobName, grade)
  • jobName: string
  • grade: integer

RemoveGangGrade​

Removes the given gang's grade temporarily.

warning

This is a runtime-only change. This won't persist across restarts and won't modify files.

exports.qbx_core:RemoveGangGrade(gangName, grade)
  • gangName: string
  • grade: integer

SetJob​

Overwrites current primary job with a new job. Removing the player from their current primary job.

exports.qbx_core:SetJob(identifier, jobName, grade)
  • identifier: source | citizenid
  • jobName: string
  • grade: integer

SetJobDuty​

Sets the player's duty status.

exports.qbx_core:SetJobDuty(identifier, onDuty)
  • identifier: source | citizenid
  • onDuty: boolean

SetPlayerPrimaryJob​

Sets the given player's primary job to the given job, only if they already have it.

exports.qbx_core:SetPlayerPrimaryJob(citizenid, jobName)
  • citizenid: string
  • jobName: string

AddPlayerToJob​

Adds the given player to the given job, or overwrites their grade if they're already in that job.

exports.qbx_core:AddPlayerToJob(citizenid, jobName, grade)
  • citizenid: string
  • jobName: string
  • grade: integer

RemovePlayerFromJob​

Removes the given player from the given job. Also updates the given player's primary job to unemployed if the given job is the player's primary.

exports.qbx_core:RemovePlayerFromJob(citizenid, jobName)
  • citizenid: string
  • jobName: string

SetGang​

Overwrites current primary gang with a new job. Removing the player from their current primary gang.

exports.qbx_core:SetGang(identifier, gangName, grade)
  • identifier: source | citizenid
  • gangName: string
  • grade: integer

SetPlayerPrimaryGang​

Sets the given player's primary gang to the given gang, only if they already have it.

exports.qbx_core:SetPlayerPrimaryGang(citizenid, gangName)
  • citizenid: string
  • gangName: string

AddPlayerToGang​

Adds the given player to the given gang, or overwrites their grade if they're already in that gang.

exports.qbx_core:AddPlayerToGang(citizenid, gangName, grade)
  • citizenid: string
  • gangName: string
  • grade: integer

RemovePlayerFromGang​

Removes the given player from the given gang. Also updates the given player's primary gang to no gang if the given gang is the player's primary.

exports.qbx_core:RemovePlayerFromGang(citizenid, gangName)
  • citizenid: string
  • gangName: string

HasPrimaryGroup​

Checks if the given player's current Job/Gang or citizenid matches against a single group, array of group, or group/grade or list of citizenids. Does not check if player is on or off duty

exports.qbx_core:HasPrimaryGroup(source, filter)
  • source: integer
  • filter: string or string[] or table<string, number>
    • A group/citizenid, array of groups/citizenids, or pairs of groups-grades required to pass the check.

Returns:

  • success: boolean

HasGroup​

Checks if the given player's list of groups (Jobs/Gangs) or citizenid matches against a single group, array of group, or group/grade or list of citizenids. Does not check if player is on or off duty for any particular filter

exports.qbx_core:HasGroup(source, filter)
  • source: integer
  • filter: string or string[] or table<string, number>
    • A group/citizenid, array of groups/citizenids, or pairs of groups-grades required to pass the check.

Returns:

  • success: boolean

GetGroups​

Returns a combined table of all the groups a given player currently has.

exports.qbx_core:GetGroups(source)
  • source: integer

Returns:

  • table<string, number>

IsGradeBoss​

Returns boolean on if a given group/grade combination is a boss grade. Currently this is based on the presence of a isboss boolean being true in the grade definition

exports.qbx_core:IsGradeBoss(group, grade)
  • group: string
  • grade: integer

Returns:

  • success: boolean

GetGroupMembers​

Returns a table of all citizenids and associated grade for a given group and type

exports.qbx_core:GetGroupMembers(group, type)
  • group: string
  • type: job | gang

Returns:

  • table<citizenid, number>

DeleteVehicle​

Deletes the vehicle entity from the game world. Preferred over the native DeleteEntity function as DeleteVehicle will remove persistence from the vehicle to allow it to be deleted.

exports.qbx_core:DeleteVehicle(entity)
  • entity: number

EnablePersistence​

Marks a vehicle to be persisted, which will respawn the vehicle with the same properties if it is deleted by the server. Idempotent.

exports.qbx_core:EnablePersistence(entity)
  • entity: number

DisablePersistence​

Removes the persistence attribute from a vehicle, allowing it to be deleted without being respawned. Idempotent. No-op if the vehicle is not already persisted.

exports.qbx_core:DisablePersistence(entity)
  • entity: number

GetVehicleClass​

Equivalent to GetVehicleClass client native, but for the server. Works by asking a random client for all the vehicle models and their classes, then caching this while the server is online. Due to this, may not work if there is no client on to query.

exports.qbx_core:GetVehicleClass(hash)
  • hash: number

SearchPlayers​

Searches both online and offline players on a set of filters and returns players which match all filtered values.

Filters:

  • license?: license string. i.e. 'license2:xxx'
  • job?: name of the job
  • gang?: name of the gang
  • metadata?: table<string, number|string|boolean>
    • strict?: boolean if true, metadata number values match on exact equivalence, else numbers match if value is greater than or equal to filter.
exports.qbx_core:SearchPlayers(filters)
  • filters: table<string, any>

Returns:

Example Usage​

Searching for the value of a nested metadata key

local licensedDrivers = exports.qbx_core:SearchPlayers({
metadata = {
['licences.driver'] = true
}
})

CreateSessionId​

Sets the sessionId statebag on an entity to a unique number. SessionIds are useful in cases where an entity could be deleted and recreated but needs a stable identifier such as vehicle persistence.

exports.qbx_core:CreateSessionId(entity)
  • entity: integer

Returns:

  • sessionId: integer

GetMoney​

Gets the specific money type of a player.

exports.qbx_core:GetMoney(identifier, moneyType)
  • identifier: source | citizenid
  • moneyType: 'cash' | 'bank' | 'crypto'

Returns:

  • amount: number or false if invalid money type or unable to find player

AddMoney​

Adds the specific money type to a player.

exports.qbx_core:AddMoney(identifier, moneyType, amount, reason)
  • identifier: source | citizenid
  • moneyType: 'cash' | 'bank' | 'crypto'
  • amount: number
  • reason?: string

Returns:

  • success: boolean

RemoveMoney​

Removes the specific money type from a player.

exports.qbx_core:RemoveMoney(identifier, moneyType, amount, reason)
  • identifier: source | citizenid
  • moneyType: 'cash' | 'bank' | 'crypto'
  • amount: number
  • reason?: string

Returns:

  • success: boolean

SetMoney​

Sets the specific money type for a player.

exports.qbx_core:SetMoney(identifier, moneyType, amount, reason)
  • identifier: source | citizenid
  • moneyType: 'cash' | 'bank' | 'crypto'
  • amount: number
  • reason?: string

Returns:

  • success: boolean