GameplayCueNotifies OnRemove event not firing on clients

Hello everyone,

while testing the possibilities of the GameplayAbilitySystem I ran into a problem with GameplayCues in a networked game.

I have the ASC on an actor, initialized as owner and avatar. The actor has set its owner to the clients PlayerState (so properties and rpcs can be replicated to the owning client specifically).
ASC is set to minimal replication and the GameplayCue is set in a GameplayEffect with a simple duration.

Abilities, Effects and Attributes are working fine and as expected, but neither the Static GameplayCue Notifies nor NotifyActors fire the OnRemove event on the actors owned by the clients PlayerState. If I do not set the owner of the actor at all or the owner is the PlayerState of the listen servers client, OnRemove is getting called properly on each client. The server always calls OnRemove properly. (The actor is of course spawned on the server, owner is set on server too, the actor is properly replicated and the GameplayEffect is applied on the server.)

I used GitHub - tranek/GASDocumentation: My understanding of Unreal Engine 4's GameplayAbilitySystem plugin with a simple multiplayer sample project. as reference project and the issue is also appearing in the SprintAbility executing a GameplayCue which spawns particle effects on the player characters feet. On the server, everything is fine, on client, the effect does not get removed, because OnRemove gets not fired.
(Run Under One Process must be disabled to happen.)

This project also has a good documentation and it is mentioned there, that the calls of OnActivate, OnExecute and OnRemove are handled by multicasts internally. But as I searched the code, only the first two are handled by multicasts on the ASC, the Remove is handled by custom replication logic in FActiveGameplayCueContainer as a comment in the code mentions.

Maybe someone had this issue and can explain whats going on. For my project the GameplayCues are not really necessary, I mostly need the Attributes and GameplayEffects, but understanding what is going on there would be nice.

Thanks for your help!

Did you ever find the solution?

We had this problem and it turned out to be that we had set the Ability System Component Replication mode to Minimal.