[FREE] VR Content Examples


What is it?
The VR Content Examples project is a collection of VR examples that can be used to get you started or learning how a certain feature/system could be built. The project is pretty much what the Unreal’s Content Examples project is with some differences in the project structure and implementation of the single systems.

What it ISN’T
The VR Content Examples project IS NOT a template, framework or plug-and-play system. The examples in the project are fully functional but just examples and nothing more. The project does not attempt to replace any full template/framework that you can get from the marketplace or on the forums. If you are looking for a framework, there is a list of incredible ones out there both free and paid.

I attempted to release the project on the marketplace but failed. The project went through 2 stages of quality checking by the guys at Epic and it was all looking great until we hit the third stage. Apparently, (I didn’t know) products on the marketplace cannot be uploaded and sold for free unless they are code plugins or the content that epic makes free for the month or permanently free. Even against this issue I still tried to publish it on the marketplace at the minimum possible price and was planning to add a link on the page to release it for free. During the third stage of the product review, however, the marketplace team got a concern with my description of the product and when I explained my intentions the product got declined. The reason why I really wanted this to be on the marketplace was for maximum visibility since I assume that there will be a ton of people missing out on this.

This is a collection of mechanics/systems/features that over the years I had to code for personal or work projects. I had a ton of projects sitting in my library each containing one of these examples and, for the longest time, I have been thinking about putting all this into a single project to use as a reference. When I finally decided to actually do it I thought that it would have been good to actually share this with the community. Since these are just examples and not a product it makes sense that the project is just free, plus I love the idea of sharing this. :smiley:

Project structure
As you open the project you will see that each example has its own folder as well as its own map. Some examples are placed in subfolders if a particular category applies to them (e.g. Locomotion systems). Each example tries to keep as much as possible within the example’s folder, but reusable assets in the project are all placed inside “Content/VRContentExamples/Content”. You will also notice that each example has its own VRPawn and MotionController blueprints, this generates a lot of repeated code but it will also keep the example’s blueprints easy and simple to read. It keeps the examples isolated from any unrelated systems that could generate unnecessary distractions. Also, with such a folder structure, you should simply be able to migrate a single example (together with the required assets) without having to migrate the entire project.

Since this is intended as a learning material I will be slowly making youtube videos on the single systems going over how the systems are built and how they work. Even without video explanations, with each example being completely isolated from the others and the blueprints fully commented it should be easy to get an understanding of how the examples work. If you have any questions just ask.

The project is only available in 4.24 and I will be only supporting one version at the time just to make it easier for me to keep adding stuff to it. Since the project is in 4.24 (I’m sure that most of you know by now and got used to it) watch out for the SteamVRInput plugin which got merged into the engine itself. If you are using a vive or the knuckles controllers make sure that the events used by the example from the project settings input list actually fire before trying to use the example. In a few occasions, I had to actually delete all the SteamVRInput generated files manually and regenerate all of them before getting action mappings to work.

Example List

  • VR Valve NEW!!!
  • Force Grab Pickup NEW!!!
  • HLA Slots Inventory NEW!!!
  • HLA Wrist Slot Inventory NEW!!!
  • Screen Space UI NEW!!!
  • Look teleport locomotion
  • Point teleport locomotion
  • Blink locomotion
  • Dash locomotion
  • Walk locomotion
  • Jump locomotion
  • Snap rotation
  • Smooth snap rotation
  • Artificial rotation
  • Grab rotation
  • Widget laser pointer
  • Object laser pointer
  • Watch menu
  • 3D widget
  • Bow and arrow
  • Door
  • Drawer
  • Lever
  • Object snap to slot
  • Object follow spline
  • Virtual keyboard
  • VR button

Suggestions and Feedback
I’m totally open to suggestions and feedback. Suggestions for new examples should obviously be achievable examples (bad example = implement an entire archviz project, good example = implement a basic climbing mechanic). Feedback is also welcome both in the form of improvements of the systems as well as other aspects of the entire project.

Have a great day :cool::cool::cool:


You’re saving so many frustrated people with this!
I’ve been going crazy trying to create my own object snapping system- but I’m a beginner with blueprints so that hasn’t gone very well. haha

I really look forward to your documentation video on the ‘object snap to slot’ system and everything else! Keep up the good work. :cool:

Since you were the first one to comment, it only seemed fair to make the first video on the object snapping system :rolleyes:
Alsooooo, I didn’t know which one to start from :slight_smile:

Wow, we need more template and example like this.
Definitely greatly useful for the VR community, thank you for sharing!
This is this way that we can improve altogether :slight_smile:

Just uploaded a new tutorial going through the object moving on a spline. Enjoy :wink:


Thank you for this exellent project! Priceless for learning!

I personally have huge problem with Oculus Go… I can’t get the oculus motion controller to work. Controller shows up and moves around okay when launching on my Oculus Go, but none of the buttons work. I can only point around or move the hand, but can’t do anything…

Can anybody with Oculus Go please confirm if you have got it to work and please share the input settings…?

My settings are below and the input settings here are default that are setup with the project.

Hey thanks for the positive feedback on the project, I finally own an oculus go myself so I can give it a go and test it. I will let you know how it goes and if I can get it to work. From the pics you shared it all looks good to me though so it’s a bit weird.

Did you manage to try the Go yet?
I haven’t had any progress with the problem yet…

Hi, @Si1weri I just managed to test the Oculus Go inputs and I don’t see the issue you described. To test it I launched the VirtualKeyboard map from the VR Content Examples project on the Oculus Go. To interact with the textboxes and keyboard I got the Oculus Go Trigger set up in the inputs inside the project settings. I can use the keyboard with no issues.

If you are still experiencing the issue I can take a look at your project myself (you can DM me). Also what happens if you set up the “Any Key” blueprint node in the level blueprint and then convert the key to a name using the GetKeyDisplayName and print its value? What values get printed when you use the Go controllers buttons?

Thank you very much for helping me out.
I’m having the problem on every project. As if the inputs are totally messed up. This is currently the only mapping that I can get the trigger button and whole touchpad pressed from any corner to work out.

That Any Key with converting to key and printing that out would possibly be the solution to find out what’s going on, but I must admit that don’t know how to do it?
If it’s not too much to ask, could you please help a beginner to create a blueprint to get this Any Key displayed to work?

:slight_smile: Thank you for sharing this for free… Will check it out this week… :slight_smile:

@pbdarceyhopefully you’ll find it useful

@Si1weri so this is what you need to set up inside your level blueprint:

The reason why I told you to do that is to see what all the keys on your Oculus Go controller actually think they are. This will print the name of any button/key that you press on your controller. I often use this if I get the behaviour you see just to confirm that the keys are actually called what I think they are called.

One more thing that came to my mind, do you have the same event set up anywhere else in your level? By that I mean, do you use for example OculusRemoteTrigger in multiple blueprints? If that’s the case you will have to make sure that the various calls to the action mapping event don’t consume the input.

That’s how you do it. So if you call for example LeftTrigger (like in the pic above) both in the pawn and then in the level blueprint (for whatever reason) then untick that box on both. With that ticked the first being called will consume the input and the second won’t fire at all.


Thank you very much!

So I tried this and got the following displayed:

Pressing Go Trigger:
-MotionController (R) Facebutton1
-Oculus Touch (R) A press
-Motioncontroller (R) Trigger
-Oculus Touch (R) Trigger

Pressing Go Touchpad Up:
-Oculus Go (R) Trackpad Touch
-MotionController (R) Thumbstick
-Oculus Go (R) Trackpad

Pressing Go Touchpad Down:
-Oculus Go (R) Trackpad Touch
-MotionController (R) Thumbstick
-Oculus Go (R) Trackpad

Pressing Go Touchpad Left:
-Oculus Go (R) Trackpad Touch
-MotionController (R) Thumbstick
-Oculus Go (R) Trackpad

Pressing Go Touchpad Right:
-Oculus Go (R) Trackpad Touch
-MotionController (R) Thumbstick
-Oculus Go (R) Trackpad

Pressing Go Back button:
-MotionController (R) Facebutton1
-Oculus Go (R) Back

To me these seem to be wrong? I can’t figure out what’s wrong with this. I just tried to factory reset the Oculus Go too, but results are the same.
I’m on Unreal Editor 4.24.3.

I can’t figure out how to get at least three different buttons to work. I would be happy to get Trigger, TouchpadUp(pressed) and TouchadDown(pressed) to work, to get for example menu brought up in game by pressing TouchPadDown and moving forward with TouchPadUp, but I can’t figure out how to do it.

Your help has got me forward by long shot already, as I now know how to check out the inputs that I’m really getting from the controller. Thank you very much for that! This is much appreciated!

I tried to get the inputs with Any Key on Unreal Engine 4.23.1 and there, everything seems to work as it should?!
Do you have any ideas about how to start to solve the issue on engine 4.24 upwards?

Got the following displayed on engine 4.23.1:

Pressing Go Trigger:
-Motioncontroller (R) Trigger

Pressing Go Touchpad Up:
-MotionController (R) ThumbstickUp
-MotionController (R) Thumbstick

Pressing Go Touchpad Down:
-MotionController (R) ThumbstickDown
-MotionController (R) Thumbstick

Pressing Go Touchpad Left:
-MotionController (R) ThumbstickLeft
-MotionController (R) Thumbstick

Pressing Go Touchpad Right:
-MotionController (R) ThumbstickRight
-MotionController (R) Thumbstick

Pressing Go Back button:
-MotionController (R) Facebutton1

@Si1weri I just looked at the screenshots you shared of your android project settings set up and I noticed you made the Minimum SDK version and the Target SDK version 21. In my testing I set it to 25, it wouldn’t make the difference as it doesn’t make sense that it affects key bindings, but just worth pointing out.

Some of those actually seem right like the Oculus Go Back button and others wrong, you still get the Motion Controller (R) FaceButton 1 because 4.24 is in the process of deprecating those and will still use them. For sure though the trigger is wrong as it shouldn’t use the Oculus Go (R) Trigger.

Now that you see what the single buttons fire though you can fix your issues by using the keys you know that actually get used in the background (even if they are the wrong ones). By this, I mean that even if you’d expect the Oculus Go (R) Trigger to be fired when pressing the trigger you can use the Oculus Touch (R) Trigger instead as that’s the one that you got printed.

If you need further help let me know but from this point ahead I would need you to share the actual project you are using (even if it’s the VR Content Example) otherwise it’s nearly impossible to know if you set up something wrong that I can’t obviously see.

Thanks for sharing this with community!

I have a suggestion for you, how about a climbing mechanism?

@Coverop that’s actually already on my to-do list, so absolutely. It will be some time though before I release a new update as right now I’m focusing on making tutorial videos that explain the systems.

Thank you very much @DownToCode
After you showed me how to check the inputs received with any key, I think there’s something broken in ue4.24 with Oculus inputs. At least with Oculus Go. There’s no way to get the inputs (buttons) separated from touch pad as left, right, up, down buttons. Oculus support confirmed this after contacting them. So I currently have open support ticket at Oculus about Go inputs and continue with my project on engine 4.23, where everything still works as it should.

how do you download the files? I tried downloading it yesterday but it downloads as a Rar?