← Core Game Mechanics Perfect Dodging Open Calculator →

Perfect Dodging

Author:IncognitoIncognito

Overview

A perfect dodge occurs when two conditions are met simultaneously:

  1. Player side: The player is in the first 0.2 seconds (0.13s Substantial+) of a dodge animation (the perfectDodgeDuration window)

  2. Attacker side: The incoming attack has canTriggerPerfectDodge = True in 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

perfectDodgeDuration

0.2s (200ms)

Window at the START of dodge where perfect dodge can trigger

invulnerabilityTime

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

TyrLictor

Yes

TyrRavener

Yes

ChsOccultTerminatorMelee

Yes

ChsVortexBeast

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:

  1. Player side: The player is in the jumppack dash animation

  2. Attacker side: The incoming attack has canTriggerPerfectDodge = True in 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 (HEAVY_HIT_POISE_SENSITIVITY = -100%), knockback prevention

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 (HEAVY_HIT_POISE_SENSITIVITY = -100%), knockback prevention

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 (HEAVY_HIT_POISE_SENSITIVITY = -100%), knockback prevention

Honed Reactions

Vanguard

Health < 50%

While low

+100% perfect dodge window (0.2s -> 0.4s)

Evasion

Sniper

Perfect dodge

5s

Applies CamouflageMedium (invisibility). 30s cooldown

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_damager

dmg_type_psionic

Zoanthrope

Psychic Scream (sweeping beam)

neurothrope_psychic_leech_damager

dmg_type_psionic

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.sso

  • Character dodge: ssl/locomotion/character_dodge.sso, character_dodge_sequence.sso

  • Marine base server: ssl/characters/player/marine/pc_marine_base_server.cls

  • Marine PvE server: ssl/characters/player/marine/pc_marine_pve_server.cls

  • Marine base authority (client): ssl/characters/player/marine/pc_marine_base_authority.cls

  • Perk factory: ssl/player/perks/perk_server_factory.sso

  • Difficulty presets: ssl/game_mode/difficulty_system/difficulty_presets_library.sso

  • Time warping: ssl/common/time_warping/time_warping_system.sso

  • Attack tokens: ssl/ai/enemy_selection/attack_token_settings_library.sso

  • Grab attack constrainer: ssl/smarts/local_animated_constraint/grab_attack_constrainer.sso

  • Melee damage settings: ssl/melee/settings/melee_damage_settings.sso

SM2 Melee Calculator Calculate exact damage for any weapon, variant, and perk combination against any enemy on any difficulty.
Open Calculator →