Changelog
What changed in each version.
1.4.0 · 24 October 2026
Fixed
- The package's
.metafiles no longer change GUIDs. An Editor upgrade had regenerated them, which would have disconnected every StateFlow Manager, StateFlow Asset and State Asset in projects updating from 1.3.x, and broke the graph window's styles. - With Addressables loading, a trigger raised while a state was still loading (from a global trigger, a toast or spawned content) acted on a half-updated stack and could leave two states on screen. Triggers raised during a load now wait and run in order once the loading state is shown.
- With Addressables loading, a state whose State Asset sits in a Resources folder failed to load, because Addressables 2 no longer resolves Resources paths. Keys that are not Addressable now load from Resources, as the StateFlow Asset inspector already promised.
- A state that failed to load no longer takes the current state with it: the current state stays on screen and its triggers keep working. Going down to a lower layer that has no state yet now keeps every open state until the new one loads, and when the replacement for a lower layer's state fails to load, that state takes control again.
- Entering play mode with domain reload disabled no longer keeps registrations from the previous session.
- Closing the StateFlow Editor window releases its graph, and Find state and Follow no longer stop a pixel short of the state on high-DPI screens and keep the view animating.
Added
- A state covered by a popup that raises a connected trigger logs a warning naming the state and trigger, since StateFlow ignores it.
Changed
IAssetLoadContextandIAssetProviderStrategyreturnIPromise<IStateAsset>instead ofTask<IStateAsset>.StateManagertakes its collaborators in its constructor; create one withStateManagerFactory.Create.- The DLLs are now Release builds, and the runtime DLL is no longer compiled with
UNITY_EDITORdefined.
1.3.1 · 17 October 2026
Fixed
EnterandExitnow always alternate. A state that opened a popup or was replaced from its ownInitializeorLateInitializeused to getExitbefore it had entered, thenEnteranyway, then a secondEnterwhen the popup closed. Anything it subscribed inEnterwas left subscribed after the state was destroyed. Now a covered state enters when the state above it closes, and a replaced one never enters.
1.3.0 · 11 October 2026
Added
- Build check: before a player build, every StateFlow Asset is checked for states the player would fail to load, and each problem is reported in the Console.
- The StateFlow Asset inspector lists states that will not load with the selected load type and fixes them in one click.
- Feature Samples in
Assets/StateFlow/Samples: nine scenes covering each core feature.
Changed
- With Addressables loading, prefab states are found by asset GUID, so moving or renaming a State Asset no longer breaks the graph.
ManagedLifecycleis renamed toStateFlowSpawner, withSpawnandDespawnreplacingInstantiateandDispose.
Deprecated
ManagedLifecyclestill works and forwards toStateFlowSpawner, but shows an obsolete warning. It will be removed in 2.0.
1.2.0 · 10 October 2026
First public release.
- Visual graph editor for UI flows, with screens, popups, dialogs and alerts on four ordered layers.
- Type-safe triggers:
Trigger,Trigger<T>andTrigger<T1, T2>events become output ports. - Payloads delivered to the next state through
IStateFlowComponentWithPayload<T>. - Scripted transitions per connection, with underlay and overlay layers.
- State lifecycle: Initialize, SetPayload, LateInitialize, Enter, TransitionFinished, Exit, Dispose.
- Script states, sub-state machines with entry and exit states, and linked machines.
- Toasts with built-in or custom animations, and global triggers raised from anywhere.
- Spawned content through
[SpawnedState]andManagedLifecycle. - State observer, Resources or Addressables loading, and a live play-mode view.
- Groups, sticky notes, minimap, search, follow mode, grid snapping, alignment and a colour legend.