a simple plugin for Unreal Engine 4 which adds a few basic blueprint nodes


What this is:

  • ...my first attempt at making a plugin for UE4.

  • ...a great way for me to learn and practice my C++ skills.

  • ...a collection of nodes that solve very specialized problems, particularly related to XR development challenges.

What this isn't:

  • ...relevant or useful for most developers, especially those not working in XR.

  • ...anything ground-breaking or new. I think most of this stuff is in Rama's Victory plugin, actually. But I wouldn't learn anything if I didn't make it myself.

This plugin basically just adds a few non-essential Blueprint nodes and exposes some engine stuff for Blueprint devs. The most useful thing in here, for most developers, is probably the ResetOrientationAndPositionZ node. This node drops the Z component of the transform when re-centering the user's XR playspace. It's super useful for maintaining the floor level and only adjusting the center position.

Everything else in here was something I needed for a project at some point or another. By collecting that stuff into a plugin, it makes it really easy to bring changes with me across engine versions.


(only tested for this stuff, but probably works on other engine versions)


First, you'll need to grab the plugin from our GitHub repository. Then follow these steps.

  1. Place the 'InnerLoopLLC ' folder in 'Engine/Plugins/Marketplace' or your project's 'Plugins' folder

  2. Regenerate project files

  3. Compile engine


  • IsWithEditor - Returns Bool if project is running in UE4 editor or not.

  • WithEditor - Same as IsWithEditor, but with branched outputs. (useful for skipping cinematics/etc while developing)

  • GetProjectVersion - Returns Project Version as set in Project Description.

  • SetProjectVersion - Sets the Project Version.

  • GetTextFromFile - Reads a .txt file and returns contents as a string. (useful for including update notes in game)

  • PrintToLog - Prints string to log file in packaged builds. (logs must be enabled for this to work in shipping builds)

  • Misc|UnloadStreamingLevel - Unloads and removes streaming level.

  • Misc|GetCustomDataValue - Gets the value of Custom Data from instanced static mesh component. (requires 4.25+)

  • XR|GetBasePosition - Returns center of playspace as Vector.

  • XR|SetBasePosition - Sets new center of playspace.

  • XR|GetBaseRotation - Returns rotation of playspace as Rotator.

  • XR|SetBaseRotation - Sets new rotation of playspace.

  • XR|GetBaseRotationAndPosition - Returns rotation and center of playspace as Transform.

  • XR|SetBaseRotationAndPosition - Sets new rotation and center of playspace.

  • XR|ResetOrientationAndPositionZ - Reorients playspace without adjusting Z. (maintains floor height)

  • XR|GetSpectatorScreenTexture - Gets the spectator screen texture.

  • System Info|RHIAdapterName - Returns name of installed GPU. (useful for automatically configuring settings)

  • System Info|RHIVendorName - Returns vendor of installed GPU.

  • System Info|RHIShaderFormatName - Returns the name of the current shader format (e.g. "PCD3D_ES3_1", etc)

  • System Info|CPUBrand - Returns as string the brand of installed CPU.

  • System Info|CPUChipset - Returns as string the chipset of installed CPU.

  • System Info|CPUVendor - Returns as string the vendor of installed CPU.


OculusPlatformBP Plugin by ItsNotMeTrustMe (Brian Edward Hicks) of InnerLoop LLC, 2020

This plugin was not created by, or in partnership with, Oculus or Epic Games.

No guarantees are made about anything. Use at your own risk.

Please drink responsibly.