while working with Gameplay Effects and GameplayCues, we noticed that a specific combination of settings results in Gameplay Cues not working as expected:
If a gameplay effect is set to have a period, any gameplay cue that is associated with that gameplay effect will be immediately removed again and not persist for the duration of the gameplay effect. As an example, when a fire effect is applied to an object that applied periodic damage as long as it is active, an associated gameplay cue with fire particles will not be visible.
The gameplay effect seems to be immediately removed again. This seems to be the issue also observed here:
To avoid using Full replication mode, a workaround that we have been using so far was to split gameplay effects that have a period into two separate effects: One main state that is associated with the gameplay cue and a linked periodic effect that has tag requirements on the main state effect. This setup works, but is a bit cumbersome.
Is this the expected behavior how gameplay cues would work for periodic effects? Or is this potentially an already known issue?
This is definitely not expected behavior, thanks for pointing it out! We’ve got a few edge cases around mixed replication gameplay cues and your workaround is exactly what I would have suggested as a stopgap until this can be sorted properly.
This is on my list of to-dos for sure, but there are a few other features and bugs that are taking priority at the moment.
I was following article for GAS optimizations, where for ASC on sim proxies only particular attributes and tags are replicated via a struc on character, which seems like a great optimization, and when I implemented code from the article, my looping gameplay cues stopped working, because ActiveGameplayEffects are no longer replicated to all and this triggers this exact issue with removal of looping cues by code in the ASC and CueManager.
It would be nice if it was fixed.
===
Even when I separate effects as proposed above, looping GCN support in IAbilitySystemReplicationProxyInterface is not supported: gcn is not removed in the end.