How to create a loading screen?

What is the proper way to create a loading screen when using ServerTravel? I want a way so that a loading screen will show until I manually remove it.

The main reason for this is to mask that split second where the camera is set to 0,0,0 when the new map is loaded, but also to keep in on the screen until all the functions are done before the player character is spawned.

If there is no support in Blueprint and it requires C++ that is fine if you can point me in the right direction.

Have your problem been solved? I’ve encountered the same question.

i dont have much time so short version is to use

which runs on a different thread (so doesnt freeze) and bind to

FCoreUObjectDelegates::PreLoadMap

Thanks! But how did you finish manually stop loadingscreen,
keep on the screen until finish servertravel and complete custom init , use getmovieplayer()->stopmovie()?

set

LoadingScreen.bAutoCompleteWhenLoadingCompletes = false;

and i think i used ForceCompletion() but id have to check my code

I forgot which email I used for original account, this is the same as OP, just different email. :sweat_smile:

For loading I am using a normal UserWidget to which I am calling this function I made:

The input for the function is of type Widget. Since UserWidget is derived from that, it will work.
What this does, is that it stops the widget from being removed when you change the level. After the level is changed and everything is done loading, you just hide or remove the widget. For that just keep a reference for the widget inside CustomGameInstance.