Change Log

Due to frequent files and folder restructure, you should remove the previous installation folder and re-import NodeCanvas anew.
It is highly recommended to always keep a project backup before upgrading as well!

– v3.3.1 –

  • Fix: Unity 6 compatibility (was crashing).
  • Mod: Minimum Unity version is now 2021.3.xx

– v3.3.0 –

  • New: Task.OnValidate is now called when changes are made to the task inspector.
  • New: Parallel node will now display info for its children that are repeating (when Parallel is set to Repeat).
  • New: FSMOwner will now show a gizmos label of its active state name.
  • Mod: Double-clicking notes now edits them.
  • Mod: Make use of the new FindObjectByType API for performance where relevant.
  • Mod: Graph Refactor will now also immediately save the graph assets when refactoring.
  • Fix: Right-clicking connections did not work on Mac.
  • Fix: Check LOS 2D condition was not saving the target distance.

– v3.2.9 –

  • New: Ability to write notes within canvas groups (right-click group and then “Make Notes).
  • Mod: Event Logs are no longer logged in build.
  • Fix: Build error related to FSM node custom colour.
  • Fix: CheckNull task to better handle Unity Objects.

– v3.2.8 –

  • New: Ability to serialize asset graph json to external text assets (useful for source control).
  • New: Added “Dynamic” option in Priority Selector.
  • Mod: Support for Unity 2022.3.x searchbar style name change (an error was thrown).
  • Mod: It is now possible again to change the FSM Action States colour (the default is still orange).
  • Fix: Issue when there was only one action/condition in an Action/Condition List.
  • Fix: An error was thrown after closing node browser if graph editor was docked.

– v3.2.6 –

  • New: In-editor version checking and news.
  • New: Added support for Dictionary<string, List<T>> in menus.
  • New: A #NODECANVAS define in now added automatically in Unity player symbols.
  • New: [ReferenceField] attribute (can be used on an interface or abstract type field to show a popup to create a concrete implementation).
  • Mod: Dialogue GUI now works with UI input instead of normal Input.
  • Fix: Getting attributes was throwing errors related to some Unity attributes.

– v3.2.5 –

  • New: Changed Behaviour Tree and Dialogue Tree connection styling to be a single output point.
  • New: FSM -> ‘On FSM Enter’, ‘On FSM Update’, and ‘On FSM Exit’ nodes. (deprecated ‘Enter/Exit’ and ‘Parallel’ nodes).
  • Mod: Dialogue Tree “Instigator” keyword changed to “Self”.
  • Mod: Grid is now slightly bigger.
  • Mod: Added some more icons and colors.
  • Mod: Removed options for “Show Icons” and “Show Descriptions”. They are now always both shown.
  • Fix: Edge case bug with cycle referencing prefab blackboards objects.

– v3.2.2 –

  • New: MakeNewExposedParameter method in GraphOwner.
  • Mod: Made GraphOwner blackboard reference to be Blackboard instead of IBlackboard.
  • Mod: Cleaner tooltips in some nodes.
  • Fix: Graph Stop was called on destroy when application was quitting.
  • Fix: FSM concurent state.
  • Fix: FSM Enter/Exit state.

– v3.2.1 –

  • New: FSM Enter/Exit Node.
  • New: Ability to add custom type converter.
  • New: Inspector ability to create instances derived from abstract types via button.
  • Mod: Replaced all simple comments with summary blocks.
  • Fix: Unity 2021 Icon attribute ambiguous reference.

– v3.2.0 –

  • New: Graph Refactor now has the ability to also batch refactor missing BBParameters.
  • New: Option in Prefs to “Collapse Generics”, thus avoid clutter in the task/node browser.
  • New: Ability to “Change Generic Type” for Tasks.
  • New: Support for new Unity Input System (downloadable integration).
  • New: Check Null condition task.
  • New: Set Object Enabled action task.
  • New: [Header] Drawer Attribute.
  • New: [ShowIf] attribute now also works with properties.
  • Fix: Update Graph was incorrectly called when starting and resuming graph.
  • Fix: AotClasses Generator did not handle Enum constraints correctly.
  • Fix: GameObject Blackboard error when inspecting asset graph.
  • Fix: TextField focus was not cleared when deleting or moving variables.
  • Fix: FlagsEnum string info was incorrect.

– v3.1.8 –

  • New: SubGraph variables read out mapping is now always in sync while subgraph is running (instead of only when subgraph stops).
  • New: Ability to debug data bound variables property/field value in blackboard editor (new option found in variable “gear” menu).
  • New: ErrorCheck virtual method for Tasks to allow for manual task validation.
  • Mod: Root graph deltaTime is now propagated to its subgraphs update.
  • Mod: When set to AsyncLoad, Graph Owner is not initialized if it is not ‘activeInHierarchy’ (useful for pooling).
  • Fix: Global Blackboard variables data binding was not initialized.
  • Fix: Ctrl+S could not be used for saving when Graph Editor has focus.
  • Fix: BT Switch node to work with arbitrary enum values.

– v3.1.6 –

  • New: Ability to parent Asset Blackboard to GameObject Blackboard, thus “inheriting” variables from such asset blackboards.
  • New: Redesigned BT Priority Selector to include multiple considerations with utility curves (better implementation for Utility-Based AI).
  • New: Ability to change Variable Types.
  • New: LayerUtils (Unity Layer extensions).
  • Mod: Moved Animator-Based events to separate file than EventRouter (thus fixing certain issues with Animator).
  • Mod: Disable variable re-ordering in prefabs to avoid accidentally “breaking” prefab overrides.
  • Fix: Asset Blackboard properties binding was not initialized.
  • Fix: External Inspector errors.
  • Fix: Coroutine related null references in certain cases.

– v3.1.0 –

  • Important Hotfix that used to break graphs under very certain situations! As a result of this, the feature that appends JSON into the graph asset files is temporarily removed.
  • New: “GetSelf” Action Task.
  • New: Global Blackboard singleton destroy options when DontDestroyOnLoad is enabled.

– v3.0.9 –

  • New: Added tasks: Check/Set Flag Enum, FindAllWithLayers, CanSeeTargetAny, CheckDistanceToGameObjectAny, IsWithinLayerMask.
  • New: Actions Tasks now have an OnResume virtual method.
  • New: Added Condition Fail Return option in Conditional Decorator to select status return when condition fails.
  • Mod: All Collision and Trigger based tasks now work with rigidbody instead of Collider agent type.
  • Mod: Object-based event nodes now initialize in OnPostGraphStarted (instead of OnGraphStarted).
  • Mod: Disabled exposed variable binding preview in editor time (was becoming a bit confusing).
  • Mod: ColorUsage attribute now works as expected.
  • Mod: Graph.onFinish callback in now called after execution flags reset.
  • Fix: CanSeeTarget2D Gizmos (thanks to @aFoolsDuty)
  • Fix: Wander Action Task incorrect distance calculation.
  • Fix: Blackboard was setting scene dirty when it had a Unity Object reference.

– v3.0.8 –

  • New: Ability to use [DeserializeFrom] attribute for refactoring type members where reflection is used.
  • New: FSM Parallel Behaviour Tree.
  • New: FSM Parallel FlowScript (is part of the NodeCanvas-FlowCanvas bridge in the downloads section).
  • Mod: Graphs can now serialize in playmode if required.
  • Fix: MonoManager was throwing error when exiting playmode in certain cases.
  • Fix: Incorrect assert error (“Graph should have been called in playmode only”), thrown when existing playmode.
  • Fix: Checking UnityObject against null in certain tasks and nodes.
  • Fix: Copy/Pasting tasks now keep UnityObject references.
  • Fix: null reference when stopping FSM from within its own execution (eg from a task).

– v3.0.1 to 3.0.5 –

  • New: Clear On Play option in Graph Console.
  • New: Double Click maximize/minimize Graph Editor (thanks to @aFoolsDuty on Discord).
  • New: Support for Gradient, Vector2Int and Vector3Int.
  • New: Custom Object Drawers now work with inheritance.
  • New: Added Graph Local Blackboard inspector on the Graph Asset inspector.
  • Mod: GraphEditorUtility class is now public once again (changed from internal).
  • Fix: Conflict with Odin.
  • Fix: BBParameter was not clearing direct value reference when switched to use a variable.
  • Fix: ActionListPlayer Blackboard reference was not set correctly.
  • Fix: Behaviour Tree Nested Dialogue Tree was not updated.
  • Fix: Blackboard GetVariableValue to also lookup the blackboard inheritance for the target variable (as intended).
  • Fix: Dictionary GUI was resetting entries in certain cases.
  • Fix: GC Collect when serializing.
  • Fix: AOT Classes Generator.
  • Fix: Inspecting Structs was not working correctly.
  • Fix: Type Selection GUI in inspectors was creating leaks.

– v3.0.0 –

Please Note: Minimum Unity version is now ‘2018.4.x’ with ‘.NET 4.x’.

  • New: Local Graph Blackboard Variables.
  • New: SubGraph Variables Parametrization / Mapping.
  • New: Blackboard “parenting”.
  • New: Blackboard Variables Prefab Overrides.
  • New: Graph Refactor Utility Window (can be accessed from the graph editor toolbar).
  • New: Async Graph Loading (found in ‘First Activation’ option in GraphOwner inspector).
  • New: Pre-Initialize SubGraphs (option in GraphOwner inspector).
  • New: Defined Signal Events (thanks to @aFoolsDuty on Discord!). Use them with the new ‘Check Signal’ and ‘Invoke Signal’ tasks.
  • New: Prefab Instance Locking (avoid overriding bound graph accidentally). Lock is enabled by default. Found on GraphOwner inspector (for prefabs only).
  • New: Nodes now preserve connection-wise options when moving children (Priority/Probability Selector etc). Usage of [AutoSortWithChildrenConnections].
  • New: Preferred Types can now be synced with .typePrefs file for Version Control purposes.
  • New: PrettyJson is now printed as yaml comments in asset graphs for Version Control “diff” purposes.
  • New: Frame-Stepping (now works as originally intended. It also works for FSMs)
  • New: UpdateMode option in GraphOwner.
  • New: Ensure Fast-Enter Playmode is working.
  • New: FSM -> Self Transitions.
  • New: FSM -> Stacked Transition Calls (experimental)
  • New: FSM -> Parallel SubFSM (thanks to @Persuono on Discord).
  • New: FSM -> Sub Dialogue Tree
  • New: BT -> Merge Decorator (experimental)
  • New: BT -> Sub Dialogue Tree.
  • New: Play/Pause/Step Controls within Graph Editor.
  • New: Faster and better browser search and results.
  • New: “Show Node Runtimes” prefs option.
  • New: Virtual Link indicators for nodes with other node references (eg Dialogue Jump).
  • New: Canvas Node Groups auto-bounds with option.
  • New: Canvas Node Groups auto-sort based on their size.
  • New: Animatable inspector panel.
  • New: Drag & Drop asset graphs will now create a subgraph node automatically.
  • New: Validation now checks for missing nodes/reflection references and logs in console (so that can be found easier)
  • Mod: Only error icons are now shown on nodes (with tooltips too).
  • Mod: Total refactor of events backend for performance boost and type safety. (deprecated [EventReceiver] attribute).
  • Mod: Tasks no longer get disabled if they have an error now. They simply return Failure/False.
  • Mod: GraphOwner Blackboard reference exposed (meaning that owners can now once again share the same blackboard)
  • Mod: Pan/Zoom is no longer serialized as part of the graph json.
  • Mod: Prefab Assets with Bound Graphs can now only be edited in the Unity Prefab Stage Editor.
  • Mod: Removed serialization cycle references by default (now only possible with [fsSerializeAsReference].
  • Mod: Everything is in an asmdef by default.
  • Fix: Checking for hidden nodes was very slow.
  • Fix: Gizmos were not called for connection tasks.
  • Fix: Check UnityEvent now works with properties too.

Technical

  • New: .elapsedTime property for nodes.
  • New: Refactor Graph.isRunning and Graph.isPaused is now consistent with ActionTask.
  • New: Total Refactor IGraphAssignables (and thus SubGraph Nodes).
  • New: Implemented Serialization Versioning, Migration and Forward Migration in FullSerializer.
  • New: FullSerializer [fsIgnoreInBuild], [fsAutoInstance], [fsUninitialized].
  • New: FullSerializer ISerializationCollector, ISerializationCollectable.
  • New: WeakReferences and WeakReferenceList, WeakReferenceTable.
  • New: ‘NodeReference’ utility class to create node references easy.
  • New: Total Refactor SetReferences for performance.
  • New: Tasks and BBParameters can now exist anywhere in the graph structure. Deprecated ISubTaskContainer and ISubParametersContainer.

Breaks (sorry)

  • DialogueTree -> SubDialogueTree Variable Mappings will need to be re-set.
  • Blackboard overrides on Prefab Instances will be reverted to the Prefab Asset. (Due to new serialization to properly support Variable Overrides).
  • Bound Graph overrides on Prefab Instances will be reverted to the Prefab Asset. (Due to a Unity bug with [FormelySerializedAs] -> https://bit.ly/37T6CaE ). There is a way around this though. Please contact support if this is an issue for you.

Many other minor fixes, improvements and performance boosts.


– v2.9.7 –

  • New: Proper support for Unity 2019.3 new Editor GUI theme. Please use the Verdana font on Windows (It’s just better!)
  • New: Added “First Activation” option in GraphOwner to select between “OnStart” or “OnEnable”, meaning when the first activation will happen.
  • New: Option in Agent Override Decorator to “Revert To Original” agent.
  • Mod: FSM State Callbacks now require the MonoBehaviours to implement IStateCallbackReceiver interface.
  • Mod: GraphConsole now has a max limit of messages shown.
  • Fix: Some MacOS GUI related issues (Thanks to @aFoolsDuty on Discord).
  • Fix: Entering subgraph in play mode, was resetting subgraph’s references.
  • Fix: Minimap connections for collapsed nodes.
  • Fix: Connection “running” animation was still playing in subgraphs when subgraph was paused.
  • Fix: BT Monitor Decorator was throwing null ref when no ActionTask was assigned.

– v2.9.6 –

  • New: Added new Utility Window “Tools/../Active Owners Overview” that summarize active GraphOwners in play mode.
  • New: OnEnable and OnDisable are now called back in ConditionsTasks assigned within Behaviour Trees as expected.
  • New: Added new FSM “Pass” node. Works like an empty state, but without yielding 1 frame.
  • New: SubGraphs now hold a reference to their parent graph (.parentGraph property).
  • Mod: Graph asset comments are now visible in the GraphOwner inspector.
  • Fix: Disallowed sending null or empty event names.

– v2.9.4 –

  • New: Ability to Drag&Drop multiple objects to append in inspector List Editors.
  • New: Instances of classes and structs in inspectors, are no longer created automatically, but rather with a button on user request.
  • Mod: Current FSM State Finish() is no longer called when FSM is stopped as a whole. (This also fixes an obscured Sub-FSM related bug).
  • Mod: Added MonoBehaviour as default type in Preferred Types List.
  • Mod: Simplified Full Serializer even more.
  • Fix: Asset Bundles build warning.
  • Fix: OnUpdate is now called once immediately when a Sub-FSM State or Sub-BT State is Entered (after OnEnter).
  • Fix: Selecting methods with “ref” parameters in Execute Function and Check Function Tasks.
  • Fix: Dialogue Tree UGUI example, to stop audio playing when Dialogue is skipped or stopped.
  • Fix: Welcome Window URLs to point at “new” domain.
  • Fix: Improved UnityEngine.Object comparisons wherever is possible.

– v2.9.2 –

  • Fix: Critical serialization bug fixed! Please update if you are using v2.9.1!
  • New: Physics related “stay” events (like OnCollisionStay), are now called from within Update loop for consistency.
  • New: Dialogue Tree “Probability Selector” node.
  • Mod: Improved graph serialization error handling to conserve data if something goes wrong.
  • Mod: Serialization converters performance gain by avoiding reflection lookup.
  • Fix: Local Blackboard was not correctly assigned when starting graph with null blackboard.

– v2.9.1 –

  • New: Major serialization refactoring. Serializing properties is no longer supported (only fields).
  • New: Faster dictionary and lists serialization converters.
  • New: Double and Long type inspection support.
  • New: Pasting a task in a task list, appends that task in the end of the list instead of replacing it.
  • New: FSM now has public events related to state changes.
  • Mod: Removed NETFX_CORE support.
  • Mod: Removed inspector inline task search.
  • Mod: Graph Minimap now has fixed aspect ratio in relation to Graph Editor window.
  • Mod: Graph Editor canvas is now infinite in the negative (left-up) axis.
  • Mod: Removed dark background from node in the light theme.
  • Mod: All code is now re-formatted.
  • Fix: Stalling further execution when an exception is thrown.
  • Fix: macOS and retina display issues.
  • Fix: Searching operators with c# like symbols (“!=”, “>=” etc).
  • Fix: AOT generator for global namespaces types.
  • Fix: Browser filter favorites only, which in cases did not display results.
  • Fix: Inherited members categorization in the node browser.
  • Fix: UnityEngine.Object null check related issues.

– v2.9.0 –

  • New: Major files and folders restructure. This also allows usage of Unity Assembly Definitions.
  • New: Connection source node can now also be re-linked.
  • New: The Minimap now also shows connections, as well as selected nodes and execution status.
  • New: Blackboard Variables can now be duplicated (through a variable’s options button).
  • New: Action/Condition Lists, now display listed task names when the “Show Summary Info” pref option is disabled.
  • Mod: First graph execution is now OnStart instead of OnEnable.
  • Mod: Stepped and Linear connection visual modes are removed.
  • Mod: Connections are now easier to click.
  • Mod: Complete refactor of StyleSheets.
  • Mod: Removed source PSD files for icons.
  • Mod: Removed the old QuickStart.pdf file (it was getting quite old and hard to keep up to date).
  • Mod: Some general improvements to GUI styles, icons and colors.
  • Fix: BT Filter Decorator when used in a SubTree.
  • Fix: Nodes GUI size is now always relevant to it’s content.
  • Fix: Ocasional GUI connections flickering when using node inspector.

– v2.8.5 –

  • New: Unity 2018.3 tested.
  • NewGraph Finder Utility Window to quickly search, browse, find and auto focus graph elements (nodes, connections, tasks, parameters).
  • Mod: Re-Added categories shown when searching in browser.
  • Mod: Improved smart matching algorithm to yield better results when searching in browser.
  • Mod: Deprecated option to “Use Browser”. Browser is now always used where is adequate.
  • Mod: Type icons now show in consistency in all menus.
  • Mod: Refactor SubBehaviour Tree to work consistently with how all nested graphs do.
  • Mod: ActionLists now show (In Sequence) or (In Parallel) info.
  • Fix: AutoConvert -> To String null reference exception.
  • Fix: Improved Editor Visual Debug performance.

– Version 2.8.2 –

  • New: ActionTask.OnStop now has an optional argument to tell whether the action was interrupted or finished normally.
  • New: Better and more AutoConvert types from Variables to BBParameter.
  • New: Connections are highlighted on hover.
  • New: [ExecutionPriority] attribute for nodes.
  • Mod: Removed GameObject Icon Hierarchy Highlighting because it was dropping editor performance.
  • Mod: Improved Smart Search in Node Browser.
  • Fix: MessageRouter was applying root motion even when “Apply Root Motion” is off.
  • Fix: ScriptControl reflection method/properties selection menu now correctly shows all instance and static members.
  • Fix: Incorrect BBParameter Promotion when parameter is Dynamic.

– Version 2.8.1 –

  • This is a Stability Release.
  • New: Monitor BT Decorator.
  • New: “Log Dynamic Parameters Info” option.
  • Mod: Improved Smart Search algorithm in Node Browser.
  • Fix: Unity v2018 issues.
  • Fix: Lists re-ordering.
  • Fix: BT AutoSorting connections is now consistent.
  • Fix: BT Decorator performance issue.
  • Fix: BT Probability Selector.
  • Fix: Script Control Tasks to be able to pick from any type instead of only typeof(Component).
  • Fix: Event tasks Value Casting.
  • Fix: A few other very minor issues.

– Version 2.8.0 –

  • New: Major editor code refactoring and stepping stones for future development.
  • New: Ability for multiple Attribute Drawers to work together (Compound Drawers).
  • New: Much better search matching algorithm within Menu Browser.
  • New: Script Control Tasks unified to work with both instance and static functions/properties respectively.
  • Mod: GraphOwner prefabs no longer create a Graph sub-asset.
  • Fix: Graph Editor is no longer auto focused when changing Graph Owner selection.
  • Fix: Panning nodes when zoom out.
  • Fix: Several other micro bugs.

– Version 2.7.0 –

  • New: Robust Graph Minimap!
  • New: Visual Debugging Animations!
  • New: Graph Debug Console Window! Logs Graph related stuff and clicking on the logs, automatically opens up the relevant graph and focuses the relevant node.
  • New: Generic version of Task(T) are now possible to work with interfaces.
  • New: It is now possible to “upgrade” a normal (T) field type in a Task or Node, to a BBParameter(T) without losing serialization data.
  • New: GUI option for Colored Headers.
  • New: Node and Variables inspector panels are now re-sizable.
  • New: Node documentation now show on mouse over as a popup.
  • New: Connections are now clickable directly on the curve.
  • New: The Node Browser is now multi-threaded and as such loads up very fast and remains responsive.
  • New: Support for Control Copy/Cut/Paste shortcuts.
  • Fix: A lot of improvement in Editor Performance when zoom out.
  • Fix: Serializing default node colors.

– Version 2.6.4 –

  • New: Unity 2017 Tested.
  • New: Tasks with support for UnityEvents ( CheckUnityEvent, CheckUnityEvent(T), CheckUnityEventValue(T) )
  • New: Concurrent State, now has optional Conditions.
  • New: Added “Dynamic” option in BT Switch node.
  • New: Performance improvement for SubGraphs.
  • New: Added UpVector parameter in Rotation Action Tasks.
  • New: Added Prefs option to enable/disable active GraphOwner in the hierarchy.
  • Fix: Dynamic Sequencer and Selector, from not reseting all child nodes on interruption.
  • Fix: Support for Char type.
  • Fix: Same UID on Duplicate Nodes.

– Version 2.6.3 –

  • New: Unity 5.6 Tested.
  • New: Added PerSecond/PerFrame option in operations like SetFloat.
  • New: PreferredTypes are now handled per project. Note that they will be reset to default. Please re-set those, or save a preset before updating.
  • New: Better FSM transitions layout.
  • New: FSMOwner.GetCurrentState now takes into account SubFSMs recursively.
  • New: Icons for Dialogue Tree.
  • New: Hierarchy icons now display the state of the behaviour owner (running/paused/stopped).
  • New: [Tooltip] attribute is now supported as expected.
  • New: [Protected] attribute for nodes (so that they can’t be deleted once added).
  • New: [Icon] attribute now has modes to replace title or append to title.
  • New: Dialogue Tree Multiple Choice node; Choices are now reorderable as expected.
  • New: Dialogue Tree default UI now has typing sounds.
  • New: Added “Status.Optional”.
  • New: Prefs options to show node IDs.
  • New: Apex Path Integration.
  • Mod: Improved searching query of Node/Task Browser.
  • Mod: Graph names confusion is now removed. Asset names are used instead.
  • Fix: No longer asks for Unity API upgrade.
  • Fix: Scene not getting dirty when editing a bound graph.
  • Fix: AOTClasses generator for nested types.
  • Fix: Instantiating gameobject with multiple GraphOwners bug introduced in latest version.
  • Fix: Resolving Enumerable Type arguments.
  • Fix: Windows Universal 10 errors.
  • Fix: Optional Status Decorator.

– Version 2.6.2 –

  • New: Unity 5.5 support.
  • New: Editor performance improvements.
  • New: Improved Re-Linking connections and now also possible for BehaviourTree and Dialogue Tree nodes.
  • New: Action/Condition Lists are now handled automatically.
  • New: Types (including generic types) and methods will now resolve and fallback to other matches by searching types without namespace.
  • New: SubDialogue Tree node for Dialogue Trees.
  • New: Dialogue Tree asset graphs are now possible to be created and be used in a similar way that BTs and FSMs do.
  • Mod: FSM SuperActionState node will now auto-Finish if there are not OnUpdate list actions.
  • Mod: Node/Task Browser is now considerably smaller in size.
  • Mod: Obsolete methods/properties and fields are now excluded from menus.
  • Fix: Duplicate and Delete shortcuts for multiple nodes. Fix: Panning Graph is now undoable.
  • Fix: Control Graph Owner action task when set to StopBehaviour of “self” agent.
  • Fix: Memory allocations when using Dynamic Variables.
  • Fix: Export to JSON, will now correctly include derived graph data if any.

– Version 2.6.0 –

  • New: When a node or connection is selected, used Blackboard variables by that selection will now be highlighted.
  • New: Dynamic and missing parameter variables will now show in red within the Node & Task information UI.
  • New: AutoCast assigned Parameters will now show information of the cast that will take place (eg AutoCast: “Float” > “String” ).
  • New: Added button to ‘Promote’ a dynamic or missing parameter to a Blackboard Variable.
  • New: Improved Variable Separators and it’s now possible to have a custom name for them (double click to edit).
  • New: Added ability to colorize Canvas Groups through it’s right click context menu.
  • New: Added ability to colorize Nodes and it’s associated icons through their inspectors.
  • New: BT Icons are now colorized by default (dark skin only).
  • New: Script Control Task & Variables Binding now work with base definition of method and properties (The lowest implementation in class hierarchy is used).
  • New: FSMs will now not be Finished/Stopped if there is an AnyState node active.
  • New: Changed FSM SuperActionState behaviour to not Finish when the OnEnter list actions are Finished. Instead it will continue calling OnUpdate actions until a transition is made.
  • New: Added new Behaviour Tree composite node “Binary Selector”. (Based on a condition it simply either executes left or right child node).
  • New: Mecanim Set Parameter actions can now also be used the hashID instead of name.
  • New: Added breakpoints in BT Action/Condition nodes, as well as FSM States and Dialogue Tree nodes.
  • New: Added NC Preference to optionally Pause Unity Editor when a Breakpoint is reached.
  • New: Right Click in the Node/Task Browser window now goes back one step.
  • Fix: Breakpoints in SubTrees correctly pause the root Behaviour now.
  • Fix: OnGraphStarted that was not called in SubTrees.
  • Fix: Status visual debugging for BT Repeater Decorator node.
  • Fix: Inability to Bind Blackboard Variables when editing a prefab.
  • Fix: “Send Global Event” from sending multiple events in graphs of the same gameobject.
  • Fix: “Create Defined Blackboard Variables” command, that was incrementally adding Global BB name (eg “Global/”) for global variables.
  • Fix: Task agent resolving to first component instance when multiples of the same type are on the gameobject and when agent is override instead of always esolving to the override agent assigned.
  • Fix: NC ObjectDrawer and PropertyDrawer that were not utilized when placed under an “Editor” folder.
  • Fix: OnUpdate is now called once in the same frame (and after) that OnExecute is called for ActionTasks.
  • Fix: FSM Transitional Condition List Information UI from disappearing in runtime when parent state is not active.
  • Fix: FSM restarting memory allocations.
  • Fix: FSM Nested BT State that was not sending events correctly back to the FSM.
  • Fix: Added missing Task information texts.
  • Fix: AOT Classes Generator for non-namespaced classes.
  • Fix: When duplicating or pasting nodes, they will now be auto selected.
  • Fix: Win Universal Apps 10 support.
  • Fix: IOS EXE_BAD_ACCESS in Task.cs (thanks to emilio.saffi).
  • Fix: Requirement of “.Net” backend (instead of “.Net Subset”).

– Version 2.5.6 –

  • New: Blackboard Variables can now be bound to static properties and fields.
  • New: Added search in Preferred Types Editor.
  • New: Added new Preference Option (“Use Browser”). If true the complete browser will be used instead of normal context menu.
  • New: Added Favorites in Browser.
  • New: Added search comparison mode in Browser.
  • New: When searching in Browser, results are now categorized respectively with foldouts.
  • New: Added “Decorate” context menu option for Behaviour Tree nodes.
  • New: Dialogue text can now also work with global variables for replacements eg: [Global/myFloat]
  • New: Added ‘Check Event Value’ condition task.
  • New: [EventReceiver] can now be used in tasks to catch events send directly.
  • New: Execute Function/Check Function can now work with up to 6 parameters.
  • New: Comments TextArea is now expandable.
  • Fix: Graph will no longer ever reset due to deserialization errors.
  • Fix: Dialogue actor parameters no longer go red/missing when renaming parameter.
  • Fix: Recovering from missing nodes no longer resets it’s variables.
  • Fix: OnEnable/OnDisable not being called in conditions within ConditionList.
  • Fix: Check Function, Check Property “No Blackboard Reference” issue.
  • Fix: Leaking SubGraph instances when destroying graph owner in runtime.

– Version 2.5.5 –

  • New: Added ability for Custom Object and Attribute Drawers, similar to Unity native ones.
  • New: Auto-Properties are now inspectable in editor as read-only fields.
  • New: Refactoring namespace for methods/properties references in Script Control tasks, are now handled correctly.
  • Fix: Critical bug where child object references in prefabs were not referenced correctly when the prefab got instanciated in runtime.
  • Fix: BBParameters no longer lose references due to name changes, that was happening in some cases.
  • Fix: Missing methods/properties in Script Control tasks not showing the missing method in red.
  • Fix: Object editor window errors when entering/exiting playmode.

– Version 2.5.0 –

  • New: Improved deserialization GC/speed by 300%
  • New: Parameter and return type handling of Script Control tasks are now better at finding a replacement automaticaly.
  • New: FSM-NestedBT node can now be set to pause when the state exists and resume when re-entered instead of always stop/restarting.
  • Mod: Updated included DOTween to latest version.
  • Mod: Blackboard variables panel in editor window is now scrollable.
  • Mod: Added Gizmos in tasks that were missing them.
  • Fix: Support for Unity 5.4
  • Fix: Serialization error relevant to multiple scenes.
  • Fix: “Create New” variable from BBParameter dropdown in asset graph without Blackboard reference bug.
  • Fix: OnDrawGizmos and OnDrawGizmosSelected are now called in nested graph nodes and tasks.

– Version 2.4.5 –

  • Fixed FSM nodes being shown as dark blanks in some rare ocasions.
  • Fixed CheckEvent in FSM not being checked in the first frame.
  • Fixed Editor GUI error when creating tasks in an Asset Graph.
  • Fixed GlobalBlackboards error message that wasn’t actualy an error.
  • Added Timeout ConditionTask.
  • Added ability to drag&drop objects or scrips in the Preferred Types Editor for easy adding types in the list.

– Version 2.4.4 –

  • Added link.xml file auto-generation based on Preferred Types.
  • Ensure WebGL support.
  • More deserialization speed improvements.

– Version 2.4.3 –

  • Added Super Action State to FSMs.
  • Allowed DynamicVars for agent override parameter.
  • Improved AOT class generator to work with attributes on any class.
  • Script Control Tasks now always show all component types instead of only the ones currently attached on the agent. Much improved DialogueGUI.
  • Added “Skip On Input” and “Wait For Input” options in DialogueGUI.
  • When MultipleChoice options are shown, now so do the previous dialogue text.
  • MultipleChoice options are now added irelevant of the child connected nodes.
  • Fixed AnyState “No Retrigger” bug.
  • Fixed VS warnings.
  • The OnGUI DialogueGUI has been deprecated.

– Version 2.4.2 –

  • Fix: iOS error.
  • Fix: Deserialization recovery from missing Tasks and Nodes.
  • New: Variables can now be bound to fields except from only properties.
  • New: Parameters can now be linked to assignable types of Variable. You can now for example link a Transform to a Vector3 directly!
  • New: Added “Replace Node” context menu option in BT Composits and Decorator.
  • New: Added Straight Line connection style preference.
  • New: “Set Other Blackboard Variable” action.
  • New: Added GreaterOrEqual and LessOrEqual to comparison methods.
  • Mod: Improved BT Parallel to repeat child nodes automaticaly if set to Dynamic.

– Version 2.4.1 –

  • Hotfix 2.4 issue with default value serialization.
  • New: “Log Events” preference option.
  • Mod: Even faster deserialization.
  • Mod: Much faster editor performance.
  • Mod: Better Undo.
  • Fix: BBparameters losing reference to blackboard in some cases.

– Version 2.4.0 –

  • Fix: Deserialization is now fixed and fast.
  • New: “Don’t Retrigger Active State” in AnyState.
  • New: “Create New” option in the BBParameter dropdown selection.
  • New: “DontDestroyOnLoad” option for Global Blackboards.
  • Mod: Dialogue Dynamic text in brackets will now be replaced with a variable only if one is found.
  • Fix: Copy/Paste amongst different graphs.
  • Fix: FSM callbacks where only the last MonoBehaviour in the stack was receiving the callback.
  • Fix: Editor performance.
  • Fix: Node browser will now autofocus the search text field.

– Version 2.3.8 –

  • New: Added variables seperator.
  • New: Added editor indicator that Unity is in play mode.
  • Mod: Global Blackboards are now persistant between scenes.
  • Mod: DOTween actions are now interruptable.
  • Fix: Unity 5.2 editor warnings.
  • Fix: Using BBVariables in nested graphs.

– Version 2.3.7 –

  • New: Blackboard variables are able to network sync with UNET.
  • New: UGUI based Dialogue GUI.
  • New: Preferred Types list can now be saved/loaded to preset files.
  • New: [PopupField] attribute can now accept a string path to a static property to fetch popup values from.
  • New: Added OnEnable and OnDisable in ConditionTask.
  • New: BT Iterator is now immediate. Iterations happen in same frame.
  • Fix: Editor window canvas being misplaced when opening a new graph. Position and zoom is now correctly saved.
  • Fix: Blackboard deserializing error when a serialized variable type is missing.

– Version 2.3.6 –

  • New: Action List Player component to run lists of standalone actions independand of graph.
  • Fix: Errors when Webplayer was active platform.
  • Fix: Warning message for Unity 5.1

– Version 2.3.5 –

  • Fix Unity 5.1 warnings
  • New: [ShowIf] to show a field only if the boolean (in string) provided field is true, or not true.
  • New: [PopupField] to restrict values of a field through a popup.
  • New: [SliderField] can be used with integers.
  • New: [Name] can now be used on top of fields.
  • New: [ForceObjectField] to use above interface field types.
  • New: Action & Condition List Presets import/export.
  • New: Dialogue Tree MultiCondition Node.
  • New: Default method parameters are now taken into account for when selecting methods in Script Control tasks.
  • New: Improved SubTree, SubFSM node info to show the parameter name used in case it’s parametrized with a blackboard variable.
  • New: SubTree and SubFSM node inspectors now also show the Sub BT or FSM defined parameters along with a button to create the missing variables defined.
  • New: Double click a node now opens the Task script instead of Node script, if a task is assigned at all.
  • New: Inherited members from Unity classes are now shown in “more” for menu clarity.
  • New: Added extra button next to “Add Task” for opening up a complete browser.
  • Mod: Entering the same FSM state is now possible (relevant to AnyState).
  • Fix: Destroying FSMOwner from inside it’s own FSM.
  • Fix: Probability Selector from messing up weights after a child returns Failure.
  • Fix: Preferred types editor that was reseting under certain conditions.
  • Fix: Prefered types filtering that was not taking into acount certain types.
  • Fix: Static C# and Static Function call that were showing only Component types.
  • Fix: “COLLAPSED” button that was misplaced when zoomed out.
  • Fix: .agent property being null in editor.
  • Fix: Color issue when multi selecting and right clicking extremely fast (for those furious people).

– Version 2.3 –

  • Fix iOS errors.
  • Fix WP8/WSA errors.
  • Removed BT beta mutator nodes for clarity.
  • Added new set of “Script Control” tasks to work in all platforms. You should use these when targeting anything other than standalone or web.
  • Fixed issue with blackboard and Unity object references in some occasions.
  • Added new set of tasks: Shout Event, Check C# Event (T). Check Static C# Event. Check Static C# Event (T). Set List Element. Set Random Bool. Set Random Integer. Start Dialogue Tree. Say Dialogue.

–Version 2.2–

  • Added “Execute Static Function” Task to call any static function in any class. Remember that the classes shown to be selected are the ones added in the “Prefered Types Editor” window.
  • Added Flee and Wander action tasks.
  • Added control Click to select/deselect multiple nodes
  • Added dropdown selection menu in the editor toolbar to quickly jump between different GraphOwners in the scene.
  • Added ability to minimize/maximize node inspector similar to how variables inspector is done, by clicking the header.
  • Added ‘Repeat Actions’ in the Concurrent fsm node.
  • Added missing icons for Behaviour Tree WaitUntil and Timeout Decorator nodes.
  • Added option to set variables to ‘non-editable’. Useful if you are working with other people.
  • Added ability to pan the canvas with ALT + click and drag for trackpads.
  • Added a small highlight to the out connections of the currently selected node.
  • Added support for ‘Type’ variables, editor inspection and selection.
  • Added a utility editor window “Scene Graph Owners”, that shows all the current GraphOwners in the scene and the ability to select them.
  • Added event send and receive logging in the console for easier debugging.
  • Improved the Light/Indie theme.
  • Fixed WP8 and Store Apps errors.
  • Fixed most iOS errors.
  • Fixed node multi-selection editor GUI errors.
  • Fixed override agent from variable that was not changing when the variable was changed.
  • Fixed OnInit that was not called in tasks that did not define an AgentType.
  • Fixed Task Search, that was showing type names within the results.
  • Fixed editing nested graph losing reference to GraphOwner after a scripts recompile.
  • Fixed editor null reference exception that was thrown some times after exiting play mode with the NC editor open.
  • Removed greyed out/disabled object fields when editing a prefab owner or asset graph.
  • Renamed “Binded” to “Bound”:)

–Version 2.1–

  • Fixed prefab handling of GraphOwners and Binded Graphs (duplication, instantiation, overrides etc)
  • Fixed ExecuteFunction error with parametless method selected
  • ScriptControl tasks now show agent field before method selected
  • Fixed deserialization errors
  • Added safety check for deserialization
  • GraphOwner now starts the graph OnStart for the first time, then normaly OnEnable
  • Fixed Event conditions being true for 2 frames
  • Fixed canvas groups inside other groups are now panned
  • Fixed Webplayer Builds
  • Log Variable Tasks now logs the name of the variable too
  • Log Text tasks now shows a UI label as before
  • Added SendEvent(string) on GraphOwner as a override shortcut to SendEvent(EventData)
  • Right click connections now shows a context instead of default collapse/expand

–Version 2.0–

(Version 2+ is incompatible with prior version)
Please take a look at this forum post as well for more in depth version changes as well

SERIALIZATION

  • No more extra game objects and monobehaviours are being created.
  • Graphs are now Asset files.
  • Whole graph is now serialized in JSON. Import & Export graphs to file (json format).
  • Full handling of missing nodes and serialized state recovery if refound.
  • Removed VariableData. Blackboard can have ANY variable data type.
  • Removed need to create BBParameters. You can simply use BBParameter<T>.
  • Blackboard Save/Load now works with ALL platforms. Save Load is now done by providing a string for key.( .Save(“saveState1”), .Load(“saveState1”) ).
  • Generic Tasks ( eg MyTask<T> : ActionTask ) are now listed and can be used visualy and ALSO with the constrains imposed.

GRAPHS, NODES & TASKS

  • All Reflection Tasks can now show any type of parameter or method Vastly optimized all Reflection (Script Control) Tasks (They are now direct delegate calls without value boxing) Basicaly its like calling the method directly.
  • ScriptControl Tasks now use ReflectedType instead of DecalredType, meaning that a set_name will not result in Object.name, but rather in selected type.name.
  • SendEvent and CheckEvent Tasks can now communicate variables between them ( SendEvent<T> & CheckEvent<T> ).
  • BT Accessor renamed to Conditional Accessor.
  • New BT Nodes { Timeout, Invert, WaitUntil }.
  • BTComposite now have a ‘Breakpoint’ option in the context menu.
  • Added missing PrioritySelector icon.

EDITOR

  • Improved graph manipulation in canvas (panning canvas instead of nodes).
  • Added Smooth FocusTo (“F”).
  • Added smooth Editor zoom.
  • Added CanvasGroup Rectangles.
  • Node Copy/Paste between graphs (on top of Duplicate and assigned Task Copy/Paste).
  • Mulitple nodes copy/pasting while keeping “formation” starting at mouse position.
  • Scene Object References are disabled while editing an Asset (Persistant Object) when showing EditorGUILayout.ObjectField.
  • A Warning Icon is now shown on nodes that *possibly* have an issue (but not definetely).
  • Added button when selecting variable for a parameter, to automaticaly create and assign a new blackboard variable of the type required (any type).

WORKFLOW

  • Graph Assets can be made local (Binded) to the scene.
  • Binded Graphs can be saved back to Asset Graph.
  • All graph now work with IBlackboard interface, you can use and start a graph with your own implementation if you like.
  • Re-enabled “Create SubTree from Branch”.
  • Added option to automaticaly create DefinedVariables in the graph on the current blackboard.
  • Deprecated Variables Sync Components in favor of integrated Blackboard variables-property binding which is much faster and flexible.
  • Removed ‘Global’ option from Blackboards. Instead there is a new Component, “GlobalBlackboard” to use for global communcations.
  • TaskAgent override will now show only types of AgentType and GameObject to be selected from Blackboard.
  • Added generic version of ActionTask<T> and ConditionTask<T> to define target AgentType instead of using the [AgentType] attribute.
  • Added SetAny and CheckAny (Variable) Action and Condition Tasks.
  • Nested target Graphs in Nested Nodes, are now BBParameters, thus able to further parametrize the root behaviour based on the agent using it.
  • Added missing foldouts for Lists. Now also added for Dictionaries.
  • The Blackboard panel in the editor window is now max/minimized by clicking on it (instead of the toolbar button which has been removed).
  • FSM Drop Connection on canvas now pops a Menu to add a state (similar to BTs & Dialogues).
  • Task and Node names no longer need their own script with same name (but should if you want to open them with the c# icon).
  • *The DialogueTree module, will be a new seperate FREE for a limited time NC extension asset named DialogueCanvas.

–Version 1.6.0– 

  • Fixed buggy 1.5.9w version.
  • Prefab Editing is now possible.
  • Added direct Property Binding for Blackboard Variables.
  • Added Behaviour Tree ‘Priority Selector’ node.
  • Added ‘Repeat State Actions’ in FSM Action State.
  • Total refactor of Variable for vast performance increase and minimized GC.
  • Total refactor of Action execution for vast performance increase and minimized GC.
  • Working with Global Blackboards is now more convenient.
  • Added ‘Duplicate Branch’ in Composite nodes context menu.
  • Added option to ‘Automatic Hierarchical Move’ without the need to hold SHIFT to do that.
  • Fixed Chec/Set Enum tasks.
  • Fixed variable runtime assignments.
  • Fixed Coroutines in ExecuteFunction task.
  • Deprecated ‘Duplicate by Reference’ for BT Action and Condition nodes.

–Version 1.5.9– 

  • Unity 5 support.
  • Script Control tasks very increased performance by using delegates instead of pure reflection.
  • Improved Editor UI  graphics and nodes.
  • Override Agent is now possible to be picked by a Global Blackboard.
  • Added Blackboard copy/paste variables in component context menu (gear icon).
  • ‘Implemented Action’ (Script Control) task now accepts 1 paramter.
  • BT Parallel Composite node now has an extra policy option “FirstSuccessOrFailure”.
  • The Switch Composite node now works much easier with Enums, showing the enum values on the children connection for direct feedback.
  • Similarily the Probability Selector shows the chance %, for each child node on the connection to them.
  • The Accessor Decorator will now read if it is set to Dynamic or not like the rest of the dynamic featured nodes.
  • ‘Show Comments’ is now a global option.
  • The ‘Auto Connect’ option has been removed.
  • ‘Defined Graph Parameters’ info UI will now also show for FSMs.
  • Properties will no longer show in the NodeCanvas Task inspector.
  • Fixed: Overrided agent parameter will now show in ‘Defined Graph Parameter’ info UI.
  • Fixed: NC taking control over Animator in some cases.
  • Fixed: SetEnum / CheckEnum tasks.
  • Fixed: Action tasks that in some rare cases were keep running after an interruption.
  • Fixed: Mac context menu for when selecting methods / properties / field.
  • Fixed: Move action tasks when destination was (0,0,0).
  • Fixed: Remapper not remapping “Failure to Inactive” correctly.
  • Fixed: WP8 build errors.
  • Fixed: Runtime agent-behaviour bindings that when using Tick() directly resulted in errors.

–Version 1.5.8– 

  • Unity 4.6 GUI support and tasks.
  • Added Blackboard Property Binder! Bind any property with a blackboard variable!
  • All Script Control tasks can now work even with unknown agent, by selecting the expected type.
  • Added new Editor Window to configure commonly used Types for your project, that will show up whenever a Type selection is needed. Huge time saver!
  • Added FSM State option to check transition either continouesly (like before) or only after the State is Finished.
  • Tasks are now deactivated when their Initialization fails.
  • Shared Blackboard will now show up in variable selection drop down even when they don’t contain a variable of the type currently required.
  • Added onRootStatusChanged event in Behaviour Trees.
  • Added onValueChanged event in VariableData.
  • Added SetEnum and CheckEnum Tasks.
  • Blackboard.AddData is now public.

–Version 1.5.6– 

  • Blackboard variables are now re-orderable
  • Method/Property selection now show full type info
  • Performance boosted
  • Fixed GC alloc when using Script Control tasks
  • Fixed nested FSM nodes

–Version 1.5.5– 

  • Added Blackboard Mecanim Binder!. Sync mecanim parameters with blackboard variables!
  • BT Step Iterator node
  • BT Flip Selector node
  • BT Switch node
  • BT ‘Optional’ Decorator node
  • BT Iterator V2 (Iterate any list type)
  • AgentType can now also be an interface
  • UnityEngineObject variable can also be set to an interface
  • When overriding agent, variables of the agent type will also show up instead of only gameobject variables
  • Abstract variables are now handled
  • Check Property/Field/Method will show a comparison method selection when the type is float or integer
  • Set Vector can now also multiply, add etc the 2 vectors together
  • FSM will once again finish when reaching a Finished State with no transitions at all
  • Better Task serialization safer to name refactors
  • Missing assigned Tasks will now show their names in red instead of just disapearing
  • Task assignable nodes can now “inherit” icons from the assigned task if task has the Icon attribute defined
  • Editor Assemblies will no longer show up in relevant pop ups
  • Added ‘Task Search’
  • Added ‘Graph Defined Parameters’ information for Graphs
  • Fixed Prefab instantiation reference issues
  • Fixed Web player not working properly due to reflection
  • Fixed error foe when readin from problematic assmblies
  • Fixed some GUI related errors when entering a nested graph
  • Fixed VariableData name safety check
  • Fixed Repeat Times in BT Repeater node to be an Integer instead of float…
  • Fixed Nested Dialogue Trees no returning their status correctly
  • Fixed missing scrolbar in generic object editor window

–Version 1.5.3– 

  • Added 45 new Tasks
  • Full Enum serialization and support + Enum blackboard variable type!
  • Execute Function can now execute Coroutines as well!
  • Script Control Tasks now show all Unity object parameters
  • Check Function can now accept one parameter.
  • Check Property/Function/Field can now check any type of variable instead of only boolean!
  • Added Quaternion variable
  • Added AnimationCurve variable
  • Added List<string> variable
  • Added List<float> variable
  • Added List<Vector3> variable
  • Tasks in ActionLists and ConditionLists can now be disabled/enabled!
  • Added new Behaviour Tree Guard Decorator.
  • The BT Accessor decorator now has a dynamic option, possible to interrupt decorated child if condition no longer is true.
  • OnAnimatorMove can now be used in Tasks.
  • -EDITOR-
  • Multiple nodes selection
  • Branch nodes can now be Collapsed/Expanded
  • Added Disable/Enable on node context menu
  • Branches can now be deleted recursively as a whole
  • Task assignable nodes now have a context menu Copy/Paste Task
  • Added new Task Wizard Editor for faster creation of custom Tasks
  • Condition Lists are now also re-orderable
  • Added OnGizmos and OnGizmosSelected in tasks (override)
  • Vastly improved light theme
  • All overloaded function in Script Control tasks will now show correctly.

–Version 1.5.2– 

  • New Looks!
  • Window Phone 8 & Store Apps support
  • Conditional Connections from BT nodes have been deprecated
  • When deleting a node with 1 parent and 1 child, that parent and child will be auto connected
  • Removed running time UI from FS State nodes
  • Removed IDs UI from Dialogue Tree nodes
  • Improved Grid Snapping
  • Added option to display only the name of a task instead it’s full summary info
  • NC menu moved under Window/NodeCanvas
  • Added menu for creating custom Tasks easier.
  • Added ‘BBVar’ to be used when want to simply select a Blackboard variable of any type
  • The SendMessage Task can now optionaly send any blackboard variable as an argument
  • The EventHandler can now Subscribe and Dispatch events based on strings instead of only Enum names
  • Faster Editor
  • Cleaned up nodes help information text
  • States now call OnStateEnter, OnStateUpdate and OnStateExit with IState argument on any MonoBehaviour on the agent that have such a method.
  • Fixed BT Parallel bug.

–Version 1.5.1– 

  • Draging a new connection in the canvas will pop the node menu and auto connect selected node. Build trees faster (BT, Dialogue)
  • Added BBMaterial, BBTexture2D, BBRigidbody and more Unity Object derived BBVariables
  • Added BBComponentList, BBObjectList
  • Easy to add custom BBVariables deriving Unity Object or not
  • Super easy add blackboard custom variable data
  • Custom Editor in Blackboard for custom types or lists of custom types
  • ‘Implemeneted Action’ Script Control Task
  • BT node tags for finding nodes from code
  • BT nodes can now also be named (when working in text mode)
  • Added 2 BT Mutator nodes. Switcher and Toggler (beta feature)
  • Editor background grid
  • The behaviour info will now show on top left if no node selected instead of top middle
  • Removed some UI coloring
  • Fixed FSM stepped connection mode
  • Fixed platform compression texrure issues
  • Fixed Playmaker actions
  • Fixed error in EditorUtils when getting texture (non accessible method issue)
  • More Code cleaning, refactoring and commenting

–Version 1.5.0– 

  • Dynamic Variables
  • Global Variables
  • External Inspector Window
  • Nicer debug controls
  • Dragable reorderable lists
  • Draging branches is now done with SHIFT+Click instead of CONTROL+Click
  • Some namespace, class and method refactoring. (Read the included readme for update)

–Version 1.4.8– 

  • Full Undo/Redo
  • Connections Relinking
  • Execute Function Task can now execute a function of up to 3 parameters and save the return value
  • GetField and SetField Tasks
  • Nested Dialogue node for both Behaviour Trees and FSMs
  • Editor Lock button
  • Custom Types are now inspected. Even in lists
  • BBComponent variable type can be set to any Component derived type
  • SendTaskMessage method to send a message to all tasks of a graph
  • SwitchGraph method to easily switch behaviours at runtime
  • It’s now easier to make custom Behaviour Tree nodes and FSM states along with their icons
  • Dialogue Tree can now be stoped/paused/resumed properly
  • When a dialogue tree node is selected the blackboard reference will change to the node’s selected dialogue actor
  • Dialogue Actor now has a Say method
  • FSM will no longer automaticaly end when reaching a finished state with node connections
  • FSM transitions are now checked before the state is entered
  • Action Lists now have the option to ‘Run In Parallel’ or in sequence as default.
  • Various Fixes
  • Various new Tasks

–Version 1.4.6– 

  • Action Tasks can be paused. When they do, OnPause is called to be handled as well as they will cease to update until resumed.
  • BTs will now correctly pause along with any nested graph in them both nested BT or nested FSM.
  • FSMs can now also be paused/resumed along with any nested graphs.
  • Added debug controls on FSMOwner inspector to do so as well.
  • Behaviour Tree node connection will now automaticaly be sorted for you instead of relinking when wanting to change priorities.
  • So will Dialogue Tree node connections.
  • Added option for curved or stepped connection styles. Also smoothed the curve a bit to be more..relaxed.
  • Debbuger Decorator will now show a small B on the top right if it is set as a BT break point.
  • Added [RequiresComponent] attribute to be used on top of a BBGameObject. This is checked in editor along with missing info if any as well as for correct initialization.
  • Added [TextAreaField] attribute to use on top of a string field to show it as a..text area.
  • All layout attributes (SliderField, TagField etc) can now be used on top of BBVariable fields as well. The control will of course show only if a direct value assignement is made and not set to read from the blackboard.
  • LayerMasks will now show in inspector.
  • Bounds will now show in inspector.
  • FSM AnyState node, now has an outgoing port on the bottom as well for better layouting.
  • Fixed some minor bugs.
  • Fixed Editor perfmance
  • Fixed MonoManager cleanup error when changing scenes
  • Changed the GraphOwners Inspector to show the currently assign ‘template’ graph
  • Added hierarchy ‘icons’ for GraphOwners and Graphs
  • Actions will show a pause icon when they are..paused
  • Added max iteration count in Iterator Decorator

–Version 1.4.5–

  • Fixed Editor ‘click through’ inspector & blackboard issue.
  • Fixed middle mouse that was panning node instead of whole canvas when on top of a node.

–Version 1.4.4–

  • It’s now possible to select an Override Agent from the blackboard for tasks, instead of only direct assignment. Allows for much flexibility.
  • List<T> will now show up for inspection in the editor. You can also use List<BBFloat> for example.
  • Behaviour Tree Repeater now has an option to Repeat Forever.
  • Behaviour Tree Probability Selector can now be assigned probability values from the blackboard. This allows to change probability dynamicaly.
  • Action/Condition Tasks can now be copy/pasted.
  • Nested BT and Nested FSM Graph Name in FSMs, will get their name from the state name.
  • FSM Transition can now be prioratized.
  • FSM. Alt + Click on a state will debug enter that state in the editor.
  • FSMs will now store their last state. ( access with previousStateName property )
  • Blackboard Component variables can now be set to a specific Component derived type.
  • Made much easier to add custom BBTypes.
  • Improved Action & Condition Lists to take up minimum space. The compact list is kept but only one Task is shown full at a time.
  • Nested graphs can now be opened with Double Click on the node.
  • Dialogue MultipleChoice. Choices will no longer get removed when disconnecting a child node.
  • Removed BB value information that was shown bellow such a control in the inspector, to clear up things.
  • Added small “X” button on connection inspector to remove connections.
  • Fixed Behaviour Tree Accessor Decorator.
  • Fix bug with override agent when graph was cloned.
  • Fix List editor window.
  • Fixed move actions.
  • Cleaned up some code.
  • Added agent speed and keep distance to move actions.
  • CheckTrigger & CheckCollision can optionaly save the other gameobject.
  • Added some more Tasks.

–Version 1.4.3– 

  • Fixed bug on MAC context menus
  • RequiredField attribute will now also work on BBVariables to check their value
  • BBVariable names will no longer get automaticaly cleared when their name doesn’t exist in the current blackboard.
  • Category and AgentType attributes will now be inherited to concrete classes.
  • Dialogue Say node Text can now display a variable value from the blackboard by using square brackets in the text (eg [myFloat] )
  • Tween Action Tasks

–Version 1.4.2–

  • Fixed StartCoroutine from within Tasks and nodes.
  • Default naming for Tasks will no longer display the namespace in front.
  • When a Task is minimized it will display the summary information.
  • Fixed Dialogue Action & Condition node assigned Tasks that were not minimized.
  • Fixed a small bug in the move Action Tasks where they were not reseted correctly in very spcific cases.
  • Dialogue Trees can now be stoped as well by calling StopGraph() on them.

–Version 1.4.0–

  • A lot of performance improvement!
  • 2D Unity events are now handled. Added CheckTrigger2D and CheckCollision2D Condition Tasks.
  • Added Color, Vector2 and System.Object Blackboard variables.
  • It’s now possible to send a method message to all Tasks of a graph by calling SendMessage on the GraphOwner.
  • Connections can now get disabled/enabled. Even in runtime as always. For Behaviour Trees, it is like the node is not connected at all.
  • More Tasks. Notably Mecanim ones.
  • BT Probability Selector:
    “The Probability Selector will select and execute a child node based on it’s chance to be selected. It will then return whatever that child returns. The Probability Selector may immediately return Failure if a ‘Failure Chance’ is introduced or no childred are connected.”
  • BT Limiter Decorator:
    “Limits the access of it’s child node either a specific number of times, or every specific amount of time(aka cooldown).”
  • BT Accessor Decorator:
    “Accessor will execute it’s child node if the Condition Task assigned is true and will return whatever the child node returns. Accessor will return Failure if the Condition is false and the child node is not already Running. It is kind of the opposite and complamentary to the Interruptor.”
  • Added remap to Inactive, in Remapper Decorator. By inactive it means that the node will be treated as not connected at all.
  • All decorators will now be treated as inactive if they have no child node.
  • Added behaviour tree breakpoints (no unity pause). A breakpoint can be set in the Debugger Decorator.
  • Dublicate by Reference! BT Action & BT Condition (for now) nodes can be “Dublicated by Reference”(Context Menu). What this means is that any ActionTask or ConditionTask assigned respectively to the “master” node will be referenced to the referenced node. Changing one will change the other. It is possible at any point, to “Break Reference” in the dublicated node, while creating a new copy of the Task assigned to the “master”. A referenced dublicate node shows a small “R” on the top right.
  • Make Nested. Re-added the ability to create nested BT trees through the Context Menu of a BT node. This will create a new NestedBT node and add the selected node and all of it’s children within that new NestedBT node. (Use with care since it’s impossible to “Un-Nest” a NestedBT right now, but soon will)
  • FSM Concurrent State:
    “This node will execute as soon as the graph is started and in parallel to any other state. This is not a state per se and thus it has no transitions as well as it can’t be Entered by transitions.”
  • Removed the ‘Agent’ dropdown selection in the BT, FSM Graph Owner inspectors.
  • Added debug controls in BT, FSM Graph Owner inspectors. Start, Stop, Pause, Tick..(when in play mode)
  • Tasks can now be folded/unfolded in the inspector by clicking their titlebar. (More useful in task lists)
  • Added Dublicate as a right click context menu on the nodes on top of existing CTRL+ D.
  • Context menu tasks and nodes, are now also alphabeticaly ordered instead of only their categories (duh!)
  • Action Tasks will now get enabled while they are running and disabled when they finish.
  • Fixed UI bug when adding node and canvas was scrolled.
  • Fixed bug in GetProperty Action.
  • Fixed BT Parallel bug where children were re-executed.

–Version 1.3.0–

  • Optional Icon mode. (BTs for now) that generaly take the same space as the text mode, so layout will stay the same.
  • State Machine transitions will now be automatically layouted. As such changing input & output sides is removed and obsolete.
  • Removed nodes from the top of the editor. They are now added with right click on the canvas (frees up even more space to work on).
  • Nested BT in State Machines will optionaly fire an Event when the BT’s root returns either Success or Failure. (To be used along with Check Event condition on the transitions).
  • Nested FSM in Behaviour Tree will now return Success or Failure based on the current FSM’s state.
  • Dublicate Nodes with Control + D is now possible.
  • Dragable Action & Conditions Task titlebars.
  • Right click context menu on Task titlebars to open script editor.
  • Replaced “=” with a radio button (when choosing blackboard variables).
  • Fixed some Editor UI bugs.
  • Added a Condition to check a CSharp Event (Select component, select event to subscribe. When it is raised, condition becomes true).
  • Added even more examples, some Actions and Conditions.

–Version 1.2.7–

  • Added namespaces.
  • Behaviour Tree Interruptor decorator: Can be assigned a Condition and if the condition is or becomes true it iterrupts the child nodes if running.
  • Get Property Action that gets a property from selection and stores it in the blackboard.
  • Reflection Based Tasks (Get / Set / Check Property, Execute Function) will now show options for int and string as well.
  • Add System Event conditions (Trigger, Mouse, Collider).
  • Custom Event Check Condition and Send Action.
  • Light(indie) skin.
  • Auto initialized BBValue types
  • Dialogue Tree statement node editor will now wrap text based on its scale.
  • Added some more generic actions
  • Organized task categories better
  • Added 2 very simple BT examples for those who don’t know how BTs works

–Version 1.2.6–

  • Two ways Playmaker Integration.
  • Added ‘Update Interval’ option to Behaviour Trees.
  • Made the top of the window to look like an actual toolbar.
  • Option for node grid snapping.
  • Option for auto connect new node if another node is already selected.
  • Moved the node information in the editor inspector panel if option to show Node Info is on, instead of the bottom of the editor.
  • Editor Blackboard window is now a non movable panel on the top right.
  • Redesigned Blackboard variables UI to be cleaner.
  • The current value of a Blackboard variable in a Task will show bellow the field.
  • Removed the label showing the current state of the node and instead the state is now shown with node border colors.
  • Changed Running color from purple to yellow and Success color from yellow to green.
  • Color coded the titles of the most common Behaviour Tree nodes as to be easier to read the graph.
  • Renamed ‘Prime Node’ to simply ‘Start’.
  • Removed the node ID from the name of the Behaviour Tree nodes.
  • Fixed an issue where the nodes were showing in front of the editor inspector panel.
  • The Execute Funtion and Check Function Tasks now also show inherited members instead of only declared.
  • Possibly more things that I dont remember

–Version 1.2.5–

  • C# version!
  • Simplified workflow.
  • Automatic Editor UI for Action and Condition Tasks and attributes to help in helping layout.
  • Reflection based Action and Condition (Execute Function, Set Property, Get Property).
  • Simplified Blackboard Editor UI.
  • Blackboard links now keep reference to name changes.
  • Even more readable nodes.
  • Better API
  • Fixes…

–Version 1.2.0–

  • Editor UI Overhaul!
  • FSM first implementation!
  • Dialogue Tree first implementation!
  • Ability to Save and Load Blackboard variables to PlayerPrefs!
  • Lot of Action and Condition Tasks included.
  • Various fixed and improvements.

–Version 1.0.0–

  • “Hello World”!