Description

On the client, NotifyBeginPlay is triggered via AGameStateBase::OnRep_ReplicatedHasBegunPlay. However, if a replicated actor is waiting on its initial replicated state to be received and applied (bActorIsPendingPostNetInit), it will return early from AActor::DispatchBeginPlay. Later, in UNetActorFactory::PostInit, bActorIsPendingPostNetInit is set to false, and AActor::PostNetInit is called, which handles calling DispatchBeginPlay for the newly initialized actor.
However, UNetActorFactory::PostInit does not call PostNetInit for statically placed actors. This means that if a statically placed actor applies its initial state after OnRep_ReplicatedHasBegunPlay is called, it will not call BeginPlay on the client. If the priority of the actor is increased such that it applies its initial state before the GameState, it will call BeginPlay as expected when OnRep_ReplicatedHasBegunPlay is called.

Steps to Reproduce
  • With Iris enabled, create a replicated actor with a low net priority (e.g. 1.0), and place it in the map
  • Play as a client, and observe that BeginPlay is called for it on the server but not the client

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-357736 in the post.

0
Login to Vote

Backlogged
ComponentUE - Networking - Iris
Affects Versions5.8
CreatedDec 11, 2025
UpdatedJan 29, 2026
View Jira Issue