How-To: Show Tips & Backgrounds
Goal: show a weighted random tip and a random background image on every load, authored entirely in data assets.
GetCurrentTip / GetCurrentBackground). You know how to create the data assets (How-To: Get the Building Blocks step 3).1. Author the tips collection
Open your DA_LoadingTips (UCrimsonLoadingTipsCollection) and add entries to the Tips array. Each FCrimsonLoadingTip has three fields:
| Field | Type | Purpose |
|---|---|---|
Text | FText | The tip shown to the player (localizable) |
Category | FGameplayTag | Optional grouping tag (e.g. LoadingTips.Combat) used by the category filter |
Weight | float (min 0.01, default 1.0) | Relative selection probability - 2.0 appears twice as often as 1.0 |
Images/CrimsonLoadingScreen/howto-tips-collection.png2. Author the backgrounds collection
Backgrounds are materials, not textures - make a simple UI material per image first: Texture Sample into Emissive Color, Material Domain = User Interface. Then open DA_LoadingBackgrounds (UCrimsonLoadingBackgroundCollection) and add each material to the Backgrounds array. Entries are soft references, so nothing loads into memory until a loading screen actually shows.
Images/CrimsonLoadingScreen/howto-backgrounds-collection.png3. Register both in Project Settings
In Project Settings -> Crimson -> Crimson Loading Screen, set Tips -> Tips Collection and Backgrounds -> Background Collection to your assets. The neighboring options control selection behavior:
| Setting | Default | Effect |
|---|---|---|
bPickNewTipEachLoad | true | false = the first tip picked stays for the whole session ('tip of the day') |
TipCategoryFilter | empty | When set, only tips whose Category matches are candidates |
bPickNewBackgroundEachLoad | true | false = one background for the whole session |
Images/CrimsonLoadingScreen/howto-tips-settings.pngTipCategoryFilter is set and no tip carries a matching Category, selection fails silently and GetCurrentTip stays empty. Check the filter first when tips stop appearing.4. Read them in the widget
The manager picks the tip and background when the screen opens, before your widget constructs - so read once in Construct, no waiting or events needed. (This is the same code as Quick Start step 2; shown here with the category tag and a dynamic material.)
Images/CrimsonLoadingScreen/howto-tips-read-bp.pngSee also
- How-To: Live Render Target Preview - replace the static background with a live 3D scene.
- API Reference -
UCrimsonLoadingTipsCollection::GetRandomTipis also callable directly (Blueprint and C++) if you want tips outside the loading screen.