Advanced Interrogation
The main editable configuration is located in config.lua. Localization can be changed in locales/en.lua, and the recorder badge can be replaced through branding/logo.png.
General Settings
Section titled โGeneral SettingsโConfig.Debug = falseConfig.Locale = "en"
Config.Framework = "auto" -- auto | qbx | qb | esxConfig.Inventory = "auto" -- auto | ox_inventory | qb-inventoryConfig.Target = "auto" -- auto | ox_target | qb-target | sleepless | textuiConfig.Debug enables additional console output and should normally stay disabled on a live server.
Branding
Section titled โBrandingโConfig.Branding = { logo = "branding/logo.png",}Replace branding/logo.png with your own PNG to change the badge shown on the handheld recorder and cassette deck. Set logo = "" if you do not want custom branding.
Interaction Distance
Section titled โInteraction DistanceโConfig.Interact = { distance = 1.2, zoneRadius = 0.28,}distance controls how close a player must stand to the equipment. zoneRadius controls the size of the target hotspot around the object.
Recording Settings
Section titled โRecording SettingsโConfig.Recording = { captureRadius = 12.0, listeningRadius = 12.0, radioFilter = false, noiseReduction = true, storage = "fivemanage",}| Option | Description |
|---|---|
captureRadius | Maximum distance from the recorder for a participant to be captured |
listeningRadius | Maximum distance from the playback source for nearby listeners |
radioFilter | false, phone, room_mic, or hidden_wire |
noiseReduction | Reduces room hiss between spoken words |
storage | fivemanage or files |
FiveManage API Key
Section titled โFiveManage API KeyโWhen storage = "fivemanage", add the key to server.cfg.
set rs_interrogation_fivemanage_api_key "your_key_here"Battery System
Section titled โBattery SystemโConfig.Battery = { enabled = true, idleDrainPerSecond = 0.004, recordDrainPerSecond = 0.075, playbackDrainPerSecond = 0.03, lowThreshold = 10,}The recorder uses the highest active drain rate instead of stacking several drain rates together. Turning the device off stops idle drain. Cassette stations do not use batteries.
| Option | Description |
|---|---|
enabled | Enables recorder battery drain |
idleDrainPerSecond | Drain while the recorder is powered on but idle |
recordDrainPerSecond | Drain while REC is active |
playbackDrainPerSecond | Drain while audio is playing |
lowThreshold | Battery percentage used for the low battery warning |
Cassette Wipe System
Section titled โCassette Wipe SystemโConfig.TapeDamage = { enabled = true, consumeItem = true, minigame = { speed = 0.7, zoneSize = 0.32, },}Using cassette_magnet on a recorded cassette starts the wipe interaction. A successful wipe removes the audio references while keeping normal cassette metadata such as duration, officer, and recording date.
consumeItem controls whether the magnet is consumed after a successful wipe. There is no police job requirement for this action.
Recorder Placement
Section titled โRecorder PlacementโConfig.Placement = { gizmo = false,}Set gizmo = false to use the built in raycast placement preview. Set it to true to use object_gizmo.
Cassette Dubbing Cooldown
Section titled โCassette Dubbing CooldownโConfig.Dubbing = { cooldown = { enabled = false, mode = "fixed", seconds = 15, },}| Mode | Behavior |
|---|---|
fixed | Uses the configured seconds value |
duration | Uses the recording duration and falls back to seconds when needed |
Job Access
Section titled โJob AccessโConfig.Jobs = { police = 0, sheriff = 0, lspd = 0, bcso = 0, sasp = 0,}The number is the minimum job grade. A value of 0 allows every rank in that job.
You can also use a simple list when every listed job should use grade 0.
Config.Jobs = {"police","sheriff",}The job list controls recorder placement, pickup, storage access, and dubbing authorization.
Cassette Stations
Section titled โCassette StationsโCassette stations are permanent world locations. They do not require a station item and cannot be picked up.
Config.Placements = { cassette_player = { vector4(450.47, -975.78, 29.69, 1.89), },}At a cassette station, players can record directly to a blank cassette, play tapes, and dub pending handheld recordings.
Set cassette_player = {} if you want to use only handheld and placeable recorders.
Evidence Storage Boxes
Section titled โEvidence Storage BoxesโStorage boxes use a custom 30 slot cassette interface with no weight limit. Authorized jobs share the tapes stored in the same box.
Config.Placements = { storage = { vector4(439.73, -980.26, 30.80, 177.71), },}A storage box can override the global jobs list.
Config.Placements = {storage = { { coords = vector4(439.73, -980.26, 30.80, 177.71), jobs = { police = 0, sheriff = 0, }, },},}Set storage = {} if you do not want evidence storage boxes.
Typical Setup Modes
Section titled โTypical Setup Modesโ| Setup | Configuration |
|---|---|
| Handheld focused | Keep cassette_player empty and distribute interrogation_recorder |
| Station focused | Configure cassette stations and do not distribute handheld recorders |
| Full system | Use handheld recorders, cassette stations, and evidence storage boxes together |