This major update introduces new features, improved workflows, and performance enhancements across both GameObject and Entities workflows. It also includes updates to the licensing model and a small number of breaking API changes for certain tasks.
Licensing Update
Behavior Designer Pro now uses a custom license model. The Enterprise license is required if you or your organization has more than $200,000 USD in revenue or funding over the past year.
The Enterprise version includes:
- Access to the full source code via a private Git repository
- Priority support
- Priority consideration for feature requests
- Immediate access to updates and changes
You can review the full license and Enterprise version here: [License] | [Purchase]
If you do not need the Enterprise version you can upgrade to version 3 for free here.
Breaking Changes
IEventNode.Index Property
IEventNode now extends IRuntimeNode, which requires an ushort Index { get; set; } property. Any custom IEventNode implementations must add this property.
ECSTask Generic Parameter Update
The ECS task base classes now take the flag type as a third generic parameter instead of requiring an overridden Flag property. All existing ECS task classes must update their base class declaration:
// Before
public class MyTask : ECSActionTask<MyTaskSystem, MyTaskComponent>
{
public override ComponentType Flag { get => typeof(MyTaskFlag); }
...
}
// After
public class MyTask : ECSActionTask<MyTaskSystem, MyTaskComponent, MyTaskFlag>
{
...
}
This applies to ECSActionTask, ECSConditionalTask, ECSCompositeTask, and ECSDecoratorTask.
IAuthoringTask.AddBufferElement Parameter Addition
The AddBufferElement method has a new parameter in order to support the new ECS SharedVariable system. The method now includes the ECSVariableRegistry:
public int AddBufferElement(World world, Entity entity, ECSVariableRegistry registry, UnityEngine.GameObject gameObject)
EnableBakedBehaviorTreeSystem Deprecated
The behavior tree now starts automatically when StartWhenEnabled is true. For manual control, call BehaviorTree.StartBakedBehaviorTree directly.
New Features
Live Graph Debugging
The graph window now shows real-time visual status for pure ECS entities. The ElementInspector also shows the live runtime status of the selected node. Navigation history (back/forward) is supported while viewing a live graph.

ECS Shared Variables
SharedVariables are now first class citizens within ECS tasks. Add a SharedVariable to your authoring task, and it can be used to share values with other tasks. The same SharedVariable can be shared across ECS and GameObject tasks (as long as it meets the ECS requirements, such as being a blittable type).

“Save as Subtree” and “Replace” Options
A right-click context menu in the graph now offers a “Save as Subtree” option to extract selected nodes into a reusable subtree asset, and a “Replace” option on reference nodes. Double-clicking a reference task with multiple graphs assigned now shows a context menu to pick which graph to open.

Subtree Event Injection
Event nodes from subtrees are now automatically injected into the parent tree. A “Flatten Injected Nodes” setting controls how injected subtree nodes are displayed.

View Nested Subtree
An option has been added which prevents nodes from being flattened inside the parent graph. You can now step into the injected subtree by double clicking on the reference node.

Task Enabled Property
Individual GameObject tasks now have an Enabled toggle that can be set from the inspector or at runtime without removing the task from the tree.

Watched SharedVariables Show Runtime Values
SharedVariables added to the watched list now display their live values in the inspector during play mode.
New Task Library
- Many new Math action tasks (added under a dedicated Variables category in the task search window)
- Many new GameObject action and conditional tasks
- A set of type conversion tasks (e.g. ConvertBoolToFloat)
DOTS Entities from Closed Subscenes
ECS entities from closed subscenes can now be shown and inspected in the editor without opening the subscene first.
Performance Improvements
RandomSelector, RandomSequence, and PrioritySelector have been optimized. Further general runtime optimizations were made to reduce per-frame overhead.
Connection Traversal Animation
Connections now show a traversal animation for rapidly changing nodes, making fast-ticking trees easier to read at runtime.
General Polish and Bugfixes
Various improvements to the node inspector, drop positioning, node selection in nested subgraphs, color state visualization, and overall editor stability.