It seems as though calling a multicast RPC during BeginPlay on the server will cause the new actor to finish spawning on the client before applying any initial replicated data, such as the actor's Role.
When first connecting, the pawn's role will be correct during its BeginPlay on the client, perhaps due to the initial BeginPlay being dispatched from AGameStateBase::OnRep_ReplicatedHasBegunPlay on the client.
The reliability of the multicast did not appear to affect the behavior, and the issue does not seem to occur when calling a client RPC.
Create a pawn where the server calls a multicast RPC (either reliable or unreliable) from its BeginPlay. Have the server then destroy and restart a player's pawn.
Expected: the client that owns the pawn will call BeginPlay with a role of autonomous proxy
Actual: the pawn's role during BeginPlay will be simulated proxy
See linked UDN for more info.
How does TextureRenderTarget2D get TArray<uint8> type data?
Why does the REMOVE method of map container remove elements have memory leaks?
How do I set a material as a post-processing material?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
UMG RichText not appear image when packaged
How to delete some elements correctly when deleting an array loop?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-155934 in the post.
2 |
Component | UE - Networking |
---|---|
Affects Versions | 5.0 |
Created | Jun 6, 2022 |
---|---|
Updated | Sep 28, 2022 |