Server Functions
This page will explain all exported functions from the SonoranCAD Core that can be used on the server side
CadIsPlayerLinked
Checks if a specific CAD API ID exists by sending a request to the API and executing a callback with the result.
exports.sonorancad.CadIsPlayerLinked(apiId, callback)apiId
string
The CAD API ID to check. If empty or nil, the function assumes the ID does not exist.
callback
function
A function executed after the check completes. Receives a single parameter: exists (boolean).
This function does not return a value directly. Instead, the result of the API check is passed to the callback function.
-- Example: Checking if a CAD API ID exists
local function onApiIdCheck(exists)
if exists then
print("API ID exists!")
else
print("API ID does not exist.")
end
end
exports.sonorancad.CadIsPlayerLinked("123456", onApiIdCheck) -- Output depends on API response
exports.sonorancad.CadIsPlayerLinked("", onApiIdCheck) -- Output: "API ID does not exist."GetPluginConfig
Provides access to a specific plugin's configuration using the plugin name.
exports.sonorancad.GetPluginConfig(submoduleName)submoduleName
string
The name of the submodule whose configuration is to be retrieved.
table or nil
A table containing the configuration for the specified plugin.
Returns
nilif the plugin name is invalid or if no configuration exists.
-- Example: Retrieving a plugin's configuration
local pluginConfig = exports.sonorancad.GetPluginConfig("callcommands")
if pluginConfig then
print("Plugin Config:", json.encode(pluginConfig))
else
print("Plugin not found or no configuration available.")
endGetUnitByPlayerId
Retrieves the unit information associated with a player based on their identifiers.
exports.sonorancad.GetUnitByPlayerId(player)player
PlayerSource
The player ID for whom the associated unit is being retrieved.
table or nil
A table representing the unit information for the player if found in
UnitCache.nilif no associated unit is found.
-- Example: Getting the unit associated with a player
local unit = GetUnitByPlayerId(1)
if unit then
print("Unit found:", json.encode(unit))
else
print("No unit associated with this player.")
endGetUnitCache
Returns the global UnitCache table containing unit data.
exports.sonorancad.GetUnitCache()None
table
The entire
UnitCachetable, which stores unit-related data.If
UnitCacheis empty or uninitialized, an empty table is returned.
-- Example: Retrieving and inspecting the UnitCache
local unitCache = exports.sonorancad.GetUnitCache()
if next(unitCache) then
print("UnitCache contains data:", json.encode(unitCache))
else
print("UnitCache is empty or uninitialized.")
end
registerEndpoints
Registers API endpoints for use with the sonorancad resource.
exports.sonorancad.registerEndpoints()None
This function does not return a value. It registers API endpoints with sonorancad.
-- Example: Registering the endpoints
exports.sonorancad.registerEndpoints()
print("SonoranCAD API endpoints registered.")
addBlip
Adds a new blip to the map using the SonoranCAD integration.
exports.sonorancad.addBlip(coords, colorHex, subType, toolTip, icon, dataTable, cb)coords
vec2 (table)
A table containing x and y coordinates for the blip location.
colorHex
string
The hexadecimal color code (e.g., "#FF0000") for the blip.
subType
string
The subtype of the blip (e.g., police, fire, etc.).
toolTop
string
The tooltip text that appears when hovering over the blip.
icon
string
The icon for the blip (e.g., a specific image or identifier for visual context).
dataTable
table
Additional data associated with the blip, stored in a custom table.
cb
function
(Optional) A callback function executed with the API response.
This function does not return a value directly. The response from the API request is passed to the cb callback function if provided.
-- Example: Adding a new blip to the map
exports.sonorancad.addBlip(
{ x = 123.45, y = 678.90 },
"#FF0000",
"police",
"Police Station",
"police-icon",
{ info = "Main Headquarters" },
function(response)
if response.success then
print("Blip successfully added!")
else
print("Failed to add blip:", response.error)
end
end
)addBlips
Adds multiple blips to the map using the SonoranCAD integration.
exports.sonorancad.addBlips(blips, cb)blips
table
A table containing multiple blip data objects to be added. (See addBlip for blip structure)
cb
function
(Optional) A callback function executed with the API response.
This function does not return a value directly. The response from the API request is passed to the cb callback function if provided.
-- Example: Adding multiple blips to the map
local blips = {
{
blip = {
id = -1,
subType = "police",
coordinates = { x = 123.45, y = 678.90 },
icon = "police-icon",
color = "#FF0000",
tooltip = "Police Station",
data = { info = "Main Headquarters" }
}
},
{
blip = {
id = -1,
subType = "fire",
coordinates = { x = 321.65, y = 987.10 },
icon = "fire-icon",
color = "#FFA500",
tooltip = "Fire Department",
data = { info = "Fire HQ" }
}
}
}
exports.sonorancad.addBlips(blips, function(response)
if response.success then
print("Blips successfully added!")
else
print("Failed to add blips:", response.error)
end
end)
removeBlip
Removes one or more blips from the map using the SonoranCAD integration.
exports.sonorancad.removeBlip(ids, cb)ids
table
A table containing the IDs of the blips to be removed.
cb
function
(Optional) A callback function executed with the API response.
This function does not return a value directly. The response from the API request is passed to the cb callback function if provided.
-- Example: Removing blips by their IDs
local blipIds = { 101, 102, 103 }
exports.sonorancad.removeBlip(blipIds, function(response)
if response.success then
print("Blips successfully removed!")
else
print("Failed to remove blips:", response.error)
end
end)
modifyBlipd
Modifies an existing blip's data on the map using the SonoranCAD integration.
exports.sonorancad.modifyBlipd(blipId, dataTable)blipId
number
The unique ID of the blip to be modified.
This function does not return a value. The request is sent to the MODIFY_BLIP endpoint.
-- Example: Modifying an existing blip's data
local blipId = 101
local newData = {
color = "#00FF00",
tooltip = "Updated Tooltip",
coordinates = { x = 200.0, y = 300.0 }
}
exports.sonorancad.modifyBlipd(blipId, newData)
print("Blip modification request sent.")
getBlips
Fetches the list of all active blips from the SonoranCAD system.
exports.sonorancad.getBlips(cb)cb
function
(Optional) A callback function executed with the API response containing the blips.
This function does not return a value directly. The response from the API request is passed to the cb callback function if provided.
-- Example: Fetching all active blips
exports.sonorancad.getBlips(function(response)
if response.success then
print("Active Blips:", json.encode(response.data))
else
print("Failed to fetch blips:", response.error)
end
end)
removeWithSubtype
Removes all blips of a specific subtype from the map using the SonoranCAD system.
exports.sonorancad.removeWithSubtype(subType, cb)subType
string
The subtype of the blips to be removed (e.g., police, fire, etc.).
cb
function
(Optional) A callback function executed with the API response containing the blips.
This function does not return a value directly. The response from the removeBlip API request is passed to the cb callback function if provided.
-- Example: Removing all police blips
exports.sonorancad.removeWithSubtype("police", function(response)
if response.success then
print("Police blips successfully removed!")
else
print("Failed to remove blips:", response.error)
end
end)
call911
The call911 function facilitates the creation of a 911 emergency call within the SonoranCAD system by sending a structured API request.
exports.sonorancad.call911(caller, location, description, postal, plate, cb, coords, customMeta, deleteAfter)caller
string
Name of the individual initiating the call.
location
string
Description of the call's location (e.g., street address).
description
string
Detailed information about the emergency situation.
postal
string
Postal code corresponding to the call's location.
plate
string
(Optional) License plate number associated with the call, if applicable.
cb
function
(Optional) Callback function to handle the API response.
coords
table
A table containing the X and Y coordinates of the emergency call's location, typically sourced from in-game player or vehicle position. This is used to place the call accurately on the live map in CAD systems or dispatch plugins.
customMeta
table
A flexible table for including any custom metadata relevant to the emergency call.
deleteAfter
int
Number of minutes to automatically remove the call from CAD after
This function does not return a value directly. The response from the API request is passed to the cb callback function, if provided.
-- Example: Initiating a 911 call
exports.sonorancad.call911(
"Jane Doe",
"1234 Elm Street",
"There is a fire in the building.",
"56789",
nil,
function(response)
if response.success then
print("911 call successfully placed.")
else
print("Failed to place 911 call:", response.error)
end
end,
{ x = 84.49, y = 953.593 },
{
someMetaData = "yes this is metadata"
}
)addTempBlipData
Temporarily modifies a blip's data in the SonoranCAD system and then reverts it back to its original data after a specified duration.
exports.sonorancad.addTempBlipData(blipId, blipData, waitSeconds, returnToData)blipId
number
The unique ID of the blip to modify.
blipData
table
A table containing the temporary data to apply to the blip. See addBlip for blip data structure
waitSeconds
number
The duration in seconds for which the temporary data will be applied.
returnToData
table
A table containing the original data to revert the blip to after the duration expires. See addBlip for blip data structure
This function does not return a value directly. The data modification happens asynchronously using API requests.
-- Example: Temporarily modifying a blip's color and tooltip
local tempData = {
color = "#FF0000",
tooltip = "Temporary Alert"
}
local originalData = {
color = "#00FF00",
tooltip = "Original Tooltip"
}
exports.sonorancad.addTempBlipData(101, tempData, 10, originalData)
print("Blip temporarily modified; it will revert in 10 seconds.")
addTempBlipColor
Temporarily changes a blip's color in the SonoranCAD system and reverts it to its original color after a specified duration.
exports.sonorancad.addTempBlipData(blipId, color, waitSeconds, returnToColor)blipId
number
The unique ID of the blip to modify.
color
string
The temporary hexadecimal color code to apply to the blip (e.g., "#FF0000")
waitSeconds
number
The duration in seconds for which the temporary data will be applied.
returnToColor
string
The original hexadecimal color code to revert the blip to after the duration expires
This function does not return a value directly. The color modification happens asynchronously using API requests.
-- Example: Temporarily changing a blip's color to red
local tempColor = "#FF0000"
local originalColor = "#00FF00"
exports.sonorancad.addTempBlipColor(101, tempColor, 10, originalColor)
print("Blip color temporarily changed; it will revert in 10 seconds.")
remove911
Removes an active 911 call from the SonoranCAD system.
exports.sonorancad.remove911(callId)callId
string
The unique ID of the 911 call to be removed.
This function does not return a value. The removal of the 911 call is handled asynchronously through the API request.
-- Example: Removing a 911 call
local callId = "12345"
exports.sonorancad.remove911(callId)
print("Request to remove 911 call sent.")addCallNote
Adds a note to an existing 911 call in the SonoranCAD system.
exports.sonorancad.addCallNote(callId, note)callId
string
The unique ID of the 911 call to be removed.
note
string
The content of the note to be added, typically describing the caller.
This function does not return a value. The addition of the call note is handled asynchronously through the API request.
-- Example: Adding a note to an existing 911 call
local callId = "12345"
local note = "Caller reported a fire at the intersection of 5th and Main."
exports.sonorancad.addCallNote(callId, note)
print("Request to add note to 911 call sent.")
setCallPostal
Updates the postal code of an existing 911 call in the SonoranCAD system.
exports.sonorancad.setCallPostal(callId, postal)callId
string
The unique ID of the 911 call to be removed.
postal
string
The new postal code to assign to the 911 call.
This function does not return a value. The postal code update is handled asynchronously through the API request.
-- Example: Updating the postal code of an existing 911 call
local callId = "12345"
local postal = "56789"
exports.sonorancad.setCallPostal(callId, postal)
print("Request to update postal code sent.")performLookup
Performs a lookup in the SonoranCAD system for information associated with a license plate.
exports.sonorancad.performLookup(plate, cb)plate
string
The license plate number to look up in the SonoranCAD system.
cb
function
(Optional) A callback function executed with the API response.
This function does not return a value directly. The response from the API request is passed to the cb callback function if provided.
-- Example: Performing a lookup for a license plate
local plate = "ABC123"
exports.sonorancad.performLookup(plate, function(response)
if response.success then
print("Lookup successful:", json.encode(response.data))
else
print("Lookup failed:", response.error)
end
end)
createDispatchCall
Creates a dispatch call in SonoranCAD
exports.sonorancad.createDispatchCall(origin, status, priority, block, address, postal, title, code, primary, trackPrimary, description, notes, metaData, units, cb)origin
number
Source of the dispatch call (see ORIGIN enum in SonoranCAD documentation). Typically 0
status
number
Initial call status (see STATUS enum). Typically 0
priority
number
Call priority: 1 (high), 2 (medium), 3 (low).
block
string
Block or unit number of the incident location.
address
string
Full address or street description of the incident.
postal
string
Postal code corresponding to the call’s location.
title
string
Short title of the dispatch call (e.g., "Traffic Stop").
code
string
CAD signal or code (e.g., "10-39 - Traffic Stop").
primary
number
Identifier of the primary unit assigned to the call.
trackPrimary
boolean
Whether to track the primary unit on the live map.
description
string
Detailed description of the situation.
notes
array
Array of note objects related to the call. Optional.
metaData
array
Custom key-value metadata for internal tracking or display. Optional.
units
array
Array of unit API IDs (e.g., Steam hex IDs) to assign to the call.
cb
function
Callback function to handle the API response.
This function does not return a value directly. The data modification happens asynchronously using API requests.
-- Example: Creating a dispatch call
createDispatchCall(
0, -- origin
0, -- status
1, -- priority (1 = High)
"123", -- block number
"1234 Elm Street", -- address
"56789", -- postal
"Structure Fire", -- title
"10-70 - Structure Fire", -- code
456, -- primary unit ID
true, -- trackPrimary
"Caller reports flames visible from second floor window.", -- description
{}, -- notes (optional)
{ severity = "high", buildingType = "residential" }, -- custom metaData
{ "STEAM:110000112345678" }, -- units (API IDs)
function(response)
if response.success then
print("Dispatch call successfully created.")
else
print("Failed to create dispatch call:", response.error)
end
end
)Last updated
Was this helpful?

