Description
GuildRadioFM
GuildRadioFM is a World of Warcraft addon that lets you build and play your own local music library directly in-game.
Designed as a lightweight “guild radio” experience, GuildRadioFM gives players a clean, WoW-themed music player with playlists, favorites, shuffle, repeat, mini-player support, autoplay, and local MP3 library management — all styled to feel like part of the game UI.
Features
-
Local MP3 music playback
-
Playlist creation and management
-
Favorites / liked songs
-
Shuffle and repeat modes
-
Auto-next / autoplay support
-
Mini player mode
-
Searchable music library
-
WoW-themed custom UI
-
Real-time song progress tracking
-
Lightweight and performance friendly
How It Works
GuildRadioFM plays music stored locally on your computer inside the addon’s Songs folder. Players can add their own MP3s using the included importer workflow and organize them into playlists directly in-game.
This addon does NOT stream copyrighted music from external services. All playback is local.
Commands
-
/grfm -
/guildradiofm
Notes
-
Music files must be added locally
-
Best used for personal music libraries, guild events, RP, raids, taverns, and community fun
-
Works great alongside curated guild playlists and custom AI-generated music
Current Version
Includes:
-
Improved autoplay system
-
Song duration metadata support
-
Real-time progress timers
-
Mini player improvements
-
Playlist stability fixes
Built for the GuildRadioFM project.
How to Make a GuildRadioFM Song Pack
GuildRadioFM supports optional song-pack addons. A song pack can add its own songs to the main GuildRadioFM ALL library and automatically create a playlist, without editing the core addon.
Example:
GuildRadioFM Tavern Nights Vol 1 is a separate addon folder that registers its songs with GuildRadioFM Core.
Requirements:
- GuildRadioFM Core v2.1.1 or newer
- MP3 files packaged inside your song-pack addon folder
- A .toc file
- A Lua file that calls GuildRadioFM.RegisterSongPack(...)
Folder Structure
Your song pack should look like this:
GuildRadioFM My Playlist Name/
GuildRadioFM My Playlist Name.toc
My Playlist Name.lua
Songs/
Song One.mp3
Song Two.mp3
Song Three.mp3
The folder must go here:
World of Warcraft/_retail_/Interface/AddOns/
So the final install looks like:
Interface/AddOns/
GuildRadioFM/
GuildRadioFM My Playlist Name/
TOC File Example
Create:
GuildRadioFM My Playlist Name.toc
Paste:
## Interface: 120005
## Title: GuildRadioFM My Playlist Name
## Notes: Optional GuildRadioFM song pack
## Author: YourName
## Version: 1.0.0
## Dependencies: GuildRadioFM
My Playlist Name.lua
Lua File Example
Create:
My Playlist Name.lua
Paste and edit:
local pack = {
packId = "My Playlist Name",
packName = "My Playlist Name",
playlistName = "My Playlist Name",
songs = {
{
id = "My Playlist Name:Song One",
title = "Song One",
artist = "YourName",
style = "Custom",
file = "Interface\\AddOns\\GuildRadioFM My Playlist Name\\Songs\\Song One.mp3",
duration = 180,
},
{
id = "My Playlist Name:Song Two",
title = "Song Two",
artist = "YourName",
style = "Custom",
file = "Interface\\AddOns\\GuildRadioFM My Playlist Name\\Songs\\Song Two.mp3",
duration = 210,
},
},
}
local function RegisterPack()
if GuildRadioFM and GuildRadioFM.RegisterSongPack then
GuildRadioFM.RegisterSongPack(pack)
return true
end
return false
end
if not RegisterPack() then
local frame = CreateFrame("Frame")
frame:RegisterEvent("ADDON_LOADED")
frame:SetScript("OnEvent", function(self, _, addonName)
if addonName == "GuildRadioFM" and RegisterPack() then
self:UnregisterEvent("ADDON_LOADED")
end
end)
end
Song Rules
Each song needs:
- id
- title
- file
- duration
Recommended ID format:
Playlist Name:Song Title
Example:
id = "Tavern Nights Vol 1:Winter in Dun Morogh"
The file path must point to the MP3 inside your addon folder:
file = "Interface\\AddOns\\GuildRadioFM My Playlist Name\\Songs\\Song One.mp3"
Do not use:
- C:\ paths
- D:\ paths
- Downloads folders
- Spotify links
- YouTube links
- internet URLs
WoW addons can only play files packaged inside addon folders.
Durations
Duration is in seconds.
Examples:
- 2 minutes = 120
- 3 minutes 30 seconds = 210
- 4 minutes 15 seconds = 255
Duration matters because GuildRadioFM uses it for:
- progress timers
- auto-next
- repeat behavior
What Happens In Game
When your song pack loads:
- Songs appear in GuildRadioFM’s ALL library
- A playlist appears using playlistName
- Songs are added to that playlist
- Existing user playlists are not overwritten
- No saved variables need to be edited
- Disabling the song-pack addon removes its songs after reload
Testing Checklist
Before uploading your song pack:
1. Install GuildRadioFM Core v2.1.1 or newer.
2. Install your song-pack folder beside it.
3. Start WoW or type /reload.
4. Confirm chat says your pack loaded.
5. Open GuildRadioFM.
6. Open Library and confirm your songs appear in ALL.
7. Open Playlists and confirm your playlist appears.
8. Play the first song.
9. Confirm the progress timer moves.
10. Confirm auto-next moves to the next song.
11. Reload UI and confirm no duplicate songs appear.
12. Disable your song-pack addon and confirm GuildRadioFM still works.
CurseForge Upload Notes
If you upload a GuildRadioFM song pack to CurseForge:
- Make it clear that it requires GuildRadioFM Core v2.1.1 or newer.
- Do not include the GuildRadioFM core folder inside your song-pack zip.
- Only include your song-pack folder.
- Make sure your MP3 files are inside your song-pack Songs folder.
- Make sure your .toc file declares GuildRadioFM as a dependency.
Example description:
Requires GuildRadioFM Core v2.1.1 or newer.
This is an optional GuildRadioFM song pack. It automatically adds its songs to the GuildRadioFM ALL library and creates its own playlist in the GuildRadioFM playlist window.
Install:
1. Install GuildRadioFM Core.
2. Install this song pack.
3. Place both folders in Interface/AddOns.
4. Reload WoW.

