I’m trying to use EQS gameplay tag conditions versus some actors in my scene.
The actors in the scene have a variable of the type “Gameplay Tag Container” and contain various tags imported from a data table in the project settings.
My EQS check doesn’t pick up these tags.
I have noticed that IGameplayTags Interface needs to be added to the class defaults when querying using C++ but I cannot find that interface option when editing my class defaults of a blueprint actor or character etc.
The tag system would infinitely help modulate my AI and query system where units need to query based on the tags of TypeAttack or TypeDefensem, rather than hierarchical queries containing search for actors of each child class MeleeDefender, RangedDefender, Griffon Defender… although that seems where im heading if i can’t get this game play tag interface to work.
Haven’t used this before but I had a quick look at the source code:
Seems like you can’t add it in Blueprints. Your best bet is to make a base class which all your AI inherits from in C++ and make sure that class implements the interface.
Otherwise you could make an actor component instead of a base class if you need a more flexible system but I’m not sure if that would screw up any of the EQS stuff.
Ultimately seems like you’re going to need to use C++ to fix this.
I think jumping into c++ to make a single child of character and then reparenting my current classes to that will be quick enough to get this system back on track.
Different AI may have different EQS ranges and rules around picking the furthest enemy or closest etc. But generally the tags is where time is saved, rather than repeatedly creating something likes this for every enemy i’d ever add to the game:
^ Imagine this with different classes in each query as part of a single query, which at present is called somewhat often to keep enemies on track, but with the above implementation / workaround, wouldn’t performance just tank?
You need to “implement” all the functions in that file by copy and pasting them them into your character’s header file. Then let visual studio add them to your source file by hovering the function and pressing (ctrl+,).
If it takes too long you might want to manually do it. Hopefully that should fix it.
I gave the C++ inheritance a shot but had no luck with EQS, i’m now able to call blueprints with the functions in the new character class but I was really looking to just make the EQS Gameplay Tags work!
This is going to help a lot with the game i’m working on and I really appreciate the help, now my minions can focus certain types and not others, next step is scoring with prioritisation / order of tags in individual ownedtags arrays… this could potentially be a custom EQS test that I develop in C++ over the coming weeks.
Wait… is it still an issue? Is Add gameplay tag not working in blueprints?!
I have similar problem I have a gameplay tag container and it has a length of 0 no matter how many tags with what authority and how I add
This was helpful for getting behavior tree decorators working with gameplay tags. I’m not sure why Rennjan has you declare both a gameplay tag container AND a gameplay tag. When I did my behavior tree stuff, it only recognizes the container version. Do I need the singular GameplayTag for anything or was Rennjan just using that to test with or compare old tags???