[Preview Video]
Dependencies
ESX or QBCore Framework
[Discord]
izzy-radio β 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 picks whichever is running)
* ποΈ Connect via pma-voice, mumble-voip, or SaltyChat
* π‘ Create custom frequencies, set passwords, add favorites
* π₯ See everyone on your channel; green highlight when someone is talking
* β οΈ If you no longer have a radio in your inventory, you are kicked off the frequency automatically
π€ Profile area (what you see in the menu)
* β οΈ **No in-game character mugshot.**
* β οΈ **No Discord profile picture either.**
* Lists show only your **character name** (first and last name from ESX/QB data).
* Generic icons only (antenna / microphone) β no player face or avatar.
* Unlike radiov2, there is **no chat screen** or Discord avatars here β focus is frequency + voice + member list.
π» How to open the radio
* ESX / QBCore β uses the item name from config (default: `radio`)
* ox_inventory example in `setup-files/items.txt` β add it the same way if you use ox
* Radio prop + phone animation when the menu opens
* Press **ESC** to close
* If you open it again too fast, you get a "wait 1 second" message
π’ Connecting (Main screen β Members)
* Enter a frequency (MHz) β **Connect**
* If the channel has a password β password screen, connect when correct
* Wrong password / frequency not found β messages from `Config.Locale`
* While connected, the frequency field is locked; **Disconnect** to leave
* β **Star** β add or remove the current frequency from favorites (saved in the database)
* **Job frequencies (`Config.jobChannels`):** Certain MHz values are job-only (e.g. police, bcso, ambulance). Wrong job returns: βThis frequency is dedicated to a specific job!β
π Channels tab
* **Channel list:** Player-created channels currently open on the server, quick connect from favorites (cable icon), and favorite / unfavorite from the list (star).
* **Create channel:** Frequency + optional password. Cannot create if that frequency already exists. You connect automatically after creating.
* Favorites are stored in **MySQL** (`izzy_radio` table) and reload after server restarts.
π₯ Member list
* **Inside the radio (Members):** Names of everyone on the channel while connected. Green mic highlight when someone is talking.
* **Active Radio Member List (on-screen panel):** Shows while connected, includes member count, name list + talking highlight. Drag the panel to move it (position is saved) or minimize/expand it.
* `/resetradio` β resets the panel position.
π Audio
* Volume **+ / β** on the radio graphic (while connected). Volume changes by **10%** (min / max warnings).
* Default: `defaultVolume` (0β100)
* pma-voice, mumble-voip, or SaltyChat handles the radio channel.
π¨ Interface
* Realistic radio design with a clock at the top.
* Channels and Members tabs.
* Red when disconnected, green when connected.
* WiβFi / cable / star icons.
π Language
* All messages in `Config.Locale` (English examples: connected, wrong password, volume min/max, job frequency, kicked for no radio, etc.).
* Add Turkish by translating the same table yourself β no built-in pack of 16 languages.
π οΈ Setup (server owners)
* **config.lua:** Framework (auto / esx / qb), `radioName`, `defaultVolume`, `RadioProp`, `LoopTime` (how often βwho is talkingβ is checked), `jobChannels`, and `Locale`.
* **Required:**
Β * `ox_lib`
Β * `mysql-async` + `setup-files/sql.sql` (`izzy_radio` table)
Β * Voice: `pma-voice`, `mumble-voip`, or `SaltyChat`
* **Commands:** `/resetradio` β resets the member list panel position
* **Item:** `setup-files/items.txt` β ox_inventory example; QB/ESX use usable `radio` item