Skip to content

Exports

This page documents the public exports, callbacks, and events that other scripts can use to integrate with ars_police. Only features intended for cross-resource use are listed here.

Returns the number of police officers currently online.

---@return integer Number of police officers online
local policeCount = exports['ars_police']:GetPoliceOnline()

Example:

local count = exports['ars_police']:GetPoliceOnline()
if count >= 2 then
-- Proceed with crime event
end

Alias for GetPoliceOnline.

---@return integer Number of police officers online
local policeCount = exports['ars_police']:NumberOfPoliceOnline()

Resets a player’s police-related state bags (cuffed, escorting, hands up, etc.). Useful for cleanup when a player disconnects or when overriding state from another resource.

---@param playerId number Server ID of the player
exports['ars_police']:ResetPlayerState(playerId)

Example:

exports['ars_police']:ResetPlayerState(targetId)

Jails a player using the configured jail system.

---@param target number Server ID of the player to jail
---@param time number Jail time in minutes
exports['ars_police']:JailPlayer(target, time)

Example:

exports['ars_police']:JailPlayer(1, 30)

Checks if the local player is currently handcuffed.

---@return boolean
local isCuffed = exports['ars_police']:IsHandcuffed()

Example:

if exports['ars_police']:IsHandcuffed() then
-- Restrict certain actions
end

Opens the search menu for a nearby player. Requires the player to be cuffed and within range.

exports['ars_police']:SearchPlayer()

Starts escorting a nearby cuffed player.

---@param targetId number Server ID of the player to escort (optional, targets nearest)
exports['ars_police']:EscortPlayer(targetId)

Picks up a nearby player for carrying (kidnap mechanic).

exports['ars_police']:KidnapPlayer()

Opens the jail dialog menu showing all nearby players that can be jailed.

exports['ars_police']:JailDialog()

Opens the police outfit selection menu for the player’s job.

exports['ars_police']:OpenOutfitSelectionMenu()

Opens the clothing room menu.

exports['ars_police']:OpenClotheRoomMenu()

Upgrades a vehicle to maximum performance specs.

---@param vehicle number Vehicle handle
exports['ars_police']:PerformanceUpgradeVehicle(vehicle)

Example:

local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
exports['ars_police']:PerformanceUpgradeVehicle(vehicle)

Called when a player attempts to purchase from the armory.

  • Registered on: server
lib.callback.register('ars_police:canPurchase', function(source, data)
-- data contains: id, itemId, grade, quantity
-- Return true to allow purchase, false to deny
return true
end)

Retrieves player name data for a list of player IDs.

  • Registered on: server
lib.callback.register('ars_police:getPlayerData', function(source, data)
-- data: array of player ID tables {id = number}
-- Returns array of {id, name}
return playerData
end)

Grants a weapon license to a player.

  • Registered on: server
lib.callback.register('ars_police:GrantLicense', function(source, id)
-- Returns player name if successful, false if already has license
return result
end)

Revokes a weapon license from a player.

  • Registered on: server
lib.callback.register('ars_police:RevokeLicense', function(_source, id, license)
-- Returns true if revoked, false if not found
return true
end)

Checks if a player is currently dead.

  • Registered on: server
lib.callback.register('ars_police:IsPlayerDead', function(source, id)
return true -- or false
end)

Checks if a player has a specific item.

  • Registered on: server
lib.callback.register('ars_police:itemCheck', function(source, item)
-- Returns item count (0 if not found)
return count
end)

Retrieves player identity information (name, job, DOB, licenses).

  • Registered on: server
lib.callback.register('ars_police:CheckPlayerId', function(source, target)
-- Returns identity data table
return identityData
end)

Gets the owner name of a vehicle by plate number.

  • Registered on: server
lib.callback.register('ars_police:GetVehicleOwner', function(source, plate)
-- Returns owner name string or false if not found
return ownerName
end)

Gets a player’s framework identifier.

  • Registered on: server
lib.callback.register('ars_police:GetIdentifier', function(source, target)
-- Returns identifier string or false
return identifier
end)

Toggle a player’s duty status.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:ToggleDuty', job, grade)

Put a player into the nearest vehicle.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:InVehiclePlayer', targetId)

Remove a player from their vehicle.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:OutVehiclePlayer', targetId)

Bill a player using pefcl integration.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:BillPlayer', target, job, amount)

Impound a vehicle with an optional depot fee.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:server:Impound', plate, price)

Permanently seize a vehicle (state = 2). Includes optional webhook logging.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:server:SeizeVehicle', plate, reason, netid)

Notify a player they are being searched.

  • Side: server
  • Usage: trigger
TriggerServerEvent('ars_police:SearchNotification', target)

Triggers the jail teleport and sentence flow on the client.

  • Side: client
  • Usage: trigger
TriggerEvent('ars_police:SendPlayerToJail')

Triggers the community service flow on the client.

  • Side: client
  • Usage: trigger
TriggerEvent('ars_police:SendPlayerToCommunityService')

Note: This guide is written by a third party. If you find any incorrect or outdated information, please contact us on Discord so we can update it for you.