Skip to content

Tommy's Radio

tRadio

tRadio runs its own voice server and encodes speech with P25 IMBE — the vocoder real public-safety handhelds use.

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

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

Requirements

RequirementDetail
FiveMArtifact 4752 or newer. Run version in your server console
tLibv1.0+, free — download. No other dependency
OneSyncon. Positional features silently do nothing without it
Web accessOptional. Browser and desktop panels use tLib's port (default 7777)
FrameworkOptional. ESX, QBCore, QBX, ND_Core, ox_core and nat2k15 auto-detect; standalone works
VoiceRuns alongside pma-voice or Mumble. It does not replace proximity voice

Install

  1. Extract tLib and tRadio into resources/
  2. Add ensure tLib then ensure tRadio to server.cfg
  3. Restart the server
  4. Join as police, sheriff, ambulance or fire, press F6, hold B

A new install is not empty: three zones, twelve channels, a working codeplug, four alerts and job mappings for those four jobs ship preconfigured.

Try it first

All three are live now, on one server, and none need a purchase.

  • The dispatch panel

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

    141
    Open the panel
  • The admin panel

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

    141
    Open the admin panel
  • Or get in the game

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

    connect fivem.timmygstudios.com
    Connect in FiveM

Features

Radio that sounds like radio

A real P25 Phase 1 vocoder (IMBE), with M17's Codec 2 selectable per channel. P25 is set per channel, so a digital dispatch channel and an analog tac channel live on the same radio, with an analog FX chain on top of either.

Conventional and trunked channels

Conventional is one shared frequency. Trunked assigns units to sub-frequencies by location, so crews across the map stop stepping on each other. Patching bridges channels on the fly and survives a restart, and a floating channel list shows who is on with you and who is transmitting.

Patching two channels from the panel

Codeplugs — one radio per department

A codeplug is a radio personality: which channels a unit may transmit on, which it may only scan, which models it may carry, what its emergency button does, and whose GPS blips it sees. Map jobs to codeplugs in one table, optionally per rank. Unmapped jobs get no radio.

lua
leo              = { jobs = { police = 0 } },
['leo-command']  = { jobs = { police = 8 } },
Building a codeplug

A dispatch panel that dispatches

A browser panel plus a Windows app with global push-to-talk and auto-updates. Transmit to any channel, patch frequencies, arm announcement groups, trigger alerts, answer 911 calls, replay buffered traffic and assign callsigns.

Speakers you can place, tones you can drop

Stand where you want a speaker, run /tradio_debug coords, and paste the position into Coverage → Speakers with a radius and an optional prop. A dispatcher picks a tone and presses a speaker or group; it plays at those coordinates in 3D. Nobody outside the radius hears it.

A working 911 line

Players dial /911, or 911 on their LB Phone, and land in a queue with their number, unit ID, location and message. Callers speak hands-free over voice activation and press ESC to hang up. No radio or codeplug is needed to call. It ships off — turn it on in Settings → General → 911 Calling. See 911 calls.

Radio in 3D space

Players near a talker hear their radio at their position — voice, tones, the siren loop, rotor noise and gunshots fired mid-transmission. A player wearing earbuds is heard by nobody around them — their radio audio goes to their ears — and a configured earpiece item switches earbuds on for them. See 3D audio.

A radio that lives in the dash

A streamed prop with a live display mirroring the player's own radio. Walk away and it takes over as the audio source at extended range. Place it per vehicle in game, with 3D Prop Editor in /tradio's sidebar.

Dash-mounted radio heads at night
Drag the arrows to move, the rings to rotate, then save to push it to every client.

Coverage you can plan — and lose

Signal towers go in at coordinates you pick, and strength falls off with distance. Turn on degradation and a weak signal chews up the audio. Geo zones switch a unit to a local channel as they walk in, opt-in per player.

Tune every knob, live

The admin panel covers the FX chain, coverage, half-duplex bonking, 3D ranges, GPS blip rate, man-down timers, 911 cooldowns, keybinds and default layouts. Changes broadcast to every client instantly.

Details that sell the illusion

Battery drains on foot and charges in any vehicle, chirping under 50% and cutting out at zero. Man-down escalates from a warning tone to a full emergency. Keying over another transmission earns a bonk, with a double-tap override. Every one is a toggle, and every player-facing string is translatable.

Built to be customized

Radio models are HTML and CSS folders in layouts/ — eleven ship. Thirty-nine tone slots remap globally or per model. A full Lua export surface, a REST API and a Socket.IO stream cover anything the UI does not.

Make the dispatch panel yours

Five themes ship built in. Beyond that: recolor with design tokens, restyle with CSS, replace individual components, or rebuild the console with a declarative template. See theming.

Retheming the dispatch panel

One click, no code, no restart

Radio UIs, dispatch themes and tones install from Admin Panel → Marketplace and appear in every player's style picker the next time they open the radio. No file transfer, no restart.

Drive it from a Stream Deck

An official plugin turns an Elgato Stream Deck into a live radio panel: channel and zone on the key, signal bars, who is talking, panic in red, the 911 queue count. It drives both the in-game radio and the panel, with no companion app. Free with the resource. See Stream Deck.

A dispatcher when you don't have one

A unit says "Dispatch, 1-Adam-12, I'll be 10-8" and gets an answer on the same channel through the same P25 chain. It knows who is on the channel, how far away each unit is, and the last few minutes of traffic.

Point it at an API key for the writing and the voice, or run both on models on your own machine with no account anywhere. What it does with an alert, a tone or a patch is your server's procedure, written in plain English in one config hook.

Plays well with your stack

Auto-detects six frameworks; access refreshes the moment a job changes. Discord OAuth gates the panels by role. Optional integrations mirror 911 calls into six CAD and MDT systems, hook dialing into LB Phone, and surface status in LB Radio. Satellite mode federates several servers onto one radio network.


Specifications

Compatibility

FiveM artifact
4752 or newer
Frameworks
Standalone, ESX, QBCore, QBX, ND_Core, ox_core, nat2k15 — auto-detected
Dependencies
tLib v1.0+ (free). Nothing else
Voice
Runs alongside pma-voice / Mumble, does not replace it
Ports
Optional web access and federation use tLib's port (default 7777)
Multi-server
Satellite federation onto one shared voice server and panel

What stays open

Protection
FiveM Asset Escrow
Editable, unencrypted
config.lua, cl_functions.lua, sv_functions.lua, locales.json, layouts/, data.json
Framework hooks
All of them, in sv_functions.lua and cl_functions.lua
Extension points
Lua exports, REST API, Socket.IO events, theme SDK

What is included

Radio models
11, plus marketplace installs
Tone slots
39, remappable globally or per model
Dispatch themes
5 built in, more from the marketplace
Dispatch app
Browser panel + Windows desktop app with global PTT
Stream Deck
Official plugin, free with the resource
Marketplace
One-click UIs, themes, and tones from the admin panel — no restart
Preconfigured
3 zones, 12 channels, a working codeplug, 4 alerts
AI dispatcher
Optional, off by default. Runs locally — ~2 GB RAM, no port, no account

Questions people actually ask

Still stuck? Support can answer it directly.

Was this page helpful?