[Preview Video]
Dependencies
Standalone (can work with all frameworks)
[Discord]
izzy-radiov2 β FiveM Radio System
π¦ Overview
* π» Use the radio item from your inventory β menu opens with a handheld radio prop and animation
* πΌ Works with ESX and QBCore (auto-detects whichever runs on your server)
* ποΈ Connects to voice radio via pma-voice, mumble-voip, or SaltyChat β depends on what your server uses
* π‘ Player-created channels plus server job frequencies (police, EMS, etc.) from config
* π¬ Text chat and voice messages (record and send) with everyone on the same frequency
* π₯ See whoβs talking and whoβs on the channel with on-screen lists
π€ Profile / display name (what you see)
* β οΈ **No in-game character mugshot on the radio screen.**
* **On the radio UI:** Display name field at the top lets you set a custom nickname (saved locally); leave empty to use your character name. No profile picture on this screen.
* **In frequency chat (while connected):** Each message shows the senderβs **Discord profile picture + display name**. Photo may be missing if you have no Discord or the bot isnβt configured.
* **Member lists (Members / Member List):** Names only β no photos. Green highlight when someone is talking, red when you muted them.
π» How to open the radio
* **ox_inventory:** `radio` item (`izzy-radiov2` export)
* **QBCore / ESX:** Usable `radio` item
* Your character holds a radio prop with a phone-style animation. Press **ESC** to close.
π’ Connecting to a frequency
* **When not connected:** Enter a frequency number (MHz) β **Connect**.
* **New channel:** Set a channel name and optional password β save β connect.
* **Existing player channel:** Pick from the channel list β enter password if needed β connect. Favorite / unfavorite options are saved on your device.
* **Server frequencies (`cfg.frequencies`):** Certain numbers are job-only (e.g., police, ambulance). Wrong job returns a βYou cannot connect this frequencyβ message. Job channels show a type icon (police, EMS, sheriff β images from config types).
* **Channel Owners:** If you created the channel, you can edit the name/password or delete the channel (everyone gets kicked).
π¬ While connected β chat & voice
* **Text mode:** Type a message and press Enter or the send button.
* **Microphone mode:** Press to record, stop to send a voice message in chat (others can play it). Chat shows Discord photo + name.
* **Disconnect:** Leave the frequency. Center radio button shows red when not connected, green when connected.
π₯ Members
* **Members tab:** List of everyone on the frequency. Click someone to mute/unmute (pma-voice; only affects you).
* **Member List (overlay panel):** Draggable list while connected (top right). Shows department icon on job channels, member count, and flashes green when talking / red when muted. Minimize/expand state and position are saved.
π Audio & radio controls
* **+ / β** on the radio graphic changes volume by **10%** (min/max warnings). Default volume is set in config (`defaultVolume`).
* Connection to pma-voice, mumble-voip, or SaltyChat puts you directly on the radio channel.
* **Auto disconnect:** If enabled in config, dying or dropping the radio item from your inventory forces you to leave the frequency.
π¨ Interface
* Realistic radio graphic (`radio.png`) with clock, channels, and members tabs.
* **Size slider (50β100):** UI scale preference saved locally. Use `/clearRadioSize` (command name configurable) to reset saved size.
π Language
* English strings included in config (`locale = 'en'`).
* Add Turkish or other languages under `cfg.locales` β no built-in pack of 16 languages.
π οΈ Setup (server owners)
* **shared/cfg.lua:** `defaultVolume`, `radioProp`, `loopInterval`, `disconnectWhenDied`, `disconnectWhenDroppedItem`, `frequencies` (channel number, jobs, type), `types` (channel icons), `clearSizeCommand`, and locales.
* **shared/sv_cfg.lua:** `BOT_TOKEN` β required for Discord avatars in chat.
* **Requirements:** `radio` item setup (QB/ESX usable or ox_inventory export) and active voice framework (`pma-voice`, `mumble-voip`, or `SaltyChat`).