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.
Server Exports
Section titled “Server Exports”GetPoliceOnline
Section titled “GetPoliceOnline”Returns the number of police officers currently online.
---@return integer Number of police officers onlinelocal policeCount = exports['ars_police']:GetPoliceOnline()Example:
local count = exports['ars_police']:GetPoliceOnline()if count >= 2 then -- Proceed with crime eventendNumberOfPoliceOnline
Section titled “NumberOfPoliceOnline”Alias for GetPoliceOnline.
---@return integer Number of police officers onlinelocal policeCount = exports['ars_police']:NumberOfPoliceOnline()ResetPlayerState
Section titled “ResetPlayerState”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 playerexports['ars_police']:ResetPlayerState(playerId)Example:
exports['ars_police']:ResetPlayerState(targetId)JailPlayer
Section titled “JailPlayer”Jails a player using the configured jail system.
---@param target number Server ID of the player to jail---@param time number Jail time in minutesexports['ars_police']:JailPlayer(target, time)Example:
exports['ars_police']:JailPlayer(1, 30)Client Exports
Section titled “Client Exports”IsHandcuffed
Section titled “IsHandcuffed”Checks if the local player is currently handcuffed.
---@return booleanlocal isCuffed = exports['ars_police']:IsHandcuffed()Example:
if exports['ars_police']:IsHandcuffed() then -- Restrict certain actionsendSearchPlayer
Section titled “SearchPlayer”Opens the search menu for a nearby player. Requires the player to be cuffed and within range.
exports['ars_police']:SearchPlayer()EscortPlayer
Section titled “EscortPlayer”Starts escorting a nearby cuffed player.
---@param targetId number Server ID of the player to escort (optional, targets nearest)exports['ars_police']:EscortPlayer(targetId)KidnapPlayer
Section titled “KidnapPlayer”Picks up a nearby player for carrying (kidnap mechanic).
exports['ars_police']:KidnapPlayer()JailDialog
Section titled “JailDialog”Opens the jail dialog menu showing all nearby players that can be jailed.
exports['ars_police']:JailDialog()OpenOutfitSelectionMenu
Section titled “OpenOutfitSelectionMenu”Opens the police outfit selection menu for the player’s job.
exports['ars_police']:OpenOutfitSelectionMenu()OpenClotheRoomMenu
Section titled “OpenClotheRoomMenu”Opens the clothing room menu.
exports['ars_police']:OpenClotheRoomMenu()PerformanceUpgradeVehicle
Section titled “PerformanceUpgradeVehicle”Upgrades a vehicle to maximum performance specs.
---@param vehicle number Vehicle handleexports['ars_police']:PerformanceUpgradeVehicle(vehicle)Example:
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)exports['ars_police']:PerformanceUpgradeVehicle(vehicle)Server Callbacks
Section titled “Server Callbacks”ars_police:canPurchase
Section titled “ars_police:canPurchase”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 trueend)ars_police:getPlayerData
Section titled “ars_police:getPlayerData”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 playerDataend)ars_police:GrantLicense
Section titled “ars_police:GrantLicense”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 resultend)ars_police:RevokeLicense
Section titled “ars_police:RevokeLicense”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 trueend)ars_police:IsPlayerDead
Section titled “ars_police:IsPlayerDead”Checks if a player is currently dead.
Registered on:server
lib.callback.register('ars_police:IsPlayerDead', function(source, id) return true -- or falseend)ars_police:itemCheck
Section titled “ars_police:itemCheck”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 countend)ars_police:CheckPlayerId
Section titled “ars_police:CheckPlayerId”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 identityDataend)ars_police:GetVehicleOwner
Section titled “ars_police:GetVehicleOwner”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 ownerNameend)ars_police:GetIdentifier
Section titled “ars_police:GetIdentifier”Gets a player’s framework identifier.
Registered on:server
lib.callback.register('ars_police:GetIdentifier', function(source, target) -- Returns identifier string or false return identifierend)Server Events
Section titled “Server Events”ars_police:ToggleDuty
Section titled “ars_police:ToggleDuty”Toggle a player’s duty status.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:ToggleDuty', job, grade)ars_police:InVehiclePlayer
Section titled “ars_police:InVehiclePlayer”Put a player into the nearest vehicle.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:InVehiclePlayer', targetId)ars_police:OutVehiclePlayer
Section titled “ars_police:OutVehiclePlayer”Remove a player from their vehicle.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:OutVehiclePlayer', targetId)ars_police:BillPlayer
Section titled “ars_police:BillPlayer”Bill a player using pefcl integration.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:BillPlayer', target, job, amount)ars_police:server:Impound
Section titled “ars_police:server:Impound”Impound a vehicle with an optional depot fee.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:server:Impound', plate, price)ars_police:server:SeizeVehicle
Section titled “ars_police:server:SeizeVehicle”Permanently seize a vehicle (state = 2). Includes optional webhook logging.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:server:SeizeVehicle', plate, reason, netid)ars_police:SearchNotification
Section titled “ars_police:SearchNotification”Notify a player they are being searched.
Side:serverUsage:trigger
TriggerServerEvent('ars_police:SearchNotification', target)Client Events
Section titled “Client Events”ars_police:SendPlayerToJail
Section titled “ars_police:SendPlayerToJail”Triggers the jail teleport and sentence flow on the client.
Side:clientUsage:trigger
TriggerEvent('ars_police:SendPlayerToJail')ars_police:SendPlayerToCommunityService
Section titled “ars_police:SendPlayerToCommunityService”Triggers the community service flow on the client.
Side:clientUsage: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.