I’ve produced repro steps for the above;
1 - Create a blank C++ project
2 - Add a custom game instance, with a ‘BeginLoadingScreen’ style function, blueprint callable, with the following body;
FLoadingScreenAttributes LoadingScreen; LoadingScreen.bAutoCompleteWhenLoadingCompletes = true; // using the built-in 'test' loading screen to reduce points of failure LoadingScreen.WidgetLoadingScreen = FLoadingScreenAttributes::NewTestLoadingScreenWidget(); GetMoviePlayer()->SetupLoadingScreen(LoadingScreen);
3 - Create a custom player controller in blueprints, and call the above function from it on keypress (i.e. on press of ‘B’ key, for beginning/setting-up the loading screen). Add an ‘Exit Game’ node on another keypress (i.e. on ‘Q’).
5 - Set the project to use the custom controller and game instance (to use the controller, make a custom BP gamemode and set the controller property to the custom controller made above).
5 - Package the game (I was using 64-bit development).
6 - Run the packaged game, and then press the key selected above to setup the loading screen, followed by ‘open NAME_OF_MAP’. Observe the loading screen (note: a loading screen that kicks in at the end of the loading sequence is pretty terrible. Not sure if that’s my doing).
7 - After the map has opened, press the ‘quit’ button defined above.
8 - Observe the application crashing on exit.
Repro project available here.