
In Flow Core, Mix Graph is more accurately understood not as a separate asset type, but as a design concept: a single Flow Graph can mix Flow, FSM, and BT, while also allowing Stacks to coexist within the same graph.
The formal description is that the same editor supports authoring Flow, FSM, and BT within a single graph, solving the problem of event logic, state logic, and behavior-tree logic being split across different systems.
The core idea of Mix Graph is therefore not to force several graph types together mechanically, but to let different execution models share the same graph asset, the same Blackboard system, the same debugging tools, and the same runtime framework—while still keeping their responsibilities clearly separated: Flow handles orchestration, FSM handles high-level state, and BT handles priority-based decision-making within a state.
Mix Graph is built on a unified data model. Inside the Flow Graph Asset, the graph is stored as a collection of Flow Node Data. Each node identifies its own role through Flow Node Kind, such as Flow, FSM State, BT Root, BT Sub Graph, Stack Root, or Stack Layer. This means that, at the serialization level, a mixed graph is fundamentally a single graph containing different node families, rather than an illusion created by nesting multiple separate graphs together.
It also uses a unified compilation model. Flow Graph Runtime Builder compiles nodes of different Flow Node Kind values into the same runtime structure, Flow Runtime Node, while filling different fields depending on the node family. For example, FSM State provides FSM-related data such as mode, transitions, and subgraph entry points. BT Root provides behavior-tree-specific data such as Success, Failure, and child indices. BT Sub Graph, Sub Flow Graph, and FSM Graph Mode recursively compile their referenced subgraphs. Stack Root and Stack Layer provide the lifecycle and target data required for stack-based execution.
Finally, all of this runs under a unified runtime host. Flow Core Process builds the Blackboards and creates the Flow Graph Runtime, while FlowContext holds the runtime state. This means the different models inside a mixed graph are not running as isolated systems. They cooperate within the same runtime framework.
The boundaries between these models are also explicit, not implicitly blended together. Flow activates FsmState through Active. The Graph mode of FsmState can activate a subgraph. BtRoot is the only entry point for a behavior-tree branch, and returns to the outer layer through Success or Failure. SubFlowGraph and BtSubGraph each define their own subgraph boundary and activation window. Stack, meanwhile, provides another layered execution model within the same graph.
Mix Graph is not a separate graph type, but an architectural capability of Flow Core’s unified graph system. It enables hybrid graph composition through a unified asset structure, a unified node-kind model, a unified compiler, a unified runtime framework, and explicit boundaries between node families—rather than by mixing responsibilities in an ambiguous way.