Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
๐ต MusicPlay โ Custom Music Player for Your Server
MusicPlay is a fully-featured, server-side music player plugin for Paper/Spigot servers. Upload your own .ogg tracks, serve them through a built-in HTTP server, and let players enjoy custom music through a beautiful inventory GUI โ no client mods required.
๐ง Turn any Minecraft server into a real music platform.
โจ Features
- ๐ผ Custom Track Library โ Upload any
.oggaudio file via a chat link. Titles are read automatically from the fileโs metadata (Vorbis TITLE tag). - ๐ฅ๏ธ Inventory GUI Player โ Open a clean music player interface by Shift + Right-clicking your jukebox, or using
/music play. - ๐ Personal Playlists โ Every player has their own playlist (up to 45 tracks). Add tracks with Right-click in the library, remove them with Shift + Left-click in your playlist.
- โญ๏ธ Auto Track Switching โ When a song ends, the next one plays automatically. Works in both Library mode and Playlist mode.
- ๐ Looping Playlists โ Playing your playlist? It loops seamlessly.
- ๐ฆ Built-in Resource Pack Server โ No external hosting needed. MusicPlay runs its own HTTP server and sends the pack to players on join.
- ๐ค Readable Track Names โ Forget
custom.track_1. Track titles are extracted from the.oggfile and shown everywhere in the UI. - ๐ต Audio Conversion โ Supports uploading MP3, WAV, FLAC, M4A and other formats. If
ffmpegis installed on the server, the plugin automatically converts the track to OGG Mono (as required by Minecraft) at 192kbps quality. - ๐ Mono Audio โ All converted tracks are forced to mono, ensuring correct 3D spatial positioning in-game.
- ๐ Smart Download โ Automatically follows HTTP redirects (301/302/307/308), sanitizes URLs from stray characters, and works with any CDN.
- ๐ Full Localization โ Every string in the UI and chat is stored in
lang.yml. Translate the plugin to any language in minutes. - ๐๏ธ Per-Player Resource Pack Control โ Players can opt out of auto-loading and install the pack manually.
๐น๏ธ How to Use
For Players
- Ask an admin to place a Jukebox and insert a custom disc (given via
/music disk). - Shift + Right-click the jukebox to open the music player.
- Use the GUI buttons to control playback:
- โธ Pause / โถ Resume โ Stop or continue the current track.
- โฎ Previous / Next โญ โ Switch tracks.
- ๐ Playlist โ Open your personal playlist.
- ๐ Track Library โ Browse all available tracks. Right-click a track to add it to your playlist.
- โ Add Track โ (Admins only) Upload a new
.oggtrack by pasting a download link in chat.
For Admins
- Place a Jukebox, insert a custom disc from
/music disk. - Use
/music uploadand paste a direct.oggdownload link in chat.
โ ๏ธ Important: The link must be a direct download URL โ it must end with
.oggand open the file immediately (not a page like Google Drive or YouTube). Services like Dropbox (with?dl=1), GitHub Releases, or a direct web server link work great.
- The plugin downloads the file (following any redirects automatically), reads its title, rebuilds the resource pack, and notifies players automatically.
๐ต Format Conversion: If the link points to an MP3, WAV, FLAC, M4A, etc. โ the plugin automatically converts it to OGG Mono if
ffmpegis installed on the server. Without ffmpeg โ upload tracks in.oggformat directly. Mono is required for correct 3D spatial audio positioning in Minecraft.
๐จ Custom Disc Texture: After the first server launch, a file will appear at
plugins/MusicPlay/textures/custom_disc.png. Replace it with your own 16ร16 PNG texture to give your music disc a unique look! Rebuild the pack with/music packafter replacing.
๐ง Commands
| Command | Description | Permission |
|---|---|---|
/music play |
Open the music player GUI | โ |
/music disk [sound] |
Give yourself a custom music disc | musicplay.disk |
/music upload |
Upload a new .ogg track via chat link |
musicplay.upload |
/music pack |
Rebuild the resource pack manually | musicplay.upload |
/music tracks |
List all available sound keys | โ |
/music linkrp |
Get the resource pack download link | โ |
/music skiprp |
Disable auto resource pack loading | โ |
/music loadrp |
Re-enable auto resource pack loading | โ |
/music help |
Show help message | โ |
โ๏ธ Technical Details
How It Works
- You upload a
.oggfile via a URL. - MusicPlay downloads it, parses the Vorbis Comment headers to extract the track title and duration.
- It rebuilds a
.zipresource pack containing the audio files andsounds.json, then serves it via a built-in Java HTTP server. - Players receive the pack on join. The plugin uses
world.playSound()targeting the jukebox location for spatial audio. - A lightweight 1-second timer tracks playback progress per player and triggers auto-switching when a track ends.
Resource Pack
MusicPlay generates and hosts its own resource pack. You need to expose the HTTP port (default: 25604) so players can download it. Configure the public URL in config.yml:
resource-pack-public-url: "http://YOUR_SERVER_IP:25604/musicpack.zip"
http-port: 25604
Localization
All UI text lives in plugins/MusicPlay/lang.yml. On first launch the default file is extracted โ just edit the values:
menu.pause: "โธ Pause"
menu.resume: "โถ Resume"
menu.playlist: "๐ Playlist"
# ... and so on
Permissions
| Permission | Description |
|---|---|
musicplay.disk |
Give custom music discs |
musicplay.upload |
Upload tracks and rebuild packs |
๐ Requirements
- Server: Paper 1.21+ (or compatible fork)
- Java: 21+
- Port: One open TCP port for the resource pack HTTP server (default
25604)
๐ค Credits
Built with love using the Paper API and Adventure text components. No client mods required โ pure server-side magic. ๐ช


