Gameplay tag / Damage event / Can´t get tags from projectile

Hey all. I have gameplayTagContainer variable in my projectile. And a small function that calls apply damage in which i set “self” like damage causer. In my actor i have event “AnyDamage” but “damage causer” from it didn’t parse that GameplayTag info.
My debug is:

  1. Print string “Self” name in projectile and “Damage causer” in actor return same name, so its like same actor
  2. Print string all tags “for loop” in my projectile show me that tags was founded correctly
  3. “Get Owned Gameplay Tags”-“Break container return” 0 array length and “get debug string” not printing anything.
    Basically I want to send from projectile/damageCauser DamageType tag for calculating resistant in my actor BP

does Projectile_BP implement the GameplayTagAssetInterface?

is the GetOwnedGameplayTags function defined in the Projectile_BP?

Thank you for reply. As you see on second screen on the right there are tag container with three tags in it, so yeah its in projectile, and print string, well, print it in log:)
And for define, i realy not sure what you saying about, looks like its more C++ stuff. Get Owned Gameplay Tag is built-in function not changed there anything and use it like any other node. I just check if it could return tags from my “Instigated by” node, which is my controller and it didnt work. So i make a cast to my controller ant plug it out to “Get…Tags” but it didnt work. Then i “Get Tag container” variable and print string it, and now its showing. So i like bypass that “Get … Tags” function but casting all its not what im looking for from tag system.

in C++, you have to inherit your actor from IGameplayTagAssetInterface, make a member variable of type FGameplayTagContainer, and you have to define the GetOwnedGameplayTags function to return that GameplayTagContainer.

Hey there again, i double check it, dont have any Tag interfaces that i can attach to projectile or pawn, maybe miss some checkbox in settings, will look forward in this direction.

if you want to use the GetOwnedGameplayTag, your actor will need to be written in c++.

if you want to check for gameplay tags using just blueprints, don’t use the GetOwnedGameplayTag function, and instead make your own blueprint interface, which returns gameplay tags, and make actors that inherit that interface.