What is Flow Graph?
5.xUObject instances. This allows a single node to encapsulate an entire gameplay element, including both its logic and its data, enabling the creation of repeatable "event scripts."repository·5.x·Indexed 23 days ago
https://github.com/mothcocoon/flowgraphAn open-source, design-agnostic event node editor for Unreal Engine used to script game flow and narrative events. Unlike function-based Blueprints, Flow Graph utilizes stateful UObject nodes that react to asynchronous events. Key features include Gameplay Tag-based communication via Flow Components, integration with Unreal SaveGame and Sequencer, debug tools like Force Pin Activation, and Signal Modes for safe graph updates during game patches.
UObject instances. This allows a single node to encapsulate an entire gameplay element, including both its logic and its data, enabling the creation of repeatable "event scripts."Signal Modes allow designers to modify Flow Graph logic in game patches without breaking existing SaveGames. Because Flow Graphs serialize the state of active nodes to a SaveGame, removing a node post-launch can cause issues with legacy saves. Instead of removing nodes, you can change their Signal Mode to alter their behavior while maintaining graph compatibility.
There are three primary Signal Modes:
Since pin connections are not serialized to SaveGames, you can safely change connections on nodes set to PassThrough to reroute logic during patches.
To use Flow Graph effectively, understand these fundamental architectural differences from standard Blueprints:
UObject, not a function. This means a node can hold its own state and data, acting as a self-contained gameplay feature.Sub Graph node. This allows you to nest graphs, such as starting a specific graph for a quest or event from a parent graph. This modular approach is the recommended way to structure large-scale logic.Flow Graph nodes can communicate with world actors without requiring direct hard references, which improves flexibility and compatibility with World Partition. There are three primary ways to obtain actor references:
Gameplay Tags (Recommended):
Flow Component to an actor (the "event actor").Gameplay Tags to that component to identify the actor.Flow Component registers itself with the Flow Subsystem upon appearing in the world.Flow Subsystem for actors registered with a specific tag. This is ideal for runtime-spawned actors like NPCs.Soft Object References: Useful for referencing specific, unique objects like triggers or spawn points without hard-loading them immediately.
Guids: Used for identifying specific instances of actors.
Flow and GAS are designed for different layers of gameplay and different user personas. Choosing between them depends on whether you are scripting systemic mechanics or directed narrative events.
Flow Graph is a design-agnostic event node editor for Unreal Engine designed to script the flow of events in virtual worlds. Unlike Blueprints, it follows these core principles:
UObject rather than a function. This allows a node to encapsulate both logic and data, making it a reusable "event script."You can exclude specific asset types from the Asset Search indexing process to improve performance or focus your search. This can be configured at two levels:
Project Settings.Editor Preferences.This functionality requires merging specific engine modifications (such as the Search Roles addition).
UFlowSubsystem::StartRootFlow method.UFlowSubsystem::StartRootFlowYou can include the Flow Graph repository as a dependency in your project using Git submodules. Use the following command to add the 5.0 branch to your Plugins/Flow directory:
git submodule add -b 5.0 https://github.com/MothCocoon/FlowGraph.git Plugins/FlowFlow Graph integrates with Unreal Engine's USaveGame system via the UFlowSaveGame object. To include Flow Graph data in your save files, you must ensure your properties are marked with the SaveGame specifier in C++ or by checking the SaveGame checkbox in the Blueprint editor.
To complete the integration, you must call the following methods on the UFlowSubsystem (accessible from Blueprints) during your save/load lifecycle:
OnGameSaved: Call this when you are performing a save operation.OnGameLoaded: Call this when you have finished deserializing your save data.Active graphs are serialized into the UFlowSaveGame object, which is managed by the UFlowSubsystem registry.