Update Game Values
Set a player's name or score from Blueprint and check the result.
The Store holds the game values your UI displays. For example, Unreal writes
the player's name into player.name, and a component reads that value for a label.
Prepare a field
- In Studio's Store → State Groups, create or select a group with Store Path
player, a string field namedname, and an integer field namedscore. See Define game data. - Save and wait for the connected Unreal package to update.
- In Blueprint, create two Calm Ui Store Field Reference variables named
PlayerNameFieldandScoreField(C++ name:FCalmUiStoreFieldReference). - Compile, select each variable, and choose its package and Field Path
(
player.nameforPlayerNameField,player.scoreforScoreField) in the default values. - Keep the Player Controller that opens the View; the Store nodes use it directly.
Write one value

From Open CalmUI Screen → Completed, call Set CalmUI String:
| Pin | Value |
|---|---|
| Player Controller | The same controller that opened the View |
| Field | PlayerNameField |
| Value | Alex |
The compact setter saves one value immediately. Check Return Value before continuing.
Call Get CalmUI String with the same Player Controller and Field. Check its Return Value,
then print its Value: it should be Alex. A label updates only if its
component reads that Store field; creating a field alone does not add text to a View.
Studio provides binding examples beside each field.
Use Set CalmUI Int for whole numbers, Set CalmUI Float for decimal values, and Set CalmUI Bool for true/false. The setter must match the field's type.
Save several changes together
When a screen must receive several values together, use:

The custom event ApplyProfile calls Begin CalmUI Store Batch, then
Set CalmUI String with PlayerNameField, then Set CalmUI Int with
ScoreField. A Branch on the combined result calls Commit CalmUI Store
Batch on true or Rollback CalmUI Store Batch on false.
Choose an existing string field and integer field for those setters: this
example reuses PlayerNameField (player.name) and ScoreField
(player.score) from Prepare a field. Check each
Return Value. If a setter fails, call Rollback CalmUI Store Batch instead
of Commit; this cancels the pending changes. Check Commit's result too.
After a successful commit, components that read the changed fields update. Change events let your Blueprint respond as well.
If a value does not change
- Confirm the package finished loading before the write.
- Check the field reference's package and field selection.
- Check that the setter matches the field's type.
- Check the setter's Return Value and inspect Get CalmUI Store Error for Store errors. An invalid reference can fail before the Store has an error to report.
- Every rejected write, batch commit, keyed-array op, or package contract change
also logs
LogCalmUI: Warning: Store rejected <Op> at '<Path>': <Reason>(throttled to once per second per op/path pair, so a failing per-tick write does not spam the log). Call Get Last CalmUI Store Diagnostic for the same "path: reason" text from Blueprint; unlike Get CalmUI Store Error, it keeps the most recent rejection even after a later successful write. - If a batch is open, make sure Begin succeeded and Commit or Rollback ran.
- In split-screen, use the same player's controller for the View and its Store.
For objects and lists, see Store from Blueprint.