For the complete documentation index, see llms.txt. This page is also available as Markdown.

🧍Entity and State Conditions

Every registered condition on this page is documented as an independent reference entry. All entries also support the common condition fields documented on the Power Conditions page.

Registry keys on this page

  • headshot

  • height

  • sneaking

  • not_sneaking

  • health

  • health_percent

  • has_potion

  • distance

  • food_level

  • gliding

  • on_ground

  • in_air

  • match_entity

  • match_item

  • catch_match_item

  • min_attack_cooldown

  • sprinting

  • potion_effect_type

  • effect_type

  • potion_effect_cause

  • potion_effect_action

  • ageable

  • first_attack_against_entity

  • first_attack_from_monster

  • first_monster_attack

  • target_category

  • fatal_damage

  • stationary


headshot

Purpose: Checks whether the current projectile is vertically close to the target's eye position.

Context: Requires a living TARGET and projectile SKILL; these roles are fixed by the implementation.

Fields

Field
Default
Description

tolerance

0.45

Maximum absolute Y difference between projectile location and target eye location.

Example

Behavior and limits

  • Only vertical position is checked; this is not an exact hitbox intersection test.

  • Use it on projectile damage or hit triggers that provide both roles.


height

Purpose: Checks the block Y coordinate of the resolved trigger location.

Context: Uses PowerContext.location() rather than an entity selector.

Fields

Field
Default
Description

min

minimum integer

Inclusive minimum Y.

max

maximum integer

Inclusive maximum Y.

Example

Behavior and limits

  • This condition uses only min and max; it does not use the shared numeric compare form.


sneaking

Purpose: Checks whether a selected player is sneaking.

Context: Default target: TARGET; the selected entity must be a player.

Fields

Field
Default
Description

target

TARGET

Entity selector.

value

true

Expected sneaking state.

Example

Behavior and limits

  • Non-player entities do not match.


not_sneaking

Purpose: Matches a selected player that is not sneaking.

Context: Default target: TARGET; the selected entity must be a player.

Fields

Field
Default
Description

target

TARGET

Entity selector.

Example

Behavior and limits

  • Equivalent to sneaking with value: false for player targets.


health

Purpose: Checks current or maximum health with the shared numeric-comparison syntax.

Context: Default target: TARGET; requires a living entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

mode

CURRENT

CURRENT, MAX, or MAXIMUM.

min / max

unbounded

Inclusive numeric range.

compare / value

unset

Alternative comparison such as >=, <, or =.

Example

Behavior and limits

  • The checked value is exposed as {original} and {current} while resolving numeric fields.


health_percent

Purpose: Checks current health as a percentage of maximum health.

Context: Default target: TARGET; requires a living entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

min

0

Inclusive minimum percent.

max

100

Inclusive maximum percent.

min-max-health

0

Inclusive minimum maximum-health value.

max-max-health

unbounded

Inclusive maximum maximum-health value.

Example

Behavior and limits

  • Percentage is calculated as current health divided by maximum health times 100.

  • This condition does not use compare / value.


has_potion

Purpose: Checks whether a living entity has a specific active potion effect.

Context: Default target: TARGET; requires a living entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

potion

empty

Potion-effect namespaced key or supported enum-style name.

Example

Behavior and limits

  • An invalid or empty effect key does not match.

  • Use common not: true to require that the effect is absent.


distance

Purpose: Checks Euclidean distance between two context entities.

Context: Default source: SOURCE; default target: TARGET; both entities must exist in the same world.

Fields

Field
Default
Description

source

SOURCE

First entity selector.

target

TARGET

Second entity selector.

min / max

unbounded

Inclusive distance range.

compare / value

unset

Alternative numeric comparison.

Example

Behavior and limits

  • Cross-world entities do not match.


food_level

Purpose: Checks a player's current food level.

Context: Default target: TARGET; selected entity must be a player.

Fields

Field
Default
Description

target

TARGET

Entity selector.

min / max

unbounded

Inclusive range.

compare / value

unset

Alternative numeric comparison.

Example

Behavior and limits

  • Food level is the integer Bukkit value from 0 to 20.


gliding

Purpose: Checks a living entity's gliding state.

Context: Default target: TARGET; requires a living entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

value

true

Expected state.

Example

Behavior and limits

  • Non-living entities do not match.


on_ground

Purpose: Checks an entity's on-ground state.

Context: Default target: TARGET; requires an entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

value

true

Expected state.

Example

Behavior and limits

  • The value comes from Bukkit's current on-ground flag.


in_air

Purpose: Checks the inverse of an entity's on-ground state.

Context: Default target: TARGET; requires an entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

value

true

Expected airborne state.

Example

Behavior and limits

  • The selected entity must exist.


match_entity

Purpose: Runs the normal Match Entity rule engine against a selected living entity.

Context: Default target: TARGET; selected entity must be living.

Fields

Field
Default
Description

target

TARGET

Entity selector.

match

required

Nested MatchEntityFormat configuration.

Example

Behavior and limits

  • A missing match section fails.

  • The nested rules are the same rules used by the plugin's normal entity-matching system.


match_item

Purpose: Runs MatchItemFormat against one or more selected items.

Context: Uses an item selector and optional equipment holder; default item is CONTEXT, default holder is TARGET.

Fields

Field
Default
Description

item

CONTEXT

Item selector string, or nested section with selector and holder.

item-holder

TARGET

Holder selector when using the flat form.

match

current section

Nested MatchItemFormat rules; when absent, non-control fields on this section are used.

Example

Behavior and limits

  • The condition passes when any selected item matches.

  • The matching player is SOURCE when it is a player, otherwise context.player().


catch_match_item

Purpose: Runs MatchItemFormat against the item entity caught by fishing.

Context: Requires PlayerFishEvent with an Item in event.getCaught().

Fields

Field
Default
Description

match

current section

Nested MatchItemFormat rules; when absent, non-control fields on this section are used.

Example

Behavior and limits

  • Non-item catches and unrelated fishing states fail.


min_attack_cooldown

Purpose: Checks a player's current attack cooldown strength.

Context: Default target: TARGET; selector must resolve to a player.

Fields

Field
Default
Description

target

TARGET

Player selector.

value

0

Inclusive minimum cooldown strength.

Example

Behavior and limits

  • Uses Bukkit Player#getAttackCooldown().


sprinting

Purpose: Checks whether a selected player is sprinting.

Context: Default target: TARGET; selector must resolve to a player.

Fields

Field
Default
Description

target

TARGET

Player selector.

value

true

Expected sprinting state.

Example

Behavior and limits

  • Non-player entities fail.


potion_effect_type

Purpose: Matches the potion-effect type supplied by an effect event.

Context: Requires Paper EntityEffectTickEvent or Bukkit EntityPotionEffectEvent context.

Fields

Field
Default
Description

selector / selectors

empty

Exact effect selectors.

effect / effects

empty

Aliases for effect selectors.

type / types

empty

Additional selector aliases.

category / categories

empty

Effect categories supported by PotionEffectSelector.

Example

Behavior and limits

  • The current effect is taken from getType() for effect ticks and getModifiedType() for potion-effect changes.

  • An empty selector set does not match.


effect_type

Purpose: Alias of potion_effect_type.

Context: Same event requirements as potion_effect_type.

Fields

Field
Default
Description

selector / selectors

empty

Effect selectors.

effect / effects

empty

Selector aliases.

type / types

empty

Selector aliases.

category / categories

empty

Effect categories.

Example

Behavior and limits

  • Uses the same implementation and behavior as potion_effect_type.


potion_effect_cause

Purpose: Matches the cause of a Bukkit potion-effect change event.

Context: Requires EntityPotionEffectEvent.

Fields

Field
Default
Description

cause / causes

empty

Accepted EntityPotionEffectEvent.Cause name(s), such as FOOD, POTION_DRINK, or ATTACK.

Example

Behavior and limits

  • At least one configured cause is required.

  • Cause names are case-insensitive and normalized to Bukkit enum-style names.


potion_effect_action

Purpose: Matches the action of a Bukkit potion-effect change event.

Context: Requires EntityPotionEffectEvent.

Fields

Field
Default
Description

action / actions

empty

Accepted actions, such as ADDED, CHANGED, REMOVED, or CLEARED.

Example

Behavior and limits

  • At least one configured action is required.

  • Action names are case-insensitive and normalized to Bukkit enum-style names.


ageable

Purpose: Checks whether the context block's ageable data is fully grown.

Context: Requires BLOCK whose BlockData implements Bukkit Ageable.

Fields

Field
Default
Description

value

true

Expected fully-grown state.

Example

Behavior and limits

  • This condition checks blocks/crops, not ageable entities.

  • Fully grown means current age is at least maximum age.


first_attack_against_entity

Purpose: Matches only the first qualifying source-player/target pair for this condition path.

Context: Requires player SOURCE, living TARGET, and a non-cancelled current result.

Fields

No type-specific fields.

Example

Behavior and limits

  • State identity includes attacker UUID, power ID, configuration path, and target UUID.

  • The first successful evaluation stores state immediately; state is cleared by runtime cleanup.


first_attack_from_monster

Purpose: Matches the first tracked attack received from a specific monster for this condition path.

Context: Requires SOURCE to be a Monster and a player defender from PLAYER or TARGET; cancelled results fail.

Fields

No type-specific fields.

Example

Behavior and limits

  • State identity includes defender, power ID, condition path, and monster.

  • State lasts until runtime cleanup, reload, or relevant entity unload.


first_monster_attack

Purpose: Alias of first_attack_from_monster.

Context: Same monster and player context requirements as first_attack_from_monster.

Fields

No type-specific fields.

Example

Behavior and limits

  • Uses exactly the same state and matching implementation.


target_category

Purpose: Matches the fixed category of TARGET.

Context: Requires TARGET; no configurable selector is used.

Fields

Field
Default
Description

category

ANIMAL

Supported values: MONSTER, ANIMAL, or UNDEAD.

Example

Behavior and limits

  • The current undead set contains zombie, husk, drowned, skeleton, stray, wither skeleton, wither, zombie villager, zombified piglin, phantom, and bogged.

  • Players and unsupported categories do not match.


fatal_damage

Purpose: Checks whether the current damage event's final damage would kill SOURCE.

Context: Requires living SOURCE and an EntityDamageEvent; the entity selector is fixed.

Fields

No type-specific fields.

Example

Behavior and limits

  • Uses event.getFinalDamage() compared with current source health.

  • It does not read the plugin's mutable damage result.


stationary

Purpose: Checks whether a selected entity has remained within a small movement tolerance for a duration.

Context: Default target: TARGET; requires an entity.

Fields

Field
Default
Description

target

TARGET

Entity selector.

seconds

3

Required stationary duration in seconds.

Example

Behavior and limits

  • Moving more than squared distance 0.01 or changing worlds resets the timer.

  • State is cleaned after entity unload, plugin unload, or 30 minutes without access.


Last updated