🔁Migration Guides
In some cases, the auto-updater requires manual steps from one version to the next.
2.21.0 (AI Postal Callouts + Signal Jammers)
Version 2.21.0 adds a new configuration option for AI Pursuit Postal Callouts.
Open your existing
config.luaAdd the new properties (
withPostalandpostalResource) to yourConfig.autoCalloutsobject. The end result should look like:
Config.autoCallouts = {
enabled = true, -- Whether or not this feature is enabled
speedUnit = 'mph', -- mph | kmh | none -- The unit of speed provided with the callout
withPostals = false, -- Whether to include postals with the automatic callouts
postalResource = 'nearest-postal',
}Version 2.21.0 adds a new configuration option for Signal Jammers.
Open your existing
config.luaAt the bottom of the configuration file, copy and paste the entire
Config.radioJammersobject.
Config.radioJammers = {
enabled = true, -- Enable or disable radio jammers
menuCommand = 'jammers', -- Subcommand to open the jammers menu | e.g. /sonoranradio jammers
toggleRange = 3.0, -- Distance in meters required to toggle a jammer on/off
permissionMode = 'none', -- ace, qbcore, esx or none
acePermission = 'sonoranradio.jammers', -- ACE permission required to use jammers
allowedJobs = { -- Jobs that can use jammers | Requires permission mode to be set to 'qbcore' or 'esx'
['hacker'] = {
grades = { -- Job grades that can use jammers
1,
2,
3
}
}
},
jammers = {
-- Define jammers here
-- Example:
{
name = 'Hand Held Jammer', -- Name of the jammer
model = 'm23_2_prop_m32_hackdevice_01a', -- Model name for the jammer
offModel = 'm23_2_prop_m32_hackdevice_01a', -- Model name for the jammer when off | Optional
range = 25, -- Range of the jammer in meters
strength = 0.5, -- Strength of the jammer (0.0 to 1.0)
permission = 'sonoranradio.jammer_handheld', -- ACE permission required to use this jammer | Optional
-- If permission is not set, the jammer will be available to all players that can access the jammers menu
type = 'handheld', -- Type of jammer (handheld or static)
itemName = 'sonoran_radio_jammer_handheld', -- Item name for the jammer (if Config.enforceRadioItem is true)
poweredItemName = 'sonoran_radio_jammer_handheld_on' -- Optional item that replaces the base item while the jammer is powered on
},
{
name = 'Suitcase Jammer', -- Name of the jammer
model = 'ch_prop_ch_mobile_jammer_01x', -- Model name for the jammer
offModel = 'ch_prop_ch_mobile_jammer_01x', -- Model name for the jammer when off | Optional
range = 100, -- Range of the jammer in meters
strength = 0.8, -- Strength of the jammer (0.0 to 1.0)
permission = '', -- ACE permission required to use this jammer | Optional
-- If permission is not set, the jammer will be available to all players that can access the jammers menu
type = 'static', -- Type of jammer (handheld or static)
itemName = 'sonoran_radio_jammer_suitcase' -- Item name for the jammer (if Config.enforceRadioItem is true)
},
{
name = 'Case Jammer', -- Name of the jammer
model = 'h4_prop_h4_jammer_01a', -- Model name for the jammer
offModel = 'h4_prop_h4_jammer_01a', -- Model name for the jammer when off | Optional
range = 200, -- Range of the jammer in meters
strength = 1.0, -- Strength of the jammer (0.0 to 1.0)
permission = '', -- ACE permission required to use this jammer | Optional
-- If permission is not set, the jammer will be available to all players that can
type = 'static', -- Type of jammer (handheld or static)
itemName = 'sonoran_radio_jammer_case' -- Item name for the jammer (if Config.enforceRadioItem is true)
},
{
name = 'Satelite Jammer', -- Name of the jammer
model = 'm23_2_prop_m32_jammer_01a', -- Model name for the jammer
offModel = 'm23_2_prop_m32_jammer_01a', -- Model name for the jammer when off | Optional
range = 300, -- Range of the jammer in meters
strength = 1.0, -- Strength of the jammer (0.0 to 1.0)
permission = '', -- ACE permission required to use this jammer | Optional
-- If permission is not set, the jammer will be available to all players that can
type = 'static', -- Type of jammer (handheld or static)
itemName = 'sonoran_radio_jammer_satelite' -- Item name for the jammer (if Config.enforceRadioItem is true)
}
}
}2.20.0 (Default ESC Behavior)
Version 2.20.0 adds a new feature to configure your community's default ESC behavior setting.
Open your existing
config.luaAdd the new
Config.defaultEscapeMode = 'keep'property. You can enable and configure this feature if desired.

2.19.0 (PTT on Panic & AI Callouts)
Version 2.19.0 adds a new feature to automatically press a user's push-to-talk button on panic.
Open your existing
config.luaAdd the three new config options:
A. autoPttOnPanic Config
Config.autoPttOnPanic = {
enabled = true, -- Enable automatic PTT when panic button is pressed
duration = 15 -- Duration in seconds to hold PTT when panic button is pressed
}
B. autoCallouts Config
-- Have the radio automatically callout pursuit locations (when toggled with the keybind)
Config.autoCallouts = {
enabled = true, -- Whether or not this feature is enabled
speedUnit = 'mph', -- mph | kmh | none -- The unit of speed provided with the callout
}
C. toggleAutoCallouts Keybind
Inside of the existing Config.keybinds add a new line for:
`['toggleAutoCallouts'] = '',

2.18.0 (LB Phone, Background Noise)
Version 2.18.0 adds a new integration for LB phone and feature to inject background noise into your transmissions.
Open your existing
config.luaAdd the new
Config.showEmergencyCallHelp = trueoption. Setting this to false hides the emergency call banner.Add the new
Config.phoneResource = 'none'option. Setting this to'lb-phone'enables the LB phone integration.Add the new
Config.enableBackgroundAudio = trueoption. Setting this to false disables the background audio injection feature.

2.15.0 (ACE Perm Sync)
Version 2.15.0 adds a new feature to manage radio community approval and permissions via ACE perms.
Open your existing
config.luaAdd the new
Config.acePermSync = falseproperty. You can enable and configure this feature if desired.

2.14.0 Release (LVC Resource Name)
Version 2.14.0 adds a new feature to increase radio volume when in-game sirens are on.
Open your existing
config.luaAdd the new
Config.luxartResourceName = 'lvc'property.

2.11.0 Release (Earpieces JSON)
Version 2.11.0 Migrates the earpiece configuration from the config.luato earpieces.json. Therefore, this property is no longer needed in your config.lua file.
Open the new
earpieces.jsonfile to confirm your configuration has been migrated (after resource start).Open your existing
config.luaRemove the
Config.chatterExclusionsproperty.

2.10.0 Release (Config Values)
Version 2.10.0 introduces new configuration values to customize the default user keybinds and the emergency call prefix.
Note: This new default key mapping will only apply to new users who have not joined the server and had their keybind set yet.
Open your existing
config.luaPaste in the two, new default config options:
Config.emergencyCallCommand = '999' -- Command suffix to start or stop an emergency call (i.e. '911' == /radio 911)-- Default radio keybinds (these can be changed in GTA settings) --
Config.keybinds = {
['toggle'] = '',
['ptt'] = '\\',
['power'] = '',
['panic'] = '',
['nextChannel'] = '',
['prevChannel'] = '',
['talkAnim'] = ''
}This is is also available from the auto-updater's config.CHANGEME.lua
2.8.1 Release (Mobile Repeater Default Key)
Version 2.8.1 introduces a new configuration value to customize the default user keybind to toggle mobile repeaters.
Note: This new default key mapping will only apply to new users who have not joined the server and had their keybind set yet.
Open your existing
config.luaPaste in the new default config option (
Config.mobileRepeaterKeybind) This is also available from the auto-updater'sconfig.CHANGEME.lua
-- Mobile repeater keybinds
Config.mobileRepeaterKeybind = {
mapperType = 'keyboard', -- See: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/
map = 'g', -- See: https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/
label = 'Toggle Radio Repeater'
}Your config.lua show now look like the following:

2.7.0 (Speakers, Tunnels, Voice Effects, and Earpiece EUP)
Version 2.7.0 introduces a new configuration value for EUP earpiece detection (to prevent people from hearing nearby chatter).
Open your existing
config.luaPaste in the new default config option: This is also available from the auto-updater's
config.CHANGEME.lua
-- Radio Chatter Exclusion Settings --
Config.chatterExclusions = {
{
componentId = 2, -- Ears
drawableId = 1, -- Number in vMenu MP Ped Component list
texture = 0 -- Texture ID in vMenu MP Ped Component list
},
{
componentId = 2, -- Ears
drawableId = 2, -- Number in vMenu MP Ped Component list
texture = 0 -- Texture ID in vMenu MP Ped Component list
},
{
componentId = 2, -- Ears
drawableId = 2, -- Number in vMenu MP Ped Component list
texture = 0 -- Texture ID in vMenu MP Ped Component list
},
{
componentId = 2, -- Ears
drawableId = 42, -- Number in vMenu MP Ped Component list
texture = 0 -- Texture ID in vMenu MP Ped Component list
},
}Your
config.luashould now appear like the following after adding in theConfig.chatterExclusionsproperty:
2.6.0 Release (In-Game Nearby Audio & Connected Users List)
Version 2.6.0 introduces new configuration values.
Open your existing
config.luaEnsure the following lines are set:
Config.chatter = trueConfig.acePermsForRadioUsers = falseConfig.talkSync = true
Your config.lua should now look like the following:

2.3.0-1 Release (In-Game Configuration Menu)
Configuration File
Version 2.3.0 introduces a new configuration value.
Open your existing
config.luaEnsure the following lines are set:
Config.radioUrl = 'https://sonoranradio.com'Config.apiUrl = 'https://api.sonoranradio.com/'
Your config.lua file should now look like the following:

ACE Permissions
Version 2.3.0 introduces a new in-game repeater configuration menu. This allows an easier way to add, edit, or remove in-game repeaters.
Communities will need to grant the new command.radiomenu permission.
Communities can remove the old spawn and remove command permissions:
command.spawnradiotowercommand.spawnradiorackcommand.spawnradiocellrepeatercommand.removeradiorepeater
See a complete example of our updated ACE permission structure.
2.2.0 Release (In-Game Towers)
Towers File
Version 2.2.0 introduces multiple new in-game tower options. This includes a new towers.DEFAULT.json file that is required.
Delete the existing
towers.jsonfile in yoursonoranradioresource.Rename the new
towers.DEFAULT.jsonfile totowers.jsonin yoursonoranradioresource and save.
Configuration File
Version 2.2.0 adds a new API key configuration for upcoming features.
Add the following to line to your
config.luafile, below theConfig.comIdline:
Config.apiKey = 'YOUR API KEY'
Replace
YOUR API KEYwith the community API key from theAdministrationpanel.
Last updated
Was this helpful?

