Quick answer: Unreal Iris GameplayTag added at runtime missing on a late-joining client? Tags propagate via initial state; runtime additions need delta replication enabled on the tag container.

Server applies a damage tag. Existing clients see it; late-join client doesn't.

Use FGameplayTagContainerNetSerializer

Custom serializer that handles delta + initial state. The default container replicates atomically; late join misses runtime additions.

Or attach via component

A GameplayTagComponent with its own replication picks up the late-join state cleanly.

Verify on PIE-with-extra-client

Open PIE, add a second client mid-game. Tags applied before the second connect should appear; if not, replication is incomplete.

“Initial state and runtime delta are different replication paths. Tags need both.”

For competitive games, audit every replicated GameplayTagContainer. The late-join bug class is hard to spot in playtests.

Related reading