Hi, I am making a game that is utilizing Unreal’s GAS system to implement multiplayer. The intended behavior is that a GA will add some gameplay tags to the activation owning actor upon activation, then remove the tags when the GA is done. The GA is locally predicted, but the logic that deals with adding and removing tags is handled locally per machine. Here is the networking policies setup:
However, sometimes when the client uses a GA, tags are either removed then added, or added then removed an additional time–this is the unintended behavior.
Here are some examples. The log prints every time tags are added or removed, as well as everytime a GA is used. Below is the intended behavior.
Note that the yellow text are logs generated from the client machine calling the GA, and the green text are generated from the server replicating the GA. Next is the unintended behavior:
The highlighted logs are the unintended behavior. In this case the tags are removed and then re-added. However, sometimes tags are added first then removed.
Additional details: this only happens when the client is the one calling the GA on local prediction policy. It doesn’t happen when the server is the one initially calling the GA. It also doesn’t happen on the server initiated policy. Also, this happens at various ping levels after testing using NetEmulation.PktLag, even at 0 ping. I use Unreal 5.3.2.
Thank you very much in advance for anyone taking their time to look at this.