Async Loading Screen

Hello, the description of the documentation says that it only works with C ++

The plugin works fine with blueprint projects, and why did you rate it one star without any attempt following the tutorial or asking here first? As the description said if you cannot package your blueprint with the plugin, you may need to convert to C++ project. However, UE4 now supports packaging blueprint projects with code plugin in the editor without compiling the source code.

I read the official documentation.
I will not experiment with my project.

Im planning to do some customization on the plugin but somehow it doesnt show up in my VS solution explorer.
Is there a way i can get this to work?

Right-click to your .uproject file and choose Generate Visual Studio project files, then re-open .sln visual studio project, the plugin will show up in Plugins folder


Can video be added to only one Map ?
Now adding video is displayed each time the Maps is loaded.
I want to add a video that can only be loaded on one map…

Yes, you can add a specific movie/background/tip for each map as you want. Just enable SetDisplayMovieIndexManually, then in your blueprint call **SetDisplayMovieIndex **node before open a new level.

Is it possible if i want to implement my own UMG Widget in blueprint and then somehow replace it with one of the pre-made layout?
If u can give me some ideas of how to do that, it would be awesome :slight_smile:

Hello Truong.Bui,

thank you for your great work. i got it run in my game project but have some question and some feature requests, which could really make sense. Or perhaps you already have it implemented I just do not found it?

  1. First, very important for my case. It’s very nice to make it easy with config in project settings and then just automatically pull your loading screen on every map load. On some games, this could fit and make it easy, but I think, on a lot of games it will not. As example for my project, it would be much, much better to have more control over start / stop loading screens.
    My Idea: Do not start the loading screen automatically, just give a simple available function to start it. Same to stop it. Could be settable ON/OFF per project settings of your great Ansync loading screen Asset.
    Why needed?
  • I have level loads of MainMenu, Lobbylevel (and other), in which I do not need the loading screen of your asset. I just want to use it to load “real game level” and between “game level”, also on and “ServerTravel”.
  • More important, I do some preparations before and after “open level” or “servertravel” on which the loading screen should already (and still) should appear. I saw your option for minimal time for loading screen, but that is not the same as make it controlled by an event. Because the “time needed” is related to specific level and what have to be done on open level, and PC performance.
    → So, it would be really, really cool, to make new “automatically start loading screen” option in project settings, and just provide new BP nodes and C++ functions for “start loading screen” and “stop loading screen”.
  1. Secondly, I just saw no option to simply switch a level load off for “Start Loading Screen” or “Default Loading Screen”. Do I miss a button perhaps? If not, would be really cool to make them switchable on and off. For example, I just want to your default loading screen, not startup loading screen.
    If my first idea of having own events/function so start/stop loading screen, this second idea is simply not needed. Then you could simply switch both to “controlled start/stop loading screens” and start&stop what you want. But perhaps it’s good for user who just need a simple option to switch “default” or “startup” loading screen off, without influence the other.

  2. Third, your option in project settings are really cool. But I would prefer to have it also “beeing able to create” (and to edit) and “startable” at runtime. Why? Perhaps you want to show your player another loading screen after the game is over when the player wins or loose. Or perhaps another loading screen and other information related to the level which is loaded. There are a lot possibilities changes on loading screens make sense. Also, change information of loading screens related to “player class / skills” or something like that.
    The solution is very easy, just make the Async Loading screen settings not only available in project settings, make it simply “able to create” (and to edit) by using a struct variable in BP of your loading screen project settings. And then with events/functions described on 1, simply start/stop your generated loading screen like ever you want.
    Then the developer can do anything he want with your loading screen and generate (and edit) it for his needs and start and stop when it’s needed

  3. Fourth, as I said before, your option in project settings are really cool, also for the widgets.
    But… would be really cool, if you just give the developer a much simpler way to let him choose what loading screen he want to display, just let him the possibility point to a Widget in his content browser. Just let him choose a widget of his choice, if he want to use a own widget. Just think about developer, who already have a working and well designed loading screen widget, and just want to use your functionality of “start” and “stop” loading screen on any open level. It would be very simple, with a simple option in your great project asset, to “not use project settings configured widget, but just point to a loading screen widget of choice”. Would be great!
    If you implement 1., you also could have a option there if you do not want it in project settings, to let developer choose on “start” loading screen, if should use the “project settings configured loading screen” or just point to a widget from content browser.

(EDIT: No I see ancoi189 hds the same idea:


Perhaps sounds much and I did not look into your code right know. But I think you have already most of it implemented and just need to give the developer the functions to create (+ edit) loading screen config and start stop it. Then simply everything is fulfilled.
Would be great to see it. Or just tell me if it’s already available

thanks a lot for your great work!


Hi, I’m trying to load only one video for a certain level, but it is not happening…
I tested with photos and there it works fine.
The problem is that when I add my video, it is activated automatically each time Levels is loaded but not visible because the “Show Widget Overlay” option is activated.
My video has sound and that’s why I hear it running in the background but you can see the Background on the screen.
Can you tell if I’m wrong?
I apologize for my poor English.

Unfortunately, you can’t use UMG Widget when you use hard level loading like Open Level node.

Thanks for a wall of text, just kidding lol :wink:

Again thanks for those suggestions. However, most of your suggestions don’t work with my plugin. You still don’t get the purpose of this plugin. There is already a solution for all of your suggestion, it’s called Level Streaming.

When you use a hard level loading like Open Level, everything in the current level will be destroyed, including UMG Widget, UObject, and all game logic will be blocked. Hence, you have to use Level Streaming if you want to control everything. Otherwise, you will need to write your own Loading Screen in C++ with Slate framework, just like Async Loading Screen plugin does.

If you want to create a custom Layout for your game, you can inherit the **SLoadingScreenLayout **class in C++.

If you want to show a movie on a certain level, and background images on other levels. You can add an empty image in the Background array. Then in your blueprint, manually set the background index to the empty background index whenever you want to show the movie instead of the image.

It won’t happen.
The problem is that the asset automatically plays the added video, even if only Background Image is selected to be displayed.
My video has sound and is heard every time Levels is loaded.

You can also add an empty string in the Movie Paths, then set the Movie Index to that empty index when you don’t want to play a movie

Isn’t the asset yours ?
Why offer useless things.
You don’t understand what I’m writing, my English is bad, but I think you understands what I write.

Asset works well and I will use it in my games.
But you can’t use video that has sound, which is displayed only at a certain level.
If you use video that has sound, the sound will be heard each time you load with Background Image.

I already answered your question. You shouldn’t show both movie and background at the same time.

  • If you already have shown background image then you could stop Movie is shown by manually set the movie index to an empty index in Movie Path.
  • When you want to show movie on a certain level, set the movie index to your movie index and set the background index to an empty image in Background array.

This way you can control when and what you want to show in the loading screen. Hope it helps

Heya, is there still no way to Stop the loading screen manually through blueprints? What exactly does ‘bWaitForManualStop’ do? Nothing at the moment?

Yes, there is no way to Stop the movie in BP at the moment. You have to call StopMovie in the Slate thread

I did it well and everything works well.
The problem was that you had to show each maps what to load…
And I only set the card that should load the video, because the asset is activated automatically when the maps is loaded.

Everything works perfectly, thanks for the asset.