Skip to content

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.lua
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:

config.lua
{
connectedDepartment = 'mr_police',
features = { "dutySystem" }, -- Add this
dutySystem = { ... },
}

  1. Make sure Config.InteractionType = "target" and Config.Target matches your target resource ("ox_target" or "qb-target").
  2. Verify your target resource is started before rs_police in your server.cfg.
  3. Set Config.DebugTargets = true to 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.lua
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:

config.lua
cuffSystem = {
command = "cuff_police",
item_needs_cuff = nil, -- Remove item requirement
item_remove = false,
}

The break minigame is a global setting, not per-department. Make sure it’s enabled:

config.lua
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.JailZoneDistance Increase this value to expand the prison boundary. Default is 100 meters.
  • Config.JailCoords Must 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”
  1. Verify Config.EvidenceConfig.evidenceCreationSystem.enable = true.
  2. Check the creationTypes array includes the evidence types you expect ("blood", "bullet", "vehicle_fragment").
  3. If blacklistDropJobs is uncommented, evidence won’t drop for those jobs.
  4. deleteEvidenceAfter controls 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:

config.lua
evidenceCreationSystem = {
pickupReq = false, -- No flashlight required
}

  • Make sure Config.GSRSystem.enable = true.
  • The tested player must have actually fired a weapon recently. GSR auto-cleans after autoCleanDuration hours.
  • The testing officer’s job must be in testCommandJobs.
  • Players in blacklistJobs won’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.MegaphoneSystemRange increase 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:
config.lua
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?”
config.lua
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”
  1. Make sure you have a supported clothing resource running: illenium-appearance, fivem-appearance, qb-clothing, or esx_skin.
  2. Check that Config.LoadoutOutfits has entries matching your ped model (mp_m_freemode_01 for male, mp_f_freemode_01 for female).
  3. Verify the outfit’s grades array includes the officer’s current grade level.
  4. If using a custom clothing resource, override Config.ClothingSystemOnChangeOutfit.

  • 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 timeReduction is greater than 0.

Framework is not detected / wrong framework loaded

Section titled “Framework is not detected / wrong framework loaded”

Force a specific framework in config_framework.lua:

config_framework.lua
return {
Framework = 'ESX', -- Explicitly set instead of 'AUTO'
}

If your framework resource has a non-standard name, use FrameworkNameOverride:

config_framework.lua
return {
Framework = 'ESX',
FrameworkNameOverride = 'my_custom_esx',
}

Add a new entry to both Config.DepartmentDefination and Config.Departments:

config.lua
-- Step 1: Define the department
Config.DepartmentDefination = {
mr_police = { label = 'MRPD', shortLabel = 'MRPD', jobs = { 'police' } },
sherif = { label = 'Sherif Dept', shortLabel = 'Sherif', jobs = { 'sherif' } },
}
-- Step 2: Add department config with features
Config.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:

config.lua
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)

config.lua
{
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.lua
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.