Hi, It's actually pretty simple. I'm using a standard loading screen setup in slate. Then I'm querying each frame
FShaderPipelineCache::NumPrecompilesRemaining()
to get number of shaders left to compile. If it's greater than zero I keep the loading screen visible and input disabled.
I'm glad you're liking the visuals!!