CrimsonLoadingScreen · Lesson 3 of 7

Build the Widget

Beginner5 minUIBlueprints

Before you start

  • Completed: Enable the Plugin
Video coming soon

Chapters

1. Design the layout

Create a standard UserWidget (e.g. WBP_LoadingScreen) with a full-screen Image (BackgroundImage) and a Text Block (TipText). It's an ordinary widget — style it however your game looks.

2. Read the tip and background

In Event Construct: get the Crimson Loading Screen Manager (a pure getter under Game Instance Subsystems), call Get Current Tip → Set Text, and Get Current BackgroundIs ValidSet Brush from Material.

Event Construct: read the current tip and background from the manager.
The manager getter node, under Game Instance Subsystems.

The C++ path

cpp
// WBP parent class
UPROPERTY(meta = (BindWidget)) TObjectPtr<UTextBlock> TipText;
UPROPERTY(meta = (BindWidget)) TObjectPtr<UImage> BackgroundImage;
void ULoadingScreenWidget::NativeConstruct()
{
Super::NativeConstruct();
if (UCrimsonLoadingScreenManager* Manager = UCrimsonLoadingScreenManager::Get(this))
{
TipText->SetText(Manager->GetCurrentTip());
if (UMaterialInterface* Background = Manager->GetCurrentBackground())
{
BackgroundImage->SetBrushFromMaterial(Background);
}
}
}
Ready before Construct
The manager picks the tip and background before the widget constructs — reading them in Construct always gets the values for this load. No binding or polling needed.