CrimsonLoadingScreen

CrimsonLoadingScreen shows and hides a loading screen for you. UCrimsonLoadingScreenManager, a UGameInstanceSubsystem, evaluates a set of conditions every frame - no world yet, GameState not replicated, pending or seamless travel, missing local PlayerController, plus any votes from your own game code - and puts your UMG widget on the viewport while any condition holds. You never call Show or Hide. On top of that it picks a weighted random tip and a random background material per load, blocks input in packaged builds, switches the engine into loading-friendly performance modes, and can feed a live 3D character showcase into the widget via a render target.

New here? Read in this order
Do Quick Start first (a working loading screen with a tip and background), then How-To: Get the Building Blocks - it shows the exact Blueprint nodes and C++ for reaching the manager, the settings, and the data assets that every other page assumes you can reach. Use the Blueprint / C++ / Both switch at the top to see the path for your project type.

What's included

SystemKey TypesPurpose
Automatic show/hideUCrimsonLoadingScreenManagerGame-instance subsystem; evaluates 18 conditions every frame and manages the widget - no manual calls
Project settingsUCrimsonLoadingScreenSettingsWidget class, hold delay, tips, backgrounds, live preview - Project Settings -> Crimson -> Crimson Loading Screen
Hold votesICrimsonLoadingProcessInterface, UCrimsonLoadingProcessTaskGame code keeps the screen up until it is really ready (data replication, async loads)
TipsUCrimsonLoadingTipsCollection, FCrimsonLoadingTipWeighted random tip per load, optionally filtered by a FGameplayTag category
BackgroundsUCrimsonLoadingBackgroundCollectionRandom UMaterialInterface background per load (soft references, loaded on demand)
Character showcaseICrimsonLoadingCharacterProvider, FCrimsonLoadingCharacterInfoYour game supplies the player's meshes/materials/anim so a showcase level can display them
Showcase directorICrimsonLoadingCinematicInterfaceAn actor in your showcase level receives start/end callbacks with the character data
Live previewbUseLivePreview + GetShowcaseRenderTarget()A SceneCapture2D render target becomes the widget background - world rendering stays on
EventsNative delegates + Blueprint-assignable mirrorsReact to visibility changes and content-ready from Blueprint or C++
Input + performanceFLoadingScreenInputPreProcessor, performance hooksInput eaten in packaged builds; shader cache to Fast batch mode, world rendering off, hitch detector suspended
Debug toolingCVars, -NoLoadingScreen, crimson.loading.get_stateForce the screen on, log the show reason every frame, query state via MCP
Shader precompile progressECrimsonShaderPrecompileStateOptional. Holds the screen while Unreal precompiles bundled PSOs after a game or driver update, with an "Optimizing shaders NN%" bar

Plugin dependencies

TypeName
CrimsonCrimsonCommon (logging macros)
Engine modules (public)Core, CoreUObject, GameplayTags
Engine modules (private)Engine, Slate, SlateCore, InputCore, PreLoadScreen, RenderCore, RHI, DeveloperSettings, UMG
Multiplayer-ready by design
The manager never creates on dedicated servers (ShouldCreateSubsystem returns false), and the built-in conditions already wait for GameState replication and local PlayerController spawn - the two things that most often finish after the map loads on a client. Everything here is client-side presentation; no gameplay state is involved.
Not the same as CrimsonUI's loading subsystem
CrimsonUI ships an unrelated UCrimsonLoadingScreenSubsystem that only stores a per-map widget class. This plugin's manager is UCrimsonLoadingScreenManager. If a node search shows both, pick the Manager for everything on these pages.

Where to go next

  • Quick Start - a working loading screen with tip text and a background, end to end.
  • How-To: Get the Building Blocks - the exact nodes/code to reach the manager, the settings, and the data assets (read this second).
  • Task pages: show tips and backgrounds, hold the screen from game code, react to events, showcase the player's character, live render target preview, show shader precompile progress.
  • Mental model: Concept: Lifecycle & Show Conditions and Concept: The Cinematic Preview Pipeline.
  • Looking up a signature? Jump to API Reference.