CalmUI
How To

Build a HUD with Store Data

Open a HUD and update text and progress values from Blueprint.

This tutorial creates a small status HUD. Unreal remains the owner of the data; CalmUI presents the current values.

Prepare the View in Studio

  1. Create a View named StatusHud.
  2. Set its layer to hud and input policy to passthrough.
  3. In Store → State Groups, create group status.
  4. Add string field title and float field progress.
  5. Select each field and copy its binding example. Use it for the title and progress text in your component, following Define game data and preview values.
  6. Save and wait until package Gameplay is Up to date in Unreal.

Open it from Blueprint

Open your Player Controller Blueprint, for example BP_PlayerController. Use this controller because the HUD and Store belong to one Local Player.

BeginPlay flow

Event BeginPlay

Open CalmUI HUD

CalmUI

In: Player Controller: Self · Package: Gameplay · Screen: StatusHud

Out: Completed · Failed · Screen Reference · Error Message

Set CalmUI String

CalmUI|Store

In: Player Controller: Self · Field: status.title · Value: Ready

Out: Boolean

Set CalmUI Float

CalmUI|Store

In: Player Controller: Self · Field: status.progress · Value: 0.75

Out: Boolean

Connect both setters from Completed, not from the unlabeled immediate output. Create Calm Ui Store Field Reference variables for status.title and status.progress. Select package Gameplay and the matching Field Path in each variable's defaults. Connect Failed → Print String, using Error Message.

Compile and play. The HUD should show Ready and 0.75. When the authoritative progress changes, call Set CalmUI Float again with the current value.

Advanced: publish related values together

Use Begin CalmUI Store Batch, the same compact setters, then Commit CalmUI Store Batch. If a setter fails, call Rollback CalmUI Store Batch. The View then observes one ordered batch instead of partial state.

If the HUD stays empty

  • Print Error Message from Open CalmUI HUD's Failed output.
  • Check that the package and Screen are selected on the node.
  • Check each setter's Boolean result.
  • Confirm each field reference points to the same package and exact field type.
  • Use the same Player Controller for opening the HUD and every Store write.

On this page