Stagger and Poise
Poise is a hidden bar that hits wear down. Small hits do not interrupt a character, but enough of them, or one heavy hit, break the bar and the character staggers for a set time. The bar waits after each hit before it refills, and a short brace after the stagger stops endless chains.

Paste this to your AI
Copy it into Claude, Cursor or ChatGPT. It already has good values and the usual mistakes in it.
Add "Stagger and Poise" to my game.
What it should do: Poise lets a big enemy shrug off light hits and a light enemy fall over at a touch. Heavy weapons then feel heavy, attacks need a choice of when to commit, and a fight has moments where the enemy is open.
Build it exactly as this state machine. First check that it fits my game, then build it like this:
```mermaid
stateDiagram-v2
[*] --> steady
steady: Full poise
worn: Worn down
staggered: Staggered
braced: Braced
steady --> steady: no hit
steady --> worn: a hit wears the bar
steady --> staggered: one heavy hit breaks it
worn --> worn: wait or another hit
worn --> steady: bar is full again
worn --> staggered: the bar breaks
staggered --> staggered: reeling
staggered --> braced: reel ends
braced --> braced: hits do nothing
braced --> steady: brace ends
braced --> worn: brace ends, a hit lands
braced --> staggered: brace ends, hit breaks
```
Use these starting values:
- maxPoise: 40
- regenRate: 15 1/s
- regenDelay: 2 s
- staggerTime: 1.2 s
- braceTime: 2 s
Watch out for these common mistakes:
- Endless chains: Tell your AI: when a stagger ends, fill the bar and start a short brace in which hits cannot wear it down.
- A hit on a staggered character: Tell your AI: during a reel hits change nothing about poise or time.
- The wait ends in the middle of a tick: Tell your AI: use up the wait first and refill only with the rest of the tick.
- Refilling the bar when the stagger starts: Tell your AI: keep the bar at zero during the reel and fill it when the reel ends.
- A hit in the tick the reel ends: Tell your AI: let time pass first, and always start the brace in the tick the reel ends.
- Strange hit strengths: Tell your AI: ignore any hit that is not a number above zero.
Do not change anything else in the game. Do not claim anything without proof: model what it takes, and show me what your solution rests on and how I can see that it works. If you cannot show something, say you do not know. When you are done, tell me in plain words how to try it.Or skip this and connect the MCP: your AI then finds all of this by itself.Connect the MCP
What it does
Poise lets a big enemy shrug off light hits and a light enemy fall over at a touch. Heavy weapons then feel heavy, attacks need a choice of when to commit, and a fight has moments where the enemy is open.
How it runs, as a diagram
Everything it can be in, and what moves it on. Your AI builds from exactly this.
How it runs, as a diagram
- Full poise → Full poise: no hit
- Full poise → Worn down: a hit wears the bar
- Full poise → Staggered: one heavy hit breaks it
- Worn down → Worn down: wait or another hit
- Worn down → Full poise: bar is full again
- Worn down → Staggered: the bar breaks
- Staggered → Staggered: reeling
- Staggered → Braced: reel ends
- Braced → Braced: hits do nothing
- Braced → Full poise: brace ends
- Braced → Worn down: brace ends, a hit lands
- Braced → Staggered: brace ends, hit breaks
Good starting values
| Value | Start with | What it changes |
|---|---|---|
| maxPoise | 40 | How much the bar holds. Forty means about four light hits of ten or one heavy hit of forty. Pick it together with your hit strengths: it is only a number compared to them. |
| regenRate | 15 1/s | How much poise comes back each second after the wait. Fifteen refills the whole bar in under three seconds, so a player who backs off gets a fresh enemy, and one who keeps hitting does not. |
| regenDelay | 2 s | How long the bar waits after a hit before it refills. Two seconds rewards a flurry of hits, and shorter waits let the enemy recover while the player is still swinging. |
| staggerTime | 1.2 s | How long a broken character reels. Long enough for the player to land one strong hit, short enough that it is not a free win. Under a third of a second the player cannot use it. |
| braceTime | 2 s | How long after the stagger the character cannot be broken again. It must be above zero, or hits that arrive during the recovery chain the character into another stagger, again and again. |
What usually goes wrong
Endless chains
Two fast attackers, or one fast weapon, hit the moment the stagger ends and break the bar again. The character never moves, and the player has no fun on either side.
Fix: Tell your AI: when a stagger ends, fill the bar and start a short brace in which hits cannot wear it down.
A hit on a staggered character
If hits on a reeling character wear the bar or add time, the reel gets longer with every hit, and a group of attackers can keep one character down for good.
Fix: Tell your AI: during a reel hits change nothing about poise or time.
The wait ends in the middle of a tick
If the whole tick refills the bar once the wait reaches zero, a long tick gives more poise back than the time since the wait ended.
Fix: Tell your AI: use up the wait first and refill only with the rest of the tick.
Refilling the bar when the stagger starts
The bar is full again the moment it breaks. The next hit during the reel then wears it down, and the character breaks a second time right after the first.
Fix: Tell your AI: keep the bar at zero during the reel and fill it when the reel ends.
A hit in the tick the reel ends
If the hit is checked before time passes, it lands on a character that is still reeling and does nothing. If time passes first without a brace, it breaks the fresh bar at once.
Fix: Tell your AI: let time pass first, and always start the brace in the tick the reel ends.
Strange hit strengths
A hit with a strength of zero, below zero or not a number can reset the wait, heal the bar or break it by accident.
Fix: Tell your AI: ignore any hit that is not a number above zero.
How to check it works
- Your character has a full bar of 40. Three hits of 10 land: The bar shows 10 and the character does not stagger.
- Your character has 10 poise left. A hit of 12 lands: The character staggers for 1.2 seconds.
- Your character has 10 poise left. A hit of exactly 10 lands, and on a full bar a hit of exactly 40: Both break the bar, while 39.5 on a full bar does not.
- Your character was hit a moment ago and has 10 poise left. Wait 1.9 seconds, then one more second: Nothing comes back at first, then the bar fills at 15 a second until it is full.
- Your character was hit and has waited 1.5 seconds. Another hit of 5 lands and 1.5 seconds pass: The bar is still not refilling, the wait began again.
- Your character is staggering. A very strong hit lands: The reel does not get longer and nothing else changes.
- Your character is staggering. The reel ends: The bar is full again.
- Your character has just stopped staggering. A huge hit lands at once, and another after the brace is over: The first changes nothing, the second breaks the bar.
Works well with
- Health and Damage: They are separate bars. A hit can take a lot of health and no poise, or the other way round. Let damage take health first, and let poise decide only whether the target is interrupted.
- Knockback: A stagger without a push looks stuck in place, a push without a stagger looks like sliding. Start the push only when the poise breaks, or give a push to every hit and scale it.
- Combo System: A finisher can carry extra poise damage, so a full chain ends with an opening. Let the combo chain run first, and send each hit of it to poise as its own hit.
- Invincibility Frames: A protected character takes no poise damage either, since the hit is ignored before poise looks at it. Run both. Protection decides if a hit counts, poise decides what a counted hit does to the target.
Common questions
how does poise work in games
Every hit pushes on a hidden bar. Small hits leave the character acting, and when the bar is empty the character staggers and is open for a short time. The bar then waits and refills.
how do i stop stun lock in my game
Give the character a short brace after every stagger in which it cannot be staggered again, and let hits on a staggering character change nothing, so the stagger never gets longer.
how long should a stagger last
Start with about 1.2 seconds. Under a third of a second the player cannot use the opening, and over three seconds the fight feels already won.
what do i tell my ai to add poise and stagger
Paste this: Add a poise bar of 40. Hits wear it down, and it waits 2 seconds before it refills at 15 a second. At zero the character staggers for 1.2 seconds. Hits during the stagger change nothing, and a 2 second brace after it blocks a new stagger.
Where it comes from
We could not find a reliable origin for this one yet.
What was checked
- 14 tests pass on the reference code.
- The state diagram was checked against the code, at the default values and at every listed low and high value.
Your AI gets the code
Tested example code comes through the Spielerando connection, so your AI can use it right away. How to connect it