TAE event 1 AttackBehavior (window, BehaviorJudgeID)
→ BehaviorParam_PC row 100,000,000 + variation·1000 + judge (stamina cost, refId)
→ AtkParam_Pc row refId (hit shapes on weapon dummy polys, hit-stop, damage level)
+ EquipParamWeapon (base damage, scaling)
→ swept against the victim's hurt capsules (its ragdoll bodies)
→ parried? guarded? (flag 3 + angle) flicked? wall?
→ damage → poise → the victim's W_Damage* / W_GuardDamage* / W_GuardBreak / W_DeathStart, both sides hit-stop1When: the AttackBehavior window

a023_030000), 0.2 s apart in our engine.TAE event 1 AttackBehavior spans the active window, with fields AttackType (0 standard, 62 plunging, 64 parry), AttackIndex, BehaviorJudgeID and DirectionType. The R1 has one event at 0.467-0.6 s, judge 0. The same clip's flags say what else may happen and when data:
| Flag | Window | Meaning |
|---|---|---|
| 7 Disable Turning | 0-0.167, 0.4- | you can aim the swing only in 0.167-0.4 s |
| 87 Common Input Check | 0.333- | presses from here are kept guess |
| 4 Cancel – RH Attack | 0.667- | the next R1 may start (the chain goes 1 → 2 → 3 → 2 → 3…) |
| 26 Cancel – Dodge | 0.833- | a roll or backstep may start |
| 11 Cancel – LS Move | 1.067- | the stick may end the attack |
The heavy attack charges: AttackRightHeavy1Start_onUpdate switches to the uncharged end clip when R2 is released while SpEffect 100280 is on (TAE 67 sets it for 0.333-0.867 s).
Hold past that and the start clip plays on into its charged swing. The running attack is sprint R2 (a023_030600, a leaping slash), not R1.
2Which attack: BehaviorParam_PC
The weapon's behaviorVariationId (Longsword: 2300) picks a block of rows, and the event's judge picks one:
100,000,000 + 2300 × 1000 + 0 = 102300000, whose stamina is 20 and whose refId is AtkParam_Pc 2300000.
Weapons with no row for a judge fall back to their motion category's block, wepmotionCategory × 100. That's how the Ringed Knight Straight Sword swings
like a longsword: 113 of the 116 weapons without their own row 0 have one there guess.
3Where and how hard: AtkParam_Pc 2300000
| Field | Value | Meaning |
|---|---|---|
Hit0_DmyPoly1 / 2, Hit0_Radius | 100 / 120, 0.45 m | A capsule between two of the weapon's dummy polys: near the tip (y −0.802) and the hilt (0) |
Hit1_DmyPoly1, Hit1_Radius, hitType | 120, 0.2 m, 2 | A sphere at the grip: the shape that bounces off walls |
HitStopTime | 0.08 s | Both fighters freeze on contact |
damageLevel | 1 | The victim's reaction: small |
AtkPhysCorrection, AtkSuperArmorCorrection | 100 %, 100 % | Motion value and poise damage |
KnockbackDist | 0.6 m | Push-back, timed by KnockBackParam |


What gets hit: the character's ragdoll bodies, one capsule per major bone. They fit the body, sit exactly on the bind pose, and there's no other capsule set in the chrbnd. That they're the hurtboxes is still a guess: the exe's hit test isn't found.
The hit test
Not read yet: whether the sweep is continuous or per frame.
The hit test
Each tick the window is open, every hit shape is swept from where its dummy polys were last tick to where they are now (steps no longer than its radius) against the hurt capsules. The first contact is the swing's only hit.
4Damage, HP and stamina
HP and FP
CalcCorrectGraph 100 at Vigor (five breakpoints, each segment bent by an exponent): the Knight's 12 gives 454 HP. Graph 101 at Attunement 10: 93 FP.
Attack rating
110 × (1 + STR% × graph(13) + DEX% × graph(12)) = 124.8 guess at the formula, × the attack's motion value.
Through defence
Defence from graphs 102, 130, 131: the Knight's is 52.6. The share let through by attack ÷ defence is Elden Ring's curve ER, standing in: DS3's constants aren't in the exe.
Armour
Absorption as the share let through; the pieces multiply to 72.1 %. A Longsword R1 on a Knight: 124.8 × 0.698 × 0.721 ≈ 62. Eight hits kill.
Stamina lives in the character data module (+0xF0/+0xF4). SetStamina clamps it to [−60, max]: it goes into debt, so the action that empties the bar
still happens in full exe. Regen per second is rate × TAE 225 % × a modifier. The rate is 45 for players (a constant in the exe, not a param) and
staminaRecoverBaseVal (21) for enemies. TAE 225 is 0 % through every Longsword attack, 20 % while guarding and 100 % otherwise. Max stamina from END isn't found:
we use 85 + END guess.
DS3's tables and stamina rules. The defence curve and the AR formula are stand-ins until the damage maths is found in the exe (several dead ends are recorded).
5Poise is two systems
Toughness
What everyone calls poise. Players have 100; Cemetery hollows have 0. Every hit takes poise damage × the armour's rate (Knight set 75.1 %).
A timer refills it whole after 30 s. But it only stops a stagger inside a hyper-armour window: TAE 795 "DS3Poise", which also rescales poise by a ToughnessParam row.
Outside windows, every hit with a damage level staggers. Big weapons get their hyper armour from EquipParamWeapon +0x178 bit 0, set on exactly the greatswords, ultra greatswords, hammers, axes, clubs and greatshields exe.
Super armour
DS1's poise, kept in SprjChrSuperArmorModule. Max from NpcParam.superArmorDurability (Gundyr 185, hollows 0). Recovery 5 s × (1 + correction): 10 s for Gundyr.
At 0 it breaks and the enemy plays W_SABreak. A Longsword R1 breaks Gundyr in 14 hits exe.
Both traced in the exe and modelled. Open: what a holding window does to the damage level (the caller of 0x1409ee720).
6Guard, parry, flicks

- Guard: L1 plays GuardStart → GuardOn (looped) → GuardEnd as a half blend, the upper body over the legs' locomotion. TAE flag 3 "Guarding" spans start, loop and reactions.
A hit is guarded within
guardAngle(60°). The Knight Shield blocks 100 % of physical damage, and its stability 48 takes 23.4 stamina per Longsword hit, so four hits are blocked and the fifth breaks the guard. - Parry: the shield's weapon art,
SwordArtsParam91. Its clip has AttackType 64 "Parry" from 0.167 to 0.333 s. An attack that touches a character in that window is parried, unless itsattackBaseParrybeats the shield'sdefenseBaseParry. The attacker playsW_DamageParry. - Flicks: if the shield's
guardBaseRepel(50) is above the attack's flick power, the attacker bounces. The Longsword's is 66, so the Knight Shield never flicks it. The hollows' swings are 20, their thrusts 40.
7Bouncing off walls
About half of AtkParam_Pc's rows have a type-2 shape, almost always a small sphere at the grip. The blade's capsule (type 0) passes through walls, so a swing bounces only when your hands come within
0.2 m of a wall: you can swing along a wall with the blade in it. The script plays W_GuardBreakWall (a023_030150). The clang is the wall material's hit sound,
z0000000NN by its HitMtrlParam row: stone sparks, wood "iron-cut-wood". m40's hull of material 29 in front of the walls had to stop characters but not swords, so the swing reaches the cobblestone behind.
Enemies don't bounce: no wall shapes in their rows.
The shapes and sounds are DS3's. That any contact of a type-2 shape triggers the bounce is our reading of the names; the exe's wall test isn't read.
8Reactions, knockback, death
ExecDamage picks the clip by damage level (1 small, 2 middle, 3 large, 4 extra large, 5 push…) and side (left, right, front, back). Any level above 0 makes an enemy's AI throw its plan away.
Knockback pushes the victim KnockbackDist metres at full speed for KnockBackParam's ContTime, then slows over decTime, but only when the reaction clip doesn't move them itself
guess. Death plays W_DeathStart → W_DeathIdle, and enemies go limp at TAE 228 (ragdolls).
9In our engine
Our engine does the same param lookups, each fighter's numbers and what a hit does. Opponents are the hollows, Gundyr, or a practice target: a second Knight that idles, guards, attacks or parries every 2 s. A swing into an open parry window is parried; one flicked off a guard bounces its attacker. Hit-stop pauses both clips and their root motion while input is still buffered. A debug key draws the hit shapes (wall shapes yellow) and hurt capsules.
