rxRadio is a modernized fork of x-radiolist for FiveM servers using pma-voice. It's a fully standalone resource that provides a live radio member list, active speaker indicators, custom radio display names, and a fully rebuilt React + TypeScript NUI with editable, persistent HUD positioning alongside a complete rewrite of several key functions to improve performance & stability.
This resource is a fork of x-radiolist.
- Live radio member list driven by
pma-voice - Active speaking indicator for radio users
- Beautified channel header with frequency, channel name, and online count
- Player-editable radio HUD position and scale
- Robust adaptive scaling defaults, ensuring compatibility with all resolutions
- Client-local layout persistence for the radio HUD
/callsignsupport for custom player radio names- Optional RP-name support through ESX or QBCore
- Optional QBCore on-duty callsign enforcement
- Optional server ID display next to names
- Configurable named radio channels
- Optional access restriction by job/gang/group
ox_libnotifications for UI/name/channel actions
Start these before rxRadio:
- Download a release from the right hand side.
- Place the resource in your server resources folder as
rxRadio. - Ensure dependencies start before it.
- Add
ensure rxRadioto your server config.
Example:
ensure ox_lib
ensure pma-voice
ensure rxRadioDefault commands from the current config:
/ch [channel]Joins a radio frequency. Use/ch 0to leave radio./radiodisplayToggles the radio list UI./radiodisplayeditEnables or disables HUD edit mode./radiodisplayresetResets the saved HUD layout back to the default profile./callsign [name]Sets your radio display name when custom names are enabled.
Edit mode finishes through the configured keybind:
RETURNSaves edited position & sizeESCDiscards edited position & size restoring the configured defaults.
If you are working from source:
- Install Bun.
- Open the repository root.
- Install dependencies with
bun install. - Use the scripts below depending on whether you are developing, validating, or packaging.
Available scripts
bun run devStarts the Vite dev server for working on the React NUI in a browser.bun run buildRuns TypeScript compilation and builds the production NUI intoweb/distfor FiveM.bun run lintRuns ESLint across the frontend source.bun run previewServes the built frontend locally for previewing the production bundle.bun run packaging -- <version>Builds the frontend and creates a drag-and-drop release zip using scripts/create-release.sh.
Although by default rxRadio is a standalone resource
When Config.UseRPName is enabled:
- ESX uses
xPlayer.getName()for RP names - QBCore uses character first/last name for RP names
- QBCore can force job callsigns onto the radio name while on duty for jobs listed in
Config.JobsWithCallsign
If RP names are disabled, the resource falls back to the player server name unless the player has set a custom radio name.
This repository still includes the upstream LICENSE. Review it before redistributing modified versions of the resource.
