How to use Environment Query System with Custom Gameplay Tags? (Container Variable)


A while back I posted about how to implement custom gameplay tags into a Character class in C++ Here:

Thanks for the help on that one! After that was working I was able to use EQS checks against the opposing “faction” and check for their owned tags like so:


We can edit this container array for checking Versus Gameplay tag names defined in the game, however, I cannot use a custom container in my data table as seen here:


Is there a way to push my custom EQS related gameplay tags from the target tags (I can only focus X and Y but not Z) into the EQS query setup?

If not I will have to create a new EQS for each NPC unit type in my game, and that just makes it all take a little longer, would be nice to clarify if this is possible!

Cheers & Peace!

Heya, I didn’t find a way to do this.

My research led me into finding that

  1. In order for the EQS to use a custom container for the Tag check, it would need to see a variable or “parameter” from somewhere
  2. Because the EQS is ran from a Behaviour Tree the Tag container would need to be an Object Type Blackboard key which is then fed into the parameters of the EQS query


In order for the EQS query to accept the tag container as a parameter inside the Behaviour tree, the EQS source code would need to be edited to support the parameter inside the GamePlayTag Checker parts of that script, and any other related scripts.


This may actually determent my attempt at implementing faster AI using EQS and small behaviour trees with few tasks, but I “could” include a task after an EQS returns a list of any object with gameplay tags of “enemy” for example, and then sort that list in a for loop task using the new 4.16 available gameplay tag queries / nodes:


These are a few of those.

Let me know if this is a good approach to battles which may contain upwards of 200 active combatants attacking each other like so