Perfect Dodging
Contents
OverviewDodge TimingAttack TriggersPerfect Dodge RewardsWings of FlameClass Perks That Interact with Perfect DodgeWeapon Perks Triggered by Perfect DodgeNon-Melee Attacks That CAN Be Perfect DodgedAttacks That Cannot Be Perfect DodgedGame FilesOverview
A perfect dodge occurs when two conditions are met simultaneously:
Player side: The player is in the first 0.2 seconds (0.13s Substantial+) of a dodge animation (the
perfectDodgeDurationwindow)Attacker side: The incoming attack has
canTriggerPerfectDodge = Truein its damage settings
If both conditions are true when the attack connects, the game registers a perfect dodge; grants a gunstrike mark on the enemy, triggers slow-motion, engagement rewards, and any equipped perk effects.
Perfect Dodges always grant a gunstrike mark on the enemy.
Dodge Timing
Base Timing Values
Every dodge type (Dash, Roll, Dodge, SecondRoll) across all presets shares identical base values:
Property | Value | Description |
|---|---|---|
| 0.2s (200ms) | Window at the START of dodge where perfect dodge can trigger |
| 0.495s (495ms) | Total invulnerability frames during the dodge |
Difficulty Scaling
Difficulty | Perfect Dodge Window | Assault Window (+50%) | Invulnerability |
|---|---|---|---|
Minimal / Average | 0.200s | 0.300s | 0.495s |
Substantial / Ruthless / Lethal / Absolute | 0.130s | 0.195s | 0.322s |
All PvE difficulties from Substantial onward use the same -35% modifier; the perfect dodge window shrinks from 200ms to 130ms. Assault's passive +50% perk brings this back up to 195ms, making Assault the most forgiving class for perfect dodges at high difficulty. Invulnerability also drops from ~0.5s to ~0.3s for all classes, meaning mistimed dodges leave you exposed sooner.
Minimal/Average
Every dodge (perfect or not) grants 0.495s of invulnerability during which all damage is ignored (except dmg_type_redirect and dmg_type_player_perk). The perfect dodge window is at the beginning of the dodge. You need the attack to land within the first 200ms after pressing dodge. The remaining 295ms of the dodge is still invulnerable but won't register as "perfect."
Substantial/Ruthless/Lethal/Absolute
Every dodge (perfect or not) grants 0.322s of invulnerability during which all damage is ignored (except dmg_type_redirect and dmg_type_player_perk). The perfect dodge window is at the beginning of the dodge. You need the attack to land within the first 0.130s after pressing dodge. The remaining 0.192s of the dodge is still invulnerable but won't register as "perfect."
Both values are subject to PERFECT_DODGE_WINDOW and DODGE_INVULNERABILITY_WINDOW modifiers from perks and difficulty settings.
Startup Delay (Vulnerability Window)
There is a brief startup delay at the beginning of every dodge where iframes are NOT yet active. Attacks landing in this startup window deal damage and can knock the player out of the dodge animation, despite the player having already pressed the dodge input and entered DODGE body state.
Dodge type | Startup delay (worst-case observed) |
|---|---|
Ground dodge | ~0.015s (15ms) |
Jetpack dash | ~0.035s (35ms) |
This corresponds roughly to 1-2 animation frames at 60fps before the invulnerability layer activates.
Attack Triggers
Every attack has a canTriggerPerfectDodge flag in its damage settings. If False, the attack cannot trigger a perfect dodge regardless of player timing.
Attacks that CAN trigger perfect dodge include:
Standard melee attacks from most enemies
Zoanthrope Beam Attack
Neurothrope Beam Attack
Ravener Unburrow AoE
Attacks that CANNOT trigger perfect dodge include:
Helbrute shock wave AoE
Trygon boss body slam AoE and ground burst AoE
Hormagaunt and Tzaangor melee strikes
Grab Attack Perfect Dodge Whitelist
Grab attacks have a separate whitelist of enemy archetypes whose grabs CAN trigger perfect dodge:
Archetype | Can Perfect Dodge Grab |
|---|---|
| Yes |
| Yes |
| Yes |
| Yes |
Only these grabs can be perfect-dodged. All other grabs (Hormagaunt pounce, Hive Tyrant whip grab, etc.) cannot trigger a perfect dodge.
Perfect Dodge Rewards
Gunstrike
A successful perfect dodge always triggers a gunstrike mark on the enemy.
Slow-Motion (Time Warp)
A successful perfect dodge triggers the PerfectDodge time warping preset:
Time slows to 0.3x speed (30% of normal) almost immediately
Slow-motion lasts approximately 0.25 seconds
Then ramps back to 1.0x normal speed
Engagement Token Activation
Perfect dodges activate the SkillfulEngagementReward system for 1.5 seconds (same as Perfect Parry and Gunstrike). This temporarily modifies enemy attack token distribution, affecting how aggressively enemies attack during the window. Repeated perfect dodges restart the 1.5s duration.
Wings of Flame
The Wings of Flame class perk on assault sets the jetpack-specific perfect dodge window to 999 seconds, but is still capped by the jumppack dodge animation. This alters the perfect dodge logic for jumppack dashes to:
A perfect dodge occurs when two conditions are met simultaneously:
Player side: The player is in the jumppack dash animation
Attacker side: The incoming attack has
canTriggerPerfectDodge = Truein its damage settings
If both conditions are true when the attack connects, the game registers a perfect dodge and grants a gunstrike mark on the enemy.
Players will want to control the timing and direction of their jumppack dash such that the enemy attack connects with their hitbox during the dash animation. Dashing through enemy attacks is generally advised.
Class Perks That Interact with Perfect Dodge
Perk | Class | Trigger | Duration | Effect |
|---|---|---|---|---|
Adrenaline Boost | Assault | Perfect dodge, Perfect Parry, or perfect block | 10s | Stagger immunity ( |
Class Passive | Assault | Passive (always active) | Permanent | +50% perfect dodge window (0.2s -> 0.3s) |
Wings of Flame | Assault | Passive | Permanent | Dash deals damage + always counts as perfect dodge |
Aerial Grace | Assault | Perfect dodge while Jump Pack active | 10s | +30% firearm, +30% melee |
Commitment | Assault | Perfect dodge while Jump Pack active | Instant | Restores Jump Pack energy |
Heightened Vigour | Tactical | Perfect dodge, Perfect Parry, or perfect block | 10s | Stagger immunity ( |
Heightened Vigour | Tactical | Perfect dodge, Perfect Parry, or perfect block | 10s | 10% more Melee and Gunstrike Damage |
Thrill of the Fight | Vanguard | Perfect dodge, riposte, or perfect block | 5s | -20% damage taken |
Upper Hand | Vanguard | Perfect dodge, Perfect Parry, or perfect block | 10s | Stagger immunity ( |
Honed Reactions | Vanguard | Health < 50% | While low | +100% perfect dodge window (0.2s -> 0.4s) |
Evasion | Sniper | Perfect dodge | 5s | Applies |
Weapon Perks Triggered by Perfect Dodge
Perk | Duration | Effect | Found On |
|---|---|---|---|
+25% firearm damage | 10s | SCALEDAMAGEAMOUNTFROMFIREARM | Bolt Carbine, Plasma Exterminator, Plasma Incinerator, Meltagun (Mastercrafted/Relic) |
+35% headshot damage | 10s | SCALEHEADSHOTDAMAGEFROMFIREARM | Stalker Bolt Rifle (Relic) |
-25% weapon spread | 10s | FIREARMSCALESPREAD | Occulus Bolt Carbine (Mastercrafted) |
+25% fire rate | 10s | FIREARMFIRERATE | Meltagun (Relic) |
Instant heat vent | Instant | FIREARMHEATRESET | Heavy Bolter (Mastercrafted) |
+10% damage radius | 10s | Charged plasma shots | Plasma Exterminator (Relic) |
+120% melee damage (stacks 3x) | 20s (resets on hit) | Max +360% melee | Combat Knife Heroic ("05") |
Non-Melee Attacks That CAN Be Perfect Dodged
Most ranged/ability damagers do not set canTriggerPerfectDodge and therefore cannot be perfect dodged. The following non-melee damagers explicitly opt in:
Damager | Damage Type | Enemy | Attack |
|---|---|---|---|
|
| Zoanthrope | Psychic Scream (sweeping beam) |
|
| Neurothrope | Psychic Leech (5s beam) |
These are the only non-melee attacks in the game that can trigger a perfect dodge.
Attacks That Cannot Be Perfect Dodged
Every melee strike defaults to canTriggerPerfectDodge = True (from melee_damage_settings.sso). The following attacks explicitly set it to False - you cannot perfect dodge these regardless of timing.
Fodder Enemies (ALL strikes disabled)
Hormagaunt - every strike: BasicAttack, Combo1, Combo2, Heavy, SprintHeavy
Tzaangor - every strike: Light1, Light2, Light3, Light3fromidle
No fodder melee attacks can be perfect dodged. This is a deliberate design choice - swarm enemies are meant to be dealt with through parrying or AoE, not perfect dodge farming.
Boss/Elite Strikes
Hive Tyrant:
Strike | Layer | Notes |
|---|---|---|
WLDs, WRHs, WLHs, Whip360, WhipGrab | mainDamage | All whip attacks. Pervasive + TOXIC |
HornStrikeStart, HornStrikeRun | mainDamage | Charge phases. Pervasive |
THeavy, pTHeavy | extraDamages only (outer AoE) | Main hit CAN be perfect dodged |
Tyranid Prime:
Strike | Layer | Notes |
|---|---|---|
Thrust | mainDamage | Pervasive |
RazorDiveFront/Left/Right | mainDamage | Pervasive, aerial dives |
DiveToGround | mainDamage + AoE splash | Both layers |
FlyingAround | mainDamage | While airborne |
DodgeBack | mainDamage + AoE splash | Pure knockback |
WhirlwindStart | mainDamage | Pervasive |
Carnifex:
Strike | Layer | Notes |
|---|---|---|
JumpAttack | extraDamages (outer AoE, radius=5) | Main hit CAN be perfect dodged |
Rage_JumpAttack | extraDamages (outer AoE, radius=8) | Main hit CAN be perfect dodged |
Lictor:
Strike | Notes |
|---|---|
FlankingLeft, FlankingRight | Guardbreak flanking attacks only. All other Lictor strikes CAN be perfect dodged |
Helbrute:
Strike | Layer | Notes |
|---|---|---|
Taunt stomp | extraDamages (AoE, radius=6) | 0 HP damage, pure stagger |
CrazedCombo_Run | mainDamage | Body-check during crazed charge. Pervasive |
Ravener:
Strike | Layer | Notes |
|---|---|---|
UnBurrow | extraDamages (outer AoE, radius=8) | Inner AoE CAN be perfect dodged |
Trygon:
Strike | Notes |
|---|---|
BioElectricBurst | mainDamage. Pervasive |
Ground Burst AoE | Extra damage, radius=6. Pervasive |
Game Files
Dodge presets:
ssl/locomotion/dodge/dodge_presets_library.ssoCharacter dodge:
ssl/locomotion/character_dodge.sso,character_dodge_sequence.ssoMarine base server:
ssl/characters/player/marine/pc_marine_base_server.clsMarine PvE server:
ssl/characters/player/marine/pc_marine_pve_server.clsMarine base authority (client):
ssl/characters/player/marine/pc_marine_base_authority.clsPerk factory:
ssl/player/perks/perk_server_factory.ssoDifficulty presets:
ssl/game_mode/difficulty_system/difficulty_presets_library.ssoTime warping:
ssl/common/time_warping/time_warping_system.ssoAttack tokens:
ssl/ai/enemy_selection/attack_token_settings_library.ssoGrab attack constrainer:
ssl/smarts/local_animated_constraint/grab_attack_constrainer.ssoMelee damage settings:
ssl/melee/settings/melee_damage_settings.sso