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
Battle Music Crescendo is not a single looping track. Every second it:
All audio runs on your client only. Other players hear their own music (or vanilla). The server never needs your .ogg files.
| 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 |
| 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
Follow these steps in order the first time you use the mod. After that, you only tweak packs or add new .ogg files.
B) — main settings screenF8) — on-screen combat/music debugB / Mods list).You do not need the mod on a dedicated server to hear music.
The mod ships a full ExamplePack template. Use the in-game editor so you never start from an empty folder.
tension_near, combat_light, combat_intense, boss_dark, pvp_duel, victory_sting, critical_danger, ambient_forest, ambient_stronghold, menu_title, exploration_calm, scripted_exampleDefault folder (game directory):
battlemusiccrescendo_musicpacks/ExamplePack/
Important: Loading the example pack creates JSON + sounds.json only. You still add your own music files (next part).
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:
.ogg (Vorbis), stereo, streamed music quality.ogg_file in the JSON exactly..ogg for several tracks if you want (duplicate the file with different names).After copying files:
ExamplePack (or your pack name).menu_title.ogg on the main menu (screen condition title).If you hear nothing:
.ogg files exist in sounds/music/.F8) and check Playing: true and State: when near mobs.F8 or config).48 blocks in config (default).exploration → tension → light_combat / intense_combat when you fight.true when a track matches.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.
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/ |
| 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.
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).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.
| 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.
| File | Location |
|---|---|
| Common | config/battlemusiccrescendo-common.toml |
| Client | config/battlemusiccrescendo-client.toml |
| 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 |
| 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.
battlemusiccrescendo_musicpacks/MyPack/.pack.mcmetaassets/battlemusiccrescendo/music_tracks/*.jsonassets/battlemusiccrescendo/sounds/music/*.oggassets/mobbattlemusic/...| 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.
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.