Flow Core’s FSM does not treat “only one active State at a time” as a hard rule.
Within a single Flow graph, multiple FSM States can run at the same time, each handling a different dimension of behavior.
This is not about dismissing traditional state machines. It is about supporting a different class of problems. In real gameplay systems, movement, animation, audio, sensing, and presentation logic often need to progress simultaneously. In many conventional Unity state-machine workflows, complexity is usually managed through a single current state, extra layers, or additional structural indirection. Flow Core takes a different route: it allows that parallelism to be modeled more directly.
Once an FSM State is activated, it runs as its own independent execution chain.
Each active chain maintains its own:
FlowContext)These chains are advanced by a shared scheduler. Under normal execution, each active chain performs its Update once per frame cadence. Parallel execution means multiple States may be active simultaneously, but it does not mean a single State is updated multiple extra times per frame just because others are running too.
Most importantly, a State stops automatically once its Transition is completed.
Cancel is therefore best understood as an explicit interruption mechanism, not the normal way a previous State ends after a successful Transition.
A character or gameplay system can be split into separate state dimensions running side by side, for example:
This avoids forcing everything into one oversized composite State just to represent “the character is moving, playing a certain animation, and emitting a certain set of sounds.”
Each dimension can enter independently, update independently, and transition independently, which often maps more cleanly to how real systems are built.