Skip to content

Updates

What's new

Releases and writing from the studio, newest first. Written before it ships, not after someone asks.

  1. 2026
  2. Release

    tRadio 7.0

    #

    43 changes

    About tRadio

    The biggest release so far. An AI dispatcher answers your units, your 911 line and your CAD. The in-game radio gains programmable softkeys, real menus, emergency profiles and a scanner. tRadio drops its own port, and every transmission arrives about 200 ms sooner. Upgrading needs a few config changes.

    AddedFeatures15
    • AI dispatcher (experimental) — a unit keys up and gets an answer back on the same channel, with the same radio effects. It knows who is on each channel, raises alerts, sends tones, patches channels, relays 911 calls, and can answer them itself. Recommended setup is an API key for the writing and one for the voice; without keys it runs models on your own server. Configured in Admin Panel → Settings → AI Dispatch. Read the docs
    • CAD / MDT on every surface — LACORE, SonoranCAD, ImperialCAD, wasabi_mdt, tk_mdt and ps-mdt, detected from the running resource. 911 mirroring and panic now reach all six, not just ImperialCAD. Experimental
    • Scanners — a new receive-only radio that can never transmit. Any codeplug with Scanner ticked becomes one, and a Scanner codeplug ships alongside LEO, granted to nobody until you map it. The SWX-250 portable is built for it. Experimental
    • Scanning, rebuilt — scan on/off and the scan list are separate things now, each channel has its own list, and the radio locks onto one scanned channel at a time. Priority 1 interrupts anything, Priority 2 interrupts non-priority. Nuisance delete drops the channel you are hearing; talkback replies on it
    • A programmable radio interface — every layout runs the same radio: a paging Home softkey row, Select Zone and Select Chan menus where browsing previews and Sel commits, an Options menu, Radio Info, and a clock from the game world or the player's PC. Admins program the Home row per codeplug under Codeplugs → Home Softkeys
    • Emergency profiles — the orange button is programmed per channel: hold to activate, then Alarm, Call or both, optionally Silent, staying put or reverting to an emergency channel, with a hot mic and configurable retries. Dispatch gets ALARM / CALL / SILENT badges with ACK and Clear. Existing codeplugs become a single Default profile, so nothing changes until you edit it
    • Direct (simplex) channels — radio-to-radio with no repeater: you hear only units close to you, and dispatch reaches the channel through an optional base radio
    • Talk-permit, TX denied and a transmit time-out — trunked key-ups wait for the grant, a taken channel bonks, and a key held past the limit un-keys itself after a warning tone. Settings → Audio & Radio → Transmit Time-Out
    • A QRX-720 in the player's hand — the Shoulder and Handheld animations hold a portable that ships with tRadio, its screen and LEDs mirroring the radio in use
    • Front-seat radio sharing — driver and passenger work the car's radio together, each transmitting under their own callsign. Nothing to configure
    • Explosions over the air — an explosion near a transmitting unit is heard by everyone listening, as gunshots already were
    • Radios by Discord role — Credentials → Role → codeplug, stacking with the job, ACE and item routes
    • Dispatch panel — tune incoming radio FX for yourself alone, and pick which microphone the panel transmits from
    • Marketplace — animation packs, search by name, the full catalog past the first hundred items, and theme previews rendered in the real panel
    • Admin panel — speakers, towers and geo zones placed on a map from one Coverage page, and a Credentials page that stores keys write-only
    ChangedChanges13
    • Voice arrives about 200 ms sooner — smaller packets and a playout buffer that sizes itself per conversation. Latency no longer grows after a stall and stays grown
    • tRadio no longer has a port of its own. The radio runs over the FiveM connection players already have, and the panels are served through tLib. serverPort is gone and serverAddress is now hostServerUrl. tLib v1.0 or newer is required
    • ACE permissions are lowercase (tradio.admin) and events are tradio:. Both keep working under the old names; the two renamed convars do not
    • Radio layouts are ui.html only — config.json layouts are no longer read, and all eleven shipped models were renamed
    • P25 audio retuned against reference recordings. The digital leg sits at analog level, no longer clips, and no longer changes level with the analog FX toggle
    • Both FiveM generations ship — the streamed props load on Legacy and Enhanced alike
    • Escape returns control to the game and leaves the radio visible. The floating × is gone; hiding on unfocus is a setting
    • Startup checks your config — every problem reported at once, naming the key and the fix, plus a tradio_diag report that is safe to paste
    • Dispatch themes are folders in layouts/, each with its own identity file, instead of rows in the server's data. Installed themes keep working
    • Desktop app: one copy, and closing it quits — with Minimize to Tray on Close for the old behavior
    • Stream Deck gains Softkey and Radio Function actions
    • Scan priorities relabeled — new entries default to Non-priority; stored priorities are unchanged
    • Lighter on busy servers — blip bookkeeping no longer grows with the square of the player count, one digital decode is shared by every nearby radio, and the screen redraws only on change
    FixedFixes15
    • The first transmission after about 20 seconds of silence was heard by nobody
    • The last words of a transmission were cut off at unkey
    • Incoming audio could go silent until voice settings were toggled
    • A dispatcher transmitting on a trunked channel heard nothing back
    • The desktop app transmitted analog on P25 channels
    • A 911 caller on the panel was heard through radio effects instead of as a phone call
    • A logout or character switch left the radio on the previous character's channel
    • A unit whose channel is taken is now told at that moment, and shown who took it
    • Lowering Compression toward 0 made distortion worse rather than flatter
    • An integration sending a blank callsign erased the player's saved one
    • The admin Sounds trash button could delete a shipped tone and always reported success
    • The admin password printed at first start was hundreds of characters long
    • Satellites could read the host's admin password through federation
    • Panel notifications could stay on screen for the life of the page, and froze while hidden
    • The in-game radio retained memory across reconnects and long sessions
  3. Release

    tRadio 6.3

    #

    42 changes

    About tRadio

    tRadio v6.3 is a big one — 911 emergency calling end-to-end, a tower and 3D-speaker system, an official Stream Deck plugin, satellite-server federation, deeper dispatch theming with a new online Studio, LB Phone/Radio and ImperialCAD integrations, and a large batch of stability and audio fixes.

    AddedFeatures10
    • 911 emergency calls — /911 command with ringing/animation and ESC to hang up, plus a dispatch Call Queue (poppable into its own window on the desktop app)
    • Tower config + 3D speakers — place signal towers and speakers around the map and trigger tones from the speakers via the dispatch panel
    • Official Stream Deck plugin — an Elgato Stream Deck plugin (also Stream Deck Mobile and OpenDeck) that mirrors and drives both the in-game radio and the web dispatch panel — live channel/zone, who's talking, scanning, PTT, cross-channel dispatch, volume, and 911 — with no separate desktop app required
    • Satellite server federation — satellite servers now auto-sync zones, alerts, codeplugs, tones, and settings from the host every few minutes (previously manual-restart-only), and radio state is safe against duplicate server IDs across federated servers
    • Geo zones & channel auto-switching — geographic zones you place on the map (alongside speakers and towers) with location-based channel auto-switching, plus a per-player opt-out toggle in the /tradio settings dialog
    • Hide a zone from dispatch — a per-zone toggle that withholds a zone from the dispatch panel's channel list, transmission log, and live counts (great for civilian/criminal/business RP radio) without changing its in-game behavior or codeplug access
    • "Always Full Signal" admin setting — disable signal degradation without deleting your tower config
    • "Simultaneous Scan Audio" setting — hear every scanned channel at once instead of one muting the rest
    • Transmission playback (experimental) — play back a transmission directly from the dispatch panel, so a call you missed or couldn't quite hear can be replayed instead of lost
    • Fuller dispatch theming — an expanded v2 theme SDK (design-token tiers, component slots, requires compatibility, and declarative data-rd-* templates) plus a new online Theme Studio / creator at timmygstudios.com
    AddedIntegrations3
    • LB Phone / LB Radio — mirrors tRadio status into LB Radio's phone app
    • LB Phone 911 dial-in — call 911 from LB Phone in addition to the /911 command
    • ImperialCAD — auto-creates and closes calls in ImperialCAD when a 911 call comes through tRadio
    ChangedChanges3
    • Theme authoring moved online — the in-panel Theme Studio and the /theme-dev harness have been removed; themes are now authored in the external Studio (with a documented devtools install flow) against the v2 theme SDK. Existing installed themes keep working; theme authors should move to the online Studio.
    • Vehicle 3D radio audio now defaults on, and only emergency vehicles register as a 3D radio source — ordinary vehicles no longer do. The activation distance is also now admin-configurable instead of a fixed value.
    • FiveM Enhanced compatibility — admin-panel file writes and model/sound discovery now work on FiveM Enhanced (via a Node filesystem bridge) instead of failing or spamming the console.
    FixedFixes26
    • Server-side enforcement that a player's codeplug actually allows a channel before they can join or transmit, even from a modified client
    • Admin panel warns when a new zone isn't wired into any codeplug, with a one-click fix
    • Voice-normalization pass across the audio engine for more consistent volume across speakers and channel types
    • Fixed the radio going permanently unresponsive after a lag spike/disconnect and never auto-reconnecting
    • Fixed P25 (digital) voice being quieter than analog voice at the same volume
    • Fixed an occasional "ghost" tail of audio playing after a transmission had already ended
    • Fixed the toggle-radio keybind not closing the radio when it was already open
    • Fixed Escape closing the whole radio instead of just the open Settings panel
    • Fixed disabling 3D audio not stopping sounds that were already playing
    • Fixed "Man Down" auto-alert briefly re-enabling itself on load despite the codeplug disabling it
    • Fixed audio/P25 effect settings received right after initial connect not applying until reconnect
    • Fixed the auto-transmit opt-out setting doing nothing
    • Fixed panic alert repeats re-keying the mic on every repeat instead of once
    • Fixed reconnecting to a patched channel showing a stale "ON: freq" instead of "PATCH ACTIVE"
    • Fixed the panic button wrongly rejecting "not in channel" right after switching to it
    • Fixed listen-only players not receiving dispatcher alert tones/banners
    • Fixed a modified client being able to falsely spoof a "transmitting" state
    • Fixed other players' names showing as "Unknown" due to a join-time race
    • Fixed dispatch panel actions (alerts, messaging, callsign, disconnect) failing silently on error
    • Fixed actions getting misapplied to the wrong dispatcher when multiple dispatchers are connected
    • Fixed "Bonking" settings in the admin panel silently failing to save
    • Fixed the Marketplace tab stalling the admin panel up to 30s when unreachable
    • Fixed idle-session logout using a jarring native popup instead of an in-panel dialog
    • Fixed dispatch panel "Logout" not fully invalidating the session, allowing silent re-login on shared machines
    • Hardened dispatch session tokens to be HttpOnly instead of readable by JS
    • Fixed GPS blips not updating immediately on channel switch and getting stuck on the map after leaving
  4. Release

    tRadio 6.2

    #

    7 changes

    About tRadio

    tRadio v6.2 adds multi-server connection support so several game servers can share one voice server and dispatch panel, full localization through an editable config/locales.json, per-channel GPS blip colour overrides that still fall back to the codeplug, separated TX and RX LED colours on the radio display, the admin panel URL in the startup banner, and a callsign restriction and sync fix.

    AddedFeatures5
    • Multi-server connection support — several game servers can now run against one shared voice server and dispatch panel, so dispatchers see every unit from every server in a single place instead of working one panel per server. The host runs the backend; satellite servers point at it and federate their player, panic, tone, and alert state over HTTP, with requests signed using the shared authToken.
    • Localization support — every player-facing string now lives in an editable config/locales.json rather than being baked into the resource. The file ships unencrypted and survives updates untouched, and the dispatch and admin panels read the same string table, so one translation pass covers the in-game radio and the web surfaces together.
    • Per-channel GPS blip colour overrides — a channel can now specify its own GPS blip colour, applied only to players monitoring that channel. Left unset, the colour falls back to the codeplug's own GPS colour exactly as before, so this is purely additive: existing setups keep their codeplug-driven colours until a channel deliberately overrides one.
    • Separated TX and RX LED colours — the radio display's status LEDs now use distinct colours for transmitting (red) and receiving (amber) instead of sharing one indicator colour, so it reads at a glance whether you are the one talking.
    • Admin panel URL in the startup message — the startup banner now prints the admin panel address alongside the dispatch panel address, putting the /admin URL in the server console at boot instead of leaving it to be assembled by hand from the configured host and port.
    FixedFixes2
    • Fixed a callsign bug affecting both restriction enforcement and keeping callsigns in sync between the dispatch panel and connected clients.
    • A batch of smaller bug fixes across the radio UI, the dispatch and server bundles, and the shipped layouts.
  5. Release

    tRadio 6.1

    #

    8 changes

    About tRadio

    tRadio v6.1 introduces the codeplug system as the single place radio access is defined — demoting NAC IDs to cosmetic labels — alongside pre-configured inventory item integration, per-vehicle and per-livery radio model overrides, dispatch PTT groups with their own bindings, and codeplug-defined scan list presets, plus fixes for a UI render failure and the Radio FX sliders.

    AddedFeatures5
    • Codeplug system — a codeplug is a radio personality: which channels a unit can transmit on, which it can only scan, which radio models it may carry, which features are enabled, and what its emergency button does. Codeplugs are built in the admin panel and mapped to jobs and grades, which makes them the one place radio access is defined instead of it being spread across several config surfaces. As part of this, NAC IDs are now mostly cosmetic — a NAC shows on the radio screen and the dispatch panel but gates nothing; channel access is decided entirely by codeplugs and permission grants. Read the docs.
    • Inventory and item pre-configuration — the radio can be gated behind an inventory item with the integration already written for you. The item is registered as usable automatically for the supported inventories and frameworks, so using it from the inventory opens the radio with no bridging code to write. Detection defaults to automatic, and the requirement can be bypassed with a permission grant for staff.
    • Per-vehicle and per-livery model overrides — a codeplug can now override which radio model a player is handed for a specific vehicle spawncode, or for a specific spawncode and livery combination, taking priority over the per-context defaults. A marked unit and an unmarked unit of the same vehicle can therefore carry visibly different radios without either player changing anything.
    • Dispatch PTT groups and bindings — a group is a named set of channels that a dispatcher arms so their next transmission fans out to every channel in it at once, rather than repeating the same message channel by channel. The panel shows a groups bar whenever at least one group exists, and each group can be given its own PTT key, as can each individual channel card for cross-channel transmits without leaving the channel you are monitoring.
    • Scan lists and memory — codeplugs can define named scan list presets that a player loads in one click from the radio settings dialog or from the radio's own menu, instead of adding scanned channels one at a time. Each entry in a preset carries a priority tier, so a loaded list keeps high-priority traffic ahead of the rest.
    FixedFixes3
    • Fixed the radio UI failing to render, which surfaced as a length error rather than a usable radio.
    • Fixed the Radio FX sliders in the admin panel having no effect on the transmitted audio chain.
    • A batch of smaller bug fixes across the radio UI, the dispatch and server bundles, and the shipped layouts.
  6. Release

    tRadio 6.0

    #

    16 changes

    About tRadio

    tRadio v6.0 ships a new external admin panel, a dispatch panel theming system, man-down alarms and spoken zone and channel announcements, user-definable background transmission FX including a K9 mode, per-channel PTT bindings that survive a right-click to unbind, patches that persist across restarts, and pre-configured support for every major framework.

    AddedFeatures11
    • New external admin panel — server configuration moves out of config files and into a browser-based panel served by the resource itself. Zones, channels, codeplugs, alerts, audio settings and props are all edited there, and changes reach every connected client immediately rather than waiting for a restart.
    • Dispatch panel theming system — the dispatch panel can now be restyled rather than only used as shipped, with several themes selectable directly in the panel's settings and no install step for the ones that ship built in.
    • Man down alarm functionality — an optional alarm that watches for a unit being down or stationary too long, plays a warning tone at 45 seconds, and escalates to a full emergency broadcast 20 seconds after that if nothing changes. Both delays are configurable, the feature is gated per codeplug, and players toggle it themselves when their codeplug allows it.
    • Voice announcement system — the radio speaks the zone and channel name aloud as you switch between them, so a unit changing channels does not have to look at the radio screen to confirm where they landed. Codeplug-gated and on by default for new players.
    • Add your own background transmission FX modes — the background sound other players hear behind your voice is driven by a hook that returns a mode string, and that string is mapped to a WAV file. Three modes ship mapped; returning any other string, adding the mapping, and uploading the file is all that is needed to add your own, and an unmapped mode simply plays nothing rather than erroring.
    • K9 background audio FX — a K9 mode ships as one of those defaults, triggering when a dog ped is riding in a passenger seat so the animal is audible behind the handler's transmissions. The list of ped models that count is configurable, so custom K9 peds can be added.
    • Patches persist over restarts — patching bridges two or more channels so every patched unit hears the others, and a patch now survives a server restart instead of having to be rebuilt afterwards. Patched channels carry a badge so it is obvious which are bridged.
    • Per-channel PTT bindings — each channel can be given its own push-to-talk key, so a dispatcher can transmit on a specific channel without first switching to it.
    • Right-click to unbind channel PTT — key capture fields accept a click to record a key and a right-click to clear it, registering the action as unbound. Removing a binding no longer requires setting it to something else first.
    • Separate channel and transmitter UI bindings — the monitored-channel transmit control and the per-channel transmit controls are bound independently rather than sharing one binding.
    • Improved PTT keybind support — push-to-talk and the other radio actions are registered as proper FiveM key mappings, so players rebind them from the game's own key bindings screen rather than through a resource-specific menu.
    AddedIntegrations1
    • QB, ESX, Qbox, Ox and ND Core come pre-configured — the framework is auto-detected at startup and the framework-specific job lookup is already written, so the common case needs no bridging code. The detection order and the resource names it probes for are configurable, and a custom mode is available for anything not on the list.
    FixedFixes4
    • Fixed the 3D prop's screen icons failing to load, leaving the dashboard radio prop's display incomplete.
    • Fixed push-to-talk not activating or triggering in-game voice chat.
    • Fixed the 3D Prop Editor not saving placements to data.json, so edits were lost rather than applied.
    • Fixed tones not playing after the radio UI had been closed.