Whip Warrior
Enemy Stats
Damage Sensitivity
| Category | Multiplier |
|---|---|
| Headshot | 2x |
Health by Difficulty
| Difficulty | Max HP | Incap HP | Revive HP | Instakill Dmg |
|---|---|---|---|---|
| Minimal | 77 | 15 | 15 | 116 |
| Average | 123 | 25 | 25 | 185 |
| Substantial | 223 | 45 | 45 | 335 |
| Ruthless | 308 | 62 | 62 | 462 |
| Lethal | 308 | 62 | 62 | 462 |
| Absolute | 308 | 62 | 62 | 462 |
Incapacitation
| Stat | Value |
|---|---|
| Incap HP | 20% of Max HP |
| Revive HP | 20% of Max HP |
| Duration | 10s |
| Incap Limit | 2 |
| Instakill Dmg | 150% of Max HP |
Summary of Tactics and Strategy
Melee
The Whip warrior prefers to stay some distance away from the player. This is because its highest priority attack--the Whip Pull--is only an option when it is between 10-13m away from its target. This unit can utilize the whip combo--its second highest priority attack--at a minimum distance of 6m. Staying within these ranges invites this unit to throw out Whip Pulls and Whip Combo attacks on cooldown.
However, when between 0-6m, this unit can only perform sword attacks. These are easily parried and only ever come in sets of one or two. With that said, understand that Sword Spin does hit quite hard and is not entirely mitigated by hyper armor. Getting close and staying close will generally be the recommended positioning. By doing this, the unit's demand for attention is reduced and it's offensive capability is limited to a single, telegraphed swing.
Ranged
This unit is sensitive to being aimed at. If the targeted player aims towards this unit, it will dodge. Dodges have a 1.5s cooldown, meaning that after any dodge the player will have an opening to fire. Due to the periodic mobility and other unique properties of dodge, it is best to bait the dodge first by aiming without shooting, and open fire once the dodge has been committed. Exploiting that opening at a distance above 13m is the safest method with ranged.
If using a ranged weapon while within whip range, be prepared for the dodge to also come with a counterattack. This counterattack ignores the token system and is a forced sequence (although the exact counterattack has some element of randomness) regardless what other enemies are attacking the player.
Lastly, please note that this unit is only coded to dodge based on the input of the targeted player. Any other player who does not currently have aggro on this unit is free to aim as they please without causing it to dodge.
Special Note About Dodges
It is worth noting that the game considers Under-Aim dodging and Recovery dodging as two separate abilities, each with their own separate cooldown. This is evident in the flowchart when one notices that the Under Aim system and the Recovery system are occurring in tandem with each other, not one at a time.
The consequence of this is that a player may create a situation--usually where the player is out of range from this unit's counterattack--wherein the unit will activate its recovery dodge and subsequently activate its under-aim dodge within 0.8s. In this unique situation, the whip warrior is vulnerable for 50% less time than when compared to the more usual dodge pattern of 1.5s intervals between dodges.
Enemy Behavior
Game File Flowchart
Root (Infinite Loop)
├── Task System (interruptible)
└── Aggro / Idle (Behavior Selector - strict priority)
├── While Enemy set → Combat
│ ├── Under-aim detection (0.1-0.2s reaction → sets NeedDodge)
│ └── Recovery / Combat (BhvNodeActiveSelector - strict priority)
│ ├── Recovery (UtilityMonitor - interrupts combat on threat)
│ └── Attack / Movement (BhvNodeActiveSelector - strict priority)
│ ├── Knockback Pull (SPECIAL token, 10-13m, 5s cooldown)
│ ├── Whip Attack (HEAVY token, 6-15m, 3s cooldown)
│ ├── Melee Attack - Heavy (HEAVY token, 0-6m, requires BlueAttacksAllowed)
│ ├── Light Attack (LIGHT token, 0-5m, fallback)
│ └── Stand By (approach, strafe, taunt, wait 2-3s)
└── While Enemy not set → IdleUnit-Specific Recovery
It is recommended to first read the generalized document on the Recovery System. The following information covers this unit's particular recovery options, not an explanation on recovery itself.
Threat evaluation is based upon whichever player is dealing the most damage. Then the distance to that player is checked:
≤3m: Treats as melee recovery
>3m: Treats as range recovery
In practice, range and melee recovery are the same for the whip warrior: it will perform a dodge and then counterattack, if able. The difference between these two recoveries is simply the dodge direction, as ranged recovery will cause a lateral dodge.
Dodge and Counterattack Stats
Property | Value |
|---|---|
Token | ForceTemporaryToken |
Dodge Damage Resist | DODGE body state active during dodge: 0.7s near-invulnerability |
AimDodge Cooldown | 1.5s |
Endurance | Dodge only--counterattack is not protected by Endurance |
During the 0.7s animation, this unit becomes fully immune to ranged damage, and will only receive 10% melee damage. There are a few niche exceptions to this rule. Most notably are the Assault class's Ground Pound and Wings of Flame dash, which will do full damage during the dodge animation.
Counterattack Selection (Behavior Selector)
Default token:
BhvNodeUtilitySelector: chooses between 3 options based on weighted randomness utilizing BasePriority
Option | BasePriority | Specific Conditions |
|---|---|---|
Knockback Pull | 1.0 | Must be within 10-13m; must be off cooldown |
Whip Attack | 0.8 | Must be within 6-13m |
Sword Spin | 0.9 |
|
Heavy forced token:
BhvNodeUtilitySelector: chooses between 2 options based on weighted randomness utilizing BasePrioritythis only occurs if the default token cannot be accessed for whatever reason. this bypasses the token system and forces a heavy token which is immediately consumed by one of the below 2 options
Option | Specific Conditions |
|---|---|
Whip Attack | Must be within 6-13m |
Sword Spin |
|
Stun Durations
Source | Stagger Duration (seconds) |
|---|---|
Parry | 3.0 |
Grenade | 2.0 |
Heavy Hit | 0.5 |
Stagger | 1.5 |
Attack Catalog
Whip Pull + Sword Combo
The signature attack — whips the player from range and pulls them in for a sword combo.
Property | Value |
|---|---|
Token | SPECIAL |
Cooldown | 5s |
Range | 10-13m |
BasePriority | Highest |
Angle | Must face targeted player within 75° |
Sequence:
Sprint toward enemy until within 13m
Rotate to face (75° threshold)
Whip Pull strike — pulls the target, max 1 target
If hit confirms, then proceed to sword slash (light)
Sword Spin
Whip Combo (4-attack Whip Flurry)
A multi-hit whip combo at mid-range.
Property | Value |
|---|---|
Token | HEAVY |
Cooldown | 3s |
Range | 6-15m |
BasePriority | Second |
Angle | Must face targeted player within 90° |
Full combo sequence:
WhipFlurry 1: parryable, but parry does not cancel rest of combo
WhipFlurry 2: parryable and will cancel combo if parried
WhipFlurry 3: parryable and will cancel combo if parried
WhipFlurry 4: parryable and will cancel combo if parried
Note: there exists a condensed version of this combo wherein the unit will only execute WhipFlurry 1. The game files call this the "light version" of this attack. To be clear, "light" here is not referring to the token required or the style of attack; it is used purely to distinguish between the full combo and this partial combo.
Sword Combo (2-attack)
Close-range bonesword strikes. This is the same sword combo that the unit will perform if the Whip Pull attack successfully lands, however, this is done without the preliminary whip attack.
Property | Value |
|---|---|
Token | HEAVY |
Cooldown | 4s |
Range | 0-6m |
BasePriority | Third |
Full combo: Sword slash → Sword spin
Note: there exists a condensed version of this combo wherein the unit will only execute Sword Spin. The game files call this the "heavy version" of this attack. To be clear, "heavy" here is not referring to the token required or the style of attack; it is used purely to distinguish between the full combo and this partial combo.
Light Attack (Sword Slash only)
A lighter version of the melee attack for when other attacks are on cooldown.
Property | Value |
|---|---|
Token | LIGHT |
Range | 0-5m |
BasePriority | Lowest |
Attack Properties
Strike | Armor Pips Removed | Guardbreak | Parryable | Heavy Hit | Affects Movement Despite Hyper Armor | Indicator | Additional Notes |
|---|---|---|---|---|---|---|---|
Whip Pull | 2 | No | No | 1x (Special) | Yes | Orange | Unparryable, pulls target |
Sword Slash | 1 | No | Yes | 1x | No | None | |
Sword Spin | 2 | Yes | Yes | 2x | Yes | Blue | Hardest hitting attack |
Whip Combo 1 | 1 | Yes | Yes | 1x | No | Blue | Parryable, but does not break combo upon parry |
Whip Combo 2 | 1 | No | Yes | 0x | No | None | |
Whip Combo 3 | 1 | No | Yes | 0x | No | None | |
Whip Combo 4 | 1 | No | Yes | 0x | No | None |
Heavy Hit Column: 0x, 1x, and 2x imply the severity of the attack's effect on player movement.
0x attacks will not cause the player to lose control of the character
1x attacks will cause the player to briefly lose control over the character; with hyper armor active, these get downgraded to 0x
2x attacks will cause the player to greatly lose control over the character; with hyper armor active, these get downgraded to 1x
special attacks will always cause the player to lose control over the character regardless of hyper armor
Enemy Attack Names: an Editorial Note
Certain attack names in this document have been changed so that the average player can easily understand which attack is being referenced; should one be so inclined to investigate on their own, one may see naming discrepancies between this document and the game files (ex: Sword Slash is actually called SwordCombo_1). No other information about the attacks has been altered.
Game Files
Client Pak (client_pc/root/mods_source/ssl/)
Client class:
characters/tyranids/npc_tyranid_warrior_whip_client.clsWeapon desc:
weapons/melee/weapon_descriptions/melee_weapon_descs/tyranid_warrior_whip_desc.sso
Server Pak (server_pc/root/mods_source/ssl/)
Server class:
characters/tyranids/npc_tyranid_warrior_whip_server.clsBehavior tree:
characters/tyranids/tyranid_warrior_whip/tyranid_warrior_whip_behaviour.ssoKata - Knockback Pull:
tyranid_warrior_whip_kata_knockback_pull.ssoKata - Whip Attack:
tyranid_warrior_whip_kata_whip_attack.ssoKata - Melee Attack:
tyranid_warrior_whip_kata_melee_attack.ssoKata - Dodge and Attack:
tyranid_warrior_whip_kata_dodge_and_attack.ssoKata - Block and Attack (unused):
tyranid_warrior_whip_kata_block_and_attack.ssoRecovery:
tyranid_warrior_whip_recovery.ssoRecovery - Melee:
tyranid_warrior_whip_recovery_melee.ssoRecovery - Range:
tyranid_warrior_whip_recovery_range.ssoRecovery - Priority Threat:
tyranid_warrior_whip_recovery_priority_threat.ssoSpatial queries:
spatial_query_tyranid_warrior_whip_melee_dodge_position.sso,spatial_query_tyranid_warrior_whip_range_dodge_position.sso