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.

How it works

Once an FSM State is activated, it runs as its own independent execution chain.

Each active chain maintains its own:

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 practical use case

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.

Mutual exclusivity is explicit, not assumed