Simple Voice Chat Music Addon
ModAdd music function for Simple Voice Chat mod
Type
Mod
Modrinth Downloads
3,697
Modrinth ID
80mTZkWg
Last Updated
Jul 25, 2026
Description
Music
Music is a server-side Fabric mod that streams URL music through Simple Voice Chat. It is built for shared server music with queues, saved playlists, YouTube playlist import, player targeting, personal opt-out, and YouTube OAuth support through Lavaplayer/youtube-source.
Features
- Streams music through Simple Voice Chat static audio channels.
- Supports YouTube, YouTube Music, YouTube playlist links, and other Lavaplayer-supported remote sources.
- Expands pasted YouTube playlist links into individual songs.
- Shows title, creator, requester, duration, queue position, and playback diagnostics.
- Cleans YouTube topic-channel creator names, so Artist - Topic displays as Artist.
- One shared server-wide music stream.
- Global queue with skip, repeat, and shuffle.
- Persistent saved playlists.
- Forward/backward seeking by seconds.
- Player targeting and exclusion controls.
- Player self-service /music leave and /music join.
- Simple Voice Chat "Music" volume category for personal client volume.
- Global server volume control.
Requirements
- Fabric Loader.
- Simple Voice Chat installed on the server.
- Simple Voice Chat installed on clients that want to hear the stream.
- A Minecraft version supported by the mod file you install.
This mod controls music on the server, but players only hear it through their Simple Voice Chat connection.
Installation
- Install Fabric Loader on the server.
- Install Simple Voice Chat on the server.
- Install this mod in the server mods folder.
- Players who want to hear the stream must install Simple Voice Chat on their clients.
- Start the server and run /music help.
Quick Start
/music now /music play https://www.youtube.com/watch?v=VIDEO_ID 10 /music queue add https://music.youtube.com/watch?v=NEXT_VIDEO_ID /music queue add https://www.youtube.com/playlist?list=PLAYLIST_ID /music queue listIf YouTube asks for login or blocks playback, complete the OAuth device login shown in the server log.
How It Works
- A player runs /music play, queues a URL, or starts a saved playlist.
- Lavaplayer loads the URL.
- YouTube links are handled by youtube-source.
- The mod sends encoded audio frames into a Simple Voice Chat static audio channel.
- Selected listeners hear the same stream.
There is one active global stream per server. Starting a new track with /music play replaces current playback and clears the runtime queue.
YouTube OAuth
YouTube may block automated playback clients. This mod supports YouTube OAuth through youtube-source.
Config file:
config/music.jsonImportant fields:
{ "youtubeOAuthEnabled": true, "youtubeOAuthRefreshToken": "", "youtubeOAuthSkipInitialization": false }First login flow:
- Start the server.
- Run /music play <youtube-url>.
- Check the server log for the Google device login code.
- Complete the login in a browser.
- The refresh token is saved to config/music.json.
The YouTube login is global for the server, not per player. Keep music.json private because it can contain an OAuth refresh token. Using a secondary YouTube account is recommended.
Commands
Run:
/music help /music help queue /music help playlist /music help target /music help volumeEveryone
/music help /music now /music queue list /music leave /music join- /music leave opts the player out of the music stream.
- /music join removes the personal opt-out.
- Personal volume is controlled with the Simple Voice Chat client "Music" slider.
Playback
All players:
/music play <url> /music play <url> <volume> /music stop /music pause /music resume /music skip /music forward <seconds> /music backward <seconds> /music volume <1-100> /music repeat off /music repeat one /music repeat queue /music shuffle on /music shuffle offBehavior:
- /music play <url> starts immediately and clears the runtime queue.
- /music play <youtube-playlist-url> starts the first playlist track and queues the rest.
- /music play <url> <volume> starts playback and sets global volume from 1 to 100.
- /music forward <seconds> seeks ahead in the current track.
- /music backward <seconds> seeks back in the current track.
- /music repeat one repeats the current track.
- /music repeat queue loops through the queue.
- /music shuffle on chooses queued tracks randomly.
Queue
All players:
/music queue add <url> /music queue remove <index> /music queue clear /music skipEveryone can view:
/music queue listQueue behavior:
- The runtime queue is not saved after server restart.
- /music queue add <url> appends a track.
- /music queue add <youtube-playlist-url> expands the playlist and appends each song.
- Queue metadata loads in the background, so a new item can briefly show as title loading.
- YouTube creator names ending in - Topic are displayed without that suffix.
- If metadata fails, the URL remains queued and playback can still try it.
Example output:
[Music] Queue: 1. Song Title - Creator Name | 3:22 | requested by PlayerName | added 16:21:05 2. title loading: https://www.youtube.com/watch?v=... | requested by PlayerNameSaved Playlists
All players:
/music playlist list /music playlist create <name> /music playlist delete <name> /music playlist show <name> /music playlist add <name> <url> /music playlist remove <name> <index> /music playlist play <name> /music playlist queue <name>Playlist behavior:
- Playlists are saved in config/music-playlists.json.
- Playlist names are single words.
- /music playlist add <name> <url> adds one track.
- /music playlist add <name> <youtube-playlist-url> imports every song from the YouTube playlist.
- /music playlist play <name> replaces current playback and starts the playlist.
- /music playlist queue <name> appends the saved playlist after the current queue.
Example:
/music playlist create lobby /music playlist add lobby https://www.youtube.com/watch?v=SONG_1 /music playlist add lobby https://www.youtube.com/playlist?list=PLAYLIST_ID /music playlist play lobbyTargeting
All players:
/music target all /music target only <players> /music target add <players> /music target remove <players> /music target show /music exclude add <players> /music exclude remove <players> /music exclude clearTargeting order:
- Connected Simple Voice Chat clients.
- Include filter if set.
- Exclude filter.
- Player personal opt-out from /music leave.
Personal opt-out always wins. /music target all does not force opted-out players to listen.
Examples:
/music target all /music target only Steve /music target add Alex /music exclude add Steve /music exclude clearConfig Files
Main config:
config/music.jsonStores YouTube OAuth settings, repeat/shuffle settings, target filters, exclusions, and player opt-outs.
Playlist config:
config/music-playlists.jsonStores saved playlist names and track entries.
Example playlist shape:
{ "playlists": { "lobby": [ { "url": "https://www.youtube.com/watch?v=SONG_1", "title": "Song Title", "creator": "Creator Name", "requestedByName": "server", "durationMillis": 202000 } ] } }Use commands instead of editing playlist files while the server is running.
URL Support
Good candidates:
- Normal YouTube watch links.
- YouTube Music watch links.
- YouTube and YouTube Music playlist links.
- Direct audio file URLs supported by Lavaplayer.
- Some direct video URLs with extractable audio.
Less reliable:
- Spotify page links.
- Private or age-restricted videos.
- Region-blocked videos.
- YouTube links blocked by bot detection.
Unsupported URLs should fail with a chat error instead of crashing the server.
Command Access
All players can use every /music command, including commands that change server playback state:
- Play, stop, pause, resume, skip, forward, backward.
- Queue add/remove/clear.
- Playlist create/delete/add/remove/play/queue.
- Target and exclude filters.
- Repeat, shuffle, global volume.
Self-service and view commands:
- /music help
- /music now
- /music queue list
- /music leave
- /music join
Troubleshooting
Music Says Playing, But Nobody Hears It
Run:
/music now /music target showCheck:
- Simple Voice Chat is connected.
- The voice target/listener count is not 0.
- The player did not run /music leave.
- The player is not excluded by /music exclude.
- The client Simple Voice Chat "Music" slider is not at 0%.
- The global volume is not too low.
YouTube Says Sign In Or Bot Check
Enable OAuth in config/music.json, restart, then run:
/music play <youtube-url>Complete the device login shown in the server log. After that, youtubeOAuthRefreshToken should be saved.
Queue Names Show As Loading Or Unknown
Metadata is loaded asynchronously. Wait a few seconds and run:
/music queue listIf metadata still shows unknown, Lavaplayer could not resolve metadata for that URL. The mod will still try to play the URL when its turn starts.
A Player Does Not Hear Music After Target All
Check if the player opted out:
/music target showThe player can rejoin with:
/music joinPersonal opt-out has priority over target filters.
Notes
- This mod does not download songs to disk.
- YouTube playback can still fail if YouTube blocks a client or changes player behavior.
- YouTube topic-channel authors are cleaned for display; for example, Artist - Topic becomes Artist.
- OAuth improves YouTube reliability but should use a secondary YouTube account.
- Server-side per-player volume is not implemented; use the Simple Voice Chat client "Music" slider for personal volume.
Compatibility
Mod Loaders
Game Versions
Similar Mods
Environs++
Adds over 20 new biomes to your world
No Block Overlay
Completely removes the Outline-Overlay rendered when looking at Blocks.
Always Sprint
This mod lets players always sprint automatically without needing to hold a keybind.
Create:Egg Production
A method about egg production with create.
Mika's Katana Mod
Katanas, Haki, and Bosses
AdvancedVanilla
The Mod for more compatibility between Mods