> For the complete documentation index, see [llms.txt](https://acestudios.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://acestudios.gitbook.io/docs/roleplay/live-radio/changelog.md).

# Changelog

Version history of ace\_liveradio.

## 1.0.0

First public release.

**Stations**

* Host a station on any open frequency, or on a frequency reserved for one player.
* Stations go on air with a required name, genre and description, entered on the first screen.
* Station name, genre and description, shown in the station list and searchable.
* `Local`, `Regional` and `Global` broadcast range. Listeners who leave the range get a "signal lost" notice.
* Permanent server stations (music playlists or open-mic podcasts) from `config.lua`.
* Player stations, ratings and bans are saved; stations whose owner has been offline for `Config.RemoveAbandonedStationsAfterDays` are removed.

**Music**

* Server-timed playback: every listener hears the same moment of the song.
* Queue, play, pause, remove, reorder and shuffle tracks.
* YouTube playlist import (with a YouTube Data API key in `server_config.lua`).
* Track titles, channels and thumbnails looked up by the server and saved.

**Voice**

* Live Voice straight from the music screen, with a confirmation (can be turned off) and a live microphone meter; multi-guest Podcast Mode (request, approve, mute, kick).

**Listening**

* Station list with favorites, search, mode filter and ratings; floating mini player.
* Rebindable keys for the station list and host console.
* Optional headphones for listening to the radio on foot, with or without an inventory item, with put-on/take-off animations and a headphones model on the player's head. In cars, back-seat passengers keep their own station and front seats get a Car radio | Headphones switch.
* Optional boombox: place it anywhere with a rotatable preview, move it, tune it, and nearby players hear the music. Players nearby get a mini player card and can mute individual boomboxes for themselves.
* Station community for player stations: chat with reactions, Everyone / Host only visibility, song requests with a host Requests panel and spam limits, pinned host posts, station badges (Owner, Host, Mod, DJ, VIP) and moderation (timeouts, chat bans, deleting and clearing), all checked by the server.
* Optional DJ deck for parties: much louder and further-reaching than a boombox, plays any station or the DJ's own; certified DJs only (by identifier or job) or everyone, with a Certified DJ badge next to certified DJs' names. Decks play through up to 2 placed speakers, with a Sync speakers button that brings every listener to the furthest point.
* Placement tells players why a spot doesn't work (too far, too steep, blocked).

**Realism** (each can be switched off)

* Shared car radio heard by everyone inside and faintly by people nearby, with a shared volume set by the driver or front passenger (boomboxes have a shared volume too).
* Signal fade, static and dropouts near the edge of a station's range.
* Music ducking under voice broadcasts.
* One-way broadcasts: listeners can't talk back.

**Administration**

* Admin panel: view all stations, remove stations, stop broadcasts, kick listeners, ban and unban hosts, each with a confirmation.
* Hosting permissions by identifier, QBCore/Qbox/ESX job or gang, and required item.
* Automatic detection of framework (QBCore, Qbox, ESX), inventory (ox, qs, qb), notifications and text UI (ox\_lib, QBCore, ESX, okokNotify) and target (ox\_target, qb-target), each overridable in `config.lua`.
* Discord webhook logging.
* Secrets (YouTube API key, Discord webhook) in the server-only `server_config.lua`.
* Startup summary names invalid or misspelled settings and secrets put in `config.lua`; unreadable save files are copied aside (`*.json.broken`) instead of being lost.
* Server and client exports and server events for other resources.

**Other**

* Languages: English, German, French, Spanish, Portuguese, Dutch, Turkish and Arabic (right-to-left). Non-English translations are machine-assisted.
* Invalid `config.lua` values fall back to defaults with a console warning.
