Maestro

Music Conditions

Updated May 17, 2026

Edit on GitHub

Conditions define which game state a music definition applies to. They are evaluated dynamically and can be combined using logical operators to describe complex scenarios.

Always

This condition always evaluates to true, regardless of the current game state. It is commonly used for fallback tracks, global ambience, layered music systems, or simply for testing whether a music definition loads correctly.

JSON Example
1 "condition": {
2 "type": "maestro:always"
3 }

Never

This condition always evaluates to false and therefore can never pass naturally. It is primarily useful for temporarily disabling music definitions without deleting them, creating placeholders in resource packs, or debugging condition priority and selection behavior.

JSON Example
1 "condition": {
2 "type": "maestro:never"
3 }

Dimension

Checks whether the player is currently located in one of the specified dimensions. This is one of the most commonly used conditions for separating music between the Overworld, Nether, End, or custom modded dimensions.

JSON Example
1 "condition": {
2 "type": "maestro:dimension",
3 "values": [
4 "minecraft:overworld"
5 ]
6 }

Biome

Checks whether the player is currently inside one of the specified biomes. This allows music to react to local environmental atmosphere rather than the entire dimension.

JSON Example
1 "condition": {
2 "type": "maestro:biome",
3 "values": [
4 "minecraft:plains",
5 "minecraft:ocean"
6 ]
7 }

Biome Tag

Checks whether the player’s current biome matches one of the specified biome tags. Unlike the regular biome condition, this works with grouped biome categories, making it especially useful for mod compatibility and large-scale music rules such as deserts, forests, oceans, or snowy regions.

JSON Example
1 "condition": {
2 "type": "maestro:biome_tag",
3 "values": [
4 "c:is_desert",
5 "c:is_mesa"
6 ]
7 }

Weather

Evaluates the current weather state around the player. Multiple weather flags can be combined together to create more specific scenarios, such as storms, blizzards, or sandstorms in modded environments.

JSON Example
1 "condition": {
2 "type": "maestro:weather",
3 "is_raining": true,
4 "is_snowing": true,
5 "is_sandstorm": true,
6 "is_thundering": true
7 }

Note
is_thundering is typically used together with one of the precipitation flags to detect a more intensified version of a weather state (e.g., a thunderstorm instead of regular rain). If used alone, it will return true whenever a thunderstorm is active in the world, even if there is no precipitation at the player’s position (for example, in deserts).

Day Cycle

Evaluates broad phases of the in-game day cycle such as daytime, nighttime, sunrise, or sunset. This condition is ideal when you want music to transition naturally between major periods of the day without relying on exact tick values.

JSON Example
1 "condition": {
2 "type": "maestro:day_cycle",
3 "is_day": true,
4 "is_night": true,
5 "is_sunrise": true,
6 "is_sunset": true
7 }

Time

Evaluates the exact in-game world time using raw Minecraft tick values (0–24000). Unlike day_cycle, this condition provides fine-grained control and is useful for highly specific timing windows or smooth music progression systems.

JSON Example
1 "condition": {
2 "type": "maestro:time",
3 "above": 12000,
4 "below": 13000
5 }

Height

Evaluates the player’s current Y level against configurable thresholds. This can be used for cave ambience, underground tension, mountain themes, sky-height music, or any other altitude-based transitions.

JSON Example
1 "condition": {
2 "type": "maestro:height",
3 "above": 0,
4 "below": 60
5 }

Entity

Checks for nearby entities within a cubic search area centered on the player. This is useful for triggering combat music, boss encounters, ambient creature themes, or proximity-based soundtracks tied to specific mobs.

JSON Example
1 "condition": {
2 "type": "maestro:entity",
3 "required_amount": 1,
4 "search_radius": 64,
5 "values": [
6 "minecraft:wither",
7 "minecraft:ender_dragon"
8 ]
9 }

Entity Tag

Checks for nearby entities using entity tags instead of individual entity IDs. This makes it easier to support multiple entities at once, including entities added by mods, without manually listing every possible variant.

JSON Example
1 "condition": {
2 "type": "maestro:entity_tag",
3 "required_amount": 1,
4 "search_radius": 64,
5 "values": [
6 "c:bosses"
7 ]
8 }

Vehicle

Checks the entity the player is currently riding. This can be used for mount themes, vehicle ambience, sailing music, or transportation-based soundtrack transitions. If the values array is empty, any ridden entity will match.

JSON Example
1 "condition": {
2 "type": "maestro:vehicle",
3 "values": [
4 "minecraft:horse",
5 "minecraft:donkey"
6 ]
7 }

Screen

Checks whether a specific GUI screen is currently open. This allows music to react to menus, inventories, pause screens, credits, or even custom modded interfaces through direct class checks.

JSON Example
1 "condition": {
2 "type": "maestro:screen",
3 "kind": "title",
4 "class_path": "net.minecraft.client.gui.screens.TitleScreen"
5 }

Boss Event

Checks whether any boss health overlay is currently visible on the player’s screen. This is typically used for boss battle music and works with both vanilla and compatible modded boss events.

JSON Example
1 "condition": {
2 "type": "maestro:boss_event",
3 "value": true
4 }

Creative

Checks whether the player is currently in Creative mode. This can be useful for separating gameplay music from building-mode ambience, editor-style tracks, or resource-pack showcase environments.

JSON Example
1 "condition": {
2 "type": "maestro:сreative",
3 "value": true
4 }

In Game

Checks whether the player is currently inside an active world rather than the main menu. This is commonly used to separate menu music from gameplay music or to create title-screen ambience systems.

JSON Example
1 "condition": {
2 "type": "maestro:in_game",
3 "value": true
4 }

Underwater

Checks whether the player is currently underwater. This is useful for aquatic ambience, underwater cave themes, diving sequences, or muffled environmental soundtrack transitions.

JSON Example
1 "condition": {
2 "type": "maestro:underwater",
3 "value": true
4 }

Fishing

Checks whether the player is actively fishing. This condition can be used for calm ambient tracks, waiting themes, or activity-based music systems centered around fishing gameplay.

JSON Example
1 "condition": {
2 "type": "maestro:fishing",
3 "value": true
4 }

All Of (AND)

Combines multiple conditions together and only passes if every contained condition evaluates to true. This is the primary way to create highly specific music scenarios, such as nighttime rain inside a particular biome or boss encounters in certain dimensions.

JSON Example
1 "condition": {
2 "type": "maestro:all_of",
3 "terms": []
4 }

Any Of (OR)

Combines multiple conditions and passes as soon as at least one of them evaluates to true. This is useful for grouping similar situations together under a single music definition.

JSON Example
1 "condition": {
2 "type": "maestro:any_of",
3 "terms": []
4 }

None Of (NOT)

Passes only if none of the contained conditions evaluate to true. This is useful for excluding specific scenarios, such as preventing peaceful music during combat, storms, or boss encounters.

JSON Example
1 "condition": {
2 "type": "maestro:none_of",
3 "terms": []
4 }