Skip to content

Radio Station Framework

This page is a high-level map of the rs_radio resource.

Some files listed here are internal implementation files and may be escrowed in distributed builds. This page is for orientation and troubleshooting, not a request for server owners to edit protected source files.

rs_radio/
+- client/
| +- audio/
| | +- exports/
| | +- events.lua
| | +- main.lua
| +- emitter/
| | +- emitter runtime slices
| +- ui_bridge/
| | +- NUI bridge slices
| +- utils/
| | +- ui_bridge.lua
| +- cl_audio_mixer.lua
| +- cl_boombox.lua
| +- cl_walkboy.lua
| +- cl_dj_headphones.lua
| +- cl_dj_locations.lua
| +- cl_dj_panel.lua
| +- cl_dj_voice.lua
| +- cl_doorlock_debug.lua
| +- cl_emitter.lua
| +- cl_mic_state.lua
| +- cl_native_music_block.lua
| +- cl_radio_control.lua
| +- cl_studio_monitor.lua
| +- cl_studio_seating.lua
| +- cl_ui.lua
| +- cl_vehicle_radio_block.lua
| +- cl_weather_display.lua
+- config.lua
+- data/
| +- product_ads.json
+- docs/
| +- configuration.md
| +- development.md
| +- faq.md
| +- features.md
| +- file-system.md
| +- installation.md
| +- introduction.md
| +- modes.md
| +- rebel-radio-doors.md
| +- rebel_radio_doors_ox_doorlock.sql
| +- rebel_radio_doors_qb_doorlock.lua
+- fxmanifest.lua
+- nui/
| +- audio/
| +- vendor/
| +- index.html
| +- local_fit.html
| +- local_panel_fit.js
| +- local_preview.html
| +- local_seed.js
| +- logo.png
| +- script.js
| +- studio_monitor.html
| +- style.css
+- radio_boombox.png
+- radio_walkboy.png
+- server/
| +- js/
| +- state/
| | +- server state slices
| +- utils/
| +- sv_alerts.lua
| +- sv_boombox.lua
| +- sv_call_system.lua
| +- sv_diagnostics.lua
| +- sv_dj_boss.lua
| +- sv_doorlocks.lua
| +- sv_emitter_fx.lua
| +- sv_framework.lua
| +- sv_listener_eq.lua
| +- sv_local_duration_resolver.lua
| +- sv_permissions.lua
| +- sv_phone_routing.lua
| +- sv_playlist.lua
| +- sv_resolver_hook.lua
| +- sv_saved_library.lua
| +- sv_scheduler.lua
| +- sv_state.lua
| +- sv_station_admin.lua
| +- sv_station_seed.lua
| +- sv_stations.lua
| +- sv_tracks_hotswap.lua
| +- sv_weather_engine.lua
+- shared/
| +- config_defaults.lua
  • config.lua

    • Main server-owner configuration: framework, permissions, stations, MLO placement, item names, feature toggles, emitter radius, weather provider, and boombox settings.
  • radio_boombox.png

    • Inventory image asset reference for servers that want to reuse the included boombox icon.
  • radio_walkboy.png

    • Inventory image rendered from the included Walkboy model.
  • data/product_ads.json

    • Shared product ad data.
  • docs/rebel_radio_doors_ox_doorlock.sql

    • Optional manual import for ox_doorlock.
  • docs/rebel_radio_doors_qb_doorlock.lua

    • Optional manual entries for qb-doorlock.

The standard package uses local .ogg and .mp3 files under songs/. The server operator is responsible for ensuring these files are appropriately licensed.

Use the in-game Station Creator/Admin UI for station content where possible.

The station creator handles:

  • station identity
  • station branding colors
  • server-provided station audio
  • ads
  • SFX
  • placement
  • review/publish state

This avoids asking server owners to edit internal station data by hand.

The boombox and Walkboy items must be added to the serverโ€™s inventory/framework resource when enabled.

Common places:

  • qb-core/shared/items.lua for QBCore/qb-inventory
  • ox_inventory/data/items.lua for Qbox/ESX servers using ox_inventory

The item names must match:

Config.BoomboxItemName
Config.WalkboyItemName

Default:

radio_boombox
radio_walkboy

Do not treat internal Lua, JS, NUI, audio, state, bridge, or emitter files as customer edit targets.

For customer setup, use:

  • config.lua
  • Station Creator/Admin UI
  • inventory item definitions
  • documented doorlock import files
  • supported integration events from docs/development.md
  • Startup issue: check server/F8 console and confirm required dependencies are started.
  • DJ UI issue: confirm DJ permissions, station location, and modified pma-voice.
  • Listener UI issue: confirm keybinds, vehicle/boombox context, and NUI focus behavior.
  • World emitter issue: test one source first, then vehicle/boombox/mixed-source scenarios.
  • Boombox issue: confirm inventory item, target resource, and framework bridge.
  • Cohost issue: confirm both players use the modified pma-voice and test invite/accept/monitor flow.
  • Station creator issue: confirm admin group permissions.
  • Voice/call issue: confirm modified pma-voice and mic/channel setup.
  • Weather issue: confirm configured weather provider/resource is started.