WORK IN PROGRESS! VERSION 2.0 IS NOT YET AVAILABLE

Update2

Version 2.0 - What's new

Please note: Graphs made with version 1.x are not officially compatible with version 2.0. FlowReactor will try to upgrade your graphs to version 2.0 but because of internal refactoring it is impossible to make sure every use case will work 100%. Thanks for your understanding!

Improved variable UI/UX

variableuiux

We have greatly improved the UI/UX for variable connections. You can now easily connect variables from blackboards to nodes or nodes to nodes.

Variable type conversion

typeconversion

Variable types can now be converted automatically if conversion is supported. FlowReactor can also automatically convert game object to component types by using GetComponent. So for example AudioSource -> GameObject. This will automatically get the audiosource component from the assigned game object.

Type colors

typecolors

Look at all those colors!

New simpler custom nodes

simplernode mynewnode

We've simplified the custom node creation, because high level scripting is all about your own custom nodes. No need for any node wizard!
Simply right click in the project view and select one of the possible custom nodes. Those simpler nodes also have much less boilerplate code. (The node wizard still exists for creating more advanced nodes.)

Improved group behaviour

bettergrouping

New grouping of nodes works better without any weird context menu. If you want to add new nodes to an existing group, simply make sure that the node is inside of the group by resizing it.

New quick connect / disconnect node

shiftdisconnect

It is now possible to drag a node out of a connection by holding the SHIFT key. Branch movement has been moved to the CTRL key.

Quick variable creation

quickblackboardvariables

It is now easier to quickly add new variables to a blackboard.

New Input System support

FlowReactor now supports the new Unity input system.

New Timeline support

FlowReactor now supports the new timeline system. The package also comes with several playable director control nodes and a signal receiver node.

New Addressables support

FlowReactor now supports loading/instantiating addressable asset references. The addressable package also comes with a custom FRAssetReference type.

Required components attribute

requiredcomponents

Some nodes do require external components to work. For example the UnityCharacterController node needs the CharacterController component. This can be defined by the NodeRequiredComponent attribute in the node class. If this attribute is defined, you can then enable the required component which should be added to the game object automatically in the graph. (Top Right -> Click on Required components dropdown)

New Async code execution

Coroutine nodes have been deprecated. Instead all action nodes can make use of the async/await method. No need for an extra node type.

Graph Library

graphlibrary

The graph library shows you all available graphs in a project. You can easily search for a graph and open them in a single window. You can also search for asset labels which can be assigned to your graph assets.

New state machine demo scene

statemachinedemo

FlowReactor 2.0 has a new state machine demo which nicely shows how to use the script controller node. The script controller node makes use of the INodeControllable interface which allows you to control external scripts by a graph.

Clean FlowReactor component inspector

fr2_inspector_closed fr2_inspector_open

The new FlowReactor inspector has been ceaned up with foldouts. You can now easily see your local, global and node controlled values.

Removed legacy nodes

To reduce clutter and match our philosophy of High Level Visual Scripting we've removed 19 nodes from FlowReactor. You can still access them by extracting the legacy_nodes.unitypackage file.

Changelog

Breaking changes for version 1.x graphs

  • BREAKING CHANGE: Warning possible breaking change! Removed feature of exposed scene variables as those are deprecated since the introduction of local blackboards.

    FlowReactor will try to update graphs accordingly by changing exposed scene variables to local blackboards with overrides.

  • BREAKING CHANGE: Fixed branch node, weights not being assigned correctly when using RandomWeightBased mode. This could break old branch nodes with weights assigned.
  • BREAKING CHANGE: Improved and fixed blackboard variables not correctly assigned to node variable fields. Due to this refactoring, blackboard variables are probably being resetted.

New

  • New: New and improved UX & UI for node variables and connected node variables including drag and drop of bb variables to node variables.
  • New: New variable type casting feature. Connect variables of different types like float to string or audiosource to gameobject.
  • New: Added support for new Input System.
  • New: Added support for Timeline system
  • New: Added support for Addressables
  • New: New simple node class with much less boilerplate code. Create simplified node class without node wizard.
  • New: Double click on single node opens node inspector in graph.
  • New: Holding shift while dragging node over bezier handle connects node automatically. Same for disconnecting a node which is in-between two nodes.
  • New: Support for disabled domain reloading
  • New: New Blackboard variable quick creation menu.
  • New: New state machine demo scene.
  • New: New move along waypoints demo scene.
  • New: Subgraph demo scene
  • New: Added an option to the settings to disable the dialog when deleting a node.
  • New: New SceneObjectOnly attribute. This attribute can be added to FRVariable fields to mark them accordingly. Additinally FlowReactor can then handle the connection with new blackboard variables on node creation. The behaviour of this can be changed in the settings.
  • New: New welcome screen.
  • New: Added possibility to create flow nodes from the node wizard.
  • New: Added NodeRequiredComponent attribute, which can be added to a node class. (Similar to the Unity RequireComponent attribute). The required component will be automatically added to the FlowReactorComponent gameobject.
  • New: Added HideValueFieldOnNode attribute to hide value fields on a node. This can be useful for fields which takes too much space.
  • New: Reworked Documentation: https://doorfortyfour.gitbook.io/flowreactor-documentation
  • New: Improved node panel. Added node icons and better searching by type, title and keywords. Also showing node title names instead of node type names.
  • New: Added NodeIcon attribute
  • New: Added NodeSearchKeywords attribute
  • New: Added FRAnimationCurve variable type
  • New: Added FRAnimationClip variable type
  • New: IMGUI Button node.
  • New: Node Attributes: NodeHideFRVariablesInInspector, NodeHideCustomInspector, NodeShowDefaultInspector.
  • New: Removed Coroutine nodes and all coroutine functionality as they're replaced by async/await.
  • New: Added hold time to OnValueChanged nodes.
  • New: Added new graph library which shows all graphs in a project. The list can be filtered by name or asset labels which can be assigned on graphs. The graph library is also dockable as a seperate window.

Improvements

  • Improved: Improved group behaviour. Nodes are now automatically added to a group when resizing the group.

  • Improved: Improved node variables initialization.

  • Improved: When deleting a connected node, the connected input node will be connected automatically to the deleted node output node.

  • Improved: Nodes stay on place when enabling/disabling properties window.

  • Changed: Moved 19 legacy nodes to a legacy_nodes.unitypackage

Bugfixes

  • Bugfix: Fixed bug where custom output names would loose the name when disconnecting it.
  • Bugfix: Fixed issue where blackboard variables could loose values when compiling script during play mode.
  • Bugfix: Fixed node height issue when expanding nodes with multiple output slots.
  • Bugfix: Fixed issue where the node panel would occasionally open up on a weird position.
  • Bugfix: Fixed issue where graph execution could be slow if the FlowReactorComponent inspector is open.
  • Bugfix: Fixed issue where sub-graphs would be set to active state at start.
  • Bugfix: Fixed issue where user can't drag a material from the project view to a blackboard material variable.
  • Bugfix: Fixed gui issue when right click on a node.
  • Bugfix: Fixed several issues when copying subgraphs.
  • Bugfix: Fixed color picker in group node causing an exception.
  • Bugfix: Fixed issue when copying nodes with different namespaces.
  • Bugfix: Fixed GUI Error when clicking variable connection points in Unity 2021.
  • Bugfix: Fixed issue when duplicating ExitGraph node.
  • Bugfix: Fixed ui drawing issue when using HideInNode attribute on list types.
  • Bugfix: Fixed byte allocation issue when selecting nodes in a running graph instance.
  • Bugfix: Fixed issue where editor window of graph instance would not close properly when exiting playmode.