Plugin is in beta. There will be bugs. Let me know down in the comments and I will do my best to get them addressed in a timely manner
pdComp — Police Computer for LSPDFR
pdComp is a custom-rendered in-game police computer for Grand Theft Auto V, built for LSPDFR with optional deep integration for Policing Redefined through the Common Data Framework (CDF). It replaces the old menu-driven CAD experience with a full-screen overlay that feels like a real dispatch terminal — logo header, sidebar navigation, table-style record views, and in-window text input.
The plugin handles the full patrol workflow:
- Pedestrian lookup with collected-ID card grid
- Vehicle lookup with tagged-plate card grid
- Citation issuing (with PR hand-off)
- Arrest reporting
- Court docket with simulated hearings, outcomes, and sentencing
- Persistent JSON-backed history
Unlike standalone police computer mods, pdComp can pull synchronized data directly from CDF-enabled plugins when present, so states set elsewhere in the ecosystem — expired registration, suspended licenses, insurance lapses, wanted flags, linked records — show up natively in the terminal
The UI
A dedicated full-screen overlay rendered via Direct3D, sized to your game resolution:
- Header strip with the pdComp logo and live wall clock
- Left sidebar for navigation between Home, Ped Lookup, Vehicle Lookup, New Citation, New Arrest, Court Docket, History, and Settings
- Active-state highlighting and hover feedback on every interactive element
- Software-rendered cursor that responds to both mouse and right-stick input
- In-window text input (no more black-screen interruptions from GTA's native keyboard)
Record detail views use a Windows-style data table — header row, zebra rows, fixed-width labels, color-coded values:
- Green for valid documents and clear status
- Amber for expired
- Red for suspended, revoked, missing registration/insurance, wanted, or stolen
Features
Core Police Computer System
- Full-screen MDT/CAD overlay rendered every frame
- Configurable open hotkey (keyboard and/or controller)
- ID-card grid showing every persona collected during the current call
- Plate-card grid showing every vehicle tagged during the current call
- Active-Subject state — click an ID card and the next citation/arrest form prefills against that person automatically
- Per-charge × remove buttons so a single mistake doesn't reset the whole form
- End Call action wipes collected IDs and tagged plates without touching saved records
- Two-step confirm on destructive actions
- Persistent JSON-backed citation, arrest, and case history
Citations & Arrests
- Categorized, collapsible, scrollable charge/citation pickers
- Light inline search bar — filters by code, description, or category in real time
- 129 arrest charges across 10 categories (Crimes Against a Person, Property, Public Decency, Public Justice, Public Peace, Health & Safety, Crimes Against Dependents, Vehicular Offences, Weapons, Fish & Game)
- 82 traffic citations across 7 categories (Speeding, Vehicular Offences, Parking, Documentation, Equipment, Pedestrian, Fish & Game)
- Catalog files are fully editable JSON — add, remove, recategorize, or re-price anything
Court System
- Background scheduler files each citation and arrest as a case
- Outcome rolled at hearing time, weighted by case type and worst severity
- Full sentencing detail rendered alongside the outcome: dollar fines on citations (including court costs), prison or jail terms on arrests, plea bargains automatically trim sentences by ~40%
- Hearings run on wall-clock UTC time, so cases progress even while the game is paused
Policing Redefined + CDF Integration
When `CommonDataFramework.dll` and `PolicingRedefined.dll` are detected at runtime:
- Ped records pull synchronized state from CDF (registration, insurance, permits, wanted, etc.)
- ID auto-population fires from PR's identification, patdown, and corpse-search events
- Filed citations are pushed back into PR's traffic-stop Give Citations menu so the suspect can be handed the ticket in fiction
Vanilla LSPDFR Compatibility
pdComp loads and functions fully without CDF or PR installed:
- Vehicle plate auto-populates from any LSPDFR-initiated pullover
- Ped names must be entered manually (no equivalent ID interaction exists in vanilla)
- Everything else — citations, arrests, court, history — operates identically
Controller Support
First-class controller input alongside keyboard/mouse:
- Configurable open button (default D-pad Left, no modifier)
- Right stick drives the cursor (composes additively with mouse motion; mouse use clears any stick offset)
- A button clicks
- D-pad up/down scrolls catalogs
- All face buttons, D-pad directions, shoulders/triggers, stick clicks, and View/Menu are name-bindable in the config
Installation
Copy the contents of the archive directly into your GTA V root directory. The internal layout drops each file into its correct location:
```
<GTA>/
Newtonsoft.Json.dll
RAGENativeUI.dll
Plugins/
LSPDFR/
pdComp.dll
pdComp/
config.ini
assets/
pdcomp-logo.png
data/
charges.json
citations.json
store/ ← created at runtime
```
Optional Dependencies
For full synchronized-records and identification-event support, install:
- Policing Redefined
- Common Data Framework (bundled with PR)
> pdComp does NOT ship with `CommonDataFramework.dll`. The plugin detects it automatically at runtime if installed.
Configuration
Edit `Plugins/LSPDFR/pdComp/config.ini`:
| Setting | Default | Description |
|---|---|---|
| `OpenKey` | `OemQuotes` (`'`) | Keyboard hotkey |
| `ModifierKey` | `None` | Optional modifier (`ShiftKey`, `ControlKey`, `Menu`) |
| `ControllerOpenButton` | `DPadLeft` | Named: `A B X Y DPadUp/Down/Left/Right LB RB LT RT LSB RSB Back Start`, or a raw GTA V control ID, or `None` |
| `ControllerOpenModifier` | `None` | Optional controller modifier held with the open button |
| `RequirePoliceVehicle` | `true` | Gate opening to law-enforcement vehicles |
| `RequireStationaryVehicle` | `true` | Gate opening to a parked patrol vehicle |
| `HearingDelayMinutes` | `3` | Wall-clock minutes between filing and the case being heard |
In-overlay controller bindings: right stick = cursor · A = click · D-pad U/D = scroll · the configured open button toggles closed.
Custom Charges & Citations
Both catalogs are user-editable JSON, reloaded on plugin start:
```
Plugins/LSPDFR/pdComp/data/charges.json
Plugins/LSPDFR/pdComp/data/citations.json
```
Each entry supports a `category` field that controls the picker section grouping in-game. Invalid entries or unknown severities are skipped automatically and logged to `RagePluginHook.log` with the row's code so you can find it.
Design Notes
- Smart auto-population. Ped names only prefill after a real ID-shown / patdown / corpse-search event has been observed through PR. Vehicle plates auto-populate the moment an LSPDFR pullover begins. Manual input is always available — typing a different name clears the live-ped link so the citation doesn't get pushed to the wrong NPC in PR.
- End Call hygiene. Per-call collected IDs and tagged plates can be cleared from the Home page without losing any saved citations, arrests, or cases. Two-tap confirm prevents accidental wipes.
- Persistent court timing. Hearings use wall-clock UTC time and tick in the background, so cases continue to progress even while the game is paused.
- Safe input gating. The open hotkey is suppressed while the in-overlay text editor is active, so pressing the `'` open key as part of typing a name doesn't close the computer.
Current Status
v0.1.1 — Stable release
✔ Custom full-screen overlay UI with logo, sidebar, and table-style record views
✔ Mouse, keyboard, and controller input — fully rebindable
✔ In-overlay text input — no more native-keyboard context switch
✔ Categorized, searchable, scrollable charge/citation pickers (129 / 82 entries)
✔ ID-card and plate-card grids with Active-Subject prefill across pages
✔ End-Call action for clearing per-call registries
✔ Court system with weighted outcomes and full sentencing detail
✔ PR hand-off — filed citations appear in PR's give-citation menu
✔ Patdown, corpse-search, and ID-shown events all populate the ID card grid
✔ Vanilla and CDF/PR modes both fully functional
✔ Clean deploy layout — dependencies installed at the RPH level, plugin nested
Credits
- Built for the LSPDFR community
- Powered by:
- RAGE Plugin Hook
- LSPDFR API
- RAGENativeUI (referenced for typing only — pdComp renders its own UI)
- Newtonsoft.Json
- Common Data Framework + Policing Redefined (optional integration)