This results in being able to dodge into a Mutant to not get grabbed (needs to be timed for when collision happens on the server, not for lag compensation’s extra collision check).
In scripts\extension_systems\behavior\nodes\actions\bt_mutant_charger_charge_action.lua
-- function BtMutantChargerChargeAction._check_colliding_players
if is_dodging then
local distance = Vector3.distance(pos, POSITION_LOOKUP[hit_unit])
if distance < dodge_radius then
scratchpad.dodged_targets[hit_unit] = true
break
end
end
The distance check is inverted there, it should be checking distance > dodge_radius for adding a player to the dodged_targets lookup (targets who are fully ignored for the rest of that charge action).
The lag compensation extra collision check does it correctly in comparison:
-- function BtMutantChargerChargeAction._update_charging
if is_dodging then
if distance <= dodge_radius then
self:_hit_target(unit, hit_unit, scratchpad, action_data, t)
end
elseif distance < LAG_COMPENSATION_CHECK_RADIUS then
self:_hit_target(unit, hit_unit, scratchpad, action_data, t)
end
As it’s checking with distance <= dodge_radius, in reverse of what the initial collision check is intended to check. Pox Hounds also do it properly too.
Lag compensation for Mutants on its own is supposed to make things more tolerable and lenient, but it was never intended to be as lenient as it is due to this issue, where you’re able to dodge in place with and with no dodge charges, and still not get grabbed..
Steps to Reproduce (Required):
Play with low ping, or as non-remote player (as the bugged check applies regardless of being a remote player or not), to make this as easier to reproduce as possible.
I wonder if that also explains hound interactions I’ve had where they should have pinned me but just grazed me instead dealing that annoying 0 damage hit of theirs?
If you mean getting pushed, which for some reason shows blood around your screen? No, that means you weren’t the main target so you’re susceptible to being pushed by the hound leaping around.
They are capable of pouncing on players who aren’t their current target, with the same collision checks, but they usually push them out of the way instead, it’s very specific.
So yeah, Hounds are working as intended and have a proper dodge collision check for the initial server collision. This issue with Mutants is unrelated. They don’t necessarily share the code that handles this stuff, they do it in their own ways.
That said, one thing that could be addressed for Hounds is that, if colliding and pouncing on a player who isn’t their current target, they don’t check if said player is pushing to try and prevent it, that’s normally only checked on the main target. As unusual as it might be, it’s a bit unintuitive and unfair to be pushing in time in those cases and still get pounced.
That wouldn’t explain those cases where I very clearly am the main target and even fail to try and dodge, but they still miss somehow. Don’t have any footage but hopefully you get the idea of the phenomenon I’m talking about.
Maybe they just have a super secret jank value, and when it’s 1 they defy the laws of physics.
If the hound didn’t push you, you were likely the main target, yeah. Thing is, what you’re describing could easily be the lag compensation measures they have.
When the hound freezes in midair, it means it collided with a player on the server and set a lag compensation timer (based on ping, up to 0.2 seconds, and an extra 0.1 seconds are added if you’re blocking). If said player moved enough on the server to not be in front, or be a bit away enough from the hound, for when the timer expires, the pounce will fail.
It’s not some “super secret jank value” or “physics jank”, please stop chalking things up to stuff like that.