P25-style trunked radio for FiveM. Zones, talkgroups and codeplug personalities driven by the job a player is actually on — with one transmitter at a time, enforced by the server.
Plugs straight into the Sal's Kewl online dispatch console.
This radio is the in-game half of a full dispatch system. Add the hosted console and a real dispatcher — sitting in a browser, on any machine, without the game open — works your channels with two-way voice, multi-talkgroup monitoring, patching, a live unit roster, alert tones and 911 call-taking with ANI and ALI.
Dispatchers sign in with Discord, and a Discord role decides who sits at which position. Nothing to host, no port to open, no certificate to manage.
The dispatch console is a separate subscription and is not included in this purchase. 911 call-taking comes with it; the AI call-taker, which answers text and voice calls when nobody is on a position, is a further add-on. This radio is complete on its own and never stops working without any of them.
Radio that behaves like radio
Most FiveM radio is a chat channel with a number on it. Everybody talks at once, anybody can be anybody, and the only thing keeping a civilian off the police channel is that they have not typed the number yet.
This is built the other way round. A player's job decides which codeplug they are issued. The codeplug decides which zones and talkgroups their radio can even see. And when two units key up on the same talkgroup, one gets it and the other gets a busy tone — because that is what a trunked system does.
One transmitter at a time
Transmit arbitration is enforced on the server, not suggested on the client. Key up on a busy talkgroup and you get the bonk and TG BUSY, and you are genuinely muted in the audio path — not just told “no” while your voice goes out anyway.
- Grant, queue and hang time, the way a repeater behaves
- Emergency preempt — the orange button takes the channel off whoever has it
- Time-out timer for a stuck mic
- Prefer a looser feel? Polite mode keeps the PTT ID, the collision display and the traffic log but lets both voices through. Off disables arbitration entirely. Your server, your call.
The unit ID is not a nickname
Every transmission shows who it came from, and the alias is built on the server from the codeplug — personality prefix, callsign, grade — never from anything the client sends. A player cannot key up as another agency, and cannot rename themselves into one.
Eight radios, and not one downloaded asset
Eight chassis — five portables and three vehicle control heads — drawn entirely in CSS. No streamed models, no textures, nothing added to your download size, and they stay sharp at any resolution or UI scale. Let players choose their own, or issue one per job.
A real two-tone fire & EMS pager
Not a notification. A two-tone voice pager — the device a volunteer firefighter actually wears off shift — with its own screen, its own duty switch and its own inventory item.
Dispatch picks one or more tone sets and a talkgroup, adds an announcement line, and sends. Then:
- The tones sound over the air — every radio and console on that talkgroup hears them, the way a real tone-out is heard by everyone monitoring
- Every on-duty pager subscribed to a matching pair alerts. Matching is a frequency window, not string equality, so a hand-entered pair that is close enough still trips it — exactly like a reed decoder
- The pager shows the announcement and opens its speaker on the paged talkgroup, so the voice announcement that follows the tones is actually heard
- REPLAY plays the whole thing back afterwards, for the member who was three rooms away when it dropped
Members choose which stations they carry, can enter a custom A/B pair off a run card, and can go off duty without handing anything in. Who gets a pager is configured separately from who gets a radio, so a fire job's handheld and its pager are set up independently.
Sending a tone-out is point-and-click from the dispatch console — tick the stations, tick the talkgroup, type the call, send. Running without the console? Pages can also be fired from your own scripts or CAD through exported functions, and a 911 call can page the right units on its own.
Everything else you would expect
- Scan with priority — monitor a list, drop onto whoever keys up, and let a priority channel interrupt a lower one mid-transmission
- Zones and channels with knobs, soft keys and a real menu tree
- Emergency alarm, optional hot mic, dispatch-clear or self-clear
- Instant recall — replay the last transmissions on the radio itself
- Radio effect on voice — P25-style vocoded, analog FM grit, or off
- Prop and talk animation while keyed, skipped in a vehicle or while aiming
- Built-in guide —
/radioguidewalks a new player through every button on whichever radio they are holding
Configure it without a restart
/radioadmin opens a full configuration panel in game: add and reorder talkgroups, edit codeplug personalities, set zone and channel order, change arbitration. Save, and every radio on the server is re-issued live — units keep their current channel wherever the new codeplug still has it, so a mid-shift change does not knock anyone off dispatch.
Everything is re-validated server-side. config.lua is never rewritten; it stays your defaults, and recent saves are kept so a bad edit rolls back.
Works with what you already run
- qb-core, qbx, ESX or standalone — detected at runtime through an adapter, not hard-coded
- pma-voice, mumble-voip, or the native Mumble layer
- ox_inventory, qb-inventory and the ESX inventories — the radio item is optional, and can be required per job or not at all
- Optional integrations are detected at runtime and are never hard dependencies, so it will not refuse to start because you do not run one
Six languages
English, German, Spanish, French, Dutch and Brazilian Portuguese. Every player-facing string sits in a locale file you can edit.
Requirements
- FiveM server build 5848 or newer
- A voice resource — pma-voice or mumble-voip
What you get
- The
sals_kewldispatchresource, ready to drop intoresources/ config.lua, the chassis definitions and every locale left readable and editable- README, changelog and a commercial licence
- Free updates
Valcon, Corvex, Nordvik and Bulwark are fictional manufacturers. The artwork is original, drawn from the shared design language of public-safety radio — no real maker's name, logo, photograph or model file is included or referenced.