Gameplay Abilities System- GameplayEffect handles mismatch

Hi all,

I’ve recently been integrating the Gameplay Abilities System into my listen server multiplayer game and it’s been going well until now.

I’m working on a buff bar UMG component to show all current gameplay effects on the target. I bound a function to the ability system’s delegate for when an effect gets applied to self (which it seems every effect application method goes through eventually, as far as I can tell)…

OnGameplayEffectAppliedDelegateToSelf.AddUFunction(this, FName(“OnEffectAppliedToSelf”));

But when a new effect is applied and the delegate is broadcast, the FActiveGameplayEffectHandle it provides can’t be found using GetAllActiveGameplayEffectHandles().

Also, I’m manually adding passive abilities to the character in BeginPlay, which can be found using a query but not by handle. It seems the handle provided does not match the handle being stored.

Any help would be greatly appreciated.


After digging further, it looks like the problem is that the Multicast Delegate “OnGameplayEffectAppliedDelegateToSelf” has the correct param data when being broadcast, but when being received the params are not the same. The handle has a completely different number and the EffectSpec is basically a fresh struct full of nulls and defaults. Maybe I’m binding incorrectly or the code is out of date? This is how I’m binding:

OnGameplayEffectAppliedDelegateToSelf.AddUFunction(this, FName(“OnEffectAppliedToSelf”));

You should ask on Discord for this.
You will find more active people for this topic :smiley:

Thank you Elvince. I didn’t realise there was a Discord. I’ll give that a try :slight_smile: