# Truong Bui - Async Loading Screen

**URL:** <https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202>\
**Category:** Product Discussion\
**Tags:** fab\
**Created:** [August 20, 2025, 3:14pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202 "2025-08-20T15:14:09Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [August 20, 2025, 3:14pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/1 "2025-08-20T15:14:10Z")

</div>

# 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.  

- [Changelog](https://github.com/truong-bui/AsyncLoadingScreen/tree/master#changelog)

- [Trailer](https://youtu.be/3rwsNYPUr0I)

- [Document & Tutorial](https://github.com/truong-bui/AsyncLoadingScreen)

- [Discussion & Bugs Reporting](https://forums.unrealengine.com/t/async-loading-screen/150488)

Are you looking for a loading system without Level Streaming? If yes, then you already found GOLD :)

Usually, you have to use Level Streaming for loading screens because the User Widget is destroyed at level transition, and level loading runs on the main thread, which blocks any other game activities until it's completed. So, you will need to manually control which object is loaded/unloaded. Also, you can't use different Game Mode and 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 must do it in Unreal C++. However, this is a challenging task for artists and designers, even for developers unfamiliar with the Slate framework and engine module code. Async Loading Screen plug-in comes to a savior.

Async Loading Screen allows you to easily configure a Loading Screen System in the project settings and automatically adds a Loading Screen whenever you open a new level. It also comes with pre-designed UI layouts and default icons, making it easy to customize your loading screen in a few minutes.

> **[Async Loading Screen](https://www.fab.com/listings/f8aabb9a-7c96-4f79-97ff-04bcc146e595)**
>
> ChangelogTrailerDocument & TutorialDiscussion & Bugs ReportingIMPORTANT NOTETexture 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...

---

<div class="post-metadata">

**Author:** ![\_hxtnt](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@\_hxtnt](https://forums.unrealengine.com/u/_hxtnt)\
**Post date:** [September 22, 2025, 6:06am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/2 "2025-09-22T06:06:48Z")

</div>

Awesome plugin, I’ve been using it for my own game RNPS (which I’ve released on Steam), the only major drawback is that I could never get it to compile for Linux, meaning I’d have to disable the plugin to compile for it. It isn’t a major issue, however it is something I hope you can look into

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [October 7, 2025, 10:16am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/3 "2025-10-07T10:16:09Z")

</div>

ALS plugin compiles fine with Linux. However, you need to add the ALS plugin as a project plugin to recompile with your game project.

---

<div class="post-metadata">

**Author:** ![ismokemath](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ismokemath](https://forums.unrealengine.com/u/ismokemath)\
**Post date:** [November 3, 2025, 10:03pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/4 "2025-11-03T22:03:56Z")

</div>

Hi, it does technically compile on linux but the initial loading screen mp4 and other loading screen textures do not appear while playing, at least I can 100% verify this when using the steam deck (which runs linux natively). No errors or issues with windows builds however.

One strange thing is that I noticed if I play the game long enough on Steam deck, let’s say 20-30 minutes, the loading screens start working eventually. Is this some linux caching issue that I could fix somehow by manually force loading the initial loading screen video and subsequent loading screen textures?

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [November 4, 2025, 6:25am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/5 "2025-11-04T06:25:53Z")

</div>

Maybe it’s due to the texture format. Make sure you change the texture settings, follow this note:

> **[GitHub - truong-bui/AsyncLoadingScreen: Async Loading Screen is a free and open-source...](https://github.com/truong-bui/AsyncLoadingScreen?tab=readme-ov-file#important-note)**
>
> 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 project settings, and automatically add a Loading Screen whenever you open a new level, without Level Streaming.

---

<div class="post-metadata">

**Author:** ![ismokemath](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ismokemath](https://forums.unrealengine.com/u/ismokemath)\
**Post date:** [November 4, 2025, 7:33pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/6 "2025-11-04T19:33:25Z")

</div>

Unfortunately, I have already configured everything exactly as stated in the docs and verified that it all works 100% perfectly with Windows. The issue is only with linux, have you been able to get loading screens (initial video mp4 and images) to work in a compiled linux build or is this officially unsupported? Unfortunately, I will have to switch to a different solution if Linux is not supported.

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [November 6, 2025, 2:00am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/7 "2025-11-06T02:00:49Z")

</div>

Which engine version are you using?

> have you been able to get loading screens (initial video mp4 and images) to work in a compiled linux build or is this officially unsupported

Yes, many games have been shipped with ALS on Linux before. ALS officially supports Linux. But please note that the ALS plugin depends on the MoviePlayer module. Hence, most of the time, there are issues related to either MoviePlayer or the Engine itself, not the ALS plugin.

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [November 14, 2025, 5:02pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/8 "2025-11-14T17:02:00Z")

</div>

I have updated ALS to UE 5.7.0. You can download it on [GitHub](https://github.com/truong-bui/AsyncLoadingScreen) or just wait a few days for it to be available on the Fab market.

---

<div class="post-metadata">

**Author:** ![ZombieDawgs](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ZombieDawgs](https://forums.unrealengine.com/u/ZombieDawgs)\
**Post date:** [November 14, 2025, 6:24pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/9 "2025-11-14T18:24:31Z")

</div>

I love the plugin so far and how easy it is to use. Just one caveat - I’m using level streaming volumes with a master level and the plug in loads in LV\_Master, but doesn’t take into consideration sublevels & where the player is standing, is there a way for it to check that before closing the load screen? On slower loading machines players tend to fall through the world. I have a workaround but would love if there was a way to do it with this.

I currently have each level set up to check if it’s loaded, then tell the player to enable movement, I think I could also tell async to "finish loading” in that same logic, right?

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [November 18, 2025, 8:37am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/10 "2025-11-18T08:37:57Z")

</div>

Unfortunately, you can’t check this logic while the ALS is still running. Any logicthat belongs to Level Streaming have to be done in the game thread, after the ALS closes.

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [January 12, 2026, 4:38am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/11 "2026-01-12T04:38:00Z")

</div>

![als-update](https://d3kjluh73b9h9o.cloudfront.net/original/4X/7/c/e/7ce0eef3cd7fd3ceed8e6279e72448bd375459af.gif)

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/6/7/a677d81275c1a60ef6f24d3dbb37abb05b7f3410.png)

### Version 1.6.0

- 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 the **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, they will be updated randomly.
- Remove the PreloadBackgroundImages setting

---

<div class="post-metadata">

**Author:** ![Inngvarr](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Inngvarr](https://forums.unrealengine.com/u/Inngvarr)\
**Post date:** [January 16, 2026, 6:54pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/12 "2026-01-16T18:54:44Z")

</div>

After switching to engine version 5.7, the plugin continues to work in standalone mode, but when building the project it stops working. Is this a bug or what?

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [January 17, 2026, 7:44am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/13 "2026-01-17T07:44:31Z")

</div>

In 5.7, Unreal Engine will package your game in the Pak file by default. You should exclude the Movies folder or manually copy the folder to your packaged build

> [@Async Loading Screen](https://forums.unrealengine.com/t/async-loading-screen/150488/357):
>
> I’ve already answered your question on the plugin GitHub issues. But I’ll post here again to let anyone know when packaging their project. This is because MoviePlayer looks for the startup movies in this way. So you shouldn’t package the Movies folder into the .Pak file

---

<div class="post-metadata">

**Author:** ![Twan\_so-kl](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Twan\_so-kl](https://forums.unrealengine.com/u/Twan_so-kl)\
**Post date:** [January 31, 2026, 7:14am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/14 "2026-01-31T07:14:38Z")

</div>

Hey guys I’m having an issue with this plugin and localization. For some reason once its enabled I can’t gather text or compile in the localization dashboard now the version I have is 5.7.0 and the engine version I have is 5.3 so not sure if that’s the cause but I can’t find that specific engine version for 5.3 some guidance would be nice.

---

<div class="post-metadata">

**Author:** ![saryasomdev](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@saryasomdev](https://forums.unrealengine.com/u/saryasomdev)\
**Post date:** [March 11, 2026, 2:22pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/15 "2026-03-11T14:22:05Z")

</div>

Using version 1.6… but while loading level it crashes

LogOutputDevice: Error: The current loader ‘ZenLoader’ is unable to FlushAsyncLoading from the current thread ‘SlateLoadingThread2’. Flush will be ignored.  
LogOutputDevice: Error:  
LogOutputDevice: Error: [Callstack] testproject.exe!FAsyncLoadingThread2::FlushLoading() [AsyncLoading2.cpp:11142]  
LogOutputDevice: Error: [Callstack] testproject.exe!FlushAsyncLoading() [AsyncPackageLoader.cpp:364]  
LogOutputDevice: Error: [Callstack] testproject.exe!FlushAsyncLoading() [AsyncPackageLoader.cpp:331]  
LogOutputDevice: Error: [Callstack] testproject.exe!LoadPackageInternal() [UObjectGlobals.cpp:1772]  
LogOutputDevice: Error: [Callstack] testproject.exe!LoadPackage() [UObjectGlobals.cpp:2135]  
LogOutputDevice: Error: [Callstack] testproject.exe!LoadPackage() [UObjectGlobals.cpp:2111]  
LogOutputDevice: Error: [Callstack] testproject.exe!ResolveName2() [UObjectGlobals.cpp:1277]  
LogOutputDevice: Error: [Callstack] testproject.exe!StaticLoadObjectInternal() [UObjectGlobals.cpp:1398]  
LogOutputDevice: Error: [Callstack] testproject.exe!StaticLoadObject() [UObjectGlobals.cpp:1466]  
LogOutputDevice: Error: [Callstack] testproject.exe!FSoftObjectPath::TryLoad() [SoftObjectPath.cpp:806]  
LogOutputDevice: Error: [Callstack] testproject.exe!SBackgroundWidget::OnPaint() [SBackgroundWidget.cpp:80]  
LogOutputDevice: Error: [Callstack] testproject.exe!SWidget::Paint() [SWidget.cpp:1579]  
LogOutputDevice: Error: [Callstack] testproject.exe!SOverlay::OnPaint() [SOverlay.cpp:223]  
LogOutputDevice: Error: [Callstack] testproject.exe!SCompoundWidget::OnPaint() [SCompoundWidget.cpp:46]  
LogOutputDevice: Error: [Callstack] testproject.exe!SBorder::OnPaint() [SBorder.cpp:131]  
LogOutputDevice: Error: [Callstack] testproject.exe!SPanel::OnPaint() [SPanel.cpp:15]  
LogOutputDevice: Error: [Callstack] testproject.exe!SVirtualWindow::OnPaint() [SVirtualWindow.cpp:83]  
LogOutputDevice: Error: [Callstack] testproject.exe!FMoviePlayerWidgetRenderer::DrawWindow() [DefaultGameMoviePlayer.cpp:1026]  
LogOutputDevice: Error: [Callstack] testproject.exe!FSlateLoadingSynchronizationMechanism::SlateThreadRunMainLoop() [MoviePlayerThreading.cpp:170]  
LogOutputDevice: Error: [Callstack] testproject.exe!FSlateLoadingThreadTask::Run() [MoviePlayerThreading.cpp:213]

---

<div class="post-metadata">

**Author:** ![KhutasLee](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@KhutasLee](https://forums.unrealengine.com/u/KhutasLee)\
**Post date:** [March 29, 2026, 2:25pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/16 "2026-03-29T14:25:53Z")

</div>

Hello @TruongBui  
Could you tell me if this plugin should work with SeamlessTravel? I have troubles with make this working this way.

Best regards

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [March 30, 2026, 6:53am UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/17 "2026-03-30T06:53:17Z")

</div>

@KhutasLee No, ALS doesn’t work with SeamlessTravel, only works with OpenLevel.

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [April 7, 2026, 1:29pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/18 "2026-04-07T13:29:40Z")

</div>

ALS plugin version 1.6.1 is available on FAB. Please upgrade your project to the latest version. Some Note:

- 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.

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/f/28ff71c608a41002910bba2ced79320d53ddd545.png)

- **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.

 ![Additional-Asset-Dirs-To-Cook](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/0/a/20ac0fd30d75f07ef47846148809616b9a1fc71f.png)

Please read the [Important Note](https://github.com/truong-bui/AsyncLoadingScreen?tab=readme-ov-file#IMPORTANT-NOTE) for more information. Thanks.

---

<div class="post-metadata">

**Author:** ![CaretCaret](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@CaretCaret](https://forums.unrealengine.com/u/CaretCaret)\
**Post date:** [June 20, 2026, 5:43pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/19 "2026-06-20T17:43:53Z")

</div>

5.8?

---

<div class="post-metadata">

**Author:** ![TruongBui](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/truongbui/32/743871_2.png) [@TruongBui](https://forums.unrealengine.com/u/TruongBui)\
**Post date:** [June 22, 2026, 3:16pm UTC](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202/20 "2026-06-22T15:16:25Z")

</div>

You can wait for the 5.8 version of the ALS plugin to be approved on Fab, or download it immediately from the plugin repo now

[Next page](https://forums.unrealengine.com/t/truong-bui-async-loading-screen/2648202.md?page=2)
