custom_music_v0.7.mcaddon
What's new
Version 0.7 - Portable Speaker
- Added the
speakerblock/item, withspeaker.geo.json,texture_speaker.pngfor the block, andtextures/items/speaker.pngas icon. - The speaker automatically connects to the active music of a jukebox or rockola in the same dimension.
- Right-clicking opens a menu to adjust volume up/down, select a specific jukebox or rockola by coordinates, connect to the active source, or disconnect it.
- Changing the volume updates the speaker's state without stopping or restarting the track; the new volume level takes effect when the speaker's next track starts.
- The speaker retains its source, volume, and playback using a persistent controller, and emits the track from its own location.
🔊 Multiplayer & Simultaneous Music Playback
- Shared Music Player Audio: Custom tracks played on the Music Player are now emitted from the block for nearby players in multiplayer.
- Synchronized Stop: Stopping or breaking the Music Player also stops the track for nearby players.
- Simultaneous Playback & Targeted Audio Stop: Stopping a player or Rockola now selectively targets only its specific active sound event instead of stopping all custom music globally. Multiple players can now play custom music simultaneously without interfering with each other's audio when stopped, paused, or broken.
🛠️ Fixes and Improvements
- Selective Sound Stopping: Refactored audio stop handlers (
stopCustomMusic,stopCustomMusicAt, andstopRockolaSounds) to target specific track sound IDs rather than issuing blanket global sound cutoffs.
Fixes from multiplayer feedback
- Correct Rockola position: Automatic and manual track changes now emit audio from the Rockola block instead of the player who triggered the change.
- Same-song sources no longer collide: Generated packs include 32 per-track playback aliases, so stopping one active source does not stop another source playing the same song. Newer runtimes also use their individual
SoundInstancehandles when available. - Dimension-safe playback: Sounds are now started for each nearby player and are stopped for that player when they change dimension, preventing audio from following them into another dimension.
- Distance attenuation: Custom tracks now fade with distance and become inaudible after 48 blocks instead of using Bedrock's very large default sound range.
- Stricter channel identifiers: Per-source playback aliases now use explicit
_channel_identifiers to avoid Bedrock treating two same-song events as the same sound event. - Independent audio instances: Channel aliases are no longer streamed, so Bedrock can play two instances of the same long OGG at the same time and restart one when its listener returns.
- No global fallback stop: A source with no nearby listeners remains registered for later re-entry, and stopping it never falls back to the shared base sound event that could silence another player using the same song.
- Hard out-of-range stop: Leaving 48 blocks now stops the local event through both the available Script API method and
/stopsound, preventing residual audio at distant coordinates.
Known Pending Issues
- Audio re-entry: If a player leaves the music player's radius and re-enters, the sound may not resume even though particles continue to appear. This issue remains pending and is not considered resolved.
This mod has no additional files

