Quick answer: Override GetRepGraphPolicy() on the actor (or add it via AddDependentActorMappings) so it ends up in the right replication node. Increase NetCullDistanceSquared if cull-distance is hiding it.
A networked game using the Replication Graph reports certain actors not appearing on clients. Owners see them on the server, but remote clients receive no replication. The graph silently skipped them.
Diagnose with Console Commands
ReplicationGraph.ListNodes
ReplicationGraph.PrintRelevantActors
List shows what nodes the graph has. PrintRelevant shows what each connection sees. Compare missing actor against output — absent means it’s not in any node.
Causes
- Not added to a node: an actor with no override is added to the spatialization grid by default; subclasses may bypass.
- NetCullDistanceSquared: spatialization uses this for visibility. If small, far clients don’t see it.
- Not relevant:
AActor::IsNetRelevantForreturns false. Custom relevance can hide actors. - bAlwaysRelevant + not in always-relevant node: the graph routes such actors elsewhere; verify your routing policy.
Fix: Add to Always-Relevant Node
void UMyReplicationGraph::RouteAddNetworkActorToNodes(const FNewReplicatedActorInfo& Info, FGlobalActorReplicationInfo& GlobalInfo) {
if (Info.Actor->IsA(AMyImportantActor::StaticClass())) {
AlwaysRelevantNode->NotifyAddNetworkActor(Info);
return;
}
Super::RouteAddNetworkActorToNodes(Info, GlobalInfo);
}
Subclass UReplicationGraph and route to the right node. Always-relevant skips spatialization.
Fix: Increase Cull Distance
void AMyActor::BeginPlay() {
Super::BeginPlay();
NetCullDistanceSquared = FMath::Square(50000.f); // 500m
}
Default 75m is small for outdoor games. Set per-class as needed.
Verifying
Run dedicated server + client at varying distances. Print relevant actors confirms the actor lives in a node and is replicated to expected connections. Movement and property changes propagate.
“Replication Graph is high-performance but explicit. Actors need a node home; without one, they vanish.”
For tournament games where bugs are critical, add per-actor logging in dev builds — trace replication paths to verify expected actors are routed.