Environmental Query system (EnvQuerySystem) not running all filters before scoring.
According to the documentation: https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/ArtificialIntelligence/EQS/EQSNodeReference/EQSNodeReferenceTests/
"Filtering is done before scoring to avoid calculating the score on filtered out items."
But in changelist:
The code was changed to run trying to run the most expensive filter last after scoring (the changelist says its fixing jira ticket (jira UE-69990), but I dont think there is any way for me to get visibility into that issue).
In our game we have some eqs that look as follows:
GameplayTagFilter (cost low) PathfindingScore (cost high)
When auto sorting is enabled, the order of tests becomes
PathfindingScore (cost high) GameplayTagFilter (cost low)
Because there is only one filter and the code now has no consideration for cost of scoring.
I've solved it in the short term by authoring the eqs as:
PathfindingScore (cost high) GameplayTagFilter (cost low) GameplayTagFilter (cost low)
So the ordering becomes:
GameplayTagFilter (cost low) PathfindingScore (cost high) GameplayTagFilter (cost low)
But that is less than ideal because it requires custom eqs authoring and its wasted work.
It would be useful to understand the original bug that was trying to be solved, and then we can author code to support both cases (probably by not setting a HighestFilterCost if all the filtering costs are low).