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

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.