Skip to content

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.

Config.DebugMode = false

Enable 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 = true

Enable targeting support for police interactions. Supports qb-target, ox_target, and qtarget with auto-detection.

Config.EnableRadialMenu = false

Enable 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 = true

Allow police officers to search nearby players.

Config.DutyRequirement = false

Require players to be on duty to access the police menu. Currently in beta.

Config.IsWeaponsAsItems = true

Treat weapons as inventory items. Set to false if your server uses native weapon handling.

Config.MobileMenu = false

Mobile menu position: 'bottom-left', 'bottom-right', 'top-left', 'top-right', or false to disable.

Config.VehicleSpawnWithMaxMods = true

Spawn police vehicles with maximum performance mods.

Config.ElevatorJobRestriction = true

Restrict elevator access based on job roles.

These enable or disable major systems. Detailed settings for each module live in modules/*/config.lua.

Config.EnableSpikeStrips = true
Config.EnableEvidence = true -- Still in beta
Config.EnableSecurityCamera = true
Config.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 }
Config.BillingSettings = {
minAmount = 1,
maxAmount = 100000,
}

Minimum and maximum fine amounts officers can issue.

Config.PoliceJobNames = {
'police',
'sheriff'
}

Valid police job names. Add all law enforcement job names used on your server.

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.

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 time
  • maxJailTime - Maximum jail sentence in minutes
Config.WeaponLicenseSettings = {
enabled = true,
license_name = 'weapon',
minGrade = 0,
menuPosition = 'bottom-right'
}

Controls police ability to grant and revoke weapon licenses.

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.

Config.GPSBlipSettings = {
enabled = true,
mode = 'advanced',
refreshrate = 5 * Seconds,
item = false,
}
  • mode - 'normal' or 'advanced' (advanced is in beta)
  • refreshrate - GPS refresh rate in milliseconds
  • item - Required item name to activate GPS blip, or false for no item requirement
Config.PropsTimeOut = 10 * Minutes

Time 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.


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
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
}
Config.TackleSettings = {
enabled = true,
policeOnly = true,
hotkey = 'E'
}
Config.EscortAndCarryCommand = {
EscortPoliceOnly = false,
CarryPoliceOnly = false,
CarryAnyOneAnyTime = false,
}
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 = 5
Config.MaxCommunityServiceTime = 60
Config.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.