Retro Police
Common problems and their solutions. If you find a matching issue below, follow the provided fix.
Features are not loading / nothing happens
Section titled “Features are not loading / nothing happens”Make sure your Config.Departments entry has the feature listed in the features array and has a matching configuration block. The feature name must match exactly.
Config.Departments = { { connectedDepartment = 'mr_police', features = { "dutySystem", -- Must be in this array "personalLocker", -- ... }, dutySystem = { ... }, -- Must have matching config personalLocker = { ... }, }}Also verify that your player’s job name matches one of the jobs listed in Config.DepartmentDefination for that department. The job name comparison is case-sensitive.
”Department has no features” error in console
Section titled “”Department has no features” error in console”This means a department entry exists in Config.Departments but the features array is missing or empty. Add the features table:
{ connectedDepartment = 'mr_police', features = { "dutySystem" }, -- Add this dutySystem = { ... },}Target zones are not appearing
Section titled “Target zones are not appearing”- Make sure
Config.InteractionType = "target"andConfig.Targetmatches your target resource ("ox_target"or"qb-target"). - Verify your target resource is started before
rs_policein yourserver.cfg. - Set
Config.DebugTargets = trueto visualize the target box zones and check if they exist at the correct coordinates.
If you prefer not to use a target system, switch to TextUI mode:
Config.InteractionType = "textui"Cuff system doesn’t work / “Not enough item”
Section titled “Cuff system doesn’t work / “Not enough item””If item_needs_cuff is set, the officer must have that item in their inventory. Set it to nil to remove the item requirement:
cuffSystem = { command = "cuff_police", item_needs_cuff = nil, -- Remove item requirement item_remove = false,}Cuff break minigame not appearing
Section titled “Cuff break minigame not appearing”The break minigame is a global setting, not per-department. Make sure it’s enabled:
Config.CuffBreakMinigame = { enable = true, iterations = 2, difficulty = 'hard',}Jail system: Players can walk out of prison
Section titled “Jail system: Players can walk out of prison”Check these settings:
Config.JailZoneDistanceIncrease this value to expand the prison boundary. Default is100meters.Config.JailCoordsMust be the center of your prison interior.- If players are being teleported back but the message doesn’t show, check
Config.CustomJailMessage.
Evidence is not being created on the ground
Section titled “Evidence is not being created on the ground”- Verify
Config.EvidenceConfig.evidenceCreationSystem.enable = true. - Check the
creationTypesarray includes the evidence types you expect ("blood","bullet","vehicle_fragment"). - If
blacklistDropJobsis uncommented, evidence won’t drop for those jobs. deleteEvidenceAftercontrols auto-cleanup if set too low, evidence disappears quickly.
Evidence pickup requires flashlight how to disable?
Section titled “Evidence pickup requires flashlight how to disable?”Set pickupReq = false in the evidence creation config:
evidenceCreationSystem = { pickupReq = false, -- No flashlight required}GSR test always returns negative
Section titled “GSR test always returns negative”- Make sure
Config.GSRSystem.enable = true. - The tested player must have actually fired a weapon recently. GSR auto-cleans after
autoCleanDurationhours. - The testing officer’s job must be in
testCommandJobs. - Players in
blacklistJobswon’t acquire GSR when firing.
Megaphone has no effect / no volume change
Section titled “Megaphone has no effect / no volume change”- The megaphone system requires pma-voice. It will not work with other voice systems.
- If
onlyAbleUseInVehicle = true, the officer must be seated in a vehicle. - Check
Config.MegaphoneSystemRangeincrease the value for a larger broadcast range (default:60.0).
Vehicle garage: “Spawn Failed. Not enough space!”
Section titled “Vehicle garage: “Spawn Failed. Not enough space!””The spawn location has vehicles too close to it. Either:
- Move existing vehicles away from the spawn point.
- Add multiple spawn coordinates as an array in
vehicleSpawnCoords:
vehicleSpawnCoords = { vec4(-1040.53, -769.8, 19.05, 148.53), vec4(-1044.0, -772.0, 19.05, 148.53), vec4(-1048.0, -774.0, 19.05, 148.53),}Spike system: How to switch from command to item?
Section titled “Spike system: How to switch from command to item?”spikeSystem = { usageType = "item", -- Changed from "command" usageDefinition = "spike_item", -- Your item name onUseRemove = true, -- Consume item on use}Clothing loadout doesn’t apply / no change visible
Section titled “Clothing loadout doesn’t apply / no change visible”- Make sure you have a supported clothing resource running:
illenium-appearance,fivem-appearance,qb-clothing, oresx_skin. - Check that
Config.LoadoutOutfitshas entries matching your ped model (mp_m_freemode_01for male,mp_f_freemode_01for female). - Verify the outfit’s
gradesarray includes the officer’s current grade level. - If using a custom clothing resource, override
Config.ClothingSystemOnChangeOutfit.
Prison jobs are not giving time reduction
Section titled “Prison jobs are not giving time reduction”- Check
Config.PrisonJobs.enabled = true. - The prisoner must be at the correct coordinates and within
interactionDistance. - If
minigame_needed = true, the player must pass the skill check failure does not grant time reduction. - Verify
timeReductionis greater than0.
Framework is not detected / wrong framework loaded
Section titled “Framework is not detected / wrong framework loaded”Force a specific framework in config_framework.lua:
return { Framework = 'ESX', -- Explicitly set instead of 'AUTO'}If your framework resource has a non-standard name, use FrameworkNameOverride:
return { Framework = 'ESX', FrameworkNameOverride = 'my_custom_esx',}How do I add a second department?
Section titled “How do I add a second department?”Add a new entry to both Config.DepartmentDefination and Config.Departments:
-- Step 1: Define the departmentConfig.DepartmentDefination = { mr_police = { label = 'MRPD', shortLabel = 'MRPD', jobs = { 'police' } }, sherif = { label = 'Sherif Dept', shortLabel = 'Sherif', jobs = { 'sherif' } },}
-- Step 2: Add department config with featuresConfig.Departments = { { connectedDepartment = 'mr_police', features = { ... }, ... }, { connectedDepartment = 'sherif', features = { ... }, ... },}How do I add more props to the prop system?
Section titled “How do I add more props to the prop system?”Add entries to the propList array in your department’s propSystem config:
propList = { { label = "My Custom Prop", model = `my_prop_model`, visibleChecks = function(framework) return true -- Add grade checks here if needed end, },}Props with variations support will show a variant selection menu
(For reference, you can review the structure of the rs_police_evmarker file in stream folder)
{ label = "Evidence Marker", model = 'rs_police_evmarker', variations = 20, -- 20 texture variants}Shield is not equippable / “weapon not allowed” error
Section titled “Shield is not equippable / “weapon not allowed” error”The shield system restricts which weapon groups can be held while the shield is active. By default, only unarmed and pistols are allowed. Add more groups to allowedWeaponGroups:
Config.Shields.allowedWeaponGroups = { `GROUP_UNARMED`, `GROUP_PISTOL`, `GROUP_SMG`, -- Add more groups as needed}Dosen’t work with my framework or my target etc.
Section titled “Dosen’t work with my framework or my target etc.”This script requires rs_lib to run it will be automatically added to your portal account when you purchase it. Make sure to start it before the police script.