# Earliest Point to Reliably Acquire Data from Reliable RPCs

**URL:** <https://forums.unrealengine.com/t/earliest-point-to-reliably-acquire-data-from-reliable-rpcs/373010>\
**Category:** Multiplayer & Networking\
**Tags:** gamemode, Networking, playercontroller, gameinstance, rpc, unreal-engine, question\
**Created:** [October 11, 2016, 5:01am UTC](https://forums.unrealengine.com/t/earliest-point-to-reliably-acquire-data-from-reliable-rpcs/373010 "2016-10-11T05:01:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ScottMichaud](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ScottMichaud](https://forums.unrealengine.com/u/ScottMichaud)\
**Post date:** [October 11, 2016, 5:01am UTC](https://forums.unrealengine.com/t/earliest-point-to-reliably-acquire-data-from-reliable-rpcs/373010/1 "2016-10-11T05:01:30Z")

</div>

Hello. Are there any events that occur before a player is spawned that wait for RPC calls to be completed before firing?

My specific case needs to use data sent from my subclass of the client’s PlayerController in the my GameMode’s ChoosePlayerStart\_implementation() function, based on data from the client’s GameInstance. I guess this question can be more general, though, for other use cases.

Is there some RPC handshake point that we can guarantee all reliable RPCs (particularly Server and Client RPCs on PlayerControllers) will be done by? Or are we supposed to let UE4 do its thing, which will automatically spawn the player, then despawn what UE4 created and respawn the player with the appropriate data when we finish doing our thing?

Thanks.

---

<div class="post-metadata">

**Author:** ![ScottMichaud](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ScottMichaud](https://forums.unrealengine.com/u/ScottMichaud)\
**Post date:** [October 18, 2016, 3:25am UTC](https://forums.unrealengine.com/t/earliest-point-to-reliably-acquire-data-from-reliable-rpcs/373010/2 "2016-10-18T03:25:06Z")

</div>

Apparently no such time exists. In fact, BeginPlay() on APlayerController and its subclasses could even occur before RPCs are transmitted. Call them on APlayerController::PostLogin() (or later) and respawn the player pawn if spawning requires server knowledge.

---

<div class="post-metadata">

**Author:** ![Mingah](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Mingah](https://forums.unrealengine.com/u/Mingah)\
**Post date:** [April 3, 2017, 2:22pm UTC](https://forums.unrealengine.com/t/earliest-point-to-reliably-acquire-data-from-reliable-rpcs/373010/3 "2017-04-03T14:22:10Z")

</div>

I think in your scenario you would need to send the GameInstance data when the client logs on to the server. This way you can spawn based on that data.

> **[A new, community-hosted Unreal Engine Wiki](https://forums.unrealengine.com/t/a-new-community-hosted-unreal-engine-wiki/141494)**
>
> After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — ue4community.wiki! You will be able to find content from the official...
