Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Learn more about our official integrations with Sonoran Radio!











Sonoran Radio integrates with FiveM inventory systems for physical radio and scanner items.
Sonoran Radio is partnered with Big Daddy Scripts to offer a FREE copy of their radio animations script!


-- Located in the Radio's config.lua
Config.RadioItem = { -- Note: Changes to this item will require a server restart to take effect
name = 'sonoran_radio', -- Item name in your inventory | STRING
label = 'Sonoran Radio', -- Label for the item in your inventory | STRING
weight = 1, -- Weight of the item in your inventory | INT
description = 'Communicate with others through the Sonoran Radio', -- Description of the item in your inventory | STRING
}
Config.ScannerItem = {
name = 'sonoran_radio_scanner', -- Item ID
label = 'Sonoran Radio Scanner', -- Label for the item in your inventory
weight = 1, -- Weight of the item in your inventory
description = 'Listen to radio chatter with the Sonoran Radio Scanner', -- Description of the item in your inventory
}




['sonoran_radio_scanner'] = {
label = 'Sonoran Radio Scanner',
description = 'Listen to radio chatter with the Sonoran Radio Scanner',
weight = 1,
client = {
image = 'radio.png',
remove = function(total)
if total < 1 then
TriggerServerEvent('SonoranRadio::DropItem::Scanner')
end
end
}
},
['sonoran_radio'] = {
label = 'Sonoran Radio',
description = 'Communicate with others through the Sonoran Radio',
weight = 1,
client = {
image = 'radio.png'
}
},# Start the sonoranradio resource
ensure sonoranradio
# Permissions for auto-updater (REQUIRED)
add_ace resource.sonoranradio command allow
add_ace resource.sonoranradio_updatehelper command allow
# ----------------NEW----------------
# Big Daddy Radio Animation Script
ensure BigDaddy-RadioAnimationView Sonoran Radio on a working, in-vehicle 3D display!
radios.json Property Explanationradios.json# Start the Radio Display Resource
ensure sonoran-radiodisplay
# Grant permissions to the auto-updater
add_ace resource.sonoran-radiodisplay command allow
add_ace resource.sonoran-radiodisplay_helper command allowConfig = {}
Config.debug_mode = false -- Enable debug mode
Config.configuration_version = 1.0
Config.auto_update = true -- Enable auto updates
Config.lang = {
addNewRadioHelp = 'Open the menu to begin spawning a new in-car model model',
vehNotCompatible = 'This vehicle is not compatible with the in-car model placement system!',
vehAlrRadio = 'This vehicle already has a valid in-car radio!',
radioMenuHeader = 'Sonoran In-Car Radio',
creditsPanel = 'Made by',
spawningSubMenu = 'In-Car Radio Spawning',
attachingSubMenu = 'Attaching',
deletionSubMenu = 'Are you sure?',
radioAttachMenuButton = 'Attach In-Car Radio',
deleteMenuButton = 'Delete Current In-Car Radio',
spawnMenuButton = 'Spawn In-Car Radio',
deletionConfirmationButton = 'Yes, remove from all of these vehicles',
deletionCancelButton = 'Cancel',
deletionCancelled = 'In-Car Radio deletion cancelled',
noRadioFound = 'No In-Car Radio is in this vehicle!',
modelComboBox = 'Model:',
vehAlrRadioNoti = '~r~This vehicle already has an In-Car Radio of this type',
notInVeh = '~r~You must be in a vehicle!',
vehicleBone = 'Radio - Vehicle Bone',
object = "Object:",
vehicleBoneComboBox = 'Vehicle Bone',
objectName = 'Sonoran In-Car Radio',
attachButton = 'Attach',
detachButton = 'Detach',
confirmPlacementButton = 'Apply to all of this vehicle model',
cannotGoFaster = '~r~You cannot go any faster!',
cannotGoSlower = '~r~You cannot go any slower!',
}
Config.commands = {
carRadioMenu = 'radiodisplay',
restricted = false -- should the radio display menu be restricted?
}
Config.permissionMode = "ace" -- Available Options: ace, framework, custom
-- Ace Permissions Section --
Config.acePerms = {
aceObjectUseMenu = "sonoran.incarradio", -- Select the ace for placing new In-Car radios
aceObjectAdminUseMenu = "sonoran.incarradio.admin", -- Select the ace for placing new In-Car radios into all vehicles of the same model
}
-- Framework Related Settings --
Config.framework = {
frameworkType = "qb-core", -- This setting controls which framework is in use options are esx or qb-core
civilianJobNames = {"unemployed"}, -- An array of job names that should be allowed to use the radio menu
adminJobNames = {"admin"}, -- An array of job names that should be allowed to use the radio menu as an admin
useCivilianJobListAsBlacklist = false, -- This will treat the civilian job list as a blacklist rather than a whitelist
}
-- Configuration For Custom Permissions Handling --
Config.custom = {
checkPermsServerSide = true, -- If true the permission event will be sent out to the server side resource, this is recommended
permissionCheck = function(_, type) -- This function will always be called server side.
if type == 0 then -- Check permission to use the menu
return true or false -- Return true if they have admin, return false if they don't
end
end
}
Config.general = {
notificationType = "native", -- Available options: native, pNotify, okokNotify
useAllowlistAsBlacklist = false, -- If true, the Config.allowlistedCars will be treated as an blacklist
}
Config.allowlistedCars = {
"POLICE",
"POLICE2",
"POLICE3",
"POLICE4",
"FBI",
"FBI2",
"SHERIFF",
"SHERIFF2",
}





Speak to our AI dispatcher over the radio to manage CAD status, dispatch calls, run record lookups, and more.













Automate Sonoran Radio permissions with Sonoran CMS!







