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
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
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.
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).
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.
{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 doneStopLoadingScreen 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)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
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:
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.
: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 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 Async Loading Screen from Marketplace and enable the plugin in Plugins.
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.
Async Loading Screen has four main components: Background, Loading Widget, Tip Widget, and Layout.
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
No open issues yet, or sync has not completed.