A handheld FiveM radio script with a touch screen, up to 3 radio channels at once and a live on-screen display. Players hear every channel together and talk on all of them with one key. Job channels for police and EMS, password-protected frequencies for crews. Works with QBCore, Qbox, ESX and standalone, on pma-voice, mumble-voip or SaltyChat.
Use the radio item or type /radio. The device opens on screen and the radio appears in the player's hand.
Tap a job channel to connect, or type any frequency on the keypad. Locked channels ask for their password.
Hold Caps Lock to talk on every connected channel, or use a slot key to talk on just one.
The on-screen display lists every member, and a name lights up the moment that person keys the mic.
A police officer can sit on the department channel, the joint channel with EMS and a private one with their partner, all at the same time.
Job Channels and Private Frequencies
Channel
How it works
Job channels
Fixed frequencies for police, EMS, mechanics or gangs, with minimum grades and an optional on-duty rule. One tap connects
Player channels
The first player on a frequency owns it and can set a name and password, kick members and hand over ownership
Reserved range
Frequencies 1 to 9.99 can only be used by the channels you list in the config, so nobody takes over your police frequency
Features
Multi-channel radio: up to 3 channels at once, each in its own slot, all heard together
One key to talk: Caps Lock talks on every connected channel, and each slot can have its own key
Touch-screen device: Channels, Connect, Saved and Settings tabs, with power, home and back keys, knobs and a side talk key
On-screen display: see every member and who is talking, drag each channel anywhere, collapse it, or show only who is speaking
Your own mix: talk, listen and volume per channel, and mute any person just for yourself
Emergency button: pressed twice, it sends a banner, an alarm and a map blip with your location to the whole channel
Callsigns: show a callsign like 1-ADAM-12 next to the name in member lists
Radio voice effect: voices sound like a real radio, and someone standing next to you is heard naturally
Talk animations: a hand on the shoulder mic or the radio raised to the mouth, with a radio prop
Customizable look: 6 screen colours, 4 body colours including a yellow ATEX version, device size and position
Admin panel: every live channel and who is on air, with kick, close, rename, remove password, change owner and a full activity log
Realistic limits: no talking while dead, cuffed or underwater, and losing the radio item drops the player from every channel
Server-side security: jobs, passwords and kicks are all checked on the server, and the talk key is rate limited per player
No database needed: no SQL to run
Optimized: voice never passes through the game server, channel updates are grouped, and per-frame work only runs while the screen is open or the talk key is held
Compatibility
Supported
Frameworks
QBCore, Qbox, ESX, Standalone
Voice
pma-voice, mumble-voip, SaltyChat
Inventories
ox_inventory, QBCore and ESX inventories
Requirements
OneSync and one of the voice resources above
Languages
English and Turkish
Framework, inventory and voice resource are detected automatically, and the radio item works without editing items.lua. On SaltyChat the radio has 2 channels (primary and secondary), without per-channel volume or personal mute.
For Developers
Open config, locale and two integration files
Server exports: read channels, put players on or off a channel, check who is talking
Client exports: open / close the radio, join / leave channels, talking state
Server and client events for joining, leaving, talking and emergencies
Hooks for who can join a channel, open the radio and talk
radioActive and radioChannel state bags for HUDs that read them from pma-voice
Discord webhook logging
What You Get
The full resource with the radio, the on-screen display and the admin panel
Full documentation
Free updates and Discord support
FiveM Radio Script | Multi-Channel Handheld Radio & Live HUD - Open Source40.00 EUR