There are two main way to implement a loading screen in unreal engine.
One of them is using level streaming. Using level streaming can have more fancy effects because it uses an entire level as the loading screen. But level streaming will slow the map loading and need to use the same game mode for the loading screen level and the level you want to open.
The other way is using this plugin. It will just display the loading screen when you call open level and use a user widget with limited features as a loading screen. If we have built many levels and we need to travel between levels with open level, this plugin will be the best option. Be aware that the user widget features will be limited, features that requires time, engine won't work in this plugin. Because it won't need to load an entire level for the loading screen, it won't hurt the level loading speed too.
set up loading screen
To set up a loading screen with this plugin, we need to change the game viewport client class in engine general settings, project setting to GameVieportClient_modified first.
Then, we need to change our game instance's parent class to GameInstance_modified.
In side class defaults of our game instance after we reparent, we can set up the loading screen widget we created for loading screen.
We can change the widget class during runtime if we want different loading screen widget for different level too.
Or we can use an mp4 file in the movie paths as the loading screen. We need to place the mp4 file in project's Content/Movies folder and add Movies folder in addition non-asset directories to copy in project package project settings.
We can mouse over each parameter in loading screen section to figure out what these sections do for us.
The final step, we need to override begin loading screen and end loading screen in our game instance.
After that, the loading screen should be show up in standalone game and packaged game.