Using GAS’s “Add Loose Gameplay Tags” node adds one “instance” of this tag per execution. So if we add this tag 10 times to the actor, we have to remove it 10 times as well to actually remove it.
How can I ensure only one of these instances exists at a time?
use Count param on deletion with value = infinity (99999 or any other number you’ll never reach)
use SetLooseGameplayTagCount() with NewCount equal to 1 and 0 instead of add & removal
Generally i suggest to take a look at ASC header, as it usually have all the answers you’ll need. And if you need something deep - you always may delve into implementation