Single/Multiplayer, Touch & Vive Proteus blueprint only Template

Proteus VR Template
First release: March 2016 (under the name "SteamVR Template"
Latest Version 6.2 (under the name “Proteus VR Template”)
Latest commit July 30, 2019

What can I do with that, that I cannot do with the “VR Template” in Unreal?

Well, rapidly: It’s single or multiplayer (LAN, Oculus Home or Steam); It uses Oculus Avatars (or not); It uses voice over IP (VOIP); full of nice features fully using Oculus functions; compatible Oculus Go/Quest/Rift/S and HTC Vive; minimum use of C++ (but still some, since some methods not possible only in blueprints); hey, we were the first to propose a template back in 2016!

FOR NOOBS: This is super simple. Even if you think Visual Studio is the name of a VFX/Hollywood startup somewhere around LA with people working in open spaces and flip-flops, it requires few manipulations to set up; I could add few instructions how-to on demand.

Download it at

Compatible with the following Unreal Engine versions:

Unreal Engine 4.22.3, Oculus Integration 1.39, , latest commit 5f77421 (July 25, 2019), found at
** minor changes to the engine possibly / mandatory required

What’s new in version 6.2

  • Unreal 4.22.3
  • “Ghost” function for clients to appear / disappear
  • Works with Oculus Quest, but in reduced 72Hz mode due to 1.39 plugin problem
  • 1.39 enables FFR+MultiView+Vulkan
  • 1.39 enables Avatars 64-bits on the Quest


  • Oculus Plugin 1.39
  • Oculus Platform SDK 1.32
  • Oculus Audio SDK 1.34
  • Oculus Avatar SDK 1.36
  • Steam Platform 1.39


  1. Download the Unreal Engine .zip file from github (or sync through github app)
  2. Unzip
  3. Setup.bat
  4. Replace \Engine\Plugins\Runtime\Oculus\OculusAvatar with the files provided
  5. GenerateProjectFiles.bat
  6. Open UE4.sln with Visual Studio
  7. Make the modifications needed to the engine if needed (SEE NEXT PAGE)
  8. Build UE4
  9. Build UnrealLightmass


  1. Download the latest Proteus Template .zip from github (or sync through github app)
  2. Right-mouse click on Proteus.uproject, Switch Unreal Engine Version, for correct engine version
    1. Open Proteus.sln with Visual Studio
  3. Build Proteus
  4. Now ready to open Proteus.uproject

Don’t hesitate to contact me [EMAIL=“”] .


Thank you so much for doing this! :smiley:
I’ve been stuck on getting hands working for a month now, barely managing to re-work the built-in vive template, to be better for Touch.
I can’t wait to play around with this! I think it will really help to enable us hobby-vr-devs to get into our ideas/projects much quicker, for Touch! ;D
Really thrilled you’re also working on a multiplayer version, that’s another area I’m rather stuck on, and it’ll be amazing to see a working template.

How did you manage to get the default motioncontrollers to replicate properly? I’ve tried in 4.12, 4.13 and 4.14 preview but without luck. The only solution for me was to use the VRExpansionPlugin. Thanks for sharing your work!

Edit: You can use more than two wireless vive controllers if you have any steam controller dongles about. You just need to update the firmware on them SteamVR/HowTo Update Firmware - Valve Developer Community

Ok, normally I don’t have an issue with frame-rate, but I can’t figure out what’s causing it to be so poor in this… especially when the normal template runs just fine. I’m sure I’m just missing something obvious, cause I’m such noob… but I’ve tried tweaking the usual settings I was used too, and I’m just not sure what else to try now.

@NikoKun There’s nothing fancy in the template, but sometimes the devil is in the details.

Some hints:

Go see the blueprint of the VRPlayerController/Scalability settings. I took the liberty to be generous in graphic fidelity, maybe too much. As an example, I put hmd pd 200 (for Oculus) or r.screenpercentage 200 (for the Vive) which could be a bit too much. I tend to forget I test it with a good computer (1080FTW and latest i7). Try bring these settings a but lower. I’ll put them in Settings 1.1.

If not, play with pp volume settings, first bloom=0. The sun is less nice, but it gives a bit of extra compute.

Also, have a look at this recent thread:

Lastly, have a look at Tom Looman’s blog, lot of hints:

I would add that even if you run nice 90fps with the default Epic VR template, sometimes adding one actor or changing one setting can make the HMDs fall back to retroprojo 45fps.

Ah, and did you try the packaged version (on the Onedrive). Packaging a game introduce optimizations, try it.
@Fantasifall Thanks for the info. Although I’m a Steam developer, the latest info was that it was not possible. I don’t have a Steam dongle, should grab one. Especially since I want to try soon the Vive puck. Yeah, I know lot of freebies including a dongle was awaiting people at SteamDev Days including me (was invited) but couldn’t attend. Maybe the sad little bag of goodies is still awaiting me in Seattle…
Also, for now with my test replication works without plugin.

The reason I try to avoid plugins (but could be inevitable to run Oculus Avatar – I’m waiting for a move from Oculus side) is that we as a team experienced nightmares with different plugins since we use different versions of UE4, namely Oculus version and NVIDIA VRWorks versions found on GitHub. We had to scrap days of work because we, with the sacred power of C++, were unable to update certain plugins to make it work. Although it’s impossible sometimes (viva Rama bp plugins), we now try to avoid them.

Ah ok, Thanks for those suggestions, some of them I wouldn’t have thought to check on my own. heh And yeah, I should go back through Tom’s blog, make sure I’m not forgetting any of that.
Thanks for the response. BTW, someone should post a link to this on reddit /r/Oculus or /r/unrealengine/. ;D This might really help other devs out there, at least in the short term.

I hope UE4 gets Avatar support in the launcher version, soon… I don’t see Oculus SDK 1.10.1 listed in the 4.15 preview release notes, so that’s unfortunate if they haven’t updated yet… :confused:

@NikoKun At least SDK 1.10.1 is accessible through Oculus Github branch at

As @VIIFab asked Oculus for it, they should release some code to access Avatars soon. I just don’t want to spend days doing a plugin when Oculus is imminently going to release it.

Good job, happy to know you still be tuned. Just disappointed why this tendence everywhere for teleporting instead axis displacement

Checking the source code the current Oculus Online Subsystem is 1.10. Not sure this includes the Avatar SDK, though.

@devel.bmad It’s not there yet but Oculus should update his Github “imminently”

heh, I guess, but I don’t have the first clue about using/compiling stuff from github, and i think my visual studio trial is long over…lmao So I’ll just wait for the launcher sdk update I guess. For now, I’m extremely thankful for your templates. ;D

Visual studio community is free and works fine with the engine by the way. You really need a copy of studio in order to fully utilize the engine, even if you aren’t doing any coding yourself.


1.Download and install free Visual Studio Community 2015 with UE4 extensions
2.Login to GitHub and download latest version of Oculus UE4 branch
3.Unzip, run Setup.bat
4.Once done, run GenerateProjectFiles.bat
5. Load the project into Visual Studio by double-clicking on the UE4.sln file. Set your solution configuration to Development Editor and your solution platform to Win64, then right click on the UE4 target and select Build. It may take anywhere between 10 and 40 minutes to finish compiling, depending on your system specs.
6. That’s it. You have now a fresh copy of Oculus UE4 branch. To open it, you can go to /Engine/Binaries/Win64/UE4Editor.exe or through Visual Studio by setting your startup project to UE4 and pressing F5 to debug.

When I load this up… i cant see my hands/vive controllers …any ideas?

Oh! I figured I was stuck on that. Thanks for the instructions, I’ll give that a shot sometime… Tho if other comments are accurate, it seems they don’t even have avatar support in that version yet. heh

You’re right, I’ll have to get that setup soon… Would certainly allow me to try more things. Although, using only the launcher/blueprint version, no VS installed, I’ve still managed build a multiplayer VR game and get it almost fully functional. ;D

Checking out the template, it works great! How would it be possible to make it compatible also with gear VR?

@Elleclouds Di you make sure that’s the VR_GameMode is selected in your map? Because this gamemode will cast the VR_PlayerController, which will spawn the MotionControllerPawn, which will itself spawn 2 BPMotionControllers
@devel.bmad It’s not directly compatible. You should start with the Epic template, with the HMDController pawn. Then add Android functionnalities but most functions of my template are centered around Motion Controllers which are absent from Gear VR. Best to start from scratch with Epic HMDController template.

@Proteus: I understand, this has been my approach so far. It would be in any case valuable to have a single template working for both mobile and desktop VR, and should not be too difficult to adapt your current template to this (basically most of the work should be in introducing a fallback for teleportation without controllers and to fix the height of the HMD from the floor when positional tracking is not available). I’ll give it a try in the next few days, if I find some time.

How are you progressing with the multiplayer version of the template? Have you been experimenting also with voice chat and spatialized audio so far?


So I’ve been working a lot on the multiplayer version. Testing via Steam, with 2 different computers/Steam logins/Rifts+Touch

Basically the 2 players spawn in the level. They can see each other (for now some glitches like incorrect orientation of the Avatar head but should be solved easily).

Each player can control its motion controllers (animation of hands follow).

Problems encountered with each pawn:

Player 1 (also Server): See Player 2 head, but bad rotation; see Player 2 hands but no movement; rest is OK (of course since its the client-server)
Player 2 (Client 1): See 2x hands (his and Player 1); Hands animated but no movement; teleportation doesn’t work yet; spawning poles at Guardian corners ok

I did not address the teleportation and voice issue now.

Also: When all will work, I know it will need optimizations on RPCs and replicated variables.

So there’s my plan: I will continue to work on it during the w-e and Monday I’ll release it there to leverage the community to once and for all nail it.

It can be done but, as most multiplayer projects, each functions and variables have to be rethinked for networking.

As for the integrated platform mobile/desktop, my main concern for me is optimizations. I did once a project for Gear (started as a desktop project) and we had to rethink everything following machine specs.

We are doing Vive/Rift projects and will tackle Windows Holographic soon, so I instead aim to adapt the template for the latter in a soon-to-follow iteration (as soon as multiplayer is tamed).

Stay tuned on monday!

Can’t wait to see multiplayer progress further. Thanks for all your hard work on the new template, I’ll be keeping an eye on things!