Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
A

AsyncLoadingScreen

> 编程语言
Open source

Async Loading Screen is a free and open-source plugin for Unreal Engine. Async Loading Screen allows you to easily configure a Loading Screen System in the proj

1.1K stars0 likes0 views
WebsiteGitHub

About

Async Loading Screen is a free and open-source plugin for Unreal Engine. Async Loading Screen allows you to easily configure a Loading Screen System in the proj

Contents

  • IMPORTANT NOTE
  • Trailer
  • About
  • How it works
  • Features
  • Changelog
  • Requirements
  • Installation
    • Clone from Github
    • Download from Marketplace
    • Setup
  • Architecture
  • Tutorial
    • 1) Create Testing Levels and Blueprints
    • 2) Gathering images and movies
    • 3) Setup Startup Movies
    • 4) Configure Default Loading Screen setting
      • 4.1) Default Loading Screen - Background setting
      • 4.2) Default Loading Screen - Tip Widget setting
      • 4.3) Default Loading Screen - Loading Widget setting
    • 5) Configure Classic Layout setting
    • 6) Image Sequence Settings
    • 7) Set proper background and tip for each level
  • Showcases
  • Donate
  • License
  • Acknowledgment

IMPORTANT NOTE

  • Texture Group should be set to UI and Compression Settings to UserInterface2D

  • Don't package the Movies folder into the .Pak file because MoviePlayer needs to look for the startup movies folder at "Contents/Movies" path. You must add the Content/Movies folder to Project Settings → Packaging → Additional Non-Asset Directories To Copy (DirectoriesToAlwaysStageAsNonUFS) so that movie files are copied as loose files in the packaged build instead of being packed into .pak files.

  • Make sure you don’t have any plugins enabled that conflict with ASL. For example, Pre-Load Screen Movie Player

  • Background images and Loading icons may not appear in packaged games or Quick Launch unless their asset folder is added to AdditionalAssetDirectoriesToCook. This is because the plugin loads at the PreLoadingScreen phase — before the asset streaming system is ready — so textures must be explicitly cooked. In Project Settings → Packaging → Additional Asset Directories to Cook, add the folder(s) containing your loading screen background images (e.g., /Game/LoadingScreen/Backgrounds). This applies to Image Sequence images as well.

Trailer

About

Loading screens aren't trivial in general, especially in Unreal Engine. And this makes a lot of UE newcomers are confused at first. Due to User Widget is destroyed at level transition, and level loading runs on the main thread, it blocks any other game activities until it's completed. That's why you need to use Level Streaming for loading screens otherwise your widget blueprint will not work. You have to manually control which object is loaded/unloaded, you can't use different Game Mode, Player Controller for each level, and sometimes there's still occasional freezing.

That said, you may need to change your game logic to fit with the Level Streaming mechanic, and it requires a lot of work to achieve a simple thing: Add a Loading Screen. To create a custom loading screen without Level Streaming, you have to do it in Unreal C++. However, this is a hard task for artists and designers, even for developers who are not familiar with the Slate framework and engine module code. Async Loading Screen plug-in comes to the rescue.

Async Loading Screen allows you to easily configure a Loading Screen System in the project settings, and automatically add a Loading Screen whenever you open a new level. Async Loading Screen also comes with pre-designed UI layouts and default icons that make it easy to customize your loading screen in a few minutes (less than 5 minutes, I swear).

How it works

Async Loading Screen uses MoviePlayer to play a movie at level transition, on a different thread than game thread. MoviePlayer is not only playing movie files but also can display a Slate widget on top of the movie. We use this widget for the loading screen.

MoviePlayer is registered to PreLoadMap and PostLoadMapWithWorld delegates so it will be called and shut down automatically by the engine whenever you open a new level.

Features

  • Easy to set up, easy to use.
  • Customizable pre-made responsive layouts.
  • Customizable loading icons.
  • Pre-made default loading icons.
  • Supported animating image sequences.
  • Supported on all major platforms.
  • Easily play movies and audio files.
  • No need for coding.
  • No temporary maps, no level streaming.
  • Automatically handles all level transitions.
  • Integrates seamlessly with an existing project.

Changelog

Version 1.7.0 (25/07/2026)

  • New Wait For PSO Precaching To Complete option (per loading screen): the loading screen stays up until all outstanding PSO precache compilations (bundled PSO cache + runtime PSO precaching) are finished, as recommended by Epic's PSO Precaching documentation, so players don't see visual popping or hitches right after the loading screen closes
  • New PSO Precache Max Wait Time safety timeout (0 = unlimited); a value > 0 is recommended, especially when the project ships a bundled PSO cache
  • New Boost PSO Precache Priority option (default on): boosts outstanding PSO precache compilations to highest priority while the loading screen is displayed, restored when it closes
  • New PSO Precache Progress Widget with a fully styleable progress bar (background/fill brushes, size, alignment, padding) and an optional text supporting {Percent} and {Remaining} format arguments (e.g. Compiling Shaders... {Percent}%); it only appears while PSO precache compilations are outstanding and hides itself when they are done
  • Notes: the wait takes over Wait For Manual Stop (forced to true) and the plugin stops the loading screen automatically once PSO precaching finishes or times out (honoring Minimum Loading Screen Display Time), so no StopLoadingScreen call is needed; with Minimum Loading Screen Display Time = -1 players can still press any key to skip the wait once level loading is done; the options have no effect where PSO precaching is disabled (editor, DirectX 11, r.PSOPrecaching=0)

Version 1.6.2 (18/07/2026)

  • The BackgroundColor now renders even when the Background's Images array is empty; previously the background widget rendered nothing at all without images (set the color's alpha to 0 for the old transparent behavior)
  • The loading screen now scales up on high-resolution displays (1440p/4K) following the project's DPI curve; previously the scale was capped at 1.0
  • Fix a wrong widget scale on the first frames of the startup loading screen caused by an uninitialized viewport size
  • Fix the Image Sequence animation running slower than the configured Interval
  • A valid index set via SetDisplayBackgroundIndex/SetDisplayTipTextIndex now stays on screen: it disables the random UpdateInterval refresh for that background/tip
  • The widget overlay is now skipped with a warning when bAllowInEarlyStartup is enabled, since early startup loading screens cannot contain UObjects
  • The Loading Complete Text fade now starts from its configured color when it appears and no longer overshoots its alpha bounds
  • Fix properties showing under wrong categories in Project Settings (Loading Widget's Appearance, Set Display Tip Text Manually, Loading Complete Text's Alignment)
  • C++: the plugin's dependencies (Engine, Slate, SlateCore, MoviePlayer, DeveloperSettings) are now public, so game modules can include the plugin's public headers without extra Build.cs entries
  • Internal refactor: layouts now share common construction helpers; added the LogAsyncLoadingScreen log category; removed the unused PointSizeToSlateUnits function

Version 1.6.1 (06/04/2026)

  • Fix crashes with Zen Loader (use TObjectPtr for images, simplify brush loading)
  • Fix crashing if there is any empty slot in Background's Images
  • Update to Unreal Engine 5.8

Version 1.6.0 (12/01/2026)

  • Fix the loading icon's wrong size at the first frame of the startup loading screen
  • Add settings for changing the Background and TipText during the loading screen
  • Set UpdateInterval value larger than 0.0 in the Background and TipText settings to update them during the loading screen
  • You need to have more than one BG and Tiptext element. And they will be updated randomly.
  • Remove the PreloadBackgroundImages setting

Version 1.5.0 (6/4/2023)

  • Add "PreloadBackgroundImages" option
  • Add Blueprint functions "PreloadBackgroundImages" and "RemovePreloadedBackgroundImages" to load and remove all the background images.

Version 1.4.0 (25/1/2023)

  • Fixed uninitialized errors
  • Add Blueprint function "SetEnableLoadingScreen" to show/hide Loading Screen. Call this function before call the "OpenLevel" node

Version 1.3.0 (29/08.2021)

  • Supports Unreal Engine 4.27 (Select other branches for other UE versions)

  • Added option for hiding Loading Widget when level loading completes

  • Moved animating Image Sequence into OnPaint function


Version 1.2 (11/01.2021)

  • Added new blueprint library function Stop Loading Screen. To use this function, you must enable the Allow Engine Tick option. Call this function in BeginPlay event to stop the Loading Screen (works with Delay node):

  • Added Show Loading Complete Text option and Loading Complete Text Settings section, which show a text when level loading is complete. Note that you need to set Wait For Manual Stop = true, and Minimum Loading Screen Display Time = -1, this also allows players press any key to stop the Loading Screen by themself.

Show Loading Complete Text Settings:

Example:


Version 1.1 (14/09/2020):

  • Added Shuffle option in the movie setting.
  • Implemented set specific background/tip/movie for each level.
  • Added SetDisplayBackgroundManually, SetDisplayTipTextManually, SetDisplayMovieManually options.
  • Changed TipWidgetVerticalPadding to BorderVerticalOffset in Center Layout settings.
  • Changed WidgetHorizontalPadding to BorderHorizontalOffset in Sidebar Layout settings.
  • Add Async Loading Screen Function Library with 3 Blueprint functions:

Requirements

Async Loading Screen plug-in requires Visual Studio and a C++ code project. If your project is blueprint based then you will need to convert it to C++ project otherwise you cannot package your game with code plug-in. It doesn't require c++ project anymore.

Installation

:warning: After installed Async Loading Screen plugin, the "Project/Movies" setting won't work anymore. You need to set up your startup movies in the 'Startup Loading Screen' section of the plugin's setting.

  • Clone from Github

Clone this repository into your project's /Plugins folder, make one if it doesn’t exist, then compile your game in Visual Studio. If your project is blueprint based you’ll need to convert it to a c++ project by adding any c++ class. Supports Engine version from 4.23 and above.

  • Download from Marketplace

Download Async Loading Screen from Marketplace and enable the plugin in Plugins.

  • Setup

You can disable/enable the plugin in Edit→Plugins→Project/Loading Screen. You configure the plug-in settings in project settings Project Settings/Game/Async Loading Screen.

Architecture

Async Loading Screen has four main components: Background, Loading Widget, Tip Widget, and Layout.

Background

The background is a static image, you can add many images as you want, it will be displayed randomly (unless Set Display Background Manually option is enabled). Leave it empty if you just

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++ue4ue4-pluginunreal-engineunreal-engine-loading-screen

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言