Maestro is a data-driven music orchestration framework that extends Minecraft's music system, enabling reactive, seamless soundtracks through resource packs.

Reactive Music Orchestration
Maestro continuously evaluates the current game context and selects the most appropriate music definition in real time. Biomes, structures, entities, boss encounters, weather, screens, and custom events can all influence what plays and how tracks transition between each other.
Vanilla Music, Made Reactive
Maestro does not replace Minecraft's music system – it extends it. Even without custom resource packs, vanilla tracks become seamless and reactive. On top of this foundation, the official Maestro: Overture resource pack introduces original music for major structures and events, further enriching the atmosphere.
Fully Data-Driven
Maestro allows you to add entirely new contextual music using data alone. Define when and how tracks should play through JSON – via resource packs or directly from the config folder using the Fragmentum Layer system. A detailed wiki provides clear documentation, examples, and advanced setups.

In-Game Config
On Minecraft 1.20.1, in-game configuration menus are available when using Forge Config Screens or Configured. Without these mods, all settings can still be adjusted through config files (config/obscuria/maestro-client.toml). Starting with Minecraft 1.21.1, in-game config screens are available out of the box, with no additional dependencies required.

All Versions
+ Add Version- Updated to Fragmentum 5.0.0**. This update also applies to other Obscuria mods using Fragmentum, so please update them to their latest versions as well to ensure compatibility
- The Obscuria Collection now uses a unified multi-version setup**, allowing 1.20.1, 1.21.1, and 26+ to be developed and updated together, leaving more time for new features and improvements
- Updated to Fragmentum 5.0.0**. This update also applies to other Obscuria mods using Fragmentum, so please update them to their latest versions as well to ensure compatibility
- The Obscuria Collection now uses a unified multi-version setup**, allowing 1.20.1, 1.21.1, and 26+ to be developed and updated together, leaving more time for new features and improvements
- Updated to Fragmentum 5.0.0**. This update also applies to other Obscuria mods using Fragmentum, so please update them to their latest versions as well to ensure compatibility
- The Obscuria Collection now uses a unified multi-version setup**, allowing 1.20.1, 1.21.1, and 26+ to be developed and updated together, leaving more time for new features and improvements
- Updated to Fragmentum 5.0.0**. This update also applies to other Obscuria mods using Fragmentum, so please update them to their latest versions as well to ensure compatibility
- The Obscuria Collection now uses a unified multi-version setup**, allowing 1.20.1, 1.21.1, and 26+ to be developed and updated together, leaving more time for new features and improvements
- Ported to Minecraft 1.21.11
- Ported to Minecraft 1.21.11
- Ported to Minecraft 1.21.1.
- In-game config now available out of the box.
- Config options are now localizable.
- Ported to Minecraft 1.21.1.
- In-game config now available out of the box.
- Config options are now localizable.
### Changes
- Refactored the
maestro:biome_tagcondition schema for improved flexibility and extensibility. - Refactored the
maestro:dimensioncondition schema for improved flexibility and extensibility. - Refactored the
maestro:heightcondition schema for improved flexibility and extensibility. - Extended the
maestro:weathercondition to support sandstorm detection.
### New Conditions
- Added
maestro:entity_tag– counts entities by tag with configurable radius. - Added
maestro:day_cycle– detects day, night, sunrise, and sunset phases. - Added
maestro:time– evaluates time of day using numeric tick ranges. - Added
maestro:vehicle– detects and filters the player's current vehicle. - Added
maestro:boss_event– detects active boss health overlays. - Added
maestro:fishing– detects when the player is fishing. - Added
maestro:in_game– detects an active world and player presence. - Added
maestro:creative– detects Creative mode. - Added
maestro:underwater– detects when the player is underwater.
For detailed information, please refer to the updated [wiki](https://obscurialithium.github.io/maestro/).
### Changes
- Refactored the
maestro:biome_tagcondition schema for improved flexibility and extensibility. - Refactored the
maestro:dimensioncondition schema for improved flexibility and extensibility. - Refactored the
maestro:heightcondition schema for improved flexibility and extensibility. - Extended the
maestro:weathercondition to support sandstorm detection.
### New Conditions
- Added
maestro:entity_tag– counts entities by tag with configurable radius. - Added
maestro:day_cycle– detects day, night, sunrise, and sunset phases. - Added
maestro:time– evaluates time of day using numeric tick ranges. - Added
maestro:vehicle– detects and filters the player's current vehicle. - Added
maestro:boss_event– detects active boss health overlays. - Added
maestro:fishing– detects when the player is fishing. - Added
maestro:in_game– detects an active world and player presence. - Added
maestro:creative– detects Creative mode. - Added
maestro:underwater– detects when the player is underwater.
For detailed information, please refer to the updated [wiki](https://obscurialithium.github.io/maestro/).
- Added a
debug_overlayclient config option for pack development and debugging. The overlay displays active tracks, silence, and suppression.
- Added a
debug_overlayclient config option for pack development and debugging. The overlay displays active tracks, silence, and suppression.
- Added the
cooldown_secondsoption to music definitions. - Added the
occupy_layer_during_cooldownoption to music definitions. - Added the
reset_cooldown_on_reactivationoption to music definitions. - Improved the entity condition: it can now detect multiple entities and require a specific number of matches.
- Added the
cooldown_secondsoption to music definitions. - Added the
occupy_layer_during_cooldownoption to music definitions. - Added the
reset_cooldown_on_reactivationoption to music definitions. - Improved the entity condition: it can now detect multiple entities and require a specific number of matches.
