Develop

Splash Screen for Unreal Engine

Updated: Apr 17, 2026
You can use a splash screen when your app cannot render frames. For example, you may be unable to render frames when your app is loading, switching levels, or is busy doing other things. A simple splash screen can ensure your app meets the Meta Horizon Store guidelines, such as requiring your app to display head-tracked graphics or a loading indicator within 4 seconds after launch [TODO: verify current policy link].
Unreal Engine supports two types of splash screen: launch images -- we call it system splash screen -- and engine splash screen. Use the system splash screen defined in the Android project settings while your application is launching. The engine splash screen is Blueprint-enabled and intended to mask loading levels, cutscenes, and other in-game transitions that temporarily suspend rendering head-tracked graphics. All splash screens are guaranteed to render at a framerate no lower than the minimum.

System splash screen

The system splash screen is the initial splash screen a user sees after launching an app. The Meta Quest operating system implements it as a priority process, allowing the screen to load very quickly after a user launches an app.
To add a system splash screen in UE5:
  1. Click Edit > Project Settings.
  2. Go to Plugins > Meta XR > Engine Splash Screen.
  3. Add an element to the Splash Descs array using the circle icon with a plus in it.
  4. Click the drop-down menu in Texture Path and select an image to use.
Legacy guidance: Meta ended support of Unreal Engine 4.27 in Meta XR SDK v62, and no further updates will be made. The information below is preserved for teams maintaining existing UE4 projects.
To add a system splash screen in UE4:
  1. Click Edit > Project Settings.
  2. Go to Plugins > Oculus VR > Mobile.
  3. Specify a PNG file to use in OS Splash Screen.
After you complete these steps, build and run your application.
During runtime startup, the splash screen appears with the standard, world-locked, Meta Quest animated loading icon beneath it. Similar to the behavior of built-in Meta Quest UI overlays, the splash screen and loading icon pop to the center when the viewer looks too far in another direction. Both disappear when your application starts rendering graphics, such as an auto-load splash screen, title screen, and cinematics.
The system splash screen is automatically re-sized and positioned according to the dimensions of the PNG source file. This strategy achieves optimal visual quality. You can control the size by increasing or decreasing the resolution of your PNG file. For example, you can double the splash screen size by doubling its dimensions. The adb shell setprop debug.oculus.ossplash.ratio command applies a float ratio multiplier to the splash screen’s dimensions as a local test. Setting this value to 2.3 would scale the system splash screen by 2.3x.
For best practices on splash screen design, including recommended image dimensions, see the Splash Screen Best Practices guide.

Auto-loading engine splash screen using Meta XR settings

The auto-load splash screen displays after the UE engine has initialized. You can create this screen within the Unreal Editor user interface.
You mustn’t rely on a Blueprints function to load the initial splash screen because Blueprints functions do not display a splash screen until the level has loaded enough to begin processing (BeginPlay is fired). Remember that the engine and renderer must also load when the app first loads. If you use a Blueprint splash screen, the user will have a completely dark experience while these load, and this may prevent your app from being accepted for publication on the Meta Horizon Store.
There is no default loading splash screen.
The Unreal Engine Editor provides a mechanism for setting up an auto-loading splash screen.
Note: An auto-loading splash screen created in the Unreal Engine Editor will not appear when you preview the app from within the Unreal Engine Editor. The splash screen won’t appear because Unreal Engine loads the initial layer automatically when you start the app.
  1. Select Edit > Project Settings. Scroll down to Plugins, and select Meta XR. The Engine Splash Screen section appears:
    Meta XR Plugin
    The Auto Enabled checkbox enables or disables splash screen auto-loading. When auto-loading is enabled, the splash screen(s) will automatically be loaded whenever the user transitions from one level to another. When auto-loading is disabled, the splash screen(s) are never automatically loaded.
    You can add multiple splash screens by calling Add Loading Screen Splash from the Head Mounted Display Loading Screen functions. If you enable splash screen auto-loading, all of the splash screens that you have added will be auto-loaded whenever the user transitions from one level to another. Thus, you can think of the individual splash screens as components of the actual splash screen that will be visible to the user.
    For more information, see Splash Screen Blueprints. When you check the Auto Enabled checkbox, it will enable or disable the auto-loading of all splash screens you have previously added.
  2. Add an element under Splash Descs by clicking on ‘+’:
    Splash Descs
  3. Expand the new Splash Desc:
    Expand Splash Descs
  4. Select a Texture Path, in this case, a custom-made image that resides on the local hard drive:
    Splash Descs Texture Path
  5. Fill in the desired transform values to transform the center of the splash screen’s quad, in meters. The following are the default values:
    • Transform position: x=4.0, y=0, z=0 (4 meters forward, no horizontal or vertical offset)
    • Rotation: 0, 0, 0 (no rotation)
  6. Fill in the desired quad size values for the quad that will hold the splash screen. The following are the default values:
    • Quad size: 3m × 3m (width=3, height=3)
    Splash Descs Quad Size in Meters
  7. If you want the splash screen to rotate, enter the delta rotation values that will be added for each rendering frame (such as setting the rotation at half of the full VSync rate):
    Splash Descs Rotation
  8. If you want to place the texture at an offset from the top left corner of the splash screen, enter the offset values in meters:
    Splash Descs Texture Offset
  9. If you want to scale the texture, enter the scale values as floating point multiples of the actual size:
    Splash Descs Texture Scale
  10. Specify whether or not the splash layer uses its alpha channel. By default, the alpha channel is used:
    Splash Descs No Alpha Channel

Engine splash screen using Blueprints

To display the splash screen, use Add Loading Screen Splash and Show Loading Screen from the Unreal Engine Head Mounted Display Loading Screen functions. For Blueprint reference on the splash screen, see Splash Screen Blueprints. The following examples show how this process works.
Note: The older OculusXR-specific functions Add Loading Splash Screen and Clear Loading Splash Screens are deprecated. On the OpenXR backend (the recommended XrApi), calling these deprecated functions has no effect. Use Add Loading Screen Splash and Clear Loading Screen Splashes from the Head Mounted Display Loading Screen functions instead.

Displaying and Hiding a Splash Screen

The system displays a splash screen for 3 seconds in the sample below and then hides it. Assuming the level is loaded, it will be displayed as soon as the system hides the splash screen:
Displaying and Hiding a Splash Screen
The Add Loading Screen Splash function is used in the above example. It provides features to control the position, scale, and rotation of the splash screen.
The system hides the splash screen using the Unreal Engine-standard HideLoadingScreen Blueprints function. Now consider how this compares with the Meta-specific Clear Loading Splash Screens (deprecated) function:
Clear Loading Splash Screens
The Clear Loading Splash Screens function (deprecated) doesn’t hide the splash screen. The Add Loading Splash Screen (deprecated) and Clear Loading Splash Screens (deprecated) functions add and remove the splash screens to and from memory. But clearing a splash screen from memory doesn’t stop showing the currently displayed copy of it.
However, if you attempt to show a splash screen after calling Clear Loading Splash Screens, the experience goes completely dark. This problem occurs because there is no splash screen in memory to display:
Show Loading Screen

Using Multiple Splash Screens

The Add Loading Screen Splash function supports multiple simultaneous splash screen effects using varying position, scale, and rotational properties, along with multiple splash screen textures. To do this, uncheck Clear Before Add in the Add Loading Screen Splash function and chain as many of these calls as desired [TODO: verify Clear Before Add parameter in Add Loading Screen Splash]. Then, when you call the Unreal Engine-standard ShowLoadingScreen function, the system will display all of the splash screens you have loaded:
Add Two Loading Screen Splash