• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

PC Blocking zeds cannot accrue any Knockdown, Stun, Stumble or Freeze affliction power.

While a zed is blocking, the CanDoSpecialmove test in ProcessSpecialMoveAfflictions of KFAfflictionManager.uc never passes, stopping most afflictions powers from being applied at all.

This means the AdjustAffliction function in KFPawn_Monster.uc is never even run to apply the 0.2* AfflictionModifier for most zed blocking with these affliction types.



An additional issue is that the shot that triggers a block does not get it's damage adjusted but does get it's affliction power tested/adjusted.

When a shot lands that triggers a block, the order of events is:

AdjustDamage called from TakeDamage of Pawn.uc
MyKFPawn.DoSpecialMove with SM_Block called from NotifyTakeHit in KFAIController.uc
AfflictionHandler.NotifyTakeHit called from TakeDamage of KFPawn.uc

This means the damage is calculated before the block, but the affliction is calculated after the block.


These issues are particularly noticeable when attacking scrakes, as a single shot often does enough damage to enrage, triggers a block, doesn't apply any affliction, then the scrake enrages instantly cancelling the block anyway.



I reproduced these issues by creating a custom weapon with enough damage to trigger blocks (61 on 1p scrake) and a custom damage type that does 15000 or so freeze power.
I then used this weapon on scrakes (spawning a new one each shot) until a block was triggered.
When the block chance triggered, the scrake could not be frozen (even two consecutive shots of 61 damage and 15000 freeze power would not freeze if the first triggers a block. The second shot enrages the scrake which cancels the block and allows the 3rd shot to freeze instead).

The same occurred when testing with a bloat, so the issue is not unique to scrakes.
 
  • Like
Reactions: Arkadeivitch
Oh yeah, i remember this, it was there for a long time, accompanied with countless "Scrake vs Crossbow stun" debates.

TWI even tried to fix it by introducing 0.2s delay before ZED had been considered as blocking, presuming that whole system worked but incap resistance applied too soon (instantly) for not getting stun to work, but this wasn't really the case.

I think TWI need to make the block move override-able with these moves, at least back in time it worked form me when i made a SC with custom block move that would allow it to be overriden by stun.

Hope they'll notice your post, last couple of responds i saw made by them were telling that "this is intended and block not guarantees incaps" (namely stun).
 
Upvote 0
That's just it - it's never even applying the incap resistance for Stun/Freeze/Knockdown/Stumble. It's checking if it can play those animations (which it can't while blocking) and skipping the rest.

This is why gorefiends never stumble from firebug's heatwave when blocking, despite 1000 stumble modifier.

Can also test with xbow with zed-time ranger skill - 101 stun power becomes 505 in zed-time, then you'd *think* it should get reduced to 101 again by blocking scrake but instead does nothing.

The instant blocking thing is annoying as it stands (gorefasts blocking freeze nades infront of them the instant it explodes etc), but seems flawed in that it reduces the affliction but not the damage like you'd expect from a blocking state. I guess the 0.2s delay you mention might apply to the damage reduction specifically?


Issue also affects battering ram swat and heatwave firebug.
 
Last edited:
Upvote 0
Delay i'm talking about is an artifical pause between when block kicks in and ZED become considered as blocking (namely timer 'Timer_EnableBlocking' starts in SpecialMoveStarted of KFSM_Block and turns on ZED's bIsBlocking).

This bool serves for purposes for both - reducing damage (this one supposed to be working) and incap powers.

This timer did not exist back in time and ZEDs used to get marked as 'in blocking state' the moment they were getting hit. Later TWI added it presuming that instant blocking is a source of all evil, but as you say it never really was the case.
 
Upvote 0
Kittenmittens;n2316202 said:
Stuns and other incap thresholds should be able to be reached reliably while a zed is not blocking.
Okay, thanks. Zeds can be burned but not frozen when already blocking - odd but at least predictable once known.

The next question/problem is: When is a zed not blocking?

A freshly spawned zed with no other interference is capable of blocking the incap of the first big hit it takes. Such a zed was essentially spawned always blocking, it just didn't know/show it until the shot was taken.
This makes it impossible for the player to know if a shot will have it's incap effect blocked or not in advance because there is no indication that a zed's next block chance roll will happen to pass.

In the code, it sets bIsBlocking to true after a short time (0.2s by default) which is what ApplyBlockingDamageModifier and AdjustAffliction checks for, but the other incaps check for the blocking move itself which is instantly set.
A zed will take full affliction power from one affliction type like EMP/Fire/Bleed but zero from another like Freeze/Stumble/Stun during this initial block time.


Because this happens prior to everything else for the block, players will complain about RNG/broken weapon effects when everything else such as the damage taken seem to indicate that a block isn't active yet. Even more so when a zed triggers another state (such as enraged) within the same gameplay tick and so the zed never even plays the block animation at all.


Here are a couple of examples with a custom modified weapon that does 15000 freeze power on every shot.
You'd think zeds wouldn't have a chance to block the freeze, but they still do:
https://youtu.be/Z7-Xw85cD2E
https://youtu.be/SBSnNfXI92U
By contrast, a weapon with 15000 burn power will always apply the full burn power on the first shot and for 0.2s after (It doesn't get reduced by the difficulty settings at all multiplier until later in the block animation, by which point the effect has already applied)


Freezethrower altfire causing reactive blocks that are never seen:
https://youtu.be/s_x91lgp5kQ
The gorefiends get decapitated in a single shot with more than enough freeze power, but only sometimes get their headless bodies frozen because they appear to still instantly block reactively to a one-shot kill.

This causes big hit weapons like RPG/Crossbow/Railgun to not incap big zeds on the first hit purely based on the block chance.
Since these big zeds then enrage due to the damage being full and not being incapacitated, the player never even sees a single frame of the block animation.
This makes nearly all the incapacitation skills misleading as untouched zeds have an innate chance to ignore any incapacitation power if it just happens to do enough damage.
Examples with RPG knockdown:
https://youtu.be/PZo2Nm2icSc
https://youtu.be/reRqCov-Eiw

One extreme case is a sharpshooter with the Zed-Time Ranger skill: 'During zed-time, your headshots with perk weapons will stun any zed'.
This causes the crossbow to have 501 stun power, but still has the same 50% chance to not stun a HoE 6man scrake as outside of zed-time.

Similar with the innate 600 stumble power of the railgun or 340-740 stumble power of the RPG-7.
Offperk railgun will sometimes stumble a scrake on the first shot and sometimes not - With no indication to the player that the scrake was even ever blocking because it blocks and unblocks within a single tick:
https://youtu.be/c2J8tbG3f1s

By contrast, the double barrel shotgun does more than enough damage to apply a block, but since it's damage is applied per pellet it can build up/trigger the incapacitation first and guarantee a stumble.
If it did all the damage/incap in a single pellet, it would cause a block chance first and make the weapon far worse for takedowns.


Additionally, explosions and melee bashes (possibly due to bExtraMomentumZ=True ) seem exempt from triggering a block chance.
As far as I can tell, this might be due to AddVelocity in Pawn.uc setting the physics to PHYS_Falling which means blocking cannot take place in the same frame.
Bashing stumbles, but blunt impacts cause block: https://youtu.be/8g13ikzW71s

Explosion combined with blunt impact causes block, but explosion alone doesn't:
https://youtu.be/L3JkoQ72ysw
This one means it can be better for crowd control to intentionally miss your target. Very counter-intuitive.


This also means stun/flashbangs always work:
https://youtu.be/mX2nXMGdIL4

But freeze grenades based off Freeze instead of Explosion damage type still have an 85% chance to not effect gorefasts/gorefiends on HoE:
https://youtu.be/iDB5nC5Gehc

And when combined with very minor pre-damage, can also fail to freeze big zeds that clearly weren't blocking before the grenade went off:
https://youtu.be/Zhl_-3c9ewM


Another oddity I noticed is that zeds appear to only reactively block if the damage instigator is infront of them, but it counts the player as the instigator and not the grenade/projectile.
As an example, if you're behind a zed and throw a freeze grenade infront of him, he can't block.
If you're infront of a zed and throw a freeze grenade behind him, he can block it.
This might be intended (Zed sees you throw the grenade) but seems odd he wouldn't just block when you throw it in that case instead of waiting until the instant it explodes before reacting.
 
Last edited:
Upvote 0
@Kittenmittens

I'm not sure if TWI's QM is still aware of this issue.
If not i'd like to warm up this topic again, as it is extremly frustrating to play with high incap weapons especially against Scrakes.

I have already created some posts in the steam forums bug tracker: https://steamcommunity.com/app/232090/discussions/1/1843493219426540286/

I've already quoted Kittenmittens there in relation to this Topic here, where he said:
"It is actually design that blocking prevents these incaps. Stuns and other incap thresholds should be able to be reached reliably while a zed is not blocking."

Which i have absolutly no problem with.

My concern is, that the Scrake and only the Scrake (because in his case the stuns matters the most) sometimes doesn't play his block animation uppon recieving damage or being aimed at, while the game gives him those incap resistances.

Therefore it always feels really cheap when you have to flip a coin each time you try to stun a scrake with for example the crossbow or the ballistic shock railgun.
 
Upvote 0