Different pawns for VR/Non-VR players (multiplayer)


I’m working on a little hobby project where a VR player should have a different pawn than a non-VR player. I’m doing this all entirely in blueprint.

I have this working locally with game mode by overriding SpawnDefaultPawnFor and doing a switch on GetHMDDeviceName. Based on if a HMD is present or not I spawn the appropriate pawn.

The problem I encounter is with multiplayer (not dedicated server). In my tests the “server” is the computer with the HMD. It spawns the correct pawn and the player uses the VR character.

Unfortunately when the non-VR player connects it spawns them in as the VR pawn as well, instead of the non-VR pawn.

Pretty sure I am missing something basic/fundamental to cause this. I am assuming as the “server” is seeing and HMD present so the connecting client “sees” it as well. Could that be the cause?

Rather than spawn a different pawn based on HMD presence is it possible to do so just based on if the player is a remote client? In my use case the VR player will always be the server, so anyone connecting remotely is the non-VR player.

Any ideas?

Yes you can determine if the device is a remote client by using either the Is Server node or the Has Authority switch node (since ALMOST always the authority device is the server. Almost).

Detecting HMD, I’m not sure why the client thinks it has it, unless you are not specifying the client’s local player and just grabbing the first Pawn you can find.