Changelog: tcc_pd (TCC Police Framework)
All notable changes, newest first. Format: Keep a Changelog. Dates are America/Denver. "Deployed" is when the version went live on TCC Dev.
[Unreleased]
Planned (Phase 8, not built; was Phase 7 before the 2026-10-24 renumber)
- Stop menu UI declutter (about 5 top-level actions, submenus, status line).
- MDT Records tab: write citations and arrests in the CAD, search past ones by name, plate or officer.
[0.8.2] - 2026-10-26
Phase 7.1: MDT Supervisor / Admin tab (module MDTSupervisor).
Added
- MDT "Supervisor" tab, only for tccpd.admin or a department supervisor ACE: roster, duty logs, priority, panic overview, active calls (assign/unassign/clear), XP / penalty adjust, use of force, OIS review (admin), modules (admin), audit log (admin).
- Same permission checks as F6 > Admin; tablet actions audited as
mdt_supervisor. - Config:
Config.Modules.MDTSupervisor.panels(per-panel minimum level or false) andauditRows. - F6 > Admin > Audit log (admin).
Tests
- tests/mdtsup_sim.lua.
[0.8.1] - 2026-10-26
Phase 7.1 dispatch alerts (modules Panic, Priority, DutyLog, Civ911).
Added
- Panic: Code 99 now also plays a tone and drops a flashing PANIC blip for every on-duty unit; F6 > Admin > Panic alerts.
- Priority cooldown:
/prio(start/end for anyone, cooldown/hold/reset for supervisors), on-screen status for everyone, F6 > Admin > Priority cooldown. Audited. - Duty tracking:
/copsroster,/dutylog(7-day time log), F6 > Admin > Duty logs, old sessions pruned (keepDays),DutyLog.blipsswitch for unit blips. - Player 911:
/911,/911a(anonymous) create an offered call through the normal callout + MDT pipeline (nearest units);/respreplies to the caller.
Tests
- tests/alerts_sim.lua (priority state machine, panic push, roster, 911 + resp, modules off = nothing registered, live off).
[0.8.0] - 2026-10-26
Phase 7.0 module framework.
Added
config/modules.lua:Config.Modules.<Name>.enabled+ per-module settings (Panic, Priority, DutyLog, Civ911, MDTSupervisor; all on). Validated by the config validator.- Modules that are off at start register nothing (first one gated: the panic key
pdpanicbelongs to Modules.Panic). - F6 > Admin > Modules: ON/OFF toggles and reset to config, saved in resource KVP across restarts, audited.
/tccpd doctor: module states, pending-restart warnings, key conflict check aware of module keys.
Tests
- tests/modules_sim.lua (validation, overrides, persistence, admin actions, doctor mappings).
[0.7.57] - 2026-10-24
Deployed 2026-10-24 01:03 MDT.
Fixed
- Auto-assign (0.7.44/0.7.45) did not make vMenu or other spawned emergency vehicles your unit. Root cause: the only trigger was one client request per vehicle, and the server's per-player request lock answers
busywhile any other tcc_pd request of that player is still running (duty start, the autoAssign handler's own 1 s seat wait, other loops).busywas neither retryable nor shown quietly, so the client marked that vehicle done and never asked again. - New server-side seat watcher (
Gear.autoScan, every 1 s): for each on-duty officer the server readsGetVehiclePedIsIn+ seat -1 itself, so no enter event or client request is needed (vMenu warp-in, walk-in, passenger -> driver, already seated when going on duty, any spawner). The client publishes{ net, cls }in its player state bagtccpd_seatbecause the class is not readable server-side;autoAssignModelsmatches without it. - Claim logic shared (
Gear.claim, no yields): another on-duty officer's unit is never taken; the previous unit is released (not deleted). Successful assignments are logged at info level (auto-assigned unit vehicle net N (PLATE)); other outcomes at debug. - Client request path kept as a fast path:
busyis retryable and quiet; handler isconcurrent.
Config
autoAssignModelsdefault{ 'taurus19' }(add-on police car whose vehicles.meta class is VC_SPORT, not emergency).
Tests
- tests/autoassign_sim.lua: server watcher cases (warp-in, class bag late, spawn beside + get in with previous released, going on duty while seated, other officer's unit, allowlisted model without class, civilian car), client bag published once, busy retryable.
[0.7.56] - 2026-10-24
Deployed 2026-10-24 00:19 MDT.
Changed
- Pull-over targeting cone: the Left Shift target lock, the 0.7.55 pending pull-over (wait for lights) and the "Pull over vehicle" hint only consider vehicles inside
Config.Stops.targetConeDegrees(TOTAL cone width, default 60.0 = ±30° off the hood heading), measured on the horizontal plane. Max range (maxDistance22 m) and the closest-to-centerline/distance choice are unchanged. - New
Config.Stops.targetConeEnabled(true); false = range only. ReplacesconeDegrees(was a 30° half-angle). - Server
stop:begincheck uses the same half-angle + 15° lag slack. Config validator checks both keys.
Tests
- tests/cone_sim.lua: 0/29/31/60/180° offsets, wrap-around headings (350, 359.5, 5…), slopes, disabled cone, adjustable width, multi-vehicle choice, server inCone wrap.
[0.7.55] - 2026-10-23
Added
- Pending pull-over with lights off. A deliberate pull-over key press (LSHIFT) with emergency lights off on a valid target marks it as pending and shows "Activate your lights to initiate the stop" (hint stays on screen). As soon as the lights are on (siren state, as before: LVC / native), the normal pull-over starts on that same vehicle. A server-side siren-state lag (
stop_need_lights) is retried quietly. - Pending ends after
pendingLightsTimeoutMs(10 s) or when the target leaves range / the targeting cone forpendingLightsLoseMs(1.5 s, for curves): "Pull-over cancelled". Leaving the driver seat, going off duty or another stop starting cancel silently. - Pressing the key again while pending: retargets a different valid vehicle ahead, otherwise cancels ("Pull-over cancelled").
Config.Stops.pendingLightsEnabled = falserestores the old "Turn on your emergency lights first." refusal;requireLights = falsestill allows stops without lights. 0.7.35 "No valid target." rule unchanged (deliberate presses only).- client/patrol.lua: targeting check split into P.targetScore / P.isValidTarget (same rules as vehicleAhead).
- Tests: tests/pendinglights_sim.lua (22 checks), offline defaults check.
[0.7.54] - 2026-10-23
Added
- Abandoned traffic stop auto-clear. If the stopped driver is still in the driver seat and every officer of the stop and its call (stop officer + call units) is more than
Config.Stops.abandonDistance(300 m) away forabandonGraceMs(10 s), the stop call is cleared through the Clear Scene path (auto CODE 4 + clear_scene history, by "auto (units left the scene)"), the stop ends and the driver drives off like Free to go. Units get "Traffic stop cleared: all units left the scene". Toggle:abandonEnabled. - Never fires with: anyone of the stop or call cuffed / escorted / seated in a patrol car / handed to AI transport; driver out of the car, dead, surrendered, fleeing or in combat; any pursuit suspect; OIS / OIA or an escalated call; Follow Me / Mimic. The grace timer resets whenever a condition fails or a unit comes back within range. Officers off duty / disconnected count as away.
- Stops attached to a dispatch callout (not a stop call) only end the stop; the callout stays open.
/pddebug stopline showsabandon=<blocking reason | away Ns>.- Tests: tests/abandon_sim.lua (27 checks), offline defaults check.
[0.7.53] - 2026-10-23
- Jail booking at a drop-off (E) now works on foot only. In any vehicle the E context returns nothing, so in an emergency car E only sounds the LVC airhorn (and the normal horn elsewhere). The "Book prisoner" hint is hidden while seated. On foot at the booking point it works as before.
- Released together with 0.7.52 (Free to go distance failsafe 50 m -> 100 m,
Config.Stops.pendingRelease.maxDistance), which was deployed a minute earlier. - Tests: interact sim checks no E context at a drop-off in the driver seat, and booking on foot.
[0.7.52] - 2026-10-23
- Free to go (0.7.16 pending release): distance failsafe raised from 50 m to 100 m (
Config.Stops.pendingRelease.maxDistance = 100.0, still configurable). The 30 s failsafe (timeoutMs = 30000) and the off-duty failsafe are unchanged. - Tests: pending-release sim now checks 51 m and 99 m wait, 101 m releases; offline check of the 30 s / 100 m defaults.
[0.7.51] - 2026-10-23
- Traffic-stop flight (0.7.2
waitTooLong): the 30 s walk-up timer no longer counts while Follow Me or Mimic is active. Before, it ran from the first stop with no pause, so the driver could flee mid-follow or right after Stop Here. - Stop Here restarts the timer from zero (from the press). A walk-up (initiating or backup officer) still cancels it.
/pddebugstop info showswaitSec/waitPaused.- Offline tests: Mimic then Stop Here, Follow Me then Stop Here, walk-up after Stop Here; existing no-walk-up flee test unchanged.
[0.7.50] - 2026-10-23
- Reverted Scene Tools default key to G (
Config.Keys.scene); N is FiveM/GTA V voice push-to-talk. Still rebindable (pdscene). - Doctor config: comment notes the accepted overlap with the LVC airhorn on G and why N is not a good default.
- Tests expect scene = G again.
- Players who rebound scene tools to N should set it back (or to another free key) under Settings > Key Bindings > FiveM.
[0.7.49] - 2026-10-23
- Scene Tools default key changed from G to N (
Config.Keys.scene), since G is the LVC airhorn. Still rebindable (RegisterKeyMappingpdscene). Players who saved G must reset it under Settings > Key Bindings > FiveM. - Doctor conflict list: police_simulator_v note updated, LVC on G added.
- Tests now expect scene = N.
[0.7.48] - 2026-10-23
Deployed 21:59 MDT (tcc_pd b533b1e).
Changed
- The duty hint defaults are back in the bottom-left corner above the minimap (x 0.015, y 0.765, align 'left').
Config.Hud.dutyHint.alignstays. For bottom center use x 0.5, y 0.955, align 'center'.
[0.7.47] - 2026-10-23
Deployed 21:51 MDT (tcc_pd e1d5a5a).
Changed
- The "Press F6 to go on duty" hint is now drawn at the bottom center (x 0.5, y 0.955) because the vMenu location box covered its old spot above the minimap. The text is unchanged.
Added
Config.Hud.dutyHint.align('left', 'center' or 'right'; default 'center'). To restore the old spot, set x = 0.015, y = 0.765, align = 'left'.
[0.7.46] - 2026-10-23
Deployed 20:25 MDT (tcc_pd deccd2d).
- CODE 4 and Clear Scene are now separate steps.
/code4(F6, the MDT button or the optional rebindable keyConfig.Keys.code4) marks the call CODE 4, meaning the scene is secure. Every attached or responding unit is told to stop responding or downgrade to no lights, and new responders are refused. The call stays open with its peds, vehicles, blips and scene. - New: Clear Scene.
/clearscene(F6, MDT, optional keyConfig.Keys.clearScene, exportclearSceneCall) ends the call with the old cleanup, OIS retention, stop closing, XP and the move to call history. It's available after CODE 4 to the attached unit or a supervisor, and to admins at any time (it sets CODE 4 first). - Booking the last prisoner now runs an automatic Clear Scene, setting CODE 4 first if needed. OIS calls are still never auto-cleared.
- History lines read "Code 4 (scene secure) by X" and "Scene cleared by X". The MDT shows a CODE 4 status badge, and closed calls read "Code 4, scene cleared".
- Timeouts and abandonment are unchanged; they apply to CODE 4 calls the same way. The backlog/en-route-stop text now says "returns when the call is cleared".
- Tests: offline.lua gained 11 checks and booking_code4_sim.lua gained 3.
[0.7.45] - 2026-10-23
Deployed 09:57 MDT (tcc_pd c213148).
- Auto-assign trigger: the old 1 s loop gave up on a vehicle after one failed server call. The new loop runs every 500 ms on GetVehiclePedIsIn + seat -1 and fires once per (vehicle, driver, on duty). It works for a vMenu warp into the seat, a walk-in, passenger -> driver and being seated at duty start. It waits up to 10 s for networking and retries
aa_not_readywith backoff (0.5/1/2/4 s), and those retries are silent. - Server: resolves the net id and driver seat with up to 10 x 100 ms retries, then claims with no yield. New error codes:
aa_off,aa_not_readyandaa_not_emergency(no morebad_requestpopups). - tests/autoassign_sim.lua: 34 checks, including warp-in, walk-in, not-yet-networked, seated at duty start and passenger -> driver.
[0.7.44] - 2026-10-23
Deployed 09:22 MDT (tcc_pd 454ec12).
- Auto-assign: an on-duty driver of an unassigned emergency vehicle (class 18 or
autoAssignModels) gets it as their unit, whatever spawned it. The claim runs server-side in one tick, an on-duty officer's unit is never taken, and the previous unit is released, not deleted. Auto-assigned units are never deleted by tcc_pd. - Hooks: trunk resupply, tow/mechanic, unit blips show the plate,
Gear.callsignForPlate, and the stop/spike/aim exclusions throughtccpd_vehiclestate. - New config:
VehicleSettings.autoAssignOnEnter,autoAssignClassesandautoAssignModels. New test: tests/autoassign_sim.lua.
[0.7.43] - 2026-10-23
Deployed 01:29 MDT, commit fb4b23b. All content below is new and written for TCC.
Added
- Cuff events for other resources:
tcc_pd:client:cuffedandtcc_pd:client:uncuffed, with the net id of the ped. tcc_cuffs uses them to play sounds. - 22 more arrest charges (59 total), every one with a fine. Examples: DUI causing injury, unauthorised use of a vehicle, street racing, leaving the scene, shoplifting, grand theft, fraud, forgery, arson, stalking, domestic battery, criminal threats, drug trafficking, manufacturing, weapons trafficking, felon with a firearm, explosives, impersonating an officer, bribery, failure to appear and vehicular manslaughter.
- More search items:
- 12 more legal person items and 12 more legal vehicle items.
- More items in the drugs, weapons, gang, alcohol, theft, warrant and probation pools.
- A new
suspendedvehicle pool (suspension notice, expired licence, unpaid tickets) for drivers whose licence is suspended or revoked. - 37 items are now illegal and show in red.
- 7 more interview questions (20 total) with dynamic answers: where are you coming from, insurance, passengers, cash, consent to search, last drink and ID check.
Tests
tests/content_sim.luahas new 0.7.43 checks (counts, the suspended pool, no duplicate legal items).
[0.7.42] - 2026-10-23
Deployed 00:10 MDT, commit d0bb6a0. All content below is new and written for TCC.
Added
- 20 more arrest charges (37 total), for example driving with a suspended licence, hit and run, burglary, receiving stolen property, concealed or prohibited weapon, false information, identity theft, kidnapping, attempted murder and murder.
- Every charge now has a fine (
fine, USD) next to its months. The booking, AI transport and MDT "Add charges" pickers show "(6 mo, $1000)". The booking message adds the total fine. The arrest record keeps each charge's fine. - More search item types: 30 legal person items, 30 legal vehicle items, and more flag items (drug kit, weapons, gang, alcohol, theft tools, warrant and probation). 24 items are illegal and show in red.
- 8 more interview questions (13 total): name, home, age, work, licence, plate, weapons, past arrests, and in a hurry.
- Dynamic answers. Tags fill from the subject:
{first}{last}{age}{street}{city}{job}{model}{plate}. - New answer pools
stolen(the car is reported stolen),warrant(an active warrant, for example a fake name) andsuspended(the licence is not valid). The order is intoxicated, stolen, warrant, suspended, nervous, normal.
Config
Config.Charges[].fine,Config.QuestionJobs, and the new pools inConfig.Questions.
Tests
tests/content_sim.lua.
[0.7.41] - 2026-10-22
Added
- Nearest postal on calls. When DevBlocky's nearest-postal is running, a new call's title gets its nearest postal ("Shots fired, postal 7012"). Offers, dispatch notifications and MDT call history all show it. Set by
Config.Postals(enabled,resource,maxDist). If the resource is missing, stopped or errors, calls look the same as before. No /postal command was added because nearest-postal already has/postal <code>.
[0.7.40] - 2026-10-22
Added
- Optional plate reader integration with WolfKnight's wk_wars2x (Wraith ARS 2X 1.3.1, MIT), installed as its own resource. When the reader locks or reads a plate, tcc_pd looks the car up in its vehicle records. If the plate is flagged (stolen, registration expired/none, insurance expired/none, registered owner with a warrant or a suspended/revoked licence, other record flags), you get a "Plate reader" hint naming the plate and the flags. A locked clean plate says "no flags". The record is attached to that car, so a pull-over on it is a normal stop with the same record. Uses wk_wars2x's
wk:onPlateLocked/wk:onPlateScannedevents; wk_wars2x code is unchanged. If wk_wars2x isn't running, nothing happens.
Config
Config.Alpr(enabled,resource,onScan,notifyClean,repeatSec,maxDist).
Tests
tests/alpr_sim.lua.
[0.7.39] - 2026-10-22
Changed
- Tow AI: the flatbed drives or backs up to within about 7 m of the car before anything happens. The driver walks to the car, inspects it, walks back to the truck, and only then is the car loaded onto the bed. If the truck can't get within about 15 m (blocked, timed out), the car is pulled in with a short winch and then attached. The traffic zone and slowdown from 0.7.21 are unchanged; the zone is placed once the truck is parked at the car.
Config
Config.Services.types.tow.approach(enabled,approachDist,tolerance,speed,timeoutSec,loadMaxDist,winchSec).
Tests
tests/tow_approach_sim.lua.
[0.7.38] - 2026-10-22
Added
- Auto CODE 4: when the last cuffed/arrested suspect on a call is booked, the call is cleared automatically with the same cleanup as a manual /code4. Suspects still in custody or in transport keep it open; fled suspects don't. OIS calls always stay open for a deliberate /code4.
Config
Config.Arrest.autoCode4OnBooking(defaulttrue).
Tests
tests/booking_code4_sim.lua.
[0.7.37] - 2026-10-22
Changed
- Each station has a booking desk / cell point. The jail waypoint, marker and blip point there, and booking only completes near it.
Config
Config.Jail.dropoffs[*].booking(vector3). The shipped points are approximate; verify them in game.
Tests
tests/jail_booking_sim.lua.
[0.7.36] - 2026-10-22
Changed
- ID cards you receive stay on screen with a hint. J (
pdid) hides/shows them; Backspace (tccpd_cancelaction) closes them. Both are rebindable.
Config
Config.Mdt.idCardPinOnReceive(defaulttrue;falserestores the old timed card).
Tests
tests/idcard_pin_sim.lua.
[0.7.35] - 2026-10-22
Fixed
- "No valid target." popping up in or around the patrol car during fights. The pull-over key (default LSHIFT) is shared with sprint, bike pedal and boost, so it gets pressed while driving, during drive-bys and when bailing out. Missing targets are now reported only for a deliberate press: driver seat, not aiming or shooting, no shot in the last 5 s, not entering or exiting. The "turn on your lights" message and server refusals stay silent in those cases too.
Tests
tests/pullover_notarget_sim.lua.
0.7.34 (2026-10-22)
- Fixed: "No valid target." popping after shootouts from automatic observations and surrender countdowns.
- It now shows only when you press the key, and at most once per 5 s.
0.7.33 (2026-10-22)
- Call history shows names instead of
shot<number>, and reads "OFFICER DOWN: <callsign>". - New history lines for Officer Involved Assault deaths and Gang Attack upgrades.
- A ped who fakes a surrender and then draws counts as hostile, even when killed with one shot.
0.7.32 (2026-10-22)
- Fixed: a melee kill turned the Officer Involved Assault call into an OIS.
- Melee-only incidents now stay Officer Involved Assault, even when the ped dies. Only firearm use makes the call an OIS.
- OIA deaths still get the coroner.
0.7.31 (2026-10-22)
- Fixed: one-punch knockouts or kills on random peds created no Officer Involved Assault call and applied no melee penalty.
- Only tasers count as non-lethal now.
0.7.30 (2026-10-21)
- Fixed: since 0.7.26, shots on NPCs were never reported to the server (a client script load error). That meant no OIS calls and no use-of-force results.
- Fixed: "No valid target." spam when aiming at hostile gang members.
- New: melee use of force. A wrongful melee kill costs -35 and a non-fatal melee hit costs nothing.
- New: Officer Involved Assault calls, which become an OIS if shots are fired.
- Hit reports are now always logged.
0.7.29 (2026-10-21)
- Fixed: releasing E after the hold step cancelled the trunk resupply + first aid. You only hold E for the first bar now.
- New: the cancel key (default Backspace, rebindable).
- If you cancel during first aid, you still keep the ammo and armour.
0.7.28 (2026-10-21)
- Fixed: shooting a surrender target who drew a gun sometimes created no OIS call (the hit report was dropped).
- Every justified shooting with no call now opens the OIS at once (one call per incident).
- New: Gang Attack on an Officer. An OIS with 2+ other armed hostiles nearby within 2 minutes is upgraded in place, gets critical priority and is re-broadcast to on-duty units.
0.7.27 (2026-10-21)
- Fixed: shooting an NPC driver who had just hit you with their vehicle counted as wrongful.
- That driver is now hostile for a while (server-checked; driver only, never passengers).
- A later surrender or stop restores protection.
0.7.26 (2026-10-21)
- Fixed: wrongful-force penalties for shooting armed gang members who were shooting at you.
- Peds in a firefight with an officer are now hostile (server-checked), and armed ambient peds count as neutral.
- Surrendered, cuffed, stopped and fleeing peds, and unarmed bystanders, still cost XP.
0.7.25 (2026-10-21)
- Fixed: menus went back to the left after a resource restart while the Menu side toggle still showed Right. The saved side is now applied once the menu UI has loaded, on spawn, and before every menu opens. Observations follow the same setting.
0.7.24 (2026-10-21)
- Fixed: shooting a surrendered ped dead (or any ped-stop or OIS body) and clearing without requesting a coroner gave no scene-cleanup cut.
- Bodies are now snapshotted when the stop ends. A stop whose call is still open is judged after the call clears.
- A missed scene costs at least
sceneCleanup.minPenalty(10 XP). The notification says when the minimum applied.
[0.7.23] - 2026-10-21 (deployed 21:44 MDT)
Fixed
- The lights-off countdown waits for your lights to be off. After a citation or warning, getting back into your patrol car with the emergency lights still on, including lights-only with the siren muted, started the 4 s countdown straight away. Now it starts only when your lights are off: either already off when you sit down (after about a second), or when you switch them off. Turning them back on still cancels it.
[0.7.22] - 2026-10-21 (deployed 21:40 MDT)
Fixed
- Each surrendered person acts on their own. If two people surrendered to you and one of them ran off (because no officer was within 30 m) or gave up waiting, the other one also got up and walked away, even though they were still surrendered. Now the other person stays surrendered until their own rule applies, or until you cuff them, release them or end the stop.
[0.7.21] - 2026-10-21 (deployed 21:37 MDT)
Changed
- AI services start slowing down a little later. Tow trucks, the coroner, ambulances and the other AI services now start easing off about 15% closer to the scene: about 42 m, then about 17 m for the final crawl.
Fixed
- Traffic waits for the service crew. While a crew member walks between their vehicle and the scene, AI traffic nearby now stops instead of steering around them. It moves again once they're back in the vehicle and drive off. Player vehicles are never affected.
[0.7.20] - 2026-10-21 (deployed 21:18 MDT)
Changed
- Tapping a fleeing suspect with your car is no longer penalised. Hitting someone with the vehicle you are driving costs nothing. If the impact kills them, you lose 35 points. If you had already wrongfully shot or hit them first, the usual total of 60 still applies.
- Attacking an officer makes a person hostile. Someone who punches or attacks an officer in melee and keeps running or fighting draws no penalty if you hit or kill them, the same as someone who drew a weapon. If they surrender afterwards, they are protected again.
[0.7.19] - 2026-10-21 (deployed 21:12 MDT)
Changed
- Observations stay clear of your menu. If you put your menu on the right, the Observations popup now slides in on the left of your screen, inside your GTA safe zone. Switch sides any time with F6 > Menu side or
/tccpd menuside left|right; it updates right away. With the menu on the left (the default), nothing changes.
[0.7.18] - 2026-10-21 (deployed 19:36 MDT)
Fixed
- The lights-off release now starts the way you'd expect. After a citation or written warning, if you switched your lights off on the walk back, just getting into the driver seat now starts the 4 s countdown. Before, you had to turn the lights on and off again from the seat. Lights on or leaving the seat still cancels it.
- Free to go no longer skips the countdown. If you chose "free to go" after a citation or warning, getting in used to release the driver right away with no countdown. Now the lights-off countdown does it. If you leave your lights on, the driver still leaves on their own after 30 s.
[0.7.17] - 2026-10-21 (deployed 19:25 MDT)
Fixed
- Stopped vehicles can be moved once the driver is out. After the driver got out and surrendered (or was cuffed or removed), their car could stay stuck with the handbrake on and the doors locked. Now, as soon as nobody is in the driver seat (or an officer gets in), the car is fully released: handbrake off, drivable, doors unlocked. You can drive it or push it off the road. The car still stays put while the driver is sitting in it during the stop.
[0.7.16] - 2026-10-21 (deployed 19:15 MDT)
Changed
- "Free to go" now waits for you to get back in your car. When you release the driver (Talk to the Driver > Release, or End stop), they stay put, engine running, and you see "the driver will leave once you are back in your vehicle". About 1.5 s after you sit in your patrol car's driver seat, they pull away calmly and the stop closes as usual.
- If you stay outside (for example for an after-action talk), the driver leaves on their own after 30 s. They also leave if you walk more than 50 m away or go off duty.
- The lights-off release after a citation or warning still works, and the driver is only released once. Keeping their documents is still penalised when the stop actually ends.
[0.7.15] - 2026-10-21 (deployed 19:06 MDT)
Fixed
- The ID and registration cards are back on screen. In 0.7.14, opening them with J drew them almost entirely off the left edge. They are back in their usual place on the right, inside your GTA safe zone, at every safe zone size and screen shape, with the menu on either side.
[0.7.14] - 2026-10-21 (deployed 18:46 MDT)
Changed
- The menus follow your GTA safe zone. The F6 menu and every police sub-menu now sit inside the safe zone you set in GTA Settings > Display (Safe Zone Size). They scale with your resolution and stay correctly placed on ultrawide screens. On triple-screen setups they stay on the centre screen. The ID and registration cards follow the safe zone too.
Added
- Choose your menu side. Menus open on the left by default. Use F6 > "Menu side", or
/tccpd menuside left|right(with no side, it toggles). Your choice is saved on your PC. - Your keys, the one-menu-at-a-time behaviour and the MDT tablet position are unchanged.
[0.7.13] - 2026-10-21 (deployed 16:14 MDT)
Fixed
- Aim-to-surrender works again. Since 0.7.12, aiming at many people said "No valid target" because some were wrongly treated as having pulled a weapon. Now someone only counts as having drawn when your game actually sees the weapon in their hand, sees them shooting, or sees them fighting you, and the server confirms it. Self-defence is still justified, people who drew still won't surrender, and the automatic OIS call is unchanged.
[0.7.12] - 2026-10-21 (deployed 16:05 MDT)
Fixed
- Self-defence no longer costs XP. If someone you aim at pulls a gun before the surrender countdown ends, they're hostile. This applies on foot or on a motorcycle, with or without a stop or call. Shooting or killing them is justified, and they won't surrender after that. A countdown that hasn't finished never counts as a surrender. Shooting someone who really surrendered unarmed still costs XP, and so does shooting someone who is cuffed.
Added
- Automatic OIS call. If you shoot a hostile person while you're on no call, an Officer Involved Shooting call is created for you at that spot. A vehicle they were on, such as a motorcycle, is attached, and so is your stop if you had one. It runs like any other OIS: the coroner comes automatically, there's an exigent search, and the scene cleanup rules apply. Config:
Config.UseOfForce.autoOis = true.
[0.7.11] - 2026-10-21 (deployed 15:58 MDT)
Changed
- After an officer-involved shooting you must request the coroner yourself. The automatic coroner still comes, but it no longer counts as cleaning up the scene. Request an ambulance or coroner with /pdservice while on scene (within 80 m, after the scene started), or you get the 25% scene cleanup cut. It's still a single cut, never stacked. If the automatic coroner already has the bodies, your request is acknowledged and counts. Config:
sceneCleanup.autoCoronerCounts = false(set it to true for the old behaviour).
[0.7.10] - 2026-10-21 (deployed 15:54 MDT)
Fixed
- The kill penalty after a wrongful shot now applies. Shooting someone who had surrendered cost -25 XP, but when they then died the extra -35 (60 in total) never came. Your game now keeps watching anyone you wrongly shot and reports their death, whether it comes from a later shot or from bleeding out minutes later. The server accepts that report even if the body is already gone. If no report arrives, the server notices the death itself. The top-up applies exactly once.
[0.7.9] - 2026-10-21 (deployed 15:46 MDT)
Fixed
- Use of force on random people now counts. Shooting or killing someone who had surrendered to you, was cuffed, or was complying on a stop could cost no XP, especially when there was no call. The game wasn't telling the server about hits on people your own game was controlling, which is usually the case for a random person standing next to you. Your game now reports your hits itself, and what the person was doing at the moment of the shot is used, even if the shot made them run or die. The penalty applies with or without a call, and you get a notification.
Added
- Failure to clean up the scene. If a stop or call ends and you leave a vehicle behind (driver arrested, car abandoned or held) without requesting a tow, or a downed or dead person without requesting an ambulance or coroner, you lose 25% of the XP you earned on that stop or call. It's one cut however many things you missed, and the notice lists them. Requests made with /pdservice count as proof. Stops are checked 90 seconds after they end, so you can still call the tow after the arrest. On an OIS call the coroner comes by itself. There's no cut when the driver drove off (released, cited or warned) or when an admin ended the stop. Config:
Config.UseOfForce.punishments.sceneCleanupandConfig.UseOfForce.sceneCleanup.
[0.7.8] - 2026-10-21 (deployed 12:44 MDT)
Added
- Lights-off release on traffic stops. After you (the officer who started the stop) give the driver a citation or warning, get back in the driver seat of your patrol car and switch your emergency lights off. A 4-second countdown appears on screen. Turn the lights back on or leave the seat to cancel. When the countdown ends, the driver is told they're free to go and drives off calmly, exactly as with Release, and the stop call closes. If you still have their ID and registration, the countdown warns you, and the 0.7.7 XP penalty still applies. Config:
Config.Stops.autoRelease = { enabled = true, countdownMs = 4000 }.
[0.7.7] - 2026-10-21 (deployed 12:06 MDT)
Added
- Vehicle registration with the driver's ID. On a traffic stop, when you ask the driver for ID, a registration card for the stopped vehicle appears right under the ID card. It shows the plate in large print, make/model, color, registered owner, and registration and insurance status, so you can type the plate straight into the MDT plate lookup. It uses the same data as the MDT plate lookup, so the two always agree. It only appears for the driver of the stopped vehicle, and only after you ask for ID. Passengers' IDs show no registration. J shows or pins both cards together. J can still be rebound under Settings → Key Bindings → FiveM.
- Return ID and registration (stop / E menu, shown while you hold the driver's documents). It hands them back and clears the J window.
- XP penalty for keeping the documents. If a traffic stop ends while you still hold the driver's ID and registration, you lose 10 XP and get a notification. This runs through the use-of-force punishment system: toggle
Config.UseOfForce.punishments.unreturnedDocs, amountpoints.unreturnedDocs. There is no penalty when the stop ends in an arrest, the driver flees or resists, the stop is ended by an admin, or the officer leaves (docsExemptOutcomes).
[0.7.6] - 2026-10-21 (deployed 11:57 MDT)
Fixed
- Surrendered people stay surrendered when you aim at someone else. If someone had already put their hands up or knelt and you then made a second person surrender, the first one got up and walked or ran off. Now everyone who surrendered to you stays in the same stop and keeps their hands up until you cuff them, or until the usual 60-second timeout if nobody comes near.
Added
- Don't walk away from a surrendered suspect. If no on-duty officer is within 30 m of someone who surrendered but isn't cuffed for about 3 seconds, they take their chance and run. You get a normal foot pursuit, and their call gets the remark "Surrendered suspect fled after officers left the area". Any on-duty officer nearby counts, not just the one who aimed. Cuffed, escorted or seated people never run.
/pddebug aimalso lists the surrendered people with their timeout and the distance to the nearest officer.
[0.7.5] - 2026-10-21 (deployed 11:37 MDT)
Changed
- AI services pull up calmly. Tow trucks, the coroner, ambulances, mechanics, prisoner transport and AI backup no longer race in and slam on the brakes. They slow to about 25 mph in the last 50 m and about 10 mph in the last 20 m, drive carefully (stopping for cars and people), and roll to a stop. They try to park a little away from your car, other occupied cars and suspects instead of on top of them. The crew gets out once they've stopped.
Added
- Traffic slows around a working service. While the crew works, AI traffic within about 28 m slows to a crawl (about 6 mph), and it stops right next to the service vehicle. AI cars about to drive straight into it brake briefly. This works for everyone nearby and ends as soon as the service vehicle drives off (moves more than 5 m), the job is cancelled or finishes, or you leave the area.
/pddebug serviceslists the active traffic zones near you and the last service's arrival stage.
[0.7.4] - 2026-10-21 (deployed 11:07 MDT)
Fixed
- Two menus stacked on top of each other. Pressing E twice next to a vehicle could open a second menu over the first: the arrow keys moved a hidden menu, the visible one ignored you, and hints from the hidden one stayed on screen. Now only one TCC PD menu is ever open:
- Pressing E again on the same car or person closes the menu.
- E on someone else, F6, the in-car stop key, scene tools or the admin menu closes the current menu completely, then opens the new one.
- F6 still remembers where you were. That spot is forgotten only when you open a different menu (E, stop key…) while F6 is open.
- The "[E] …" hints are hidden while a menu is open. The en-route stop prompt still shows.
[0.7.3] - 2026-10-21 (deployed 11:01 MDT)
Fixed
- Pursuit vehicle surrendering at gunpoint. When you aim at a fleeing car and it gives up, the driver now brakes to a full stop and everyone gets out before kneeling or putting their hands up. Before, the driver sat in the seat with their hands up while the car kept rolling. Passengers who decide to run still bail out first. The call gets the remark "Driver surrendered at gunpoint, vehicle stopped", and the call still counts as a pursuit, so the car can be searched without consent.
Added
- Stops while you're on a call. If you pull someone over (or stop a pedestrian) while you're attached to a call, you now get a Traffic Stop / Pedestrian Stop call of your own. Your original call goes on hold, with a remark that you started the stop. A prompt with a 15-second countdown asks what to do with the original call:
- K: Request unit for stop. Other free units are offered your stop. When one attaches, they take over the stop and you go straight back to your original call with its route. If nobody takes it, you go back to the original call when you Code 4 the stop.
- L: Forward original call. You're taken off the original call. If nobody else is on it, it's offered to the nearest free unit. This is what happens if you don't answer in time.
- Officer-involved shooting, Officer Down and Code 99 calls are never forwarded. They stay on hold and you go back to them after the stop.
- Both keys can be rebound under Settings → Key Bindings → FiveM.
[0.7.2] - 2026-10-21 (deployed 10:19 MDT)
Added
- Drivers may take off during a stop. Besides fleeing when you light them up, a stopped driver may now drive off when you first get out of your car, when you first walk up to them, if nobody walks up within 30 seconds (only drivers with something to hide), or after you've talked to them and sat back in your car for about 10 seconds. Clean drivers rarely do it, wanted drivers or ones carrying something much more often, and drunk or high drivers more often when you're back in your car. It turns into a normal pursuit, and the call gets a remark such as "Vehicle fled on officer approach".
- Observations. Stand next to someone on foot, or at a car window, for a few seconds and you'll see what you notice: nervous, smell of alcohol, slurred speech, smell of cannabis, an open container in plain view, a weapon bulge, or simply calm. It's based on who they really are, but nervousness isn't a sure sign. On a call your observations are added as a remark. "Observations" in the E menu shows them again.
[0.7.1] - 2026-10-20 (deployed 23:13 MDT)
Fixed
- Searching vehicles in a pursuit, shooting or officer down. If a call turns into a pursuit, an officer-involved shooting or an Officer Down, its vehicles can be searched without an arrest or consent. That includes the suspect's car from a stop that became a pursuit. The search remark names the reason, e.g. "Search authority: exigent - pursuit".
Changed
- Getting into a suspect's vehicle. Once an officer has sat in a vehicle, it can be searched without consent or an arrest. If that's the only reason, the call gets the remark "Search conducted after officer entered vehicle (callsign) without consent or arrest - search may be unlawful." Locked parked cars still need a break-in. The search menu shows the authority you're searching under.
[0.7.0] - 2026-10-20 (deployed 23:08 MDT)
Changed
- New MDT Records tabs. Call Lookup finds any call of your department by its number (old short numbers work too); supervisors can add or edit a note on it. Calendar shows how many calls you worked each day, with a year view and a list per day. My records and Department now show only your latest entries (5, 10 or 25, set by admins, or your own choice if they allow it).
- New call numbers. Calls now get a number made from the date and a daily count, like
26102103(the 3rd call on 21 Oct 2026, Mountain time). Older calls keep their old short number. You'll see the new number everywhere a call is shown. - Aim to surrender can go wrong now. When the countdown ends, how the suspect reacts depends on who they are:
- Armed suspects: about 3 in 10 draw and shoot, and about 1 in 10 pretend to give up and then draw a few seconds later. Once someone has drawn on you, aiming won't make them surrender any more; you have to stop them.
- Unarmed suspects carrying something illegal or with a warrant usually run.
- Unarmed, clean people almost always give up.
- If an unarmed suspect refuses, keep aiming at them and a new countdown starts by itself. Each try is a bit more likely to work.
- Vehicles: people in a car get out first, then react.
- Officer Down. When an officer on duty goes down or dies, every on-duty officer gets an Officer Down alert with a map blip and can respond, whatever their department. If the officer was on a call, that call becomes the Officer Down call; otherwise a new one is created where they fell. Being revived or respawning adds a note, but the call stays open until someone clears it.
- Drop everything for an OIS or Officer Down. You can respond to one even while you're on another call. Your call is saved as backlogged; if nobody else is on it, it shows as Paused in the MDT. When the priority call is cleared, you're put back on your old call automatically, or told it was already cleared. Your backlog shows in F6 and the MDT.
- Use-of-force rules for EXP. Every time you shoot an NPC, the server checks what the NPC was doing at that moment.
- Wrongful: shooting someone with no weapon out who is unarmed, running away, has their hands up or is cuffed costs EXP, and more if they die. Depending on server settings, it can instead cancel the EXP for that call.
- Justified: shooting someone who is drawing or already pointing a weapon at you is justified and earns a bonus when the call is finished.
- Draws are visible: armed suspects now visibly pull their weapon before they shoot.
- Logged: every case is noted on the call, and supervisors can review them in F6 → Admin → Use of force.
- Respawning on duty puts you at your station. If you die on duty and respawn, you come back at the nearest station of your department with your shift's weapons. Off duty, nothing changes, and being revived with CPR still gets you up where you fell.
[0.6.19] - 2026-10-20 (deployed 09:46 MDT)
Fixed
- F6 submenus open again. In Admin, Supervisor and Patrol, picking a submenu reloaded the same menu. Once you got in, nothing inside worked. Submenus now open on the first try and every row works. The popup protections from 0.6.18 are still in place.
[0.6.18] - 2026-10-20 (deployed 09:39 MDT)
Fixed
- Popups opened from the F6 menu work again. Some actions open a popup, such as forcing a callout in Admin or a confirm / input box. That popup could get stuck on screen, ignore the mouse, and let Enter repeat the action. Now the menu hides while a popup is open, ignores keys, and comes back when you're done. An action can't be triggered twice by accident.
Added
- If a popup or menu ever gets stuck, press F6 or type
/tccpd unstuckto clear it.
[0.6.17] - 2026-10-19 (deployed 23:56 MDT)
Changed
- The F6 menu stays open when you pick something. It refreshes on the same screen. Dialogs, progress bars and the MDT hide it while they're up, and it comes back when they close.
- Backspace and Esc go back one screen. On the main screen they close the menu.
- F6 remembers where you were. Press F6 with the menu open to close it, then F6 again to reopen on the same screen and row. If that screen no longer exists (for example you went off duty), you land one level up. This resets when the resource restarts or you relog.
[0.6.16] - 2026-10-19 (deployed 23:50 MDT)
Added
- Searching a vehicle opens its doors, and everyone sees it. Driver side opens both left doors, passenger side opens both right doors, and trunk opens the trunk. A full search opens all four doors and the trunk. The doors stay open afterwards and can be closed normally. The trunk closes itself when its search finishes. Missing or broken doors are skipped.
[0.6.15] - 2026-10-19 (deployed 23:35 MDT)
Changed
- Aim to surrender is more forgiving. Once you're aimed at someone and the countdown has started, it keeps going if your aim wobbles a little (about 11 degrees) or they duck behind a car for a moment (up to 1.5 seconds). It only starts over if you lose them for longer, or if you aim directly at a different person.
[0.6.14] - 2026-10-19 (deployed 23:31 MDT)
Fixed
- The AI prisoner transport officer now walks your prisoner straight back to the transport car instead of wandering around.
Added
- Request backup key: press Page Up (rebindable: "TCC PD: request backup (Code 3)") to call Code 3 backup instantly, even while driving. If no other officers are on duty, AI backup comes. There's also an optional panic / Code 99 key with no default. Bind it yourself if you want it. Both have a 15-second cooldown.
Changed
- TCC PD menus no longer stop you moving. With the F6 menu (and the stop, person and vehicle menus) open you can keep walking and driving. Use the arrow keys to move, Enter to select, Backspace to go back, Esc to close. While a menu is open, the arrow keys, Enter, Backspace, Esc-pause, the weapon wheel and weapon scroll, the vehicle radio and firing are blocked. The MDT still uses the mouse.
[0.6.13] - 2026-10-19 (deployed 23:16 MDT)
Fixed
- Aim to surrender now works. Before, nothing happened and no countdown showed when you aimed at people or cars. Now the "Keep aiming" countdown shows, and people are detected when you free-aim at them, not only with lock-on.
- New
/pddebug aimcommand: shows once per second why aiming isn't working (not on duty, no gun, too fast, out of range...).
[0.6.12] - 2026-10-19 (deployed 23:09 MDT)
Added
- Aim to surrender: on duty, keep your weapon aimed at a person (not police, EMS or fire) within about 30 m for 2-4 seconds. They stop, put their hands up and kneel. Then walk up: tap E for their menu, hold E to cuff. Looking away or losing sight of them resets the timer.
- Works on people fleeing on foot too, and on cars going 18 mph or slower (or stopped): the driver stops and everyone gets out with their hands up. Faster cars ignore it.
- A random person who surrenders becomes a stop like a normal pedestrian stop. On a call, the call gets a remark, and a pursuit ends as "suspect surrendered".
- If nobody walks up within 60 seconds, they give up waiting and leave.
[0.6.11] - 2026-10-19 (deployed 23:02 MDT)
Added
- Supplemental charges: found something else after a suspect was booked or taken away by transport? Open their arrest in the MDT (person record, or the call's Details under "Arrests on this call") and pick Add charges. The original arrest stays as it was; the new charges are listed under it with who added them and when.
- Who can add: the arresting officer, anyone who was attached to that call, supervisors of the department, and admins.
- The call gets a remark like "Supplemental charges added to Jo Doe by 2-S-24: Possession". Units still on the call get the usual popup. This works on closed calls too.
[0.6.10] - 2026-10-19 (deployed 22:42 MDT)
Fixed
- A stopped car no longer says "Vehicle is locked" after you order the people out. Cars from a stop or a call, or that had people in them, are never locked. Only truly empty parked cars can be locked.
Added
- Search authority: on a stop or call you need a reason to search the car. Either arrest someone from it (put them in your car, or book them) or ask: Ask to search vehicle in the vehicle menu or the person menu. They usually say yes if they have nothing to hide, and rarely if they do. People with a warrant or a record say yes less often. A "no" is final for that stop. Their answer pops up on screen.
- On a call, the call gets a remark: "Consent to search: granted/refused" or "Search incident to arrest".
- Empty parked cars need no consent (nobody is there to ask). You just need to get inside if it's locked.
[0.6.9] - 2026-10-19 (deployed 21:59 MDT)
Added
- Trunk resupply: stand at the trunk of your own police car. Tap E (3-4 seconds) to restock ammo for the weapons in your last loadout, up to that loadout's amounts, and top up your armour. Hold E (6-8 seconds) to also get first aid. Moving or getting hurt cancels it, and there is a short cooldown between uses.
- "Your own police car" means the car you spawned from tcc_pd, or the last emergency vehicle you drove this shift (as long as nobody else is driving it).
Changed
- Your own police car no longer shows the civilian "Check vehicle" menu.
[0.6.8] - 2026-10-19 (deployed 21:55 MDT)
Added
- Check vehicle (E): walk up to any parked or civilian vehicle (not emergency vehicles, not cars with players in them) and tap E to run the plate, inspect it or search it.
- Parked cars may be locked (about 6 in 10). Locked cars can't be searched; the plate still runs. To break in, try to get in (your character smashes the window) or pick Break in. On a call, the break-in is noted on the call.
- Search this side (driver side, passenger side or trunk, from where you stand, 1-2 seconds) or Full search (everything, takes longer). Areas you have searched are marked. Walking away or getting hurt cancels the search.
- Several officers can search the same car at once, each in a different area.
- On a call, every search result is added to the call as a remark that the other units see (e.g. "[Search - Trunk] 2-S-24: found 1x baggie of cocaine").
Fixed
- You can no longer end a traffic stop ("free to go") while someone from it is still cuffed, escorted or in your car. Uncuff and release them first.
- Releasing one person no longer closes the call while others from the stop are still in custody.
- A released driver or passenger now walks back to their own car, gets into their own seat and drives off (if the car is still there).
[0.6.7] - 2026-10-19 (deployed 21:39 MDT)
Fixed
- E next to a stopped vehicle opens the traffic stop menu again, even with a body or a person on foot right next to the car. Tap E for the menu; hold E for CPR, to stop the person, or to cuff.
[0.6.6] - 2026-10-19 (deployed 13:40 MDT)
Added
- Full documentation now lives with the resource: install, configuration, permissions, keybinds, writing callouts and troubleshooting.
[0.6.5] - 2026-10-19 (deployed 13:38 MDT)
Added
- Everyone on the same call now sees the same task markers on the map (for example "Getaway car" or a search area), including officers who join later.
- Some calls, such as a robbery at a particular store, now happen at a fixed place. The same call can no longer run twice at that place at the same time.
Changed
- MDT records can be limited to your own department. Supervisors also see the departments they supervise, and high ranks can be allowed to see everything (server setting).
[0.6.4] - 2026-10-19 (deployed 13:36 MDT)
Added
- AI backup when you patrol alone: if you call for backup (Code 1, 2, 3 or 99) and no other officer is on duty, AI police units drive to you (two for Code 99, lights and siren on Code 3 and 99). They stay with you until you cancel the request, then drive off. Staff can switch this off.
[0.6.3] - 2026-10-19 (deployed 13:33 MDT)
Changed
- Call suspects and vehicles now appear only when an officer assigned to the call gets close (about 250 m), not when any player passes by. They are still removed completely when the call ends.
[0.6.2] - 2026-10-19 (deployed 13:32 MDT)
Added
- Tasers are non-lethal: a suspect hit by a taser goes down but survives.
- PIT manoeuvre: spin out a fleeing suspect's car with your patrol car and its engine dies. It can't drive for a few seconds, and sometimes the driver bails out and runs.
[0.6.1] - 2026-10-19 (deployed 13:30 MDT)
Added
- New tools for callout authors: version checks, a developer mode with clear error traces, start requirements and story branches.
- Callouts can now play out differently each time (calm, flee, armed…).
[0.6.0] - 2026-10-19 (deployed 13:26 MDT)
Added
- Health check for staff:
/tccpd doctor(also F6 → Admin → Doctor) checks the server setup and shows your current key binds. It also warns about other resources that use the same keys.
[0.5.6] - 2026-10-19 (deployed 13:14 MDT)
Added
- Police transport: an AI unit of your department picks up your cuffed suspects, walks them to its car and books them on the charges you entered.
- Staff can switch each AI service on or off.
Fixed
- The MDT "Active services" list showed
[object HTMLDivElement]instead of the job rows. Each job now has its own row and Cancel button.
[0.5.5] - 2026-10-19 (deployed 12:53 MDT)
Added
- Code 4 from the MDT: clear your call with a two-click button on the call details and on the board. Supervisors can Code 4 calls of their department.
[0.5.4] - 2026-10-19 (deployed 12:43 MDT)
Added
- Call remarks (CFS): add time-stamped remarks to a call in the MDT or with
/remark. Officers on the call get a notification for new remarks. - A "Closed calls" list in the MDT.
- Supervisors can strike out a remark; it is crossed out but never deleted.
[0.5.3] - 2026-10-19 (deployed 12:15 MDT)
Added
- Pulling someone over or stopping a pedestrian now creates a Traffic Stop / Pedestrian Stop call on the MDT board that others can attach to.
- Stops can escalate in place: pursuit, foot chase, assault on officer, armed subject.
- Stop resistance: people with warrants, records, stolen cars or contraband are more likely to run, fight or draw a weapon.
[0.5.2] - 2026-10-19 (deployed 11:50 MDT)
Added
- CPR: hold E next to a downed person to try to revive them. Your chances are better the sooner you start.
- If you go down yourself, you wait for CPR before respawning (hold E after 10 s to respawn early).
- J shows the last ID card you looked at again.
- The MDT tablet can be dragged and remembers where you put it (HOME recenters it).
Changed
- Every tcc_pd key can now be rebound in the FiveM key-binding settings.
[0.5.1] - 2026-10-18 (deployed 23:38 MDT)
Added
- Police radio: department frequencies (LSPD 1, BCSO 2, SAHP 3, All units 10) and public frequencies 100-999.
- You join your department's frequency automatically when you go on duty.
- A list of who is on your frequency, with whoever is talking highlighted.
[0.5.0] - 2026-10-18 (deployed 22:37 MDT)
Added
- AI services: tow truck, coroner, ambulance and mechanic on request.
- Scene tools (G): cones, barriers, work lights, flares and speed zones that slow traffic.
- XP and leaderboard.
- Text can now be translated.
[0.4.0] - 2026-10-18 (deployed 22:06 MDT)
Added
- MDT tablet (F7): an active-call board, person and plate lookups, a citation and arrest log, and an ID card panel when you ask for ID.
[0.3.4] - 2026-10-18 (deployed 21:49-21:51 MDT)
Fixed
- Suspects and bodies no longer stay behind after Code 4; every call entity is now removed.
Added
- Friendly fire between players is enabled.
[0.3.3] - 2026-10-18 (deployed 21:26 MDT)
Added
- A "Press F6 to go on duty" hint above the minimap while you are off duty.
[0.3.2] - 2026-10-18 (deployed 21:21 MDT)
Added
- Officer Involved Shooting: when an officer kills a callout suspect, the call becomes an OIS. Every unit is alerted and the scene is kept until Code 4.
Fixed
- Shooting a suspect no longer ends the call and removes the scene instantly.
[0.3.1] - 2026-10-18 (deployed 20:40-20:56 MDT)
Fixed
- A prisoner killed while cuffed, escorted or seated no longer stays stuck to the officer.
- Callout vehicles no longer stay frozen in the air (
/pdunstuckunfreezes the nearest one).
[0.3.0] - 2026-10-18 (deployed 20:25 MDT)
Added
- Patrol: traffic stops (LSHIFT behind a car with lights on), ped stops (hold E), the stop menu (ID, plate, breathalyzer, search, citation, warning) and arrests (cuff, escort, seat, book at a jail).
- Pursuits and backup requests (Code 1/2/3/99).
- Spike strips (LSHIFT + E).
- The staff admin menu.
[0.2.0] - 2026-10-18 (deployed 19:31 MDT)
Added
- Callouts: calls are offered to you (Y accepts), several units can join, and
/code4and/pdleaveend or leave a call. - Generated identities for suspects and vehicles.
- Department uniforms.
Fixed
- 2026-10-18 20:14 MDT hotfix: callout drivers now reliably sit in their vehicles.
[0.1.0] - 2026-10-18 (deployed 18:06 MDT)
Added
- First release: go on duty (F6 or
/duty), departments (LSPD, BCSO, SAHP) with ranks and callsigns, stations, loadouts, department vehicles, refills and supervisor tools.