From my UDN response:
That looks like a bug, but is actually a design decision that was made back in 2016. The changelist description:
GameplayEffects - still invoke the OnStackChange delegates even if stack count doesn't change (e.g, we are at max stack count and refresh). However, don't call UpdateAttributeAggregators in this case since this can cause wrong values to be calculated if there are attribute mods that are dependent on its owning attribute (E.g, +MaxHealth magnitude = 10% MaxHealth).
So I've tried to reproduce this, and there's certainly a bug here right now. But the correct behavior isn't obvious to me. Steps below assume you're on UE5.4 (right now the only way to get there is to use ue-main as your branch).
Right now, the Client and Server go out of sync (can verify with the Gameplay Debugger using shift-').
However, if I remove the StackCount Changed check, the variables will remain in sync, but the MaxHealth will grow indefinitely.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-209218 in the post.
0 |
Component | UE - Gameplay - Gameplay Ability System |
---|---|
Affects Versions | 5.4 |
Target Fix | 5.6 |
Created | Mar 7, 2024 |
---|---|
Updated | Sep 30, 2024 |