Skip to content
View in the app

A better way to browse. Learn more.

LCPDFR.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MDTPro 0.9.9.5-beta

(9 reviews)

7 Screenshots

MDT Pro is a police computer (MDT) plugin for LSPDFR that runs a local web server when you go on duty. Open the MDT in any browser—on your PC or over your network—and use it like a real mobile data terminal alongside the game. This release is in beta. MDT Pro started from the source code of ExternalPoliceComputer by jullevistrunz; that mod was the foundation this one was built on.

Wiki/Documentation: https://stocky789.github.io/MDT-Pro/#top

Requirements

• LSPDFR

CommonDataFramework (CDF) — required; plugin will not load without it

CalloutInterfaceAPI — required (DLL in game root or plugins/LSPDFR/)

CalloutInterface — required for the Active Call page (live callout details)

Policing Redefined (PR) OR STP & UltimateBackup

LemonUI

Installation

  1. Extract the mod and its files into your GTA V folder (same level as GTA5.exe). | Alternatively use the OpenIV install package.

  2. Ensure all dependencies above are correctly installed

  3. Go on duty with LSPDFR; MDT Pro will show on-screen addresses (e.g. http://127.0.0.1:9000).

  4. Open that URL in a browser (Chrome/Brave recommended). Or SteamOverlay works well when setting your URL as your homepage

Features

Control Panel & Officer Info

Enter and save your officer details (name, badge, rank, call sign, department). Use “Fill from Game” when supported. Start and end shifts; view career statistics. All reports can auto-fill officer and location from your profile and current position.


In-Game MDT

In-Game MDT computer accessible from the F10 menu. Features PED and Vehicle lookups, Citations.

Reports (Incident, Citation, Arrest, Injury, Traffic Incident, Impound, Property and Evidence Receipt (seizure reports) for drugs and firearms, Impound reports)
Create incident reports (general reporting), citation reports, arrest reports, injury reports, traffic incident reports, and impound reports. Each report has auto-generated IDs, status filters (active/completed/canceled), and notes. Reports created during an active shift are tied to that shift and appear in Shift History. Injury reports record injured party, type, severity, treatment, and context; they can be created from Reports or from Person Search with the name pre-filled. Traffic incident reports cover collisions and multi-vehicle incidents (drivers, passengers, pedestrians, vehicles, injury details, collision type). Impound reports record plate, model, owner, VIN, reason, tow company, and impound lot, and can be created from Reports or from Vehicle Search with the vehicle pre-filled. Charges you add are stored and, when an offender is set, added to that person’s record for future lookups. Citations in-game: with Policing Redefined, you can issue from the PR ped menu when you close the citation in the MDT. With StopThePed and without Policing Redefined, use the MDT’s StopThePed citation handoff (in-game key; default F10, set in MDTPro.ini). Do not mix Policing Redefined and StopThePed for this.

BOLO
Add and remove BOLOs from the BOLO Noticeboard without needing the vehicle in front of you: enter plate, optional model, reason, and duration. Only active (non-expired) BOLOs are shown. When a vehicle with a BOLO’d plate is seen or stopped, the BOLO syncs to Common Data Framework. Vehicle Search and ALPR show BOLOs for in-world and noticeboard-only plates; ALPR flags a hit as “BOLO” and can alert.

Person Lookup (Ped Search)

Search by name to view a person’s info (from MDT Pro and CDF). History shows citations and arrests; click an entry to start a new report for that ped with fields pre-filled. Callout suspect names mentioned in Active Call messages (e.g. “associated with …”) can be added as stub records so you can look them up—configurable in settings.

Vehicle Lookup

Search by license plate or VIN. View vehicle details and click the owner to open Person Lookup for the registered owner.

Ped & Vehicle Persistence

People and vehicles you’ve stopped or run are stored in the MDT database. When you stop someone again, there’s a configurable chance they’re recognized as the same person (matched by character model)—their name, citation and arrest history, times stopped, and wanted/probation/parole status carry over and sync to CDF. Same idea for vehicles: a car you stop later can be matched by model and owner to a vehicle you’ve seen before, so the same plate and history show up.

Shift History

View past shifts and every report linked to each shift (reports created while that shift was active).

Court
Manage court cases from arrest reports. Filter and sort by status, case number, ped name, or report ID. Attach Incident, Injury, Citation, Traffic Incident, or Impound reports to an arrest or case as evidence; report relevance and evidence amounts are configurable in Config → Court. Document evidence seized on arrest (drugs found, firearms found) so the case reflects what was actually seized. New arrests start as Pending; save and attach reports, then Close arrest (submit for court) to create the case; you can attach or detach reports until the hearing. Verdict and sentencing reflect all evidence (weapon, warrant, fleeing, resistance, assault, intoxication, drugs, etc.). Sentencing Rationale explains aggravating and mitigating factors, recidivism, and district policy; resolved cases show per-charge outcome (Convicted, Acquitted, Dismissed) and total fine and jail time for convicted charges. Document Use of Force on the arrest (type, justification, injury, witnesses) for a court evidence bonus. For homicide or manslaughter, attach an Injury report with Fatal severity or DOA/pronounced deceased so the case is treated as having documented death. Charges and sentencing are based on California law; license revocations apply correctly from convictions.

Map (GPS)

Live map with your current position (updated via WebSocket). Route from your position to a point with turn-by-turn directions using in-game road data.

Active Call
Shows the current callout when CalloutInterface is installed: location (postal, street, area, county), priority, message, advisory, unit/callsign, and timestamps. When your callout system supports it, set a GPS waypoint and use Accept or En Route; the page shows status (Pending, Accepted, En Route, Finished), a short timeline, and expandable cards. Without CalloutInterface, the page opens but receives no callout data.

Backup & Quick Actions
Request backup (patrol, traffic stop, transport, tow, etc.) from the MDT. Backup is sent through Policing Redefined or Ultimate Backup according to Mod integration (and Auto uses Policing Redefined when it is loaded, otherwise Ultimate Backup when available). The Quick Actions bar (bottom-right) offers one-tap Panic, Backup, and Clear ALPR; backup can be sent Code 1, 2, or 3.

ALPR (optional plugin - enable in game)

In-game automatic license plate recognition. Enable in Customization or via the in-game Settings menu (default F7). When on duty in a police vehicle, nearby vehicles are scanned; flagged plates (stolen, expired reg/insurance, owner wanted) can show an HUD panel and optional sound. Flags come from CDF and the MDT database. The ALPR plugin can show hit popups inside the MDT in your browser.

Plugins

Drop plugin folders into MDTPro/plugins and enable them on the Customization page. Plugins can add pages, scripts, and styles; see the README for the plugin API and folder structure.

Updating

Overwrite the existing plugin files and MDTPro folder contents. Your MDTPro/data/ and config.json are preserved. Adjust new defaults (e.g. WebSocket update rate) in Settings → Customization → Config or by editing config.json if you want different behavior.

Source Code: https://github.com/stocky789/MDT-Pro

Known bugs

  • After generating a citation in the MDT, the PolicingRedefined menu loses a lot of options such as Dismiss etc.
    - Workaround: Press your vanilla LSPDFR traffic stop keybind (e.g. "E") and dismiss the PED.

Acknowledgments

MDT Pro is based on ExternalPoliceComputer. That mod’s source code was the starting point for this project.

Edited by stocky789

What's New in Version 0.9.9.5-beta

Released

New git page: https://stocky789.github.io/MDT-Pro/

### Bug Fixes

- **Vehicle Search** - Fixed rendering in maximized/fullscreen legacy web MDT windows, including document/status rows for registration and insurance.

- **Legacy MDT Pro shifts** - Fixed the web MDT Start Shift / End Shift controls so local shift tracking no longer fails when the game bridge is busy or unavailable; completed shifts continue to appear in Shift History and the Calendar plugin.

Short Description

Modern MDT Police Computer accessible from a web browser and Steam Overlay - Features Ped and Vehicle persistence

AI disclosure

The author has disclosed that AI tools were used in creating the following aspects of this file:

  • Description
  • Images
  • Mod and Mod Content (Substantial)

AI was used to code and generate images in this mod.

User Feedback

Recommended Comments

boomer2840

Members

23 minutes ago, boomer2840 said:

i didn't delete it i just installed over it. let me delete and do a fresh install and get back to you. Thans

i have the same issue i deleted the MDTPRO folder and filles reinstalled mod and no difference. i manually installed it didn't use the OIV

stocky789

Members Author

11 hours ago, boomer2840 said:

i have the same issue i deleted the MDTPRO folder and filles reinstalled mod and no difference. i manually installed it didn't use the OIV


Copy that - thanks for the feedback. I'll get a fix underway this afternoon for it. Cheers

stocky789

Members Author

There won't be a fix coming out for the Shift Start/End or the Fullscreen tonight. I committed to getting this sorted this afternoon and hours later still no luck.

Will update everyone tomorrow on any progress.

tftzay

Members

{C9FE4F49-D46B-4380-B786-9D34557681A2}.png

everytime i try to do the mdt pro native it gives this error even with me on duty and the plugin working

Could contain: text, screenshot, software, multimedia software, computer icon, web page, operating system, website, graphics software, editing

stocky789

Members Author

1 hour ago, tftzay said:

{C9FE4F49-D46B-4380-B786-9D34557681A2}.png

everytime i try to do the mdt pro native it gives this error even with me on duty and the plugin working

Could contain: text, screenshot, software, multimedia software, computer icon, web page, operating system, website, graphics software, editing


Hey mate,

Native is out of development at this stage
I haven't had enough time to focus on MDT Cloud, MDT Pro, the in game MDT and the native version. I will get feature parity with the native version again in the future though.

Sosa18k

Members

For some odd reason, when i go to mdt pro then go back to my game. my game closes. I didnt have this issue before the update

MDT Pro Cloud, do I suppose to log into both Cad and Cloud

DJJD

Members

(edited)

On the latest release, I am having an on-duty error during setup. I included the unhandled exception that is happening at the bottom of this comment. This is a first time install/run. Everything that is in the release is installed properly to my understanding, including Newtonsoft.json in the plugins/lspdfr folder and in the GTAV root folder (for other plugins that need it - the versions of the files match at 13.0.4). The MDTPro log file says that the database was initialized, but that is the only thing it says.

Anyone have an ideas what is going on or how I can fix it?

RagePluginHook.log ForceDuty Unhandled Exception Crash

Pasted content

[5/26/2026 13:19:05.160] LSPD First Response: ==============================

[5/26/2026 13:19:05.160] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Origin: Game fiber "<UNNAMED THREAD>".

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Exception type: System.MissingMethodException

[5/26/2026 13:19:05.160] LSPD First Response: Exception message: Method not found: 'System.String Newtonsoft.Json.Linq.JToken.ToString(Newtonsoft.Json.Formatting)'.

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Inner exceptions:

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Stack trace:

[5/26/2026 13:19:05.160] LSPD First Response: at MDTPro.Cloud.CloudAuthorityClient.HydrateLocalCache(Int32 generation)

[5/26/2026 13:19:05.160] at MDTPro.Setup.SetupController.SetupDirectory() in /MDTProPlugin/MDTPro/Setup/SetupController.cs:line 109

[5/26/2026 13:19:05.160] at MDTPro.Main.<>c.<Functions_OnOnDutyStateChanged>b__8_2() in /MDTProPlugin/MDTPro/Main.cs:line 97

[5/26/2026 13:19:05.160] at Rage.GameFiber.Main()

[5/26/2026 13:19:05.160] LSPD First Response: ==============================

[5/26/2026 13:19:05.160] LSPD First Response:

[5/26/2026 13:19:05.167] [5/26/2026 1:19:05 PM.167] Policing Redefined: [DEBUG] Initialized: AmbientUnderInfluenceController.

[5/26/2026 13:19:05.180] [5/26/2026 1:19:05 PM.179] Policing Redefined: [DEBUG] UpdateChecker: Installed version '1.0.0.2' is up to date.

[5/26/2026 13:19:05.185] LSPD First Response: [FATAL] Forced termination

[5/26/2026 13:19:05.187] LSPD First Response: [TRACE] Released 0 entities from DefaultContentManager

[5/26/2026 13:19:07.114] LSPD First Response: [INFO] LSPDFR has shut down

[5/26/2026 13:19:07.844] ====================================================================================================

[5/26/2026 13:19:07.844] Unhandled exception occurred in console command "ForceDuty"

[5/26/2026 13:19:07.845] Exception type: System.Threading.ThreadAbortException

[5/26/2026 13:19:07.845] Exception message: Thread was being aborted.

[5/26/2026 13:19:07.845] Stack trace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)

[5/26/2026 13:19:07.845] at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)

[5/26/2026 13:19:07.845] at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

[5/26/2026 13:19:07.845] at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)

[5/26/2026 13:19:07.845] at Rage.ConsoleCommands.ConsoleCommand.Execute(Object[] arguments)

[5/26/2026 13:19:07.845] at Rage.ConsoleCommands.ConsoleCommand.ParseAndExecute(String[] arguments)

[5/26/2026 13:19:07.845] at Rage.ConsoleCommandGameFiber.Start()

[5/26/2026 13:19:07.845] ====================================================================================================

Edited by DJJD

1 hour ago, DJJD said:

On the latest release, I am having an on-duty error during setup. I included the unhandled exception that is happening at the bottom of this comment. This is a first time install/run. Everything that is in the release is installed properly to my understanding, including Newtonsoft.json in the plugins/lspdfr folder and in the GTAV root folder (for other plugins that need it - the versions of the files match at 13.0.4). The MDTPro log file says that the database was initialized, but that is the only thing it says.

Anyone have an ideas what is going on or how I can fix it?

RagePluginHook.log ForceDuty Unhandled Exception Crash

Pasted content

[5/26/2026 13:19:05.160] LSPD First Response: ==============================

[5/26/2026 13:19:05.160] LSPD First Response: UNHANDLED EXCEPTION DURING GAME FIBER TICK

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Origin: Game fiber "<UNNAMED THREAD>".

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Exception type: System.MissingMethodException

[5/26/2026 13:19:05.160] LSPD First Response: Exception message: Method not found: 'System.String Newtonsoft.Json.Linq.JToken.ToString(Newtonsoft.Json.Formatting)'.

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Inner exceptions:

[5/26/2026 13:19:05.160] LSPD First Response: ------------------------------

[5/26/2026 13:19:05.160] LSPD First Response: Stack trace:

[5/26/2026 13:19:05.160] LSPD First Response: at MDTPro.Cloud.CloudAuthorityClient.HydrateLocalCache(Int32 generation)

[5/26/2026 13:19:05.160] at MDTPro.Setup.SetupController.SetupDirectory() in /MDTProPlugin/MDTPro/Setup/SetupController.cs:line 109

[5/26/2026 13:19:05.160] at MDTPro.Main.<>c.<Functions_OnOnDutyStateChanged>b__8_2() in /MDTProPlugin/MDTPro/Main.cs:line 97

[5/26/2026 13:19:05.160] at Rage.GameFiber.Main()

[5/26/2026 13:19:05.160] LSPD First Response: ==============================

[5/26/2026 13:19:05.160] LSPD First Response:

[5/26/2026 13:19:05.167] [5/26/2026 1:19:05 PM.167] Policing Redefined: [DEBUG] Initialized: AmbientUnderInfluenceController.

[5/26/2026 13:19:05.180] [5/26/2026 1:19:05 PM.179] Policing Redefined: [DEBUG] UpdateChecker: Installed version '1.0.0.2' is up to date.

[5/26/2026 13:19:05.185] LSPD First Response: [FATAL] Forced termination

[5/26/2026 13:19:05.187] LSPD First Response: [TRACE] Released 0 entities from DefaultContentManager

[5/26/2026 13:19:07.114] LSPD First Response: [INFO] LSPDFR has shut down

[5/26/2026 13:19:07.844] ====================================================================================================

[5/26/2026 13:19:07.844] Unhandled exception occurred in console command "ForceDuty"

[5/26/2026 13:19:07.845] Exception type: System.Threading.ThreadAbortException

[5/26/2026 13:19:07.845] Exception message: Thread was being aborted.

[5/26/2026 13:19:07.845] Stack trace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)

[5/26/2026 13:19:07.845] at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)

[5/26/2026 13:19:07.845] at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

[5/26/2026 13:19:07.845] at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)

[5/26/2026 13:19:07.845] at Rage.ConsoleCommands.ConsoleCommand.Execute(Object[] arguments)

[5/26/2026 13:19:07.845] at Rage.ConsoleCommands.ConsoleCommand.ParseAndExecute(String[] arguments)

[5/26/2026 13:19:07.845] at Rage.ConsoleCommandGameFiber.Start()

[5/26/2026 13:19:07.845] ====================================================================================================

change your traffic stop key to A and go to steam to change overlay to shift+N

DJJD

Members

3 hours ago, Eastsiderellie89 said:

change your traffic stop key to A and go to steam to change overlay to shift+N

That unfortunately still didn't work. I'm getting the same error as before. I changed my traffic stop key to A within LSPDFR and I am using a GTAV copy through Epic Games, so the overlay isn't applicable. Any other ideas?

3 hours ago, DJJD said:

That unfortunately still didn't work. I'm getting the same error as before. I changed my traffic stop key to A within LSPDFR and I am using a GTAV copy through Epic Games, so the overlay isn't applicable. Any other ideas?

I'm using Steam, so i dont about the Epic Games app, and as far as Policing Redefined, I had to uninstall it and went with Stop the Ped to get rid of the error

DJJD

Members

1 hour ago, Eastsiderellie89 said:

I'm using Steam, so i dont about the Epic Games app, and as far as Policing Redefined, I had to uninstall it and went with Stop the Ped to get rid of the error

Good to know. I am using Policing Redefined, so I'll switch to STP and UB and see if that fixes the issue. Thank you!

21 hours ago, DJJD said:

Good to know. I am using Policing Redefined, so I'll switch to STP and UB and see if that fixes the issue. Thank you!

Just make sure you change the traffic stop key in LSPDFR, so it doesn't cancel the stop

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.