system

Use when

You want conditions (poison, burn, slow, shield, rage) that persist across turns/seconds and interact with the rest of combat.

Status Effects — damage and change over time

What it is. Conditions that persist: poison ticking each turn, a burn, a shield, a slow, a rage buff. Status turns a hit from a one-frame event into a state you carry — the layer that lets system-build-diversity and system-counter-systems interact instead of just stacking flat numbers.

Player fantasy / why it’s fun. Setting up. The poison you stacked three turns ago finally kills; the shield you pre-cast eats the boss’s big hit. Status rewards plans, not just reactions — it’s the memory of combat.

When to use / when NOT

Use status when…Skip when…
You want set-up-then-payoff playCombat is pure twitch reaction
Builds should interact (a synergy engine)You have < ~4 effects (just make them direct)
Counters need a vocabulary (cleanse, resist)Legibility budget is already spent

Every status is a rule the player must hold in their head. Ship the fewest that carry the most interaction — a bloated status list is unreadable, not deep.

Variants

KindShapeStackingExample
DoT (poison, burn)damage per tick, N ticksintensity or durationSlay the Spire poison (−1/turn, decays)
Debuff (slow, weak, vuln)multiplier on the targetusually durationweak = −25% dmg dealt
Buff (rage, haste, shield)multiplier / absorb on selfintensity or refreshblock that expires next turn
CC (stun, freeze, root)skips/limits actionsrarely stacks; diminishingone turn skipped
Trigger (mark, curse)fires on a conditioncount-based”next hit crits”

Stacking rules — pick one per effect, state it

RuleBehaviourGood for
Intensitymore applications = bigger effectpoison, bleed
Durationmore applications = longer, same sizeslow, weak
Refreshre-apply resets the timer, no stackmost buffs
Independenteach application is its own timerrare; hard to read
Capstacks up to N, then no-opkeep any of the above bounded

Ambiguous stacking is the #1 status bug. Decide intensity-vs-duration per effect and cap it — an uncapped intensity DoT trivializes the game (FUN.md law 3).

Tuning levers

LeverDoesHealthy range
Tick timingwhen DoT resolvesfixed point in the turn/second; deterministic
Decayhow stacks fall offpoison −1/turn keeps it self-limiting
Capmax stacks/intensityalways set one
Cleanse costprice to remove a statusreal, so statuses are a threat not a nuisance
Durationturns/seconds it lastslong enough to matter, short enough to plan around

How it wires to Hayao

Fails when…

Verify

Composes with

See also

This module rendersthe repo's markdowndirectly — edit it there, it changes here.