Oxide Dispatch
Multi-framework dispatch and responder alert system for FiveM servers.
Oxide Dispatch is the alert broadcast and responder lifecycle backbone for FiveM servers. It distributes job-targeted alerts to police, EMS, fire, and custom responder groups, tracks who's responding, persists every transition to MySQL, and exposes a public olink.dispatch.* API so downstream MDTs can build on top of it — oxide-police is the recommended consumer. It supports QBCore, QBx (Qbox), and ESX Legacy through o-link with no source changes per framework.
Key Features
- Real-Time Job-Targeted Broadcast — Alerts fan out to on-duty responders by responder group (
police,ems,fire) or raw job names, with server-authoritative coordinates and per-source rate limiting - Non-Focused Stacked NUI Popup — Up to 3 alerts visible at once, mini-map preview, GTA sound, auto-dismiss after 20s by default — never blocks player input
- Persistent MySQL Audit Trail — Every alert and every responder transition is written to
dispatch_alerts/dispatch_responders; the resource rehydrates active alerts on restart - Auto-Expiry Sweeper — Unresolved alerts move to
expiredafter a configurable TTL (15 min default) — closed/expired alerts remain in MySQL for reporting and the heatmap - Dispatch Hub — Full-screen NUI overview for any responder group with live alerts, map view, heatmap overlay, and quick respond/clear/close actions. Master-switched via
Config.DispatchHub.RadialEnabled - AI Radio Dispatcher (optional) — One AI dispatcher per department channel (LSPD, BCSO, SASP, EMS, fire). Officers PTT and the AI files alerts through the same pipeline. Realtime (~500ms) or chained (~2s, cheaper) provider modes
- Civilian 911 / 311 — Radial menu,
/911, and/311chat commands with category routing, anonymity, two-way responder replies, and reply persistence - Panic / Responder Backup — F4 keybind,
/panic, and radial item with per-group routing, off-duty bypass, auto-waypoint, and 60s per-responder cooldown - Automatic Crime Detection — Shooting (
10-71), drive-by (10-72), melee (10-34), explosion (10-77), death (10-52), and vehicle theft (10-30) with weapon, zone, and job blacklists - Per-Group Responder Statuses + Callsigns — Police, EMS, and Fire each have their own status lists; persistent callsigns surface on alerts, replies, and status broadcasts
- Legacy QB/ESX Compatibility Shims — Forwards
police:server:policeAlert,esx_policejob:alert,esx_outlawalert:*, andesx_phone:sendinto the modern pipeline so existing scripts keep working unedited
Requirements
| Resource | Minimum Version | Purpose |
|---|---|---|
ox_lib | latest | Commands, callbacks, locale, input dialogs |
oxmysql | latest | Database driver |
o-link | latest | Framework abstraction used by dispatch |
| Framework | latest | One of qb-core, qbx_core, or es_extended |
Supported Frameworks
| Framework | Support |
|---|---|
QBCore (qb-core) | Full |
QBX (qbx_core) | Full |
ESX Legacy (es_extended) | Full |
Quick Start
Place oxide-dispatch in your server's resources directory.
Start ox_lib, oxmysql, your framework, o-link, and oxide-dispatch in that order.
Run sql/install.sql to create the dispatch_alerts and dispatch_responders tables.
Review shared/config.lua and the files under shared/config/.
See the Installation Guide for the full setup flow.
Documentation
Installation
Full setup flow.
Configuration
Per-config-file reference.
Features
Detailed feature reference.
Jobs & Responder Groups
Recipe for adding jobs and groups.
QBCore Setup
QBCore-specific setup.
QBX Setup
QBX-specific setup.
ESX Setup
ESX-specific setup.
AI Radio Dispatcher
AI dispatcher setup and pricing.
Exports & Integration
API reference.
Admin Tools
Admin commands and keybinds.
Troubleshooting
Common issues and fixes.