Extract the script's two folders (sonoran-radiodisplay and sonoran-radiodisplay_helper) to a folder in your server's resources folder called [sonoranradio].
# 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 allow
Config = {}
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",
}