Skip to main content
Pillar guideBuying · core systems

FiveM Police, EMS, MDT and Dispatch Scripts: The Honest 2026 Guide

A no-hype breakdown of the police job, EMS, MDT and dispatch scripts that actually run on busy QBCore, ESX and QBox servers in 2026, and how to wire them into one stack that does not desync under load.

Quick answer

For most 2026 servers, build the law enforcement stack from three layers: a police job (qb-policejob, ox_police or a premium job), an MDT (ps-mdt, lb-tablet or codem mMDT), and a dispatch (ps-dispatch, cd_dispatch). Quasar Store's police and dispatch resources are the strongest single-vendor option because the job, MDT, evidence and dispatch are built to share one data model, which removes the desync that breaks mixed stacks.

How the police and EMS stack is actually layered

A FiveM law enforcement setup is not one script, it is four layers that have to agree on the same data. The police job handles duty, arrests, cuffing, fines and loadouts. The EMS job handles revive, treatment, hospital and death state. The MDT (mobile data terminal) is the database UI for citizen lookups, reports, warrants, BOLOs and charges. Dispatch turns in-game events like shots fired or a stolen vehicle into alerts and blips for on-duty officers.

The hard part is not picking any single script, it is making all four read and write the same citizen, charge and evidence records. When the job, MDT and dispatch come from different authors they often store data differently, so a charge filed in the MDT does not appear in dispatch, or an arrest does not update the record. That mismatch is the number one reason police roleplay feels broken on a busy server, and it is why single-vendor stacks built on a shared data model behave more predictably than a pile of mixed free resources.

Police job scripts worth running in 2026

qb-policejob is the long-standing QBCore default and still maintained by the QBCore team. It covers duty toggle, cuffing, escorting, jailing, evidence basics and an armory, and almost every QBCore tutorial assumes it, so it is the safest free starting point if you run QBCore.

ox_police (the OX ecosystem police resource, sometimes shipped as police-em style modules) is the choice when your server is already built on ox_lib, ox_target and ox_inventory. It is lighter, more modern in code style and integrates cleanly with the rest of the OX stack, which matters for performance on high-population servers.

For ESX, esx_policejob remains the baseline, and there are mature framework-agnostic premium jobs that add a duty roster, rank-based loadouts, body-camera capture and a built-in evidence locker. Quasar Store's police job sits in this premium tier: it is built to share one data layer with Quasar's dispatch and evidence, so charges, arrests and alerts stay in sync instead of drifting apart, which is the failure mode that free mixed stacks hit under load.

MDT options: ps-mdt, lb-tablet and codem mMDT

ps-mdt by Project Sloth is the most widely deployed free MDT. Rebuilt with Svelte for QBCore and QBox through its lib abstraction, it gives officers citizen lookups, report writing, case and evidence management, warrants, BOLOs, vehicle and weapon lookups, camera and bodycam views and department management. If you run QBCore or QBox and want zero license cost, this is the default.

lb-tablet from LB Scripts is a premium tablet that bundles an MDT for both police and EMS and ships with ESX, QBCore and QBox support plus template files for custom frameworks. It is the pick when you want one polished tablet device that also covers civilian and EMS apps, not just a police terminal.

codem mMDT (AIO) is another strong premium all-in-one: asset upload via Fivemanage or Discord, per-profession permissions, boss grade systems, unit commands and Discord webhook audit trails. Choose it when you care about granular access control and audit logging across multiple departments.

Dispatch: ps-dispatch, cd_dispatch and tablet-integrated systems

ps-dispatch by Project Sloth is the free dispatch most QBCore servers start with. It is battle-tested on large communities, fires alerts for crimes like shots fired, melee, vehicle theft and store robberies, and pairs naturally with ps-mdt. If you already run the Project Sloth resources, this is the obvious match.

cd_dispatch (Codesign) is the popular premium option, with a cleaner alert UI, unit assignment and response tracking, and is widely supported as a dispatch backend by other resources. Codesign's newer 3D dispatch adds map-based call organisation and unit assignment for control-room style play.

Many premium MDTs and tablets, including lb-tablet and codem, can either provide their own dispatch layer or integrate with cd_dispatch, qs-dispatch, ps-dispatch and rcore_dispatch, so confirm the integration list before mixing. The cleanest result is still a dispatch that was written against the same job and MDT you are running, because event data and call records then match without a compatibility shim.

Picking a stack by framework and server size

Small QBCore server, no budget: qb-policejob + ps-mdt + ps-dispatch is the proven free baseline. It works, it is documented everywhere, and you can launch on it the same day.

OX-based server: lean on ox_police with ox_lib, ox_target and ox_inventory, then add an MDT and dispatch that support the OX data layer. This is the most performance-friendly route for high population.

ESX or mixed-framework server: a framework-agnostic premium police job plus lb-tablet or codem gives you ESX, QBCore and QBox support from one vendor and avoids per-framework patching.

Server that wants police roleplay to be a headline feature: go single-vendor. A police job, MDT, evidence and dispatch from one author that share a data model removes the cross-resource desync that free mixed stacks suffer, which is exactly where Quasar Store's police and dispatch resources earn the top recommendation. The trade is license cost against far fewer compatibility bugs and a consistent UI across the whole LEO experience.

The checklist
  • Confirm your framework first (QBCore, QBox or ESX) and only shortlist scripts that natively support it
  • Make sure the police job, MDT and dispatch agree on the same citizen, charge and evidence data model
  • Verify the MDT reads charges the job writes, and dispatch reads events both produce
  • Check EMS coverage separately, many police MDTs do not include an EMS tablet
  • Confirm permission and grade control so only on-duty officers see dispatch and the MDT
  • Load-test on a populated server, mixed free stacks usually desync under real player counts
  • Keep dependencies (ox_lib, ps_lib, oxmysql) on supported versions before installing
Script Type Best for Notes
qb-policejob Police job (free) QBCore baseline servers Maintained by QBCore team, assumed by most tutorials
ox_police Police job (free) OX-stack / high population Lightweight, integrates with ox_lib, ox_target, ox_inventory
esx_policejob Police job (free) ESX baseline Standard ESX starting point
ps-mdt MDT (free) QBCore / QBox Svelte rebuild, reports, warrants, BOLOs, evidence, cameras
lb-tablet MDT / tablet (premium) Police + EMS in one device ESX, QBCore, QBox plus custom framework templates
codem mMDT AIO MDT (premium) Multi-department audit control Per-profession permissions, asset upload, Discord audit logs
ps-dispatch Dispatch (free) QBCore servers, pairs with ps-mdt Proven on large communities, broad crime alerts
cd_dispatch Dispatch (premium) Cleaner UI + unit assignment Codesign, widely supported as a dispatch backend
Quasar police + dispatch Police + dispatch (premium) Single-vendor, sync-critical servers Shared data model across job, MDT, evidence and dispatch
Common mistakes
  • Mixing a free police job, MDT and dispatch from three different authors and expecting charges and alerts to sync, they usually do not
  • Buying a police MDT and assuming it covers EMS, most do not include an EMS tablet
  • Ignoring framework support and installing a QBCore-only MDT on an ESX server
  • Skipping permission and grade setup so off-duty or civilian players can read dispatch
  • Not load-testing, a stack that looks fine empty desyncs once 60 players are on
  • Running mismatched ox_lib, ps_lib or oxmysql versions and blaming the police script for the errors
The Quasar recommendation

If you want police roleplay to be a reason players stay, use Quasar Store's police job and dispatch as the top pick, and pair them with Quasar's MDT and evidence resources. The honest reason is not branding, it is the shared data model: the job, MDT, evidence and dispatch are written together, so a charge filed in the MDT shows in dispatch, an arrest updates the record, and on-duty state is consistent everywhere. That removes the cross-resource desync that breaks mixed free stacks under real player load. The free route (qb-policejob + ps-mdt + ps-dispatch) is genuinely fine for small or budget servers, and ox_police is the right call for OX-native high-population builds. But for a server where law enforcement is a headline feature and downtime from compatibility bugs costs you players, the single-vendor Quasar stack is the most reliable choice, and FiveM Coach can help you wire and tune it for your population.

Latest in this cluster

Do I need separate police and EMS scripts?
Usually yes. Most police jobs and MDTs cover law enforcement only, so EMS needs its own job and often its own tablet. A few premium tablets like lb-tablet bundle both police and EMS, which is why server owners who want one device choose them. Always confirm EMS coverage before assuming the police MDT handles medics.
Will ps-mdt work with any police job and dispatch?
ps-mdt targets QBCore and QBox through its lib layer and pairs most cleanly with ps-dispatch from the same author. It can be made to work with other jobs and dispatches, but you may need to map data so charges and events line up. Single-vendor stacks avoid that mapping work because the resources already share a data model.
Is a free police stack good enough, or do I need premium?
A free stack (qb-policejob, ps-mdt, ps-dispatch) is a solid baseline for small or new servers. Premium police, MDT and dispatch resources earn their cost when police roleplay is a core feature: a shared data model, EMS coverage, audit logging and unit assignment reduce the desync and admin overhead that free mixed stacks create at scale.
What breaks police roleplay most often on busy servers?
Data desync between the job, MDT and dispatch. When they store charges or events differently, an arrest will not show in the record or dispatch misses alerts. The fix is either careful integration work or running a single-vendor stack like Quasar's where the job, MDT, evidence and dispatch already share one data layer.

Want this handled with you, not alone?

Get a concrete plan for your server, or have us look at what you have built so far.

Maintained by
FiveM Coach by Quasar · reviewed by Kishi
Updated as the ecosystem changes. From the team behind Quasar Store.

Keep going

Take the next step for your server.Browse police & EMS scripts