promotional bannermobile promotional banner

Boss Jukebox

Play old school video game boss music during dungeon and raid boss encounters.
Back to Files

Boss Jukebox v1.5

File nameBossJukebox_v1.5.zip
Uploader
MermelMermel
Uploaded
Jul 22, 2026
Downloads
5
Size
164.7 MB
Flavors
Retail
File ID
8483876
Type
R
Release
Supported game versions
  • 12.0.7

What's new

# Boss Jukebox - Changelog

## v1.5.0
- **Fixed:** overlapping/multi-boss encounters could cause more than one
  track to play at once, and could leave a track playing after the fight
  ended that `/bjb stop` couldn't stop. Root cause: the addon only ever
  tracked "the current track" in a single slot, so a second `ENCOUNTER_START`
  arriving before the first `ENCOUNTER_END` would overwrite that slot and
  orphan the original track's loop timer, which kept firing indefinitely
  with no way to reach it.
  - Encounter tracking now uses a counter (`activeEncounterCount`) instead
    of a true/false flag, so overlapping encounters are handled correctly:
    a second simultaneous pull no longer restarts/replaces the already
    playing track, and boss music (and the game-music duck) only actually
    stops once *every* overlapping encounter has ended.
  - Every loop timer is now tagged with a generation number. If playback
    is stopped or replaced by anything (a new track, a hard stop, a zone
    change) before an orphaned timer fires, that timer recognizes it's
    stale and does nothing, instead of replaying an old track forever.
  - `/bjb stop` and zoning/reloading now both force a full reset
    regardless of how many overlapping encounters or stray timers exist.

## v1.4.0
- Added a "Sound channel" setting (Options panel + tooltip) so playback
  channel is configurable instead of hardcoded: `Music`, `Dialog`,
  `Master`, `SFX`, or `Ambience`, each with different tradeoffs between
  reliability (not getting interrupted by other sound effects) and being
  audible regardless of the in-game music on/off setting.
- Default channel changed to `Music` after testing confirmed it and
  `Dialog` are the two channels that don't get cut off during busy fights
  with lots of simultaneous sound effects (the others share a limited
  sound-slot pool with regular SFX and can get cut off).
- Fixed a crash in `generate_tracks.py` on filenames containing certain
  Unicode characters (was writing `Tracks.lua` without an explicit UTF-8
  encoding).
- Fixed the standalone `.exe`/binary builds looking in the wrong folder
  for `Sounds\` (PyInstaller onefile builds resolve `__file__` to a temp
  extraction path, not the actual exe location).

## v1.3.0
- Added Victory Sound: a one-shot sound that plays when a boss is
  actually defeated (`ENCOUNTER_END` success only, not on a wipe).
  - Separate `Sounds\Victory\` folder and `BossJukebox.VictoryTracks`
    table, alongside the existing Boss Music folder/table -- keys only
    need to be unique within their own category.
  - Own "Enable victory sound" toggle, independent of the master
    Boss Jukebox on/off switch.
  - Never loops, regardless of the track's duration.
  - New options panel tab (Victory Sound), alongside the existing Boss
    Music tab, sharing the same mode/specific-track/track-pool UI.
  - New slash commands: `/bjb testvictory`; `/bjb stop`, `/bjb list`,
    and `/bjb preview` all extended to cover both categories.
- `generate_tracks.py` updated to scan both folders and report
  additions/removals per category independently.

## v1.2.0
- Added a Preview button (speaker icon) next to each track in the
  options panel, plus a "Stop Preview" button, so tracks can be
  auditioned without needing to pull a boss.
- Track list changed from always-visible to collapsed-by-default behind
  a "Show Tracks (N)" toggle button, to keep the panel compact.
- Removed duration display from track rows (name only).
- Fixed a "tofu box" placeholder character showing up on UI buttons --
  WoW's default font doesn't include the arrow glyphs originally used.

## v1.1.0
- Added looping: if a boss fight runs longer than a track, the track
  now replays automatically (timed via the track's known duration),
  since WoW's sound API has no native loop flag.
- `generate_tracks.py` rewritten to require no external tools at all
  (previously used `ffprobe`/ffmpeg for duration detection) -- reads
  MP3 frame headers and Ogg page data directly in pure Python.
- Added `generate_tracks.py` add/remove diff reporting, so re-running it
  after changing files in `Sounds\` clearly shows what changed.
- Added standalone Windows/macOS build scripts for people without
  Python installed on their gaming PC.

## v1.0.0
- Initial release: plays a custom track (random from an enabled pool,
  or a fixed specific track) when a boss encounter starts, and stops it
  when the encounter ends.
- Options panel: enable/disable, mute Blizzard's own music during the
  fight, playback mode, per-track enable/disable for the random pool.
- `Tracks.lua` + `generate_tracks.py` for listing/auto-generating the
  track list from files dropped into `Sounds\`.

This mod has no additional files