Skip to main content
Flow Core Documentation
Menu

Runtime Data

Blackboard & Typed Values

Give graph data an explicit owner, scope, key, and type.

Audience
All developers
Time
10 minutes
Requires
A FlowCoreProcess and a data-driven graph field
Modules
Flow Core
On this page

Use a Blackboard when a value should be named, typed, inspectable, and available beyond one event call. The important decision is not only the key name; it is the complete path: scope, Blackboard index, key, and value type.

Choose an owner

ScopeUse forExample
LocalData owned by one process or objectCurrent target, movement speed, interaction prompt
SceneData intentionally shared within a sceneEncounter phase, scene objective, shared spawn count
GlobalData intentionally shared across broader application flowSelected profile, global difficulty, cross-scene mode

Choose the smallest scope that matches ownership. Global data is not a shortcut for uncertain ownership.

Create a typed path

  1. Open the Blackboard’s Edit view.
  2. Choose the required value type for an entry, such as Boolean (bool), Int32 (int), Single (float), String, Vector3, or a supported reference type.
  3. Create a stable key.
  4. Bind the Blackboard to the process when using Local data.
  5. Configure the graph field with the same scope, index, key, and type.
  6. Set Debug Context and confirm the summary resolves.

The Blackboard Summary lists typed values, including TargetScale as Vector3 (2, 2, 2).

The Summary view lists each key, value, and type. TargetScale is a Vector3 entry with value (2, 2, 2).

Flow Core Process resolves a Vector3 Value from Local Blackboard index zero using TargetScale.

The Set LocalScale heading and Value fields are shown separately. Source Flow Core Process, Local scope, Index 0, and Key TargetScale resolve the Vector3 entry.

Select the right data channel

Blackboard is one of several explicit sources:

  • Use a literal for a value that belongs to this one authored field.
  • Use Blackboard for reusable configuration or state.
  • Use payload for data supplied by the Trigger or Entry that started the chain.
  • Use TempPayload for writable scratch data produced and consumed within one chain.
  • Use supported context or target resolvers for values derived from the current execution context.

Do not copy every payload into Blackboard automatically. Persist only values that need ownership beyond the event.

Behavior contract

Typed access helps Flow Core avoid ambiguous conversions and hot-path boxing. A key that exists under another type does not satisfy the requested typed path. Local Blackboard order also matters when a graph selects an index.

When changing Blackboard lists at runtime, batch changes and rebuild bindings once. Avoid reordering lists while active chains still depend on previous indices.

Common misunderstandings

  • A key name alone is not a complete binding.
  • Scene scope does not mean the value automatically survives a scene change.
  • Global scope should still have explicit ownership and reset policy.
  • payload is not writable shared storage.
  • TempPayload is cleared with the chain and should not hold cross-chain state.

Custom Blackboard types and Enums

Flow Core 6.0 automatically binds supported custom types and their required serializers, resolvers, and Drawers during compilation. Automatic registration does not implement a serializer or define its persistence contract for you. Share the implementation group, preserve stable type/wire identities, and verify scalar and List save/load paths in the actual Player.

Choose whether unused registration support is prepared in advance through Automatic Registration & Prewarm. This preparation does not create Blackboard gameplay values or load all project resources.

Continue to persistence

When typed values must survive beyond the current scene state or play session, continue with the supported Flow Core save channel.

Video · 2:18Flow Core Save and Load OverviewPreview the runtime persistence loop before configuring the written workflow.