Battle Music Crescendo

Mod that adds background music when fighting hostile mobs and players and more

Battle Music Crescendo

Minecraft 1.21.x · Client-side adaptive combat music · Custom music packs · In-game editor · Optional server sync · Mob Battle Music pack format supported

Author: MickDev


What this mod actually does (under the hood)

Battle Music Crescendo is not a single looping track. Every second it:

  1. Scans your world around you (hostile mobs, bosses, PvP, health, biomes, structures).
  2. Scores combat intensity and picks a mood (exploration → tension → combat → intense → boss → PvP → critical danger).
  3. Resolves priority so real danger always beats ambient fluff.
  4. Selects the best matching track from your enabled music packs (JSON rules + conditions).
  5. Crossfades between tracks with configurable fade in/out.
  6. Silences vanilla Minecraft music while your custom music plays (optional).
  7. Plays victory stings when combat ends (optional).

All audio runs on your client only. Other players hear their own music (or vanilla). The server never needs your .ogg files.


Features at a glance

Feature Details
Track moods Exploration, tension, light combat, intense combat, boss, PvP, victory, critical danger, ambient, menu (title screen), scripted
Music packs Folder packs in battlemusiccrescendo_musicpacks/ — enable them like resource packs
Pack editor Create, edit, preview, export .zip, import packs, Load example pack (full template)
JSON tracks One .json per track + matching .ogg in sounds/music/
Conditions Biomes, dimensions, structures, entity ids, entity tags, min enemy count, boss, PvP, low health, screen (title for main menu)
Mob Battle Music Import packs using assets/mobbattlemusic/music_tracks/ (mob_specific, mob_list, mob_tag, player_specific)
Multiplayer Client-only on any server — no server mod required
Server sync Optional: install on server too for slightly better combat detection
Config screen Volume, detection, fades, debug overlay, menu music, mute vanilla
Debug overlay Live state, track id, priority, enemy count, intensity

Compatibility

Setup Result
Single-player Full features
Multiplayer — mod only on your client Works — local mob detection
Multiplayer — mod on client + server Works — optional combat sync packets
Hybrid servers (Mohist, etc.) Client fallback detection; no server mod required
Mob Battle Music packs Drop JSON + OGG into your BMC music pack (see tutorial below)

Minecraft version: 1.21.x


Complete tutorial

Follow these steps in order the first time you use the mod. After that, you only tweak packs or add new .ogg files.


Part 1 — Install and open settings

  1. Install Battle Music Crescendo on your Minecraft client (1.21.x).
  2. Launch the game and join a world (single-player is fine for testing).
  3. Open Options → Controls and find the category Battle Music Crescendo:
    • Open config (default B) — main settings screen
    • Toggle debug (default F8) — on-screen combat/music debug
    • Test music (unbound) — plays a test track if packs are loaded
  4. Open Options → Music & Sound (or the mod config via B / Mods list).
  5. Click Music packs… (placed near skin/resource pack buttons).

You do not need the mod on a dedicated server to hear music.


Part 2 — Load the example pack (recommended)

The mod ships a full ExamplePack template. Use the in-game editor so you never start from an empty folder.

  1. From the main menu or in-game, open the music pack UI:
    • Options → Music packs…, then Music Pack editor,
      or use the editor shortcut from the mod config screen.
  2. In the editor (left column), click Load example pack.
  3. You should see 12 tracks in the list, for example:
    • tension_near, combat_light, combat_intense, boss_dark, pvp_duel, victory_sting, critical_danger, ambient_forest, ambient_stronghold, menu_title, exploration_calm, scripted_example
  4. Click Open pack folder — Windows Explorer opens your pack directory.

Default folder (game directory):

battlemusiccrescendo_musicpacks/ExamplePack/
  1. Click Reload packs in the editor after any file change.

Important: Loading the example pack creates JSON + sounds.json only. You still add your own music files (next part).


Part 3 — Add your music files (.ogg)

Each track JSON references an ogg_file. Put the matching file here:

battlemusiccrescendo_musicpacks/ExamplePack/assets/battlemusiccrescendo/sounds/music/
Track JSON Put this file in sounds/music/
tension_near.json tension.ogg
combat_light.json combat_light.ogg
combat_intense.json combat_intense.ogg
boss_dark.json boss_dark.ogg
pvp_duel.json pvp.ogg
victory_sting.json victory.ogg
critical_danger.json defeat.ogg
ambient_forest.json ambient_forest.ogg
ambient_stronghold.json ambient_stronghold.ogg
menu_title.json menu_title.ogg
exploration_calm.json exploration.ogg
scripted_example.json scripted_event.ogg

Tips:

  • Use .ogg (Vorbis), stereo, streamed music quality.
  • File names must match ogg_file in the JSON exactly.
  • You can use the same .ogg for several tracks if you want (duplicate the file with different names).

After copying files:

  1. Return to the game.
  2. Music packs… → enable ExamplePack (move it to Selected).
  3. In the editor, click Reload packs.
  4. Press Play on a track to preview, or spawn mobs to test live.

Part 4 — Enable the pack in-game

  1. Options → Music packs…
  2. Left list: Available Music Packs — select ExamplePack (or your pack name).
  3. Click the arrow to move it to Selected Music Packs.
  4. Close the screen — the game reloads pack resources automatically.
  5. Optional: enable Menu test music in mod config to hear menu_title.ogg on the main menu (screen condition title).

If you hear nothing:

  • Confirm .ogg files exist in sounds/music/.
  • Confirm the pack is selected, not only present on disk.
  • Click Reload packs in the editor.
  • Enable Debug overlay (F8) and check Playing: true and State: when near mobs.

Part 5 — Test combat music in a world

  1. Enable Debug overlay (F8 or config).
  2. Set Detection range to at least 48 blocks in config (default).
  3. In Creative or Survival, spawn or find hostile mobs within range.
  4. Watch the overlay:
    • State should move: explorationtensionlight_combat / intense_combat when you fight.
    • Playing should be true when a track matches.
  5. Kill mobs and leave combat — a short victory track may play (if enabled in common config).
  6. Take damage below the critical health threshold — defeat / danger music can play.

Boss music: spawn a high-HP mob or use the boss: true condition in JSON (see Part 7).

PvP: fight another player with PvP music enabled in config.


Part 6 — Music Pack Editor (create your own tracks)

Open Music Pack editor from the music packs screen or mod config.

Button What it does
Load example pack Installs/refreshes all 12 example JSON files + Mob Battle Music samples + README
Open pack folder Opens battlemusiccrescendo_musicpacks/ExamplePack/ in your file manager
New track Creates a blank JSON you edit and save
Save Writes the current track JSON to disk
Play / Stop Preview the selected track
Reload packs Reloads resources so new sounds are registered
Export zip Exports the pack folder as a shareable .zip
Import .zip pack(s) Extracts zip packs into battlemusiccrescendo_musicpacks/

Editor fields (right panel)

Field Meaning
Id Unique track id, e.g. battlemusiccrescendo:my_boss
Ogg file File name in sounds/music/, e.g. my_boss.ogg
Type tension, combat, intense, boss, pvp, victory, defeat, ambient, menu, exploration, scripted
Priority Higher number wins when multiple tracks match (boss > combat > tension)
Dimensions / Biomes / Structures Comma-separated ids — track only plays when matched
Entity tags e.g. minecraft:skeletons
Min enemies Minimum hostile count required
Boss / PvP / Critical Toggle condition flags

After Save, click Reload packs. The mod rebuilds sounds.json from your JSON files automatically.


Part 7 — Track JSON reference (manual editing)

Folder:

assets/battlemusiccrescendo/music_tracks/my_track.json

Minimal example:

{
  "id": "battlemusiccrescendo:my_track",
  "ogg_file": "my_track.ogg",
  "type": "combat",
  "priority": 30,
  "fade_in_ticks": 60,
  "fade_out_ticks": 80,
  "loop": true,
  "conditions": {
    "min_enemy_count": 1
  }
}

type values

type When it plays
exploration Calm — no real threat
tension Enemies nearby, not full combat
combat Light combat
intense Many enemies / heavy fight
boss Boss detected or boss: true condition
pvp Fighting players
victory One-shot after combat ends
defeat Critical low health
ambient Biome/structure ambience override
menu Main menu (conditions.screen: "title")
scripted Custom scripted/event use

conditions (all optional)

"conditions": {
  "dimensions": ["minecraft:overworld", "minecraft:the_nether"],
  "biomes": ["minecraft:deep_dark"],
  "structures": ["minecraft:stronghold"],
  "entities": ["minecraft:wither"],
  "entity_tags": ["minecraft:skeletons"],
  "min_enemy_count": 4,
  "boss": true,
  "pvp": true,
  "critical_health": true,
  "screen": "title"
}
  • ogg_file is the main reference — the sound id is derived from the file name (without .ogg).
  • Do not rely on copyrighted placeholder names in packs you publish; use your own file names.

Part 8 — Mob Battle Music compatible packs

You can reuse the track format from Mob Battle Music inside your BMC pack.

Folder:

assets/mobbattlemusic/music_tracks/

Example — zombie aggro track:

{
  "type": "mob_specific",
  "sound": "mobbattlemusic:aggro_track",
  "priority": 30,
  "fade_time": 40,
  "group": "attacking",
  "selector": "any",
  "mob": "minecraft:zombie"
}

Place audio:

assets/mobbattlemusic/sounds/aggro_track.ogg
assets/mobbattlemusic/sounds/non_aggro_track.ogg
assets/mobbattlemusic/sounds/player_track.ogg

Supported types: mob_specific, mob_list, mob_tag, player_specific, player_specific_uuid.

The example pack includes three sample JSON files. Load example pack in the editor copies them for you.


Part 9 — Multiplayer and servers

Your setup What to do
Play on a vanilla-like server without the mod Install BMC only on your client — music works via local detection
Play on a server with the mod Optional better sync; same music packs on your client
Host your own server Server mod is optional — not required for players to hear music

Network sync is optional. If the server does not have the mod, the client never disconnects because of missing channels.


Part 10 — Configuration files

File Location
Common config/battlemusiccrescendo-common.toml
Client config/battlemusiccrescendo-client.toml

Common (shared logic)

Option Purpose
enabled Master switch
detectionRange Mob scan radius (blocks)
bossDetectionRange Boss scan radius
fadeInTicks / fadeOutTicks / crossfadeTicks Default transitions
minMobsForBattle / minMobsForIntense Thresholds for combat moods
pvpMusic / victoryMusic Enable PvP and victory stings
allowServerSync Use server combat packets when available
allowClientOnlyFallback Local detection when server has no mod
blacklistDimensions / whitelistDimensions Limit where music runs
entityBlacklist / entityWhitelist Filter which mobs count

Client

Option Purpose
battleVolume Your battle music volume (0.0–1.0)
showDebugOverlay On-screen debug
muteVanillaDuringCombat Stop vanilla background music while mod music plays
menuTestMusic Play menu track on title screen

In-game: Mods → Battle Music Crescendo → Config or keybind B.


Part 11 — Sharing a pack (.zip)

  1. Build your pack under battlemusiccrescendo_musicpacks/MyPack/.
  2. Include:
    • pack.mcmeta
    • assets/battlemusiccrescendo/music_tracks/*.json
    • assets/battlemusiccrescendo/sounds/music/*.ogg
    • Optional: assets/mobbattlemusic/...
  3. In the editor, Export zip.
  4. Others use Import .zip pack(s) and enable the pack in Music packs….

Troubleshooting

Problem Fix
No music at all Enable pack in Selected; add .ogg files; Reload packs
Only one track in editor Click Load example pack again (refreshes all 12 JSON files)
Sound ... not loaded in log Missing .ogg or wrong file name vs ogg_file
Menu music silent Add menu_title.ogg; enable Menu test music; pack selected
Vanilla music overlaps Enable mute vanilla during combat in client config
Music on server requires mod False — install on client only
Combat feels late Increase detectionRange; install mod on server for sync
JSON error in log Each track needs ogg_file (or sound) + type

Enable debug overlay (F8) while testing — it shows the live combat state, selected track, and whether audio is playing.


inspiration

Combat music concept inspired by the goals of [Mob Battle Music] By:nonamecrackers2. Battle Music Crescendo adds its own priority system, pack editor, menu tracks, victory/critical layers, and optional server sync.

The Battle Music Crescendo Team

profile avatar
Owner
  • 3
    Projects
  • 114
    Downloads

More from mickdev

  • TabChannel project image

    TabChannel

    • 52
    • Mods

    Create public or private chat channels, manage staff discussions, organize faction communication, and improve multiplayer communication with a modern tab-based chat

    • 52
    • May 30, 2026
    • Mods
  • Echoes of the World project image

    Echoes of the World

    • 58
    • Mods

    Echoes of the World transforms Minecraft into a living world that reacts to your actions. With an echo system, dynamic events, and erupting volcanoes, every game becomes unique.

    • 58
    • May 25, 2026
    • Mods
  • TabChannel project image

    TabChannel

    • 52
    • Mods

    Create public or private chat channels, manage staff discussions, organize faction communication, and improve multiplayer communication with a modern tab-based chat

    • 52
    • May 30, 2026
    • Mods
  • Echoes of the World project image

    Echoes of the World

    • 58
    • Mods

    Echoes of the World transforms Minecraft into a living world that reacts to your actions. With an echo system, dynamic events, and erupting volcanoes, every game becomes unique.

    • 58
    • May 25, 2026
    • Mods