[ALMP] Asymmetrical Local Multiplayer Template

While working on a asymmetrical VR game I noticed many people can’t find any decent tutorials or spend a lot of time gathering info bit by bit. So, I decided to help and made this template.

ALMP or Asymmetrical Local Multiplayer Template is a free Blueprint-only template that will help you build games in which VR and non-VR players play on one PC.

It’s not ideal, but it’s a start.



Unreal Engine: 4.22

Features And Controls:


  • Shift + V To Toggle VR Camera On Monitor
  • WASD To Move
  • Space To Jump


  • Hold And Release Face 1(Vive) or X/A(Oculus) To Teleport
  • Trigger To Grab

Supported HMDs:

  1. Oculus Rift
  2. Oculus Rift S
  3. HTC Vive
  4. HTC Vive Pro


  • Forward shading ON
  • Instanced Stereo ON

I tried to comment everything, however if you feel lost, have a question or found a bug feel free to message me here or on Discord(spammaleros#3771).

Hello! First of all, thank you so much for this template! I was looking for a way to do this without running two instances of the app. One hiccup I think this version will present though is adding UMG or interactive UI elements to the PC player’s view. From my understanding, adding UI to the view port won’t work with spectator mode as one would hope. Do you have any examples where you could make that work?

Again, thanks so much for this template! Hugely helpful.

Yeah, it won’t work. For HUD I’m using a 3D widget placed in front of the scene capture and is hidden from the VR player. For the pause menu I’m adding a sub-widget to this 3D widget and project mouse onto buttons.

I’m thinking of adding a sample UI/Pause menu features to the template, but was not sure if somebody actually needs this. If you are in a hurry check this projectfor UI bps. It should work.

Hi sorry for the delay here! I am in a hurry and this was a great jumping off point, thanks so much.

Figured I’d ask this here in case anyone else was also running into this issue. I saw in the README it says it works in editor and packaged games, but I’m having some issues with the packaged games. I’m using and Oculus Quest with a link cable. In packaged games I’m seeing the Spectator Camera Debug Mode Enabled: No HMD! when I package the game and the my headset is looking from the spectator camera. I tried enabled “Start in VR” option in Project Settings and also Enable HMD on Begin Play in the Level BP. Any suggestions on this issue? I will keep digging this weekend and report any findings here.

For anyone else having this issue, I was able to get this working by bypassing the “is HMD Enabled” check in the BP_VRSpecatorCamera_Base class in the Enable Spectator Screen function. I tried enabling HMD in the blueprints beforehand, but that didn’t seem to work. My guess is my machine/app was too slow connecting the HMD because this worked fine in the editor.

Obviously this skips a useful check for debugging, so I’m planning on finding some other way to implement this to check if an HMD is attached. Potentially something with the *Is Head Mounted Display Connected *call.

I tried the same thing, but how do you get the PC player’s pawn to receive mouse input? A simple Left Mouse Button pressed event into a Print String doesn’t do anything. (Same as an input binding doesn’t fire either). I did get a cursor on the widget to respond to player controller 1s mouse positioning, but no click events work. So, the pawn can run around and jump, but it can’t attack or shoot or click to move or interact with that 3d widget … curious how you got that part set up.

Could you tell me how do I set the VR preview and see it on the desktop? The default option is only the ability to see the third person playing on the keyboard, but I want to see the full view through VR how do I do?