Page 4 · Conditions
Conditions & Decision Making
Conditions ask questions about DAI's current context. They can gate atomic actions, filter Available-menu buttons, compare numeric/string/boolean values, and combine into nested logical groups.
204 registered provider conditionsPlus built-in logical groups.
Shared context snapshotA condition group evaluates against one captured context.
Composable logicUse all, any, none, not, comparisons, and negate.
Condition JSON Shape
General condition definition
{
"type": "condition_type",
"operator": "is_true",
"boolean_value": false,
"number_value": 0.0,
"string_value": "",
"negate": false,
"parameter": "",
"parameter_number": 0.0,
"conditions": []
}
Most conditions need only a small subset of these fields.
Comparison Operators
| Value type | Supported operators |
| Boolean | is_true, is_false, equals, not_equals |
| Number | equals, not_equals, less_than, less_than_or_equal, greater_than, greater_than_or_equal |
| String | equals, not_equals, equals_ignore_case, contains, starts_with, ends_with |
Full health and hunger
{
"conditions": [
{
"type": "player_health",
"operator": "greater_than_or_equal",
"number_value": 20.0
},
{
"type": "player_hunger",
"operator": "greater_than_or_equal",
"number_value": 20.0
}
]
}
A top-level conditions list uses AND behavior: every entry must pass.
Logical Condition Groups
| Group | Behavior |
all | True only when every child condition passes. Empty all is true. |
any | True when at least one child passes. Empty any is false. |
none | True when none of the child conditions pass. |
not | Requires exactly one child and inverts it. |
Any nearby opportunity
{
"type": "any",
"conditions": [
{
"type": "nearby_entity_count",
"parameter": "animal",
"operator": "greater_than",
"number_value": 0.0,
"parameter_number": 16.0
},
{
"type": "nearby_recognition",
"parameter": "decisions_and_impulses:tree",
"number_value": 24.0
}
]
}
negate: true can invert the final result of any provider or logical group.
Action Result Conditions
last_action_running
Previous/current status is RUNNING.
last_action_success
The committed previous action succeeded.
last_action_failure
The committed previous action failed.
last_action_cancelled
The committed previous action was cancelled.
last_action_timed_out
The committed previous action timed out.
Atomic runtime skip behavior: if an action's own runtime conditions fail, DAI skips the body and records FAILURE for that semantic action.
Reaction Event Context
Seven providers expose the event currently being evaluated by a Reaction. They are especially useful in the reaction definition's top-level conditions list because that list is evaluated synchronously while the event hook is active.
| Condition | Type | Meaning |
reaction_active | boolean | A reaction context is active. |
reaction_event | string | Current event ID. |
reaction_phase | string | pre, during, or post. |
reaction_has_entity | boolean | The event exposes an entity. |
reaction_entity_type | string | Entity resource ID. |
reaction_entity_living | boolean | The event entity is living. |
reaction_entity_health | number | Health of the living event entity. |
Complete Current Condition Catalog
The provider-input column lists fields read directly by the provider itself. Comparison fields such as number_value may also be used by the central evaluator depending on the provider's return type.
Advancement · 2 conditions
| Condition | Value type | Provider inputs | Meaning |
advancement_complete | boolean | parameter | Advancement complete |
advancement_category_complete | boolean | parameter | Advancement category complete |
Block · 9 conditions
| Condition | Value type | Provider inputs | Meaning |
block_at_offset | value | parameter | Block at offset |
targeted_block_exists | boolean | none | Targeted block exists |
targeted_block | string | none | Targeted block |
targeted_block_breakable | boolean | none | Targeted block breakable |
targeted_block_air | boolean | none | Targeted block air |
block_below | value | none | Block below |
block_above | value | none | Block above |
block_at_feet | value | none | Block at feet |
target_block_selected | boolean | none | Target block selected |
Combat · 6 conditions
| Condition | Value type | Provider inputs | Meaning |
attack_cooldown | number | none | Attack cooldown |
attack_ready | boolean | none | Attack ready |
player_blocking | boolean | none | Player blocking |
player_recently_hurt | boolean | none | Player recently hurt |
player_hurt_time | number | none | Player hurt time |
target_in_melee_reach | boolean | none | Target in melee reach |
Effect · 6 conditions
| Condition | Value type | Provider inputs | Meaning |
player_effect_exists | boolean | string_value | Player effect exists |
player_effect_duration | number | string_value | Player effect duration |
player_effect_amplifier | number | string_value | Player effect amplifier |
target_effect_exists | boolean | string_value | Target effect exists |
target_effect_duration | number | string_value | Target effect duration |
target_effect_amplifier | number | string_value | Target effect amplifier |
Entity · 10 conditions
| Condition | Value type | Provider inputs | Meaning |
target_entity_type | string | none | Target entity type |
target_is_living | boolean | none | Target is living |
target_is_player | boolean | none | Target is player |
target_is_hostile | boolean | none | Target is hostile |
target_is_animal | boolean | none | Target is animal |
target_is_baby | boolean | none | Target is baby |
target_is_adult | boolean | none | Target is adult |
target_name | string | none | Target name |
target_custom_name | string | none | Target custom name |
target_has_custom_name | boolean | none | Target has custom name |
Environment · 11 conditions
| Condition | Value type | Provider inputs | Meaning |
biome | string | none | Biome |
biome_tag | boolean | parameter | Biome tag |
fluid_at_feet | value | none | Fluid at feet |
fluid_below | value | none | Fluid below |
player_underwater | boolean | none | Player underwater |
player_in_rain | boolean | none | Player in rain |
player_in_powder_snow | boolean | none | Player in powder snow |
underground | boolean | none | Underground |
open_sky | boolean | none | Open sky |
sky_light | number | none | Sky light |
block_light | number | none | Block light |
Equipment · 6 conditions
| Condition | Value type | Provider inputs | Meaning |
equipment_item | string | parameter | Equipment item |
equipment_empty | boolean | parameter | Equipment empty |
equipment_stack_size | number | parameter | Equipment stack size |
equipment_durability | number | parameter | Equipment durability |
equipment_damage | number | parameter | Equipment damage |
equipment_max_damage | number | parameter | Equipment max damage |
Geometry · 8 conditions
| Condition | Value type | Provider inputs | Meaning |
player_facing_target | boolean | parameter_number | Player facing target |
target_in_front | boolean | none | Target in front |
target_behind | boolean | none | Target behind |
target_left | boolean | none | Target left |
target_right | boolean | none | Target right |
horizontal_angle_to_target | number | none | Horizontal angle to target |
vertical_angle_to_target | number | none | Vertical angle to target |
distance_to_position | number | parameter | Distance to position |
Inventory · 8 conditions
| Condition | Value type | Provider inputs | Meaning |
holding_item | string | none | Holding item |
offhand_item | string | none | Offhand item |
inventory_has_space | boolean | none | Inventory has space |
selected_hotbar_slot | number | none | Selected hotbar slot |
mainhand_empty | boolean | none | Mainhand empty |
offhand_empty | boolean | none | Offhand empty |
container_has_item | number | parameter | Container has item |
recipe_unlocked | boolean | parameter | Recipe unlocked |
Item · 9 conditions
| Condition | Value type | Provider inputs | Meaning |
inventory_item_count | number | parameter | Inventory item count |
mainhand_stack_size | number | none | Mainhand stack size |
offhand_stack_size | number | none | Offhand stack size |
mainhand_damage | number | none | Mainhand damage |
mainhand_max_damage | number | none | Mainhand max damage |
mainhand_durability | number | none | Mainhand durability |
offhand_damage | number | none | Offhand damage |
offhand_max_damage | number | none | Offhand max damage |
offhand_durability | number | none | Offhand durability |
Knowledge · 2 conditions
| Condition | Value type | Provider inputs | Meaning |
biome_known | boolean | parameter | Biome known |
structure_known | boolean | parameter | Structure known |
Mode · 10 conditions
| Condition | Value type | Provider inputs | Meaning |
player_game_mode | string | none | Player game mode |
player_survival | boolean | none | Player survival |
player_creative | boolean | none | Player creative |
player_adventure | boolean | none | Player adventure |
player_spectator | boolean | none | Player spectator |
player_flying | boolean | none | Player flying |
player_can_fly | boolean | none | Player can fly |
player_invulnerable | boolean | none | Player invulnerable |
player_instabuild | boolean | none | Player instabuild |
player_may_build | boolean | none | Player may build |
Movement · 11 conditions
| Condition | Value type | Provider inputs | Meaning |
player_moving | boolean | none | Player moving |
player_stationary | boolean | none | Player stationary |
player_in_air | boolean | none | Player in air |
player_falling | boolean | none | Player falling |
player_rising | boolean | none | Player rising |
player_horizontal_speed | number | none | Player horizontal speed |
player_vertical_speed | number | none | Player vertical speed |
player_speed | number | none | Player speed |
player_swimming | boolean | none | Player swimming |
player_fall_flying | boolean | none | Player fall flying |
player_climbing | boolean | none | Player climbing |
MovementProgress · 2 conditions
| Condition | Value type | Provider inputs | Meaning |
player_stuck | boolean | parameter_number, number_value | Player stuck |
distance_moved_recently | number | parameter_number | Distance moved recently |
Navigation · 11 conditions
| Condition | Value type | Provider inputs | Meaning |
path_forward_clear | boolean | none | Path forward clear |
path_forward_step_up | boolean | none | Path forward step up |
path_forward_blocked | boolean | none | Path forward blocked |
path_forward_safe_drop | boolean | parameter_number | Path forward safe drop |
path_forward_dangerous_drop | boolean | parameter_number | Path forward dangerous drop |
path_forward_lava | boolean | none | Path forward lava |
path_forward_safe | boolean | parameter_number | Path forward safe |
player_has_jump_headroom | boolean | parameter_number | Player has jump headroom |
path_forward_elevation | number | parameter_number | Path forward elevation |
path_forward_uphill | boolean | none | Path forward uphill |
path_forward_downhill | boolean | parameter_number | Path forward downhill |
Nearby · 3 conditions
| Condition | Value type | Provider inputs | Meaning |
nearby_recognition | boolean | parameter, parameter_number, number_value | Nearby recognition |
nearby_entity_count | number | parameter, parameter_number | Nearby entity count |
nearest_entity_distance | number | parameter, parameter_number | Nearest entity distance |
NearbyItem · 4 conditions
| Condition | Value type | Provider inputs | Meaning |
nearby_item_count | number | parameter_number | Nearby item count |
nearest_item_distance | number | parameter_number | Nearest item distance |
nearby_experience_orb_count | number | parameter_number | Nearby experience orb count |
nearest_experience_orb_distance | number | parameter_number | Nearest experience orb distance |
Player · 12 conditions
| Condition | Value type | Provider inputs | Meaning |
player_exists | boolean | none | Player exists |
player_alive | boolean | none | Player alive |
player_health | number | none | Player health |
player_on_ground | boolean | none | Player on ground |
player_sprinting | boolean | none | Player sprinting |
player_sneaking | boolean | none | Player sneaking |
player_using_item | boolean | none | Player using item |
player_hunger | number | none | Player hunger |
player_air | number | none | Player air |
player_in_water | boolean | none | Player in water |
player_in_lava | boolean | none | Player in lava |
player_on_fire | boolean | none | Player on fire |
Position · 15 conditions
| Condition | Value type | Provider inputs | Meaning |
player_x | number | none | Player x |
player_y | number | none | Player y |
player_z | number | none | Player z |
player_block_x | number | none | Player block x |
player_block_y | number | none | Player block y |
player_block_z | number | none | Player block z |
player_yaw | number | none | Player yaw |
player_pitch | number | none | Player pitch |
player_facing | string | none | Player facing |
target_x | number | none | Target x |
target_y | number | none | Target y |
target_z | number | none | Target z |
target_above_player | boolean | none | Target above player |
target_below_player | boolean | none | Target below player |
target_height_difference | number | none | Target height difference |
Registry · 2 conditions
| Condition | Value type | Provider inputs | Meaning |
always | boolean | none | Always |
never | boolean | none | Never |
Scaffold · 7 conditions
| Condition | Value type | Provider inputs | Meaning |
approach_last_success | boolean | none | Approach last success |
approach_last_failed | boolean | none | Approach last failed |
scaffold_last_success | boolean | none | Scaffold last success |
scaffold_last_failed | boolean | none | Scaffold last failed |
scaffold_active | boolean | none | Scaffold active |
scaffold_used_count | number | none | Scaffold used count |
scaffold_material_count | number | none | Scaffold material count |
Spatial · 14 conditions
| Condition | Value type | Provider inputs | Meaning |
block_at_waypoint_offset | value | parameter | Block at waypoint offset |
waypoint_offset_air | boolean | parameter | Waypoint offset air |
waypoint_offset_strict_air | boolean | parameter | Waypoint offset strict air |
waypoint_offset_house_plank | boolean | parameter | Waypoint offset house plank |
waypoint_offset_traversable | boolean | parameter | Waypoint offset traversable |
selected_block | value | none | Selected block |
selected_block_air | boolean | none | Selected block air |
selected_block_traversable | boolean | none | Selected block traversable |
spatial_scan_available | boolean | none | Spatial scan available |
spatial_scan_size | number | none | Spatial scan size |
adjacent_block | value | parameter | Adjacent block |
adjacent_block_air | boolean | parameter | Adjacent block air |
adjacent_block_traversable | boolean | parameter | Adjacent block traversable |
adjacent_block_count | number | parameter | Adjacent block count |
Status · 5 conditions
| Condition | Value type | Provider inputs | Meaning |
last_action_running | boolean | none | Last action running |
last_action_success | boolean | none | Last action success |
last_action_failure | boolean | none | Last action failure |
last_action_cancelled | boolean | none | Last action cancelled |
last_action_timed_out | boolean | none | Last action timed out |
Tag · 5 conditions
| Condition | Value type | Provider inputs | Meaning |
holding_item_tag | boolean | parameter | Holding item tag |
offhand_item_tag | boolean | parameter | Offhand item tag |
inventory_item_tag_count | number | parameter | Inventory item tag count |
equipment_item_tag | boolean | parameter | Equipment item tag |
targeted_block_tag | boolean | parameter | Targeted block tag |
Target · 5 conditions
| Condition | Value type | Provider inputs | Meaning |
target_exists | boolean | none | Target exists |
target_alive | boolean | none | Target alive |
target_health | number | none | Target health |
target_distance | number | none | Target distance |
target_visible | boolean | none | Target visible |
Waypoint · 4 conditions
| Condition | Value type | Provider inputs | Meaning |
waypoint_known | boolean | parameter | Waypoint known |
waypoint_in_dimension | boolean | parameter | Waypoint in dimension |
distance_to_waypoint | number | parameter | Distance to waypoint |
at_waypoint | boolean | parameter, number_value | At waypoint |
World · 10 conditions
| Condition | Value type | Provider inputs | Meaning |
world_time | number | none | World time |
game_time | number | none | Game time |
day_count | number | none | Day count |
is_day | boolean | none | Is day |
is_night | boolean | none | Is night |
is_raining | boolean | none | Is raining |
is_thundering | boolean | none | Is thundering |
dimension | string | none | Dimension |
sky_visible | boolean | none | Sky visible |
light_level | number | none | Light level |
Reactions · 7 conditions
| Condition | Value type | Provider inputs | Meaning |
reaction_active | boolean | none | Reaction active |
reaction_event | string | none | Reaction event |
reaction_phase | string | none | Reaction phase |
reaction_has_entity | boolean | none | Reaction has entity |
reaction_entity_type | string | none | Reaction entity type |
reaction_entity_living | boolean | none | Reaction entity living |
reaction_entity_health | number | none | Reaction entity health |