Quick Start
By the end of this page your own widget appears automatically whenever a level loads, showing a random tip and a background image, and disappears when the new level is ready. No Show/Hide calls anywhere.
CrimsonCommon and CrimsonLoadingScreen are installed, and your project has at least two maps so you can trigger a level travel in PIE. Tips and backgrounds are optional extras added in step 2 of How-To: Show Tips & Backgrounds - this page wires the minimum.1. Enable the plugin
Open Edit -> Plugins, type Crimson in the search box, tick CrimsonLoadingScreen's checkbox (and CrimsonCommon, its dependency), and restart the editor when prompted. For a Blueprint project that is the entire install - you never hand-edit the .uproject or any .Build.cs.
Images/CrimsonLoadingScreen/qs-enable-plugin.pngC++ projects: after enabling the plugin, add its module to your build file so your game code can use its types:
// YourGame.Build.csPublicDependencyModuleNames.Add("CrimsonLoadingScreen");
2. Create the loading screen widget
The loading screen is a standard UMG UUserWidget you design yourself; the manager creates it, adds it to the viewport, and removes it. Give it a full-screen Image for the background and a TextBlock for the tip, then read the manager's current values when the widget constructs. The tip and background are picked before the widget is created, so the values are always ready in Construct.
Images/CrimsonLoadingScreen/qs-widget-construct-bp.pngCrimson Loading Screen Manager - the pure getter node lives under Game Instance Subsystems. All the manager's read functions (Get Current Tip, Get Current Background, ...) are pure nodes, so no exec wiring is needed.3. Register the widget in Project Settings
Open Project Settings -> Crimson -> Crimson Loading Screen and set Display -> Loading Screen Widget to your widget class. This is the only required setting - everything else has working defaults.
Images/CrimsonLoadingScreen/qs-settings-widget.pngSThrobber) and logs an error to LogCrimsonLoadingScreen - useful to know when diagnosing a 'my widget never appears' report.Config/DefaultGame.ini under [/Script/CrimsonLoadingScreen.CrimsonLoadingScreenSettings].4. Trigger a load and watch it work
Press Play, then travel to your second map - Open Level (by Name) from any Blueprint, or type open YourMapName in the console. The widget appears during the transition and disappears once the new level has begun play.
FLoadingScreenInputPreProcessor only eats input in packaged builds), and the post-load hold delay is skipped in the editor unless you tick Debugging -> Hold Loading Screen Additional Secs Even In Editor. If the screen flashes by too fast to inspect, run CrimsonLoadingScreen.AlwaysShow 1 in the console to pin it up while you iterate, then set it back to 0.LogCrimsonLoadingScreen lines with the show/hide reason.W_LoadingScreen_Base in its content) you can point Loading Screen Widget at instead of authoring your own, and its ACrimsonCorePlayerCameraManager votes to hold the screen until the player camera is placed. You still assign the widget in Project Settings and author your own tips, backgrounds, and showcase content.