> For the complete documentation index, see [llms.txt](https://enchantedmobs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enchantedmobs.superiormc.cn/configs/power-conditions/trigger-data.md).

# Trigger-data 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](/configs/power-conditions.md) page.

## Registry keys on this page

* `damage_value`
* `state_value`
* `damage_cause`
* `damage_origin`
* `melee`
* `spawn_reason`
* `combust_duration`
* `regain_amount`
* `explosion_yield`
* `explosion_radius`
* `target_reason`

***

## `damage_value`

**Purpose:** Checks the current mutable damage result.

**Context:** Requires a damage-backed trigger and result.

### Fields

| Field             | Default   | Description                     |
| ----------------- | --------- | ------------------------------- |
| `min / max`       | unbounded | Inclusive numeric range.        |
| `compare / value` | unset     | Alternative numeric comparison. |

### Example

```yaml
type: damage_value
min: 1
max: 10
```

### Behavior and limits

* When evaluated after earlier modifiers, it reads the already-modified result.
* Unrelated triggers do not match.

***

## `state_value`

**Purpose:** Reads a numeric value previously written to the current power's configured state pool.

**Context:** Uses the current power owner and power ID. The writer must use the `configured` namespace and matching `key` / `per-target` settings.

### Fields

| Field             | Default   | Description                                                                      |
| ----------------- | --------- | -------------------------------------------------------------------------------- |
| `key`             | `default` | State-pool name.                                                                 |
| `per-target`      | `false`   | Whether the current target participates in the state key; must match the writer. |
| `min / max`       | unbounded | Inclusive saved-state range. Missing and expired states read as `0`.             |
| `compare / value` | unset     | Alternative numeric comparison.                                                  |

### Example

```yaml
type: state_value
key: enraged
min: 1
```

### Behavior and limits

* State is isolated by owner UUID and power ID, so another power may safely reuse the same `key`.
* A different `key` or `per-target` setting reads a different state pool.
* This condition reads state only; it does not create or refresh an entry.

***

## `damage_cause`

**Purpose:** Matches the captured Bukkit `EntityDamageEvent.DamageCause`.

**Context:** Requires damage-cause event context.

### Fields

| Field    | Default | Description                    |
| -------- | ------- | ------------------------------ |
| `value`  | empty   | Single damage-cause enum name. |
| `values` | empty   | Accepted cause names.          |

### Example

```yaml
type: damage_cause
values:
  - PROJECTILE
  - ENTITY_ATTACK
```

### Behavior and limits

* Matching is case-insensitive after the plugin's value normalization.
* The condition fails when no damage cause is available.

***

## `damage_origin`

**Purpose:** Classifies damage by its captured origin.

**Context:** Requires damage-origin context.

### Fields

| Field   | Default | Description                           |
| ------- | ------- | ------------------------------------- |
| `value` | `ANY`   | `ANY`, `ENTITY`, `BLOCK`, or `OTHER`. |

### Example

```yaml
type: damage_origin
value: ENTITY
```

### Behavior and limits

* `OTHER` means neither entity-origin nor block-origin.
* Unknown values behave as `ANY` in the shared implementation.

***

## `melee`

**Purpose:** Checks the trigger's captured melee flag.

**Context:** Requires a trigger that supplies melee event context.

### Fields

| Field   | Default | Description          |
| ------- | ------- | -------------------- |
| `value` | `true`  | Expected melee flag. |

### Example

```yaml
type: melee
value: true
```

### Behavior and limits

* The condition fails when the trigger did not provide a melee flag.

***

## `spawn_reason`

**Purpose:** Matches an entity's Bukkit spawn reason.

**Context:** Default `target`: `TARGET`; the selected entity must expose a spawn reason.

### Fields

| Field     | Default  | Description                              |
| --------- | -------- | ---------------------------------------- |
| `target`  | `TARGET` | Entity selector.                         |
| `reason`  | empty    | Single `CreatureSpawnEvent.SpawnReason`. |
| `reasons` | empty    | Accepted reason list.                    |

### Example

```yaml
type: spawn_reason
target: SOURCE
reasons:
  - NATURAL
  - REINFORCEMENTS
```

### Behavior and limits

* Values are compared with enum names.
* The entity's stored spawn reason may be inspected outside the spawn trigger.

***

## `combust_duration`

**Purpose:** Checks the current combustion-duration result.

**Context:** Requires a combust-event result.

### Fields

| Field             | Default   | Description                     |
| ----------------- | --------- | ------------------------------- |
| `min / max`       | unbounded | Inclusive numeric range.        |
| `compare / value` | unset     | Alternative numeric comparison. |

### Example

```yaml
type: combust_duration
min: 1
max: 10
```

### Behavior and limits

* When evaluated after earlier modifiers, it reads the already-modified result.
* Unrelated triggers do not match.

***

## `regain_amount`

**Purpose:** Checks the current health-regain result.

**Context:** Requires a regain-event result.

### Fields

| Field             | Default   | Description                     |
| ----------------- | --------- | ------------------------------- |
| `min / max`       | unbounded | Inclusive numeric range.        |
| `compare / value` | unset     | Alternative numeric comparison. |

### Example

```yaml
type: regain_amount
min: 1
max: 10
```

### Behavior and limits

* When evaluated after earlier modifiers, it reads the already-modified result.
* Unrelated triggers do not match.

***

## `explosion_yield`

**Purpose:** Checks the current explosion-yield result.

**Context:** Requires an entity-explosion result.

### Fields

| Field             | Default   | Description                     |
| ----------------- | --------- | ------------------------------- |
| `min / max`       | unbounded | Inclusive numeric range.        |
| `compare / value` | unset     | Alternative numeric comparison. |

### Example

```yaml
type: explosion_yield
min: 1
max: 10
```

### Behavior and limits

* When evaluated after earlier modifiers, it reads the already-modified result.
* Unrelated triggers do not match.

***

## `explosion_radius`

**Purpose:** Checks the current primed-explosion radius.

**Context:** Requires an explosion-prime result.

### Fields

| Field             | Default   | Description                     |
| ----------------- | --------- | ------------------------------- |
| `min / max`       | unbounded | Inclusive numeric range.        |
| `compare / value` | unset     | Alternative numeric comparison. |

### Example

```yaml
type: explosion_radius
min: 1
max: 10
```

### Behavior and limits

* When evaluated after earlier modifiers, it reads the already-modified result.
* Unrelated triggers do not match.

***

## `target_reason`

**Purpose:** Matches the captured Bukkit entity-target reason.

**Context:** Requires target/untag event context.

### Fields

| Field    | Default | Description              |
| -------- | ------- | ------------------------ |
| `value`  | empty   | Single reason enum name. |
| `values` | empty   | Accepted reason list.    |

### Example

```yaml
type: target_reason
values:
  - CLOSEST_PLAYER
  - TARGET_ATTACKED_ENTITY
```

### Behavior and limits

* Matching is case-insensitive after normalization.
* The condition fails when no target reason is present.

***
