'Shattering impact' doesn't apply to enemies who aren't directly hit

Issue Description:
‘Shattering impact’ doesn’t apply to enemies who aren’t directly shot. When I shoot Rumbler directly to a target, armor reduction works, but if the target is only hit by explosion, armor reduction isn’t applied.

Steps to Reproduce:

  1. Wield Rumbler
  2. Shoot it to the ground
  3. Watch it is applied.


Player ID:

Reproduction Rate:
Constant (100%)

Upload Supporting Evidence:
Indirect hit

Direct hit


I’m perplexed why stuff that’s LUA script/table(data) driven isn’t hotfixed a la BL2.

Looking at the LUA files we see templates.weapon_trait_bespoke_ogryn_thumper_p2_targets_receive_rending_debuff.check_proc_func = CheckProcFunctions.on_ranged_hit
for the Rumbler.

Which is simply

CheckProcFunctions.on_ranged_hit = function (params)
	return params.attack_type == attack_types.ranged

There’s also a separate

CheckProcFunctions.on_explosion_hit = function (params)
	return params.attack_type == attack_types.explosion

There are other functions ANDing stuff, like ranged crits.
Why is there no compound
return (params.attack_type == attack_types.ranged OR params.attack_type == attack_types.explosion)
for the Rumbler Shattering Impact?

Seems like silly oversights like this that greatly affect gameplay could and should be hotfixed over-the-air without official patches.

1 Like

I am not that familiar with LUA, but I even can fix this issue easily from seeing your LUA code in 5 minutes.

(I am not that familiar with Lua, since I used it twice for making total war war hammer mod, and civ6 mode, and it’s long years passed to figure structure of LUA out again.)

But I think the main reason they don’t fix this issue is they are having vacation still. Anyway thx for sharing datamined code.

I don’t begrudge them their vacation, I’m sure they’ve been under dev crunch time hell for a long time now, and that’s very detrimental to anyone’s health.

However stuff like this could have and should have been spotted and hotfixed weeks ago in 5 minutes; i feel like there’s an artificial barrier to fixing things like these and I’m not sure the lead game designer(s) appreciates the negative impact is has on the game.

These are boolean checker functions.
The problem i see is that “params.attack_type” is probably not exactly the same as “attack_types.ranged”.
So becuase this checker function is returning “false” the rending effect does not apply for the Rumbler granade on direct hit.

The information is limited and i’m not a developer myself, but i find it fun to solve problems.
So… after reading what you shared, my amateurisch conclusion is that i find three scenarios likely.

  1. The function that checks if the passed parameter is a ranged attack type isn’t passed a value that corresponds to a ranged attack. So the boolean checker returns “false” because the passed parameter isn’t exactly the same value as “attack_types.ranged”.

  2. Both of these functions is passed the same parameter, even if the events of the ranged hit and the explosion should be completely separate. Hence only the function that checks if the attack type is an explosion attack type returns “true”.

  3. The array that holds attack_types is not include all attack types, and the attack type the Rumbler granade has on its direct hit exist, but isn’t included in the array that the function is using to check passed parameter.attack_type.

…I should really learn leave my work at my workplace hehe.

Not sure I’m following exactly, I think e
but I edit-replied in the other thread you started Blessing Shattering Impact does not work correctly - #6 by gpkgpk