How-To: Per-Map Loading Screen Widget
Goal: swap which widget your loading screen shows per map or game mode, with the choice surviving the level transition that destroys whoever made it.
This is a bridge, not a loading screen
UCrimsonLoadingScreenSubsystem only stores a TSubclassOf<UUserWidget> and broadcasts when it changes - it renders nothing. Your loading-screen host (the CrimsonLoadingScreen plugin, or your own) reads it. It lives on the game instance, which is exactly why the value survives OpenLevel.1. Set the widget class before traveling
Screenshot pending
Images/CrimsonUI/howto-loadingscreen-bp.pngVerify
GetLoadingScreenContentWidget (BlueprintPure) returns your class after the transition; hosts bound to OnLoadingScreenWidgetChanged were notified at set time.2. Consume it in a host
If you build your own host: bind OnLoadingScreenWidgetChanged (BlueprintAssignable) or poll GetLoadingScreenContentWidget() when your loading screen opens, create that widget, and slot it into your loading layout. The CrimsonLoadingScreen plugin's full async loading screen (tips, backgrounds, character preview) is the ready-made consumer.
See also
- CrimsonLoadingScreen wiki - the full loading-screen system.
- How-To: Get the Building Blocks - subsystem getter chains.