Multicast call on server during BeginPlay leads to different replication initial chunk

Hi UE team,

We have a following issue, on server during BeginPlay of the character we have called multicast rpc (wasn’t a made decision, applied gameplay effect which called gameplay cue which led to multicast). And that led to the situation where we have received on a client BeginPlay of the replicated character with Role = SimulatedProxy, while without multicast call it is AutonomousProxy right away on BeginPlay.

That all happened because multicast rpc opens a channel and gathers data for sending right away at the moment of the call even if that call happened during object construction (IsActorBeginningPlay = True).

We have removed that call for us and added ensure for such case for now as that breaks our systems as we expect on client on BeginPlay to have fully prepared character.

What is the general rule or recommendation there in UE? Is this behavior considered normal or that should be flagged and warning/error is some sort?

Thanks for the answer!

Steps to Reproduce

  • Run client-server game
  • On server for a character which is going to be possessed by this client during BeginPlay call any multicast RPC
  • Observe that with that on client during BeginPlay of that character role was not yet set up which is different from the case without multicast RPC

Hi,

This is a known issue, but I unfortunately can’t provide an estimate as to when a fix may be made: Unreal Engine Issues and Bug Tracker (UE\-155934)

In the meanwhile, if you need the pawn’s role to be set to “autonomous proxy” during the client’s BeginPlay, our recommendation is to delay calling the RPC, as you’ve done here.

Thanks,

Alex

Thanks for that asnwer, it helps understanding the intention.

Hi,

You’re very welcome, and if you have any further questions, please don’t hesitate to reach out!

Thanks,

Alex