Description
Cobblemon Diamond DJ
Server-wide synchronized music with Cobblemon battle music support!
Cobblemon Diamond DJ is a Fabric mod that broadcasts OGG music files to all connected players. Everyone hears the same song at the same time, creating a shared radio experience. When a Cobblemon battle starts, spatial battle music kicks in with smooth crossfade transitions.
Updating from a previous version?
Delete your old config files (config/cobblemon-diamond-dj-server.json and config/cobblemon-diamond-dj-hud.json) and let the mod regenerate them with the latest defaults. New fields are added each update and stale configs can cause unexpected behavior.
First time?
After installing, take a moment to read through config/cobblemon-diamond-dj-server.json -- every option is there and the defaults are sensible, but there's a lot you can customize (battle music, streaming, vote skip, auto-start, and more).
DJ Playlist System
- Synchronized playback -- all players hear the exact same position in the song
- Auto-download -- clients automatically download and cache songs from the server
- Independent volume controls -- Cobblemon Diamond DJ uses the Jukebox / Records volume slider, so players can turn down server DJ music while still keeping vanilla Minecraft music at their preferred volume
- Vote skip -- players can democratically skip songs
- Vote toggle -- server can enable/disable player voting
- Customizable HUD -- minimal, verbose, or custom widget layouts
- No external services -- works entirely with local OGG files or resource packs
- Streaming mode -- stream from YouTube, SoundCloud, Bandcamp, and Vimeo URLs
- Secure -- protected against malicious servers (path traversal, file validation, domain whitelist)
Cobblemon Battle Music
- Spatial audio -- battle music gets louder as you approach the battle
- Automatic -- battle music triggers when any Cobblemon battle starts
- Crossfade transitions -- smooth audio crossfade between DJ music and battle music
- Range-based -- nearby non-combatants within the configured radius also hear battle music
- Death-aware -- battle music stops immediately on player death and resumes global music on respawn
Resource Pack Support
- Load music from server-side resource packs in the
resourcepacks/folder - Works with existing third-party music packs
- Any
.oggfile in a resource pack is added to the DJ playlist - Files inside a
battle/folder go to the battle music library - Three modes:
"local"(config folders only),"resourcepack"(packs only), or"both"
Commands
All Players:
/dj skip- Vote to skip current song/dj nowplaying- Show current song info
Operators:
/dj start- Start playback/dj stop- Stop playback/dj forceskip- Skip without voting/dj reload- Reload song library and resource packs/dj list- List all songs/dj status- Server status/dj clearcache- Clear client cache for all online players/dj clearcacheplayer <player>- Clear client cache for one player
Streaming Mode (Operators):
/dj play <url>- Play a URL immediately/dj queue <url>- Add a URL to the queue/dj addplaylist <url>- Add a playlist URL (YouTube/SoundCloud)/dj clearqueue- Clear the stream queue
Option 1: Local Files (default)
- Install the mod on server and all clients
- Add
.oggfiles to:config/cobblemon-diamond-dj/songs/ - Add battle music to:
config/cobblemon-diamond-dj/battle/ - Run
/dj startin-game
Option 2: Resource Packs
- Place music resource packs (
.zip) in the server'sresourcepacks/folder - Set
"musicSource": "resourcepack"inconfig/cobblemon-diamond-dj-server.json - Run
/dj startin-game
Option 3: Both
- Add local files to the config folders AND place resource packs in
resourcepacks/ - Set
"musicSource": "both"in the config - Local files take priority when song names conflict
Option 4: Streaming
- Set
"playbackMode": "streaming"inconfig/cobblemon-diamond-dj-server.json - Add URLs (one per line) to
config/cobblemon-diamond-dj/streaming_playlist.txt - Optionally configure YouTube auth (
youtubePoToken,youtubeOAuthRefreshToken) for age-restricted content - Run
/dj startor use/dj play <url>for on-demand streaming
Configuration
Edit config/cobblemon-diamond-dj-server.json:
{
"voteThresholdPercent": 50,
"voteTimeoutSeconds": 30,
"voteEnabled": true,
"battleMusicEnabled": true,
"battleMusicRadius": 48,
"battleBleedEnabled": true,
"clearCacheOnDisconnect": true,
"musicSource": "local",
"autoStartEnabled": true,
"playbackMode": "local",
"streamingPlaylistFile": "streaming_playlist.txt",
"battleMusicDisabledInStreaming": false
}
voteThresholdPercent- Percentage of players needed to skipvoteTimeoutSeconds- How long before a vote expiresbattleMusicEnabled- Enable/disable Cobblemon battle musicbattleMusicRadius- How far battle music can be heard (blocks)battleBleedEnabled- Allow battle music to bleed across dimensionsclearCacheOnDisconnect- Clear client cache on disconnectmusicSource- Where to load music from:"local","resourcepack", or"both"autoStartEnabled- Auto-start the DJ playlist when the server startsplaybackMode- Playback mode:"local"(OGG files) or"streaming"(URLs)streamingPlaylistFile- Filename for URL playlist (one URL per line)battleMusicDisabledInStreaming- Disable battle music when in streaming mode
Client HUD
Edit config/cobblemon-diamond-dj-hud.json:
{
"enabled": true,
"preset": "SUPER_MINIMAL",
"anchor": "TOP_LEFT",
"scale": 1.0
}
Presets: SUPER_MINIMAL (default -- progress bar only), MINIMAL, VERBOSE, NONE, CUSTOM
Supported Streaming Services
- YouTube (including Music, playlists)
- SoundCloud
- Bandcamp
- Vimeo
All URLs are validated against a built-in domain whitelist on both server and client for security. Note: don't download this other than from curseforge. i could change my mind but not for now.
Requirements
- Minecraft 1.21.1
- Fabric Loader 0.18.4+
- Fabric API
- Fabric Language Kotlin
- Cobblemon (any version for 1.21.1)
Audio Format
- Format: OGG Vorbis only
- Stereo or Mono: Both work (stereo is auto-downmixed to mono for battle spatial audio)


