Configuration
Edit shared/config.lua:
return {
item = "radio", -- your radio item name
framework = "qbx", -- standalone, esx, ox, qbx, vrp05
model = "prop_cs_hand_radio",
disabledControls = { 24 }, -- controls disabled while radio is active
disableShooting = true,
hideMetadataWhenOff = true,
radioAnimations = {
face = { dict = "ultra@walkie_talkie", anim = "walkie_talkie" },
shoulder = { dict = "random@arrests", anim = "generic_radio_chatter" },
chest = { dict = "anim@cop_mic_pose_002", anim = "chest_mic" },
ear = { dict = "cellphone@", anim = "cellphone_call_listen_base" },
},
radioPlacement = {
holding = { bone = 28422, pos = vec3(0.0, 0.0, 0.0), rot = vec3(0.0, 0.0, 0.0) },
speaking = { bone = 18905, pos = vec3(0.14, 0.03, 0.03), rot = vec3(-105.87, -10.94, -33.72) },
},
restrictedChannels = {
[1] = { "police", "ambulance" },
},
}Restricted Channels
Lock entire frequency ranges to specific jobs. A restriction on channel 1 locks 1.00 through 1.99.
restrictedChannels = {
[1] = { "police", "ambulance" }, -- 1.00–1.99
[10] = { "gang_leader" }, -- 10.00–10.99
}Players without the required job will get an error when trying to connect.
Localization
Locale files are in locales/. Currently includes English (en.json) and Danish (da.json). The script uses ox_lib's locale system — add a new JSON file to support additional languages.