Stun is the game's crowd-control status: while it is active the victim is locked in a "freeze" hit pose and cannot act. In the base game only enemies, one trick and one trap inflict it on the player; no hero move stuns, and the Stun Crystal throwable does not stun either (it only deals heavy weakness damage). There are six stun rows in the status table. They differ only in duration, how fast they build up, and whether they show an icon. It is one of the Status effects.
Overview#
- Effect. Each frame the stun is active, the code puts the victim into the Freeze hit state. This only happens if the victim is not already in a different hit reaction, or if it is already frozen. The stun does no damage of its own.
- Build-up. Most stuns need several hits. Each hit adds a fixed percentage to a hidden gauge, and the stun starts when the gauge reaches 100%. Until then the gauge drains a fixed amount per second.
- Duration. It counts from the moment the gauge fills (the timer actually starts 0.1 s later, so a 5 s stun lasts about 5.1 s). Hitting the victim again with the same stun while it is active resets the timer to full.
- Icon. Two variants are hidden (
IsShow0): they freeze you without showing a status icon.
Stun variants#
| ID | Designer label | Duration | Build-up per hit | Drain | Shown | Inflicted by |
|---|---|---|---|---|---|---|
| 10010 | 无表现通用晕眩 (generic stun, no visuals) | 5 s | 100% (one hit) | 7%/s | hidden | Two-Faced Man (双面人, model 20037): both gaze attacks (SkillData 1461, 1462). Also trick 10031, the small colossus ground burst (Traps and tricks) |
| 10028 | 无表现通用晕眩 | 7 s | 100% (one hit) | 7%/s | hidden | Fused Sprenger: transformation wail (SkillData 1397); Terror Obsession (model 20045): its stun move (SkillData 1677) |
| 10032 | 敲钟哥通用晕眩1 (bell man stun 1) | 5 s | 40% (3 hits) | 8%/s after 0.1 s | yes | Frollo: bell strike (SkillData 1292) |
| 10033 | 敲钟哥通用晕眩2 | 5 s | 30% (4 hits) | 8%/s after 0.1 s | yes | Frollo: four-hit bell combo, bell throws, upward and sweeping swings, jump attacks; the Noblewoman enemy (女贵族, model 20025): staff light/heavy attacks, normal and transformed (20 SkillData rows in total) |
| 10081 | 敲钟哥通用晕眩3 | 5 s | 100% (one hit) | 8%/s after 0.1 s | yes | Frollo: swung-bell toll (SkillData 1284) |
| 10112 | 敲钟哥通用晕眩2 / 黑精王眩晕 (Black Sprite King stun) | 5 s | 70% (2 hits) | 8%/s after 0.1 s | yes | Trap 10008 (TrapData row 8), used in the Treasure Thieves fight (the Black Sprite King) |
The "hits to stun" column assumes the hits land before the gauge drains. With an 8%/s drain after a 0.1 s delay, a single 30% hit fades after about 3.9 s, so Frollo's follow-up hit must land inside that window to stack.
Hidden mechanics#
- Blocking does not stop stun build-up. When a hit lands, the game skips its status only if the hit was blocked or parried and the status row has
GuardEnableset. Every stun hasGuardEnable= 0. So guarding Frollo's bell combo still fills your stun gauge, even though it stops the damage. See Guarding, Parry and counter and the general rule in Status effects#Resistance and immunity. - No resistance. The gauge gain is the raw
StackAddPervalue. No stat, resistance or difficulty setting reduces it (Status effects#Resistance and immunity). - Getting hit breaks the stun. When a victim leaves the Freeze state for any other hit reaction (a flinch, knockback, launch and so on), the game clears every stun on it at once. A follow-up attack therefore ends your stun early, though you still take that attack.
- One stun at a time. All six stuns are in the same family (
StatusType109). A stun with a different ID replaces the current one. If your current stun is already active, the new stun's build-up does not keep you frozen: the active stun is removed and the new one starts as an empty gauge with that hit's build-up. For example, Frollo's toll (10081) freezes you, and if a regular swing (10033) then lands, the freeze ends and you are left with a 30% gauge (the swing's hit reaction would end the stun anyway). - A half-built gauge carries over. If a different stun in the same family lands while the current one is still only a gauge (not yet frozen), the old gauge is moved onto the new stun and the new hit's build-up is added to it (
AddStatuskeepsGetStack()of the replaced status). Only an active stun loses its gauge (activation zeroes it). - Repeat stuns reset the timer. The same stun landing again while active resets its duration to full (
IsRefresh1). The trap stun 10112 is the exception: it hasExcludeOther1, so further applications are ignored while it is active. - The drain delay counts from the first hit. The short delay before the gauge starts draining (0.1 s for Frollo's stuns) is set when the gauge is created. Later hits do not restart it.
- Debuff rules apply. Stuns are flagged as debuffs. While Slightly Sweet Roots' Debuff Immunity is active (10068, 30 s; 10123, 300 s for the + version), no stun can be applied, and eating the roots removes a current stun. See Shields and protection#Other protection.
- Invincibility does not cancel a stun. Norwood's 1.5 s counter invincibility blocks damage but does not touch status logic (inferred: the stun code never checks it; compare Status effects).
Related#
- Poise and stagger: stagger is a different system, based on the toughness and weakness gauges. Stun is a status.
- Status effects#The build-up gauge: the gauge rules that stun follows; Status effects#Families and replacement explains the replacement rule used here.
Sources#
reference/lua_src/gamedata/structdata/exportdata/es_statusdata.lua, StatusData rows with StatusId 10010, 10028, 10032, 10033, 10081, 10112 (Time, StackAddPer, StackSubPer, StackSubDelay, IsRefresh, ExcludeOther, IsDebuffer, IsShow, StatusType, GuardEnable).- SkillData rows 1461, 1462 (HeroId 20037), 1397 (20034), 1677 (20045), 1292, 1275-1285 (20028), 1183, 1184, 1188, 1189 (20025):
StatusId1. TrapData row 8 (TrapId 10008):StatusId110112. TrickData 10031 (StatusId110010,Damage_1..4900-1575); WeaponData ItemId 30006 (Stun Crystal,StatusId10,WeaknessSub50). luascript/logic/status/status105.lua:11-19: forces the Freeze hit state.luascript/logic/status/statusbase.lua:5-52, 81-99, 209-232, 461-496: drain delay, refresh, build-up and expiry.luascript/logic/player/animalbase.lua:5248-5351(AddStatus: family replacement, ExcludeOther, debuff immunity),7506-7527(statuses on hit; blocked hits keep the status unlessGuardEnable> 0),7920-7934(OnHitReset: leaving Freeze clears all stuns),5597-5621(debuff cleanse).
Categories:Status effects