Replicated actors wait until initial replicated properties are read and applied to call BeginPlay (from PostNetInit), and this is usually where the actor's components have BeginPlay called as well. However, for replicated components dynamically spawned after the actor is initialized, these components will call BeginPlay when they are registered with the world (from OnSubobjectCreatedFromReplication in UActorChannel::ReadContentBlockHeader) before their initial replicated properties are processed and applied.

Steps to Reproduce

Create a replicated actor component with replicated properties.
Spawn an instance of this component on an actor that has already been initialized, changing some replicated properties.
Expected: The new replicated component will spawn, read in the initial replicated properties, then call its BeginPlay.
Actual: The component will spawn, call BeginPlay, then apply the initial replicated properties.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-132464 in the post.

Login to Vote

CreatedOct 21, 2021
UpdatedJan 28, 2022