Quick answer: Confirm AbilitySystemComponent has bReplicates=true, GameplayCueManager initialized client-side, and the GameplayCueTag is present in your cue path scan.

A multiplayer MMO uses GAS gameplay cues for spell VFX. Caster sees their own VFX; nearby players don’t. Server triggers the cue, but simulated proxies miss it.

Replication Setup

AbilitySystemComponent->SetIsReplicated(true);
AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed);

Mixed means owner gets full data; simulated proxies get cosmetic data including cues. Set in component constructor.

Cue Tag Registration

Project Settings → GameplayAbilities. GameplayCueSet paths: ensure the path containing your cues is scanned. Add paths like /Game/Abilities/Cues/.

Without registration, the tag fires but no actor is spawned client-side.

Cue Triggers

// server-side, replicates to all
AbilitySystemComponent->ExecuteGameplayCue(CueTag, CueParameters);

// local-only (won't reach other clients)
AbilitySystemComponent->ExecuteGameplayCueLocal(CueTag, CueParameters);

Use ExecuteGameplayCue for events to replicate. Local variants exist for HUD/owner-only effects.

GameplayCueNotify Configuration

Your cue notify actor (BP_GC_Fireball, etc.) has:

Debug Console

showdebug abilitysystem
AbilitySystem.GameplayCue.PrintTagOnExecute 1

First shows live cues per ASC. Second logs each cue execution — check both server and client logs to confirm replication.

Connection Type

Listen Server: simulated proxies in the same process; replication is essentially in-memory.

Dedicated Server: simulated proxies receive via UDP; needs MinNetUpdateFrequency and NetCullDistance to ensure events reach them.

Verifying

Two clients connected, observe each other. One casts a spell; both see VFX. Server logs and client logs both show cue execution. Latency under target.

“Cues are cosmetic but replicated. Treat them like RPC events — ensure replication path is wired top to bottom.”

For high-frequency cues (autofire, particles per hit), batch through GameplayEvents instead — replication is more efficient than per-cue dispatches.