Async loading screen stays forever if it's set to close manually

Hello, I’m trying to setup async loading screen using MoviePlayer. I don’t want it to close immediately after changing level, as I still need to prepare new map, load some other actors, etc.
But as long as I set bWaitForManualStop = true loading screen can’t be closed.

This is my setup:

	virtual void StartInGameLoadingScreen() override
	{
	    FLoadingScreenAttributes LoadingScreen;
	    LoadingScreen.MinimumLoadingScreenDisplayTime = 3.f;
	    LoadingScreen.bWaitForManualStop = true;
	    LoadingScreen.WidgetLoadingScreen = SNew(SMyLoadingScreen);
	    GetMoviePlayer()->SetupLoadingScreen(LoadingScreen);
	    GetMoviePlayer()->PlayMovie();
	}

    virtual void StopInGameLoadingScreen() override
	{
	    GetMoviePlayer()->StopMovie();
	}

Without going into too much details this is what I’m trying to achieve:
Gamemode:

But it never closes the loading screen.

Even something as simple as that:


Still doesn’t close this.

Do you have any idea what may go wrong here? Thanks!

1 Like

Quick update on a progress of that. Calling GetMoviePlayer()->ForceCompletion() instead of “StopMovie” hides loading screen in every situation.

The problem is that then loading screen can’t be started again - calling StartLoadingScreen will make the whole application freeze. Like MoviePlayer would be terminated after forcing completion.
Unfortunately there is not much about it in the doc or engine code. Any ideas how to solve this?