Skip to content

Radio Station Framework

It is a radio simulation framework for FiveM. It supports player-run stations, autonomous stations, live DJ tools, listener interfaces, local station audio, 3D emitters, boomboxes, call-ins, ads, SFX, weather information, and station branding.

Legacy servers require the RS-modified pma-voice build for DJ microphones, cohosts, private caller screening, live callers, and related voice routing:

Supported FiveM Enhanced servers can use the built-in voice API without pma-voice. See docs/voice-backends.md in the resource archive.

No. The current build uses an internalized xSound-like world playback path.

Use server-provided local .ogg and .mp3 files under songs/. No external audio resolver is required for local playback.

Fresh installs begin with an empty Config.RadioStations table. An authorized admin can create and publish stations through /radiostationadmin. Existing stations stored in SQL are retained across configuration changes.

By framework groups by default:

  • admin
  • god
  • superadmin

These are configurable through Config.EmitterAdminGroups. ACE and legacy identifier fallback are also available.

Use:

/radiostationadmin

The command opens the Station Creator/Admin UI for authorized radio admins.

Use:

/radioemitterfx

The command opens the Emitter FX panel for authorized admins.

Common commands:

  • /radiolistenerui - opens or closes the listener UI.
  • /radiolisten - opens the listener UI.
  • /radiolisten on / /radiolisten off / /radiolisten toggle - controls vehicle radio state.
  • /radiotablet - optional DJ tablet shortcut when enabled in config.
  • /radiocohost add [serverId] - invites a nearby cohost while live.
  • /radiocohost remove [serverId] - removes a cohost.
  • /radioacceptcohost - accepts a cohost invite.
  • /radiodeclinecohost - declines a cohost invite.

The boombox flow needs:

  • an inventory item
  • a usable item path
  • a target path for placed prop interactions
  • framework/inventory give-back behavior

Supported stacks include QBCore, Qbox, ESX, qb-inventory, ox_inventory, qb-target, and ox_target.

Config-defined stations are exposed through Config.RadioStations, and Station Creator stations are stored in SQL.

Shared product ads are stored in:

  • data/product_ads.json

Older per-station JSON paths may exist on some installs, but the current config-driven station setup is the primary path.

Durations affect:

  • deck metadata
  • playlist display
  • autonomous scheduling
  • segment transitions
  • dead-air avoidance

If a duration is wrong, automation timing can drift.

Yes. The listener UI includes a settings/position flow that lets players move and save the UI position locally.

The server operator supplies local audio for each station, including music, advertisements, and effects. Use only content you own or are properly licensed to broadcast and, where applicable, redistribute. The standard resource does not include a third-party music catalogue.

Yes. Autonomous station programming can rotate configured local audio and station segments without a live DJ.