Your fire arrow applies Burn. Your poison dagger applies Poison. Your frost bomb applies Chill, which you added in week three because slowing enemies felt good. Six weeks later a playtester stacks four Burn sources on the act-one boss, melts it in under three seconds, and asks whether that was intended. It wasn't. Nobody wrote down what happens when two Burns meet.
Status effects are the cheapest content in your game and the fastest way to lose control of your combat math. One new effect can multiply with every weapon, enemy and item you already shipped. The fix isn't fewer effects — it's a spec that says, for every effect, exactly how it applies, how it adds up, and how it ends.
A status effect is a decision, not a damage source
Before the numbers, ask what the effect changes about player behaviour. A good status effect makes someone act differently for a few seconds:
- Burn rewards you for applying it and walking away — it's a reason to disengage.
- Chill buys you distance — it's a reason to reposition.
- Vulnerable (take more damage) is a reason to coordinate burst — it carries so much weight in Slay the Spire precisely because it raises damage taken by 50%, while Weak cuts damage dealt by 25%.
- Stun removes decisions entirely — which is why it's the most dangerous one to hand out.
If an effect doesn't change what the player does next, it's a damage number wearing a costume. Fold it into the weapon and move on.
The six fields every effect needs
Write every status effect with the same fields. The moment two effects are specified differently, your stacking bugs become unfixable.
| Field | Question it answers | Example: Burn |
|---|---|---|
| Application | How is it inflicted, and can it fail? | On hit with fire damage, 100% |
| Magnitude | How much, per what? | 4 damage per second |
| Duration | How long, and what resets it? | 5 s, refreshed on reapplication |
| Stack rule | What happens when a second source lands? | Refresh duration, magnitude fixed |
| Cap | What is the ceiling? | 1 instance per target |
| Removal | How does it end early? | Water surface, roll into shallow water, cleanse potion |
Six fields, one row per effect. Twelve effects still fit on one screen — keep the table in your mechanics documentation next to the weapons that apply each effect, so whoever adds a new fire weapon sees the rule before inventing a second kind of Burn.
Four stacking models — pick one per effect, on purpose
Most "status effects are broken" bugs are really "we never chose a stacking model" bugs. There are only four worth using:
| Model | Behaviour | Good for | Risk |
|---|---|---|---|
| Refresh | Duration resets, magnitude unchanged | Burn, Chill, Vulnerable | Feels weak with many sources |
| Extend | Durations add, hard cap on total | Bleed, Poison | Long tails; damage arrives late |
| Intensify | Stack count raises magnitude to a cap | Poison 1–5, Rend | Multiplies with party size |
| Independent | Each source tracked separately | DoTs in gear-driven ARPGs | Expensive, unreadable, hard to balance |
A practical default: refresh for control and debuffs, intensify with a cap for damage-over-time, extend only when you want a slow-burn resource. Keep independent instances for the rare case where source identity genuinely matters, and expect to pay for it in UI.
Caps need a number, not a vibe. "Poison stacks up to 5, each stack deals 2 damage per second, duration 6 s refreshed per application" gives you a clean ceiling of 10 damage per second. Compare that to your intended time-to-kill: if a tier-two enemy has 60 HP and your target TTK is 4 seconds, a fully stacked poison alone does 40 of those 60 HP and your weapon hits have become decoration.
Control effects need a separate budget
Stun, freeze, knockdown and silence aren't debuffs — they are temporary removals of the player's turn. Budget them with three rules:
- Short on the player, longer on enemies. A 0.5 s player stagger reads as impact; 2 s reads as a controller malfunction. Most action games keep player-side hard stuns under about a third of a second and express enemy pressure through attack frequency instead.
- Always telegraphed. Any effect that takes control away needs a wind-up the player can see and answer. If there's no counterplay window, the effect isn't difficulty, it's a dice roll.
- Diminishing returns on repeats. The standard MMO pattern is worth stealing even in single-player: full duration on the first application, 50% on the second within a short window, 25% on the third, then immunity for a cooldown. It kills stun-lock without nerfing the first use.
Example, written as a spec line: Stun — 1.5 s base, DR 100/50/25/immune within a 15 s window, window resets 15 s after the last application. That one line prevents the two-player co-op chain stun your testers will otherwise find in ten minutes.
Make it legible or it doesn't exist
Players can't play around a system they can't see. Minimum readable set:
- A distinct icon plus a distinct colour and silhouette — not colour alone; roughly one in twelve men has some form of red-green colour deficiency, and status icons are exactly where that bites.
- A number on the icon for stack count, and a visible duration (radial sweep or countdown).
- One in-world cue per effect: burning emits flame and lights up the character, chilled adds frost and slows the animation.
- A tooltip that states the magnitude in the same units as the rest of your UI. "Poison: 2 damage/s, 5 stacks max" beats "Poison: deals damage over time."
Buildup meters are the readable alternative to binary application. Elden Ring-style poison and rot fill a gauge before they trigger, so the player sees the threat arriving and can retreat. If an effect is punishing, consider a gauge instead of a coin flip.
An afternoon balance pass
You can audit a whole effect set in a few hours with four measurements. Log them in a balance sheet — one row per effect, one column per measurement, re-run after every tuning change:
- Uptime. In a 60-second fight, what percentage of the time is the effect active? Anything above roughly 80% is a passive stat buff, not a tactical choice — either shorten the duration or lengthen the cooldown.
- Damage share. What fraction of total damage comes from the effect? If Burn is 55% of a build's output, your weapon balance is now Burn balance.
- Worst-case stack. Four players, best-in-slot gear, every source active. Compute it on paper before you find it in a stream.
- Counterplay rate. In playtests, how often does a player remove, avoid or pre-empt the effect? Zero means the counter is invisible.
Test checklist
- Apply every effect twice in quick succession; confirm the stack rule matches the spec
- Apply two effects from different sources (weapon + trap) to one target
- Let an effect expire while the applying entity is dead or despawned
- Save and reload mid-effect; check duration, stacks and visuals survive
- Cleanse an effect at 1 stack and at max stacks
- Apply a control effect during a scripted sequence or cutscene trigger
- Run the worst-case stack against the lowest-HP and highest-HP enemy in the game
Anti-patterns to name and avoid
- The effect that only exists on one weapon. Either promote it to a system with at least two sources and one counter, or make it a weapon property.
- Duplicate verbs. Chill, Slow and Freeze that all reduce movement speed are one effect with three icons. Merge them.
- Uncapped intensify. Guaranteed to break in co-op.
- Unlisted immunities. If the final boss is immune to Stun, say so in the fight's tells, not in a wiki three months after launch.
- Untested persistence. The save/reload and despawn cases above are where most shipped bugs live: a Burn attributed to a deleted entity is a crash waiting for a patch note.
Four effects, each with a stacking model, a cap, a counter and a readable icon, will carry a game further than twelve effects nobody can predict. Write the six fields, pick the model, then let your playtesters try to break the ceiling — because they will try, and it's cheaper to find the number yourself.