Context
AbilitySystemComponent has a virtual function
virtual void OnTagUpdated(const FGameplayTag& Tag, bool TagExists);
that gets called when a gameplay tag gets added or removed, so whenever a gameplay tag's count changes states between zero and non-zero.
Problem
A licensee has reported that this function is not called when setting a tag's count directly via
void UAbilitySystemComponent::SetLooseGameplayTagCount(const FGameplayTag& GameplayTag, int32 NewCount);
while it does get called via other APIs like Add/RemoveLooseGameplayTagCount(). I confirmed both those observations.
Suggestion
SetLooseGameplayTagCount() should cause OnTagUpdated() to be called when the call causes the tag to change states between present and not-present.
Non-fatal, just for reference:
> [Inline Frame] UnrealEditor-GASRepro53.dll!UAbilitySystemComponent::SetTagMapCount(const FGameplayTag &) Line 622 C++
[Inline Frame] UnrealEditor-GASRepro53.dll!UAbilitySystemComponent::SetLooseGameplayTagCount(const FGameplayTag &) Line 687 C++
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-233798 in the post.