Skip to content
Back to software

Tommy's Radio

Tommy's Radio

Real P25 radio for FiveM — dispatch panel, trunking, and 3D audio

FiveMEscrowstandaloneqbcoreqboxesx
Docs
$99.99

or $19.99/mo

Powered by Tebex. Instant delivery to your Cfx.re account.

Roadmap

View board
  • 9Planned
  • 1In Progress
  • 6Done
Tommy's Radio
Live

547

Servers

1,199

Players

#1,022of all FiveM resources0.2% market share1 rank

Servers (7d)

Have a different question?

Discord

Description

Most FiveM radio scripts add channel routing and an audio filter on top of pma-voice. Tommy's Radio runs its own voice server and encodes speech with P25 IMBE — the same vocoder real public-safety handhelds use. The radio sound is the codec, not an effect painted over your voice.

Channels, trunking, codeplugs, a dispatch panel, 911 calls, 3D audio, and GPS all ship in one resource. One port, one config file, nothing external to sign up for.

P25 IMBE
the vocoder real public-safety radios use
3.7×
less bandwidth than Opus
6
frameworks auto-detected, or run standalone
10
radio models included
0
restarts to change a setting

Will it run on your server?

The answer is almost always yes, but this is the part worth checking first.

  • FiveM artifact 4752 or newer. Type version in your server console to check.
  • One free TCP port, default 7777, reachable from the internet. It cannot share FiveM's 30120.
  • tLib v0.6 or newer — free, and the only dependency.
  • A framework is optional. ESX, QBCore, QBX, ND_Core, ox_core, and nat2k15 are auto-detected. Standalone works.
  • It does not replace your proximity voice. tRadio captures its own microphone stream and runs beside pma-voice or Mumble, not instead of it.

Try it before you buy it

All three are live right now, on the same server. None of them ask for an email.

The dispatch panel

The real panel, running against that server. Talk to the players on it from your browser.

Access code

Open the panel

The admin panel

Every setting a server owner touches — zones, channels, codeplugs, audio, speakers, towers. Change one and it reaches every connected client instantly.

Or just get in the game

Press F8 in FiveM, paste the line below, and press enter. Once you spawn in, press F6 to open a radio and key up on a channel with the dispatchers above.

Connect in FiveM

What you get

Radio that sounds like radio

A WebAssembly build of op25's IMBE encoder. Your voice is encoded once and decoded by every listener — in game, on the dispatch panel, and by bystanders standing next to you. P25 is set per channel, so a digital dispatch channel and an analog tac channel live on the same radio.

Conventional and trunked channels

Conventional is one shared frequency: everyone on it hears everyone else. Trunked splits units onto sub-frequencies by location, so units spread across the map stop stepping on each other — and dispatch still reaches all of them. Patch any two channels together on the fly, and the patch survives a restart.

A dispatch panel, and a working 911 line

Browser panel plus a native Windows app with global push-to-talk. Dispatchers transmit to any channel, patch frequencies, arm announcement groups, replay a transmission they missed, and set callsigns.

Players dial /911 — or 911 on their LB Phone — and land in a queue with their number, location, and message. The dispatcher accepts and they talk, hands-free, ESC to hang up. No radio or codeplug needed to call.

Speakers you can place, tones you can drop

Grab a coordinate in game with one command, paste it into the admin panel with a radius and an optional prop, and group speakers by station. A dispatcher picks a tone and a target, and it plays at those coordinates in 3D — station alerting, tone-outs, PA stingers. Everyone inside the radius hears it positioned. Nobody outside does.

Everyone nearby hears your radio

Stand next to a unit taking a call and you hear their radio at their position — voice, tones, the siren behind them, rotor wash, gunshots fired mid-transmission. Earbuds gate your outgoing broadcast, and a configured earpiece item enables them automatically.

A radio that's really in the dash

Not a screenshot taped to the dashboard. It is a streamed prop with a live display — zone, channel, signal bars, status LEDs — rendering the same thing the player's radio shows. Walk away from the car and it takes over as the audio source at longer range.

Placement is per vehicle model, done in game: sit in the car, open the editor, and drag it into place with a Three.js gizmo. Save, and every client sees it immediately.

The in-game prop editor — drag to move, rings to rotate, save to push it to every client.

Codeplugs — one radio per department

The same thing real agencies program into their fleets. A codeplug decides which channels a unit can transmit on, which it can only scan, which radio models it may carry, and whose GPS blips it sees. Map jobs to codeplugs in one table, optionally per rank, so a sergeant's radio carries channels a patrol officer's does not.

Coverage you can plan — and lose

Put signal towers at coordinates you pick. Strength falls off with distance from the nearest one, and with degradation on, a weak signal audibly chews up the audio — the edge of the county sounds like the edge of the county.

Geo zones work the other way: a coordinate and a radius around the mall or the prison, and a unit walking in switches to that area's channel and back out again.

Built to be taken apart

Radio models are HTML and CSS folders; ten ship. Twenty-five tone slots. Five dispatch themes, plus a four-tier theming SDK — recolour with tokens, restyle with CSS, swap individual components, or rebuild the console from a declarative template. None of it needs JavaScript.

One click, no code, no restart

Radio UIs, dispatch themes, and tones publish to the tMarketplace. Find one, press install in Admin Panel → Marketplace, and it shows up in every player's style picker the next time they open the radio. No file transfer, no restart tRadio, no editing anything.

Live today: extra handhelds, a car radio, a tone pack, and a full dispatch-console theme. Because layouts and themes are just HTML and CSS, anyone can build one — and publishing needs no review queue.

Also included

  • A live admin panel. Every audio knob, FX setting, signal curve, and timer, pushed to every connected client instantly.
  • Alerts and panic. Coloured banners with activate, repeat, and clear tones, plus man-down escalation and announcement groups.
  • An official Stream Deck plugin. Free, and it works with Stream Deck Mobile and OpenDeck.
  • Details that sell it. Battery drain, bonk tones, spoken zone and channel announcements. All optional.
  • Multi-server federation. Satellites share one voice server and one dispatch panel.
  • Integrations. LB Phone, LB Radio, ImperialCAD, and Discord OAuth for panel access.
  • An API. Lua exports, a REST API, and a Socket.IO event stream.
  • Translatable. Every player-facing string lives in one JSON file.

Specifications

Compatibility

FiveM artifact4752 or newer
FrameworksStandalone, ESX, QBCore, QBX, ND_Core, ox_core, nat2k15 — auto-detected
DependenciestLib v0.6+ (free). Nothing else
VoiceRuns alongside pma-voice / Mumble, does not replace it
PortsOne free TCP port, default 7777, internet-reachable
Multi-serverSatellite federation onto one shared voice server and panel

What stays open

ProtectionFiveM Asset Escrow
Editable, unencryptedconfig.lua, cl_functions.lua, sv_functions.lua, locales.json, layouts/, data.json
Framework hooksAll of them, in sv_functions.lua and cl_functions.lua
Extension pointsLua exports, REST API, Socket.IO events, theme SDK

What is included

Radio models10, plus marketplace installs
Tone slots25, remappable globally or per model
Dispatch themes5 built in, more from the marketplace
Dispatch appBrowser panel + Windows desktop app with global PTT
Stream DeckOfficial plugin, free with the resource
MarketplaceOne-click UIs, themes, and tones from the admin panel — no restart
Preconfigured3 zones, 12 channels, a working codeplug, 4 alerts

Buying it

UpdatesIncluded, forever, on both the one-time and monthly options
SupportDiscord, with a purchase-linked role
Refunds7-day money-back guarantee on the one-time purchase
Test serverPublic, permanent, no purchase needed

Questions people actually ask

Do I really have to open a port?

Yes, and it is the step that goes wrong most often. tRadio runs its own voice server inside the FiveM process, and that server needs one TCP port reachable from the internet. Most hosting panels expose extra ports on request. The installation guide covers Windows, Linux, and the common hosts.

Will it fight with pma-voice?

No. Radio PTT uses tRadio's own microphone capture on its own server, so your proximity voice keeps working exactly as it does now. The only place tRadio touches in-game voice is 911 calls, which use voice activation.

It says Escrow. Can I still configure it?

Yes. The resource is escrow-encrypted, but config.lua, both function-hook files, locales.json, layouts/, and data.json ship unencrypted and stay yours. Framework integration is a Lua function you write. Nearly everything else is a setting in the admin panel, applied live.

What is still rough?

The 911 system works end to end but is still settling, and can be switched off from the admin panel without affecting anything else. Transmission playback and the LB Phone / LB Radio integrations are also marked experimental. Trunked channels cannot be patched.

One-time or monthly?

Both get every update and the same support. Buy once and it is yours; subscribe if you would rather spread the cost, and cancel any time from your account.

Can I get a refund?

7 days on the one-time purchase, after you have given support a shot at the problem. Subscriptions are not refundable, but cancelling stops the next renewal immediately and you keep access to the end of the period. Full terms: refund policy.

Still not sure?

Ask before you buy. The Discord is the fastest route, and the entire documentation is public — configuration, API, and troubleshooting included. Read it before you spend anything.