Advanced Police Management [MDT]

MDT - Mobile Data Terminal for RedM (RSG)




Mobile Data Terminal (MDT) system for RedM servers, compatible with RSG frameworks.

Features

  • Register and search incidents, criminals, fines, and prison records
  • Evidence system integrated with inventory
  • Real-time officer statistics panel and map
  • Dynamic law enforcement job support (any job with type = 'leo')
  • Persistent jail and fine records
  • Modern and responsive interface

Requirements

  • [rsg-core] installed
  • [rsg-inventory]

Installation

  1. Download or clone this repository into your server’s resources folder.
  2. Make sure all dependencies (core, inventory, MySQL) are installed and working.
  3. Add ensure bzk-mdt to your server.cfg after core and inventory.
  4. Start the server so the database tables are created automatically.

Law Enforcement Job Configuration

For a job to be recognized as law enforcement by the MDT, it must have:

job.type = 'leo'
job.onduty = true -- (the script already forces onduty=true for law jobs)

In RSG, set this in your job registration or make sure MDT is forcing it correctly.

How to Open the MDT

  • Command: /mdt
  • Only law enforcement on duty (type = 'leo' and onduty = true) can open the MDT.

Useful Commands

  • /mdt - Opens the MDT
  • /payfines - Pays all pending fines
  • /checkFines - Lists your character’s pending fines

Tips & Troubleshooting

  • If you are law enforcement and can’t open the MDT, check if your job has type = 'leo' and is onduty.
  • The script already forces onduty = true for law jobs, but if you use another on/off duty system, adjust as needed.
  • Database tables are created automatically when the resource starts.
  • To add new law jobs, just make sure they have type = 'leo'.

Credits

  • Developed by BZK Scripts
  • Based on MDT systems for RedM

Alert System Integration

You can trigger MDT alerts from any other script using the provided export. This allows you to send law enforcement alerts (robbery, shots fired, etc.) directly to the MDT system and all on-duty officers.

How to Trigger an Alert from Another Script

Example (client-side):

exports['bzk-mdt']:SendLawAlert(
    vector3(1234.56, 5678.90, 100.0), -- coordinates or args or variable
    'Robbery in Progress',            -- title
    'A robbery is happening at the bank!', -- description
    'high'                           -- alert type (optional: 'high', 'medium', 'low')
)
  • coords: The location of the alert (vector3 or table with x, y, z)
  • title: The alert title (e.g., ‘Shots Fired’, ‘Robbery in Progress’)
  • description: A description for the alert
  • alertType: (optional) Alert priority (‘high’, ‘medium’, ‘low’)

This will send the alert to all on-duty law enforcement officers and display it in the MDT.

In-Game Map Marking

When an officer clicks the Mark button on an alert in the MDT, the following happens:

  • A waypoint is set on the in-game map at the alert location
  • A GPS route is automatically drawn to the location
  • The marker and route are automatically removed after 30 seconds
  • Officers can mark the same alert again if needed

This helps officers quickly respond to incidents and navigate to the alert location.

Preview: Video
Store: Tebex
Discord for Suport: Invite

Questions or suggestions? Open an issue or contact us!

Code is accessible No
Subscription-based No
Lines (approximately) 11000+
Requirements RSG Framework
Support Yes