Configuration
This page documents all configuration options in config.lua and module config files. Module-level settings live in modules/*/config.lua while the main enable/disable toggles are in the root config.lua.
Core Settings
Section titled “Core Settings”Config.DebugMode = falseEnable debug mode for additional console logging during development.
Config.Framework = 'esx'Framework choice: 'esx' or 'qb'. Auto-detected if qb-core or es_extended is running.
Config.JobMenuKey = 'F6'Key binding to open the police job menu.
Config.EnableTargeting = trueEnable targeting support for police interactions. Supports qb-target, ox_target, and qtarget with auto-detection.
Config.EnableRadialMenu = falseEnable the built-in radial menu from ox_lib (requires ox_lib 3.0+). Set to false if using qb-radialmenu.
Config.BillingSystemType = 'esx'Billing system: 'esx' (esx_billing), 'qb' (QBCore), 'okok' (okokBilling), or 'custom'.
Config.SkinScriptType = 'appearance'Skin/appearance script: 'esx', 'qb', 'appearance', 'custom', or false.
Config.Inventory = 'ox'Inventory system: 'ox', 'qb', 'mf', 'qs', 'cheeza', or 'custom'.
Config.InventoryImages = 'nui://ox_inventory/web/images/'Path to inventory item images. Adjust based on your inventory system.
Config.AllowPlayerSearch = trueAllow police officers to search nearby players.
Config.DutyRequirement = falseRequire players to be on duty to access the police menu. Currently in beta.
Config.IsWeaponsAsItems = trueTreat weapons as inventory items. Set to false if your server uses native weapon handling.
Config.MobileMenu = falseMobile menu position: 'bottom-left', 'bottom-right', 'top-left', 'top-right', or false to disable.
Config.VehicleSpawnWithMaxMods = trueSpawn police vehicles with maximum performance mods.
Config.ElevatorJobRestriction = trueRestrict elevator access based on job roles.
Feature Toggles
Section titled “Feature Toggles”These enable or disable major systems. Detailed settings for each module live in modules/*/config.lua.
Config.EnableSpikeStrips = trueConfig.EnableEvidence = true -- Still in betaConfig.EnableSecurityCamera = trueConfig.EnableCommunityService = true| Setting | Default | Description |
|---|---|---|
EnableSpikeStrips |
true |
Spike strip deployment |
EnableEvidence |
true |
Evidence collection (GSR, fingerprints, blood, casings) |
EnableSecurityCamera |
true |
Security camera system |
EnableCommunityService |
true |
Community service as jail alternative |
Config.ShotSpotter = { enabled = false }Config.HandsUpSettings = { enabled = false }Config.ShieldSettings = { enabled = true }Config.SpikeStripSettings = { enabled = true }Config.LockerRooms = { enabled = true }Config.HandcuffSettings = { enabled = true }Billing Settings
Section titled “Billing Settings”Config.BillingSettings = { minAmount = 1, maxAmount = 100000,}Minimum and maximum fine amounts officers can issue.
Police Job Names
Section titled “Police Job Names”Config.PoliceJobNames = { 'police', 'sheriff'}Valid police job names. Add all law enforcement job names used on your server.
Disable Controls
Section titled “Disable Controls”Config.DisableControls = { onCuffed = { 38, 140, 25, 23, 140, 141, 142 }, onEscorted = { 140, 23 }, onEscorting = { 140, 23 },}GTA control IDs disabled during specific player states. Only modify if you need custom control behavior.
Jail Settings
Section titled “Jail Settings”Config.JailSettings = { enabled = true, jailSystem = 'default', input = true, maxJailTime = 50,}jailSystem-'default'(built-in),'rcore','tk_jail','hd_jail','myPrison','qalle-jail','plouffe','mx', or'custom'input- Require manual input for jail timemaxJailTime- Maximum jail sentence in minutes
Weapon License Settings
Section titled “Weapon License Settings”Config.WeaponLicenseSettings = { enabled = true, license_name = 'weapon', minGrade = 0, menuPosition = 'bottom-right'}Controls police ability to grant and revoke weapon licenses.
Gunshot Residue Settings
Section titled “Gunshot Residue Settings”Config.GunshotResidueSettings = { enabled = true, command = 'gsr', cleanInWater = true, timeToClean = 5 * Seconds, autoClean = 10 * Minutes,}GSR testing configuration. Players can clean GSR by staying in water for the configured duration.
GPS Blip Settings
Section titled “GPS Blip Settings”Config.GPSBlipSettings = { enabled = true, mode = 'advanced', refreshrate = 5 * Seconds, item = false,}mode-'normal'or'advanced'(advanced is in beta)refreshrate- GPS refresh rate in millisecondsitem- Required item name to activate GPS blip, orfalsefor no item requirement
Config.PropsTimeOut = 10 * MinutesTime before placed props are automatically removed. Set to false to disable timeout.
Config.AvailableProps = { { title = 'Barrier', model = `prop_barrier_work05`, groups = { ['police'] = 0, ['sheriff'] = 0 } }, { title = 'Barricade', model = `prop_mp_barrier_01`, groups = { ['police'] = 0 } }, { title = 'Mobile Barrier', model = `prop_mp_barrier_02', groups = { ['police'] = 0 } }, { title = 'Traffic Cones', model = `prop_roadcone02a`, groups = { ['police'] = 0 } }, { title = 'Spike Strip', model = `p_ld_stinger_s`, groups = { ['police'] = 0 } }, { title = 'Police Tape', model = `prop_police_tape`, groups = { ['police'] = 0 } }, { title = 'Light Flare', model = `prop_worklight_03b`, groups = { ['police'] = 0 } }, { title = 'Warning Sign', model = `prop_sign_road_01a`, groups = { ['police'] = 0 } }, { title = 'Tent', model = `prop_gazebo_03`, groups = { ['police'] = 0 } },}The groups table defines minimum job grade required to place each prop.
Module Configurations
Section titled “Module Configurations”Cuff Module (modules/cuff/config.lua)
Section titled “Cuff Module (modules/cuff/config.lua)”Config.HandcuffSettings = { timer = 20 * Minutes, hotkey = 'H', escaping = { enabled = true, skillCheck = function() return lib.skillCheck('hard', 'hard', 'medium') end }, cuffItem = { enabled = true, required = true, item = 'handcuffs' }, handcuffKey = 'handcuffkey', lockpicking = { enabled = true, item = 'lockpick', breakChance = 50, skillCheck = function() return lib.skillCheck('hard', 'hard', 'medium') end, }, zipties = { enabled = true, item = 'zipties', uncuffTool = 'cuttingtool' }}
Config.CuffCommand = { CuffPoliceOnly = false,}| Setting | Description |
|---|---|
timer |
Auto-uncuff timer in milliseconds |
hotkey |
Keybind for cuff action |
escaping.enabled |
Allow players to escape cuffs via skill-check |
cuffItem.item |
Item required to cuff |
handcuffKey |
Item required to uncuff |
lockpicking.item |
Item used to lockpick cuffs |
lockpicking.breakChance |
Percentage chance lockpick breaks |
zipties.item |
Ziptie item name |
zipties.uncuffTool |
Tool required to remove zipties |
Shield Module (modules/shield/config.lua)
Section titled “Shield Module (modules/shield/config.lua)”Config.ShieldSettings = { enabledItem = true, item = 'shield', disableSprint = true}Spike Strip Module (modules/spikes/config.lua)
Section titled “Spike Strip Module (modules/spikes/config.lua)”Config.SpikeStripSettings = { enabledItem = true, item = 'spikestrip', maxLength = 4, deployTimePerSegment = 1000, pickupTime = 1500}Tackle Module (modules/tackle/config.lua)
Section titled “Tackle Module (modules/tackle/config.lua)”Config.TackleSettings = { enabled = true, policeOnly = true, hotkey = 'E'}Escort Module (modules/escort/config.lua)
Section titled “Escort Module (modules/escort/config.lua)”Config.EscortAndCarryCommand = { EscortPoliceOnly = false, CarryPoliceOnly = false, CarryAnyOneAnyTime = false,}GPS Module (modules/gps/config.lua)
Section titled “GPS Module (modules/gps/config.lua)”Config.ServiceBlips = { ['police'] = 38, ['ambulance'] = 5, ['sheriff'] = 85, ['mechanic'] = 47,}Map blip colors per job. See GTA V blip colors for color IDs.
Locker Room Module (modules/lockers/config.lua)
Section titled “Locker Room Module (modules/lockers/config.lua)”Config.LockerRooms = { useAppearance = true, locations = { { id = 'lspd_locker', job = 'police', coords = vector3(462.54, -999.06, 30.69), title = 'LSPD Locker Room', outfits = { ... } } }}Community Service Module (modules/communityservice/config.lua)
Section titled “Community Service Module (modules/communityservice/config.lua)”Config.ServiceExtensionOnEscape = 5Config.MaxCommunityServiceTime = 60Config.ServiceLocation = vector3(170.0552, -989.230, 30.091)Config.CommunityServiceOutfits = { enabled = false, male = { ... }, female = { ... },}Evidence Module (modules/evidence/config.lua)
Section titled “Evidence Module (modules/evidence/config.lua)”Config.Evidence = { Bloodtypes = { 'A+', 'A-', 'B+', 'B-', 'AB+', 'AB-', 'O+', 'O-' }, PickupDistance = 3.0, ClearDistance = 12.0, CreateRateLimitMs = 300, BulletCasingsDropChance = 100, EnableProjectiles = true, EnableGloves = true, EnableFingerprintInMenu = true, EnableDnaInMenu = true,}The AmmoItems table maps ammunition items to projectile and casing evidence types:
Config.Evidence.AmmoItems = { ['ammo-9'] = { label = '9mm', projectile = 'projectile-ammo-9', casing = 'casing-ammo-9' }, ['ammo-45'] = { label = '.45 ACP', projectile = 'projectile-ammo-45', casing = 'casing-ammo-45' }, ['ammo-rifle'] = { label = '5.56x45', projectile = 'projectile-ammo-rifle', casing = 'casing-ammo-rifle' },}Evidence stash and trash locations:
Config.Evidence.Trash = { [1] = vector3(446.843, -996.874, 30.69),}Config.Evidence.EvidenceStash = { [1] = vector3(450.167, -997.609, 30.69),}Security Camera Module (modules/camera/config.lua)
Section titled “Security Camera Module (modules/camera/config.lua)”Config.SecurityCameras = { location = { [1] = vector3(442.28, -998.86, 34.97), }, cameras = { [1] = { label = 'Pacific Bank CAM#1', coords = vector3(257.45, 210.07, 109.08), rotation = { x = -25.0, y = 0.0, z = 28.05 }, canRotate = false, isOnline = true }, },}34 cameras are pre-configured covering banks, stores, and landmarks across the map.
Note: This guide is written by a third party. If you find any incorrect or outdated information, please contact us on Discord so we can update it for you.