# ConditionDef

> Kinbarrow modding reference — content tree `b2f73c2ab65ff925`, version `0.2.0+main.a22009f4c`.

`conditions/<id>.ron` — one condition per file; stem == id. The SRD's the active fourteen-condition catalog is SRD 5.2.1; mods extend it through the same component and contextual-fact vocabulary.

**Note on syntax:** these files are RON, not JSON. The shapes below are exact,
but punctuation follows RON — read a real `data/*.ron` file alongside.

## Fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `components` | `ConditionComponent[]` | required | The engine ConditionComponent reads this condition bundles. |
| `facts` | `ConditionFact[]` | optional | Relational/lifecycle/world facts that require an explicit contextual gate rather than an unconditional compiled-mask modifier. |
| `id` | `string` | required | Authored id. |
| `name` | `string` | required | Authored name. |
| `source` | `Source` | required | Authored source. |

## Nested shapes

<a id="condition-component"></a>

### ConditionComponent

One primitive combat read a condition bundles. PRIMITIVES ONLY — each variant is a real branch in the bubble, and a read without a consumer stays ledgered, never faked (the typing rule). Conditions themselves are DATA (`conditions/<id>.ron`): named bundles of these, so the SRD catalog and a mod's inventions compose without engine code — only a NEW read (speed 0, blinded sight, disadvantage out) is code. The catalog crossed the eighth read, so the compiled mask widened from u8 to u16 (`combat_bubble::component_bit`) — sixteen fit it, the seventeenth widens it again.

<a id="condition-component--cant-hear"></a>

#### ConditionComponent::CantHear

The bearer cannot HEAR. It notices no deed by its noise alone — a sound in the dark passes it by — though its eyes are untouched. The one component whose read is outside the fight, in the crime seam's witness roll.

<a id="condition-component--cant-act"></a>

#### ConditionComponent::CantAct

The bearer cannot act: its turn passes (the PC gets no candidates), and taking this up breaks the bearer's own concentration.

<a id="condition-component--no-reactions"></a>

#### ConditionComponent::NoReactions

No reactions: the bearer makes no opportunity attacks.

<a id="condition-component--adv-against"></a>

#### ConditionComponent::AdvAgainst

Attack rolls against the bearer have advantage.

<a id="condition-component--auto-crit-in-reach"></a>

#### ConditionComponent::AutoCritInReach

A hit on the bearer from within 5 ft is an automatic critical.

<a id="condition-component--auto-fail-str-dex"></a>

#### ConditionComponent::AutoFailStrDex

The bearer automatically fails Strength and Dexterity saving throws.

<a id="condition-component--speed0"></a>

#### ConditionComponent::Speed0

The bearer's movement budget is 0 (grappled, restrained): it cannot step, and Dash buys nothing.

<a id="condition-component--self-attack-disadvantage"></a>

#### ConditionComponent::SelfAttackDisadvantage

The bearer's OWN attack rolls have unconditional disadvantage (blinded, poisoned, prone, restrained). Frightened is source-relative.

<a id="condition-component--attacker-disadvantage"></a>

#### ConditionComponent::AttackerDisadvantage

Attack rolls AGAINST the bearer have disadvantage — the unseen (invisible) foe an attacker cannot find.

<a id="condition-component--disadvantage-on-checks"></a>

#### ConditionComponent::DisadvantageOnChecks

The bearer's ability checks have unconditional disadvantage (poisoned). Frightened is source-relative.

<a id="condition-component--prone-target"></a>

#### ConditionComponent::ProneTarget

The prone bearer's positional against-read: an attacker within 5 ft has advantage, one beyond has disadvantage.

<a id="condition-component--resist-all-damage"></a>

#### ConditionComponent::ResistAllDamage

The bearer takes half of EVERY kind of damage (petrified's resistance to all damage) — the `apply_damage` seam with an all-kinds flag.

<a id="condition-component--cant-attack-source"></a>

#### ConditionComponent::CantAttackSource

The bearer cannot attack the SOURCE of this condition, nor target it with a harmful ability (charmed's combat clause) — read SOURCE-AWARE off the Ongoing's `source` at the attack gate, since the compiled mask alone carries no source. The charmer's social-check advantage has no bubble consumer (ledgered), and the "harmful magic" half beyond a weapon strike waits on casters-in-sim (ledgered).

<a id="condition-component--dex-save-disadvantage"></a>

#### ConditionComponent::DexSaveDisadvantage

The bearer's Dexterity saving throws have disadvantage (Restrained).

<a id="condition-component--self-attack-advantage"></a>

#### ConditionComponent::SelfAttackAdvantage

The bearer's own attack rolls have advantage while the observer cannot see it (Invisible). Visibility cancellation is contextual rather than an unconditional passive modifier.

<a id="condition-component--immune-all-damage"></a>

#### ConditionComponent::ImmuneAllDamage

The bearer takes no damage of any kind. This is distinct from resistance-to-all and is intended for source-owned magical wards.

<a id="condition-component--resist-physical-damage"></a>

#### ConditionComponent::ResistPhysicalDamage

The bearer resists bludgeoning, piercing, and slashing damage. This is the physical-damage subset of the ordinary resistance rule.

<a id="condition-component--melee-damage-bonus"></a>

#### ConditionComponent::MeleeDamageBonus

Eligible melee attacks made by the bearer gain an authored damage bonus supplied by the condition application.

<a id="condition-component--spell-attack-advantage"></a>

#### ConditionComponent::SpellAttackAdvantage

Spell attack rolls made by the bearer have Advantage.

<a id="condition-component--spell-save-dc-bonus"></a>

#### ConditionComponent::SpellSaveDcBonus

The bearer's spell save DC gains the authored bonus supplied by the condition application.

<a id="condition-component--movement-mode-uses-walking-speed"></a>

#### ConditionComponent::MovementModeUsesWalkingSpeed

One authored movement mode uses the bearer's walking speed while the condition lasts.

<a id="condition-component--weapon-attack-ability-bonus"></a>

#### ConditionComponent::WeaponAttackAbilityBonus

Weapon attack rolls add an authored ability modifier while the condition lasts.

<a id="condition-fact"></a>

### ConditionFact

Closed, typed condition facts which are not unconditional bit modifiers. These preserve source, observer, lifecycle, inventory, and world-facing rules without pretending that they are passive attack/check modifiers.

<a id="condition-fact--auto-fail-sight-checks"></a>

#### ConditionFact::AutoFailSightChecks

Sight-required ability checks automatically fail.

<a id="condition-fact--auto-fail-hearing-checks"></a>

#### ConditionFact::AutoFailHearingChecks

Hearing-required ability checks automatically fail.

<a id="condition-fact--cannot-harm-source"></a>

#### ConditionFact::CannotHarmSource

Damaging the condition's source is forbidden.

<a id="condition-fact--source-has-social-check-advantage"></a>

#### ConditionFact::SourceHasSocialCheckAdvantage

The source has advantage on social checks involving the bearer.

<a id="condition-fact--attack-and-check-disadvantage-while-source-visible"></a>

#### ConditionFact::AttackAndCheckDisadvantageWhileSourceVisible

Attacks and ability checks have disadvantage while the source is seen.

<a id="condition-fact--cannot-approach-source"></a>

#### ConditionFact::CannotApproachSource

Voluntary movement cannot reduce distance to the condition's source.

<a id="condition-fact--attack-disadvantage-except-source"></a>

#### ConditionFact::AttackDisadvantageExceptSource

Attacks have disadvantage unless their target is the condition source.

<a id="condition-fact--source-can-drag"></a>

#### ConditionFact::SourceCanDrag

The source can move the bearer using the condition's drag rules.

<a id="condition-fact--cannot-speak"></a>

#### ConditionFact::CannotSpeak

The bearer cannot speak.

<a id="condition-fact--initiative-disadvantage"></a>

#### ConditionFact::InitiativeDisadvantage

The bearer has disadvantage on Initiative.

<a id="condition-fact--initiative-advantage"></a>

#### ConditionFact::InitiativeAdvantage

The bearer has advantage on Initiative.

<a id="condition-fact--concealed"></a>

#### ConditionFact::Concealed

Sight-required effects cannot target the bearer unless their creator sees it.

<a id="condition-fact--carried-equipment-concealed"></a>

#### ConditionFact::CarriedEquipmentConcealed

Equipment worn or carried by the bearer shares its concealment.

<a id="condition-fact--invisible-attack-benefits-negated-when-seen"></a>

#### ConditionFact::InvisibleAttackBenefitsNegatedWhenSeen

Seeing the Invisible bearer removes its condition-provided attack edges.

<a id="condition-fact--crawl-or-right-self"></a>

#### ConditionFact::CrawlOrRightSelf

Movement is limited to crawling or spending movement to right oneself.

<a id="condition-fact--drops-held-items"></a>

#### ConditionFact::DropsHeldItems

Held items are dropped when the condition begins.

<a id="condition-fact--unaware"></a>

#### ConditionFact::Unaware

The bearer is unaware of its surroundings.

<a id="condition-fact--body-and-nonmagical-equipment-become-inanimate"></a>

#### ConditionFact::BodyAndNonmagicalEquipmentBecomeInanimate

The body and carried nonmagical equipment become inanimate substance.

<a id="condition-fact--weight-times-ten"></a>

#### ConditionFact::WeightTimesTen

The bearer's weight is multiplied by ten.

<a id="condition-fact--stops-aging"></a>

#### ConditionFact::StopsAging

The bearer ceases aging.

<a id="condition-fact--immune-to-poisoned"></a>

#### ConditionFact::ImmuneToPoisoned

The bearer is immune to the Poisoned condition.

<a id="source"></a>

### Source

Every file's top-level value carries `source`.

<a id="source--srd51"></a>

#### Source::Srd51

SRD 5.1 — retained nonconflicting catalogue material.

<a id="source--srd52"></a>

#### Source::Srd52

SRD 5.2.1 — the 2024-revision System Reference Document, the same CC-BY-4.0 grant as 5.1 and the current rules chassis. Its files carry the `.srd52.ron` suffix so provenance reads off the path; see `data/README.md` for which document rules a given value.

<a id="source--original"></a>

#### Source::Original

Original content authored for this game (not from the SRD).

<a id="source--phb2024"></a>

#### Source::Phb2024

Material transcribed from the 2024 Player's Handbook. This source is not redistributable by this project and belongs in a `phb2024` mod.

<a id="source--dmg2024"></a>

#### Source::Dmg2024

Material transcribed from the 2024 Dungeon Master's Guide. This source is not redistributable by this project and belongs in a `dmg2024` mod.

<a id="source--mm2024"></a>

#### Source::Mm2024

Material transcribed from the 2024 Monster Manual. This source is not redistributable by this project and belongs in an `mm2024` mod.

<a id="source--tce"></a>

#### Source::Tce

Material transcribed from Tasha's Cauldron of Everything. This source is not redistributable by this project and belongs in a `tce` mod.

<a id="source--xge"></a>

#### Source::Xge

Material transcribed from Xanathar's Guide to Everything. This source is not redistributable by this project and belongs in an `xge` mod.


