Define Game Data and Preview Values
Create Store fields, reusable list items, actions, and sample data in Studio.
Open Store in the Activity Bar. If the project has no Store yet, choose Initialize project Store. You can prepare the data your UI needs before opening Unreal.
Create a player name field
- Choose State Groups, then + State Group. A group keeps related values together.
- Set Group Name to
Player. Check that Store Path isplayer. - Choose Scope = Per player so each local player has their own values.
- In Fields, add
namewith typestring. - Click Save.
The field's path is player.name. Use that path when selecting the field in
Blueprint or reading it from a component.
| Type | Use it for |
|---|---|
| bool | A true/false value such as ready |
| int | A whole number such as score |
| float | A decimal value such as progress |
| string | Text such as a player name |
| object | Several related values, such as item details |
| array | A list, such as inventory items |
Choose Global only for values shared by local players in the same game process. It does not enable network synchronization.
Give Preview some sample data
- Open Presets and click + beside the preset selector.
- Enter a unique name, for example
MainMenuExample. - Set the player name to
Alexand fill any other fields you need. - Create the preset. Studio selects it for Offline Preview.
A preset is a saved set of example values. You can create several, such as an empty inventory and a full inventory, then switch between them while designing. Object and array values use a JSON editor; invalid values must be corrected before saving.
Use the remove action beside a preset to delete it. You can delete any preset,
including default. If none remain, Preview uses the field defaults.
Display the value in a component
Select the field and use its copyable binding example. In the component's
<script> section, / → Store → Read field inserts a read and the required
import. Return the value or a computed value from the script, then use the
returned name in the template, such as {{ playerName }}.
Only names returned by the script are available to its template. See TypeScript for the complete component structure.
A preset changes only Studio Preview. To supply real data, follow Update game values in Blueprint.
Define an inventory list
- Open Reusable Types and click + Reusable Type.
- Name it
InventoryItem. Addidas a string,labelas a string, andcountas an integer. - In a State Group, add an array field and choose Item type = InventoryItem.
- Choose Stable key = id. Give each item a unique ID that stays the same when it moves in the list.
- Save, then add sample items in Presets.
A reusable type describes the shape of an object or list item. It is not a separate game value. For an object field, select the type with Object type. You can use the same reusable type for more than one array or object field, even under different State Groups; each place you use it is validated on its own, wherever you put it, not only where you first defined it.
Use ui:key="item.id" when displaying repeated components. This lets focus and
local state stay with the correct item after a reorder. See Lists.
Define button actions
Open Action Contracts to create the named requests your buttons send to Unreal. Payload contains any extra fields sent with a request. For a complete example, follow Make a button run Blueprint.
Save and change definitions
Save checks the definitions, actions, and selected preset, then rebuilds the packages and updates Preview. It is disabled when nothing changed. If saving fails, read the error and correct it; the last valid version is kept.
You can undo and redo definition edits. To remove a reusable type, first change or remove the fields listed under Used by.
Changing Store Path under Advanced changes the names your components and Blueprint references use. Studio lists the affected fields before confirming. It updates the active preset, but you must update affected component source references yourself. Recheck Blueprint field and action selections after renaming.
When connected to Unreal, wait for the rebuilt package to synchronize. If you changed Store or action definitions during Play, restart Play so your Blueprint registers its listeners again. Ordinary visual edits do not require this restart.
Source files
Studio saves the definitions in store.schema.json and presets in the files
listed by storePresets in calmui.config.json. Files under generated/schema
are produced automatically; do not edit them. Studio also manages definition
version numbers when you save.
Connected Live values are the running game's values. They are read-only and do not overwrite your offline presets.