Get Owned Gameplay Tags doesn't work

Hello, I have started with a project integration of the Gameplay Ability System and it already works quite well. I was able to integrate it with my character and execute Abilities. I have also included GameplayTags in the dependencies. However, for some reason I don’t get any GameplayTags displayed.

My approach is as follows: At Beginplay an event is fired, which applies a gameplay effect to the owner. This gameplay effect contains all the tags that the owner should have by default. In my case, these tags are permissions, such as Can Move. Here is a screen of the gameplay effect that is applied:

But my problem is the following: The Ability Component contains the IGameplayTagAssetInterface which provides a BP Function “Get Owned Gameplay Tags”.

I am desperate, no matter what I try this function does NOT give me gameplay tags. What am I doing wrong? Please please, help me.

I also tried using RPCs to pass it through, but with no success at all. It doesn’t print anything out, not serverside, not clientside.

Thank you very much.

Are you applying Gameplay effect on server or client?

Oh mate, I got it. My Gameplay Effect was set to “instant” which does not apply gameplay tags. I had to set it to “infinite” to apply the granted tags. It works now. Yayyy

Ok I solved it by myself. For everyone else with this issue:

If you want to apply gameplay tags with an Gameplay Effect, you have to set it’s duration policy to “infinite”, otherwise it will not apply the gameplay tags.

2 Likes

OMG This answer was exactly what I needed. Been racking my brain for hours trying to figure out why tags aren’t applying in a GE. Thank you so much!

I have never been more thankful for someone bothering to come back and answer their own question lol

Can someone at Epic tell us if this is by design or if this is a bug, because if it is by design, that’s a flaw, why then apply a duration set tag if we can’t fetch the tag then? In our case we have to put the tag via an infinite GE and then run a separate timer to remove the tag then which is cumbersome…

EDIT : It’s a bug, to reproduce it, put the gameplay effect duration policy to has a duration, it will not appear with GetOwnedGameplayTags(), put to infinite, recompile, reset to has a duration and then it will appear with GetOwnedGameplayTags() UE 5.4.1