Skip to content

Logic Driver Pro Patch Notes

Update Guide


Version 2.6.3

April 13th, 2022 - Unreal Engine 4.26 - 5.0

Bug Fixes

  • Fixed crash in UE5 when dragging a variable to an exposed node property.
  • Fixed replicated state machines not starting after pawn possession and re-initializing the state machine.
  • Fixed server owned state machine components not starting when replication is disabled.

Version 2.6.2

April 5th, 2022 - Unreal Engine 4.26 - 5.0

Enhancements

  • The 5.0 release now supports Input Axis Events.

Bug Fixes

  • Fixed crash when using text graph properties in an array.
  • Fixed an edge case crash when force deleting multiple assets.

Version 2.6.1

March 8th, 2022 - Unreal Engine 4.26 - 4.27 | 5.0 EA

Bug Fixes

  • Fixed public properties under the default category being able to be collapsed on the node.
  • Fixed property graphs not being created properly and potentially crashing when switching a state stack parent class to a child class.
  • Fixed internal node classes displaying in the state machine context menu.

Version 2.6.0

February 14th, 2022 - Unreal Engine 4.26 - 4.27 | 5.0 EA

New Features

Transition Stack

Quickly generate an expression to determine which transition classes need to pass for a single transition to be taken.

TransitionStack

  • Add multiple transition classes to a single transition.
  • Supports AND/OR and NOT from the details panel.
  • The local graph generates blueprint operator nodes which can be manually modified for more complex expressions.
  • See the Transition Stack Guide.

References Support Custom Classes and Public Variables

References will now display exposed properties of a custom node class assigned to their reference template.

ReferenceTemplate

  • Added Enable Reference Templates by Default project editor setting.
  • Reference templates will be enabled automatically if the blueprint already has a custom node class assigned.
  • See the Reference Node Class Guide.

Dynamic Reference Creation

State machine references can be dynamically created at initialization time by assigning a Dynamic Class Variable. This allows a single reference node be assigned a different state machine blueprint at run-time and can greatly simplify graphs that need to be shared across different actors.

Dynamic

Any State Scoping with Gameplay Tags

Any States now support Gameplay Tag Queries to limit their scope to states with matching tags.

  • This is an editor time convenience feature and has no effect at run-time.
  • Each Any State icon will now appear on the node it impacts. Double clicking the icon will focus the Any State.
  • See the Any State Scoping Guide.

AnyStateTagsOverview

Enhancements

New Replication System

The replication system has been overhauled and is now more reliable and efficient.

  • Replication is now entirely reliable to ensure the same transition path is executed across all domains in the correct order.
  • New StateChangeAuthority is used to standardize behavior for both transitions and any manual state change calls. This replaces NetworkTransitionConfiguration.
  • Listen server configurations will be more consistent with dedicated server behavior.
  • Only owning clients will receive RPCs unless IncludeSimulatedProxies is enabled.
  • Replicated variables within state machine blueprints and references are now supported (but individual node classes are not).
  • See the updated Networking Guide for more information.

Display Categories for Exposed Variables

Non-default categories for public properties will now be displayed on the node. Default properties will appear on the top with category order being maintained below.

Categories

The details panel has been updated to display properties under their correct category now.

  • Exposed arrays will show up on the top most category, but not nested categories.

Retrieve and Set States by Qualified Name

States can be retrieved and set by their fully qualified name. When the class type of the state machine is known, a state picker tree view will be available.

StatePicker

Async Initialization

State Machines can now be initialized async. This is a multi-threaded solution to help reduce blocking operations on the game thread. See the Performance Guide's Async Initialization section for more information.

CreateStateMachineAsyncInstance

Create State Machine Instance is now an Execution Function

An execution function is more appropriate as this is an expensive operation that instantiates and initializes a new state machine.

The original pure method has been renamed and soft deprecated. Going forward using the execution method is the preferred solution. Uses of the old function still work and do not have to be updated.

CreateStateMachineInstance

Fast Path Optimization

Running the local blueprint graph can now be avoided in more situations, especially benefiting C++ nodes. When a node avoids using a blueprint graph the fast path symbol will appear.

  • See the Performance Guide's Fast Path section.

FastPath

Default Node Instances Optimization

Rather than always instantiate node instances that don't have a custom class assigned, they will instead be loaded only if programmatically accessed. This should reduce memory usage and initialization times.

Default Graph Property Optimization

Exposed properties that have only default values can optionally avoid graph evaluation at runtime by unchecking Eval Default Properties in the node class.

Switch States Immediately

Several methods of switching states have been updated to occur immediately at the time of execution during the same tick. Previously they could trigger a state change on one tick, but OnStateBegin wouldn't fire until the next tick. These changes will allow more precise control over frame sensitive state changes.

The following methods now execute immediately and have had their behavior slightly updated.

  • Automatic event bound transitions use a new optimized routine to only evaluate and take that specific transition at the time of the event, rather than the old way of performing a full transition evaluation of the state machine.

  • EvaluateFromManuallyBoundEvent has been improved to only evaluate and take the transition it was called for, making the behavior similar to how auto bound events function. When using manual bound events this is the preferred way of triggering evaluation now, instead of calling EvaluateTransitions.

  • Manual state change calls such as SetActive and SwitchToLinkedState will process the change immediately, but can be configured not to if needed.

Manually Assign GUIDs

It is now possible to manually configure the GUID to use for a state. This may be necessary if you have to update the structure of a state machine that has run-time save data associated with it.

  • Added Guid Redirect Map to state machine instances. This accepts an old PathGuid as the key and the new PathGuid as the value. A PathGuid is the GUID that is returned from GetGuid at run-time. This is the preferred solution for redirecting GUIDs and must be maintained on the primary instance, not on individual references.
  • Exposed NodeGuid to individual states in the state machine graph. This is only used in the final run-time GUID calculation, and in most circumstances it should not be changed.
  • See GUID Calculation for more information.

Configurable Node Double Click Behavior

Nodes can have their double click behavior customized under Editor Preferences to either open the local graph or an external graph, such as a node blueprint.

DoubleClickSetting

  • The default behavior for references has changed to always prefer the external state machine blueprint.
  • The intermediate reference icon can now be double clicked to open the local graph.
  • When opening an external graph the current debug object will be maintained.

Misc

  • Added StopOnEndPlay to components.
  • Added GetStateMachineReference to USMStateMachineInstance.
  • Added SwitchToLinkedStateByTransition to state instances.
  • Added OnRootStateMachineStart to transition instances.
  • Added OnRootStateMachineStop to transition instances.
  • Transitions now know if they were placed by an AnyState.
  • Transition Priority is now displayed above transition icons.
    • Can be configured with bDisplayTransitionPriority under Editor Preferences.
  • Transition background is now removed on custom icons.
    • Can be configured with bShowBackgroundOnCustomIcon.
  • Improved transition tooltip to display the auto bound event, the condition, and class information.
  • Local graph entry nodes and other custom nodes now support break points, pin watches, and pin execution visualization.
  • Changed Project Editor settings to use the default config, as this is meant to be shared across teams.
  • Improved Text Graph Property efficiency during editor construction scripts.
  • Improved slate refresh time.
  • Added magnifier button to soft actor reference picker.
  • The option to enable the soft actor reference picker has been moved from Editor Preferences to Project Editor settings.
  • AnyState transitions are now compiled into the final blueprint even if they are always false.
  • Changed IsRegisteredWithContextMenu to include native classes by default.

Bug Fixes

  • Fixed intermittent cooking error caused by the state machine component.
  • Fixed OnStateShutdown firing before OnStateEnd.
  • Fixed GetEntryStates not working in editor construction scripts.
  • Fixed Replace With not clearing the details panel of stale data.
  • Fixed input bindings not compiling when connected to a For Each loop.
  • Fixed input bindings not compiling in Any State transitions.
  • Fixed default values entered into an exposed property requiring graph evaluation when using Legacy construction scripts.
  • Fixed nativized state stack failing to load at run-time.
  • Fixed state machine references possibly updating states in a different order.
  • Fixed local graph entry points not executing a Gate when connected directly to it.
  • Fixed incorrect behavior with parallel states triggering other parallel states with event based transitions.
  • Fixed removing a native delegate from code causing a crash when loading a state machine it was bound in.

Deprecations

Deprecated and Redirected

These properties are automatically renamed in blueprints. However, C++ code will give deprecation warnings until it is updated.

  • NetworkTransitionConfiguration is now StateChangeAuthority.
    • StateChangeAuthority does everything NetworkTransitionConfiguration did, but also impacts behavior over manual state changes and general commands, like Start and Stop.
  • NetworkStateConfiguration is now NetworkStateExecution.
    • The functionality is the same.
  • bTakeTransitionsFromServerOnly is now bWaitForTransactionsFromServer.
    • All transactions, not just transitions, will wait for a server response. This may impact behavior when using with manual state changes from the client as the client will remain in its current state until the server broadcasts the change.

Deprecated and Renamed

These properties will give warnings in blueprints and C++ until they are updated.

Deprecated

These properties are no longer used and will give errors or warnings until they are removed from blueprints and C++.

  • bDiscardTransitionsBeforeInitialize
  • bReplicateStatesOnLoad
  • TransitionResetTimeSeconds
  • MaxTimeToWaitForTransitionUpdate

Removed

  • Completely removed bReuseReference from state machine references. This is legacy behavior that is incompatible with many features and is no longer supported.

Version 2.5.2

September 1st, 2021 - Unreal Engine 4.26 - 4.27

Bug Fixes

  • Adjusted shutdown sequence to avoid blueprint runtime errors from unbinding autobound transitions and rare crashes when shutting down the editor.
  • Fixed details panel sometimes clearing on modification.
  • Fixed a linkerload crash and improved sub-object packaging.
  • Fixed several crashes from force deleting node blueprints in use. (Force deleting any class that is in use has an inherit risk to it and should be avoided.)
  • Fixed setting a state machine reference intermediate graph, then undoing and saving causing a crash on BP reload.
  • Fixed calling GetNodeName on state machine references not returning the correct name.
  • Fixed nodes without construction scripts not having their variables read properly from other construction scripts.
  • Fixed and polished read only variables. All variable types set to read only should now be dimmed and restricted from editing. Property graphs will be made read only. Context options such as 'Reset Property' and 'Convert to Graph Edit' will be restricted based on status.

Version 2.5.1

July 31st, 2021 - Unreal Engine 4.26

Enhancements

  • Optimized when game and editor construction scripts run.

Bug Fixes

  • Fixed possible compile time construction script crash.
  • Fixed slate related crash with multiple tabs open to the same state machine graph.
  • Fixed game construction scripts firing too many times when used with references.
  • Fixed Cut & Merge states not always removing the old states.

Version 2.5.0

July 21st, 2021 - Unreal Engine 4.26

Video

New Features

Editor Construction Scripts

Customize your node through blueprint scripts in response to user input. Set default values, change node properties, hide variables, and more.

Preview Mode

Preview and test your state machine in the blueprint editor while you design it.

  • Added new Preview Mode to the state machine blueprint editor.
  • Preview Mode contains a sandbox world where actors can be added and properties configured.
  • Simulate the world and debug the state machine.
  • See the Preview Mode Guide for more information.

Input Bindings

Listen to Input Actions or Input Keys from within your state machine classes. Input events can also trigger transitions.

  • State machines and nodes now have input options to enable placement of input keys and actions.
  • The correct controller can be found automatically from the context.
  • See the Input Guide for more information.

Read Only Variables

Variables can be made read only. They will display on the node but cannot be modified.

  • BlueprintReadOnly flag is now recognized.
  • Added optional ReadOnly flag to variable overrides to allow BlueprintReadWrite variables to be read only on the node.
  • Added SetVariableReadOnly Developer Only function to node instances for use in construction scripts.

Hidden Variables

Variables can be made hidden. Their graphs will exist but they won't be visible on the node.

  • Added optional Hidden flag to variable overrides.
  • Added SetVariableHidden Developer Only function to node instances for use in construction scripts.

State History

  • State changes will record the previous state as a struct containing the state guid, start time stamp, and time in state. Total history size can be configured.
  • History is maintained at the top level owning state machine.
  • Added GetStateHistory to sm instances.

[Experimental] Reset Variables

Reset variables to their default values during run-time when a state is entered or on demand. This is an experimental feature, and should be used with caution.

  • Added experimental Reset Variables on Initialize advanced option to state class properties.
  • Added new experimental function Reset Variables.

Enhancements

Added Default Node Property Blueprint Setters

  • Default node instance properties such asbRunParallel have been assigned public C++/Blueprint Getters and Setters that will properly update the node values. This will allow most properties to be modified during run-time, with the primary purpose being for construction script use in the editor.
  • Some properties, such as transition Priority Order are restricted to construction use only.
  • Some editor only properties, such as NodeColor, DisplayName, will have DevelopmentOnly setters.
  • The original properties are changing from Public to Private so any C++ code that accesses them will have to be updated.

Rules Improvements

  • Added USMEntryStateInstance to represent entry states.
  • Added Allow Sub State Machines to StateMachineClass rules.
  • Added ability to set default sub state machine class to StateMachineClass rules. (Used when adding a new state machine or collapsing a state machine.)
  • Restrict Convert to State Machine Reference if rules prevent reference placement.

Added Get Previous Active State

  • GetPreviousActiveState available on base state nodes.
  • Returns the last state active state before the current state became active from the last transition chain.

Added Get Previous Active Transition

Added Support for Default Array Element Values

  • Individual exposed array elements will now read their class defaults.

Text Graph Property Enhancements

  • Default values are now supported.
  • String tables are now supported.
  • Significantly improved compile times.
  • Using graph edit will update the node text.
  • Changing ToText functions in a node class will automatically update the text graph instances.
  • Added ToTextDynamicFunctionName to the text serializer. This function is looked up dynamically during run-time. This allows any object type (such as a UObject) to be provided to the text graph and still support custom text serialization.

Network Enhancements

  • Expose timestamps to TransitionInfo structs.
  • Added GetServerTimestamp to transition instances.
  • Added GetServerTimeInState.
  • Optimize transaction cleanup.
  • Optimize included guids.
  • Optimize initial replication by limiting state replication and always discarding pending transitions when states are initially replicated.
  • Added domain configuration for OnTransitionEntered which respects bIncludeSimulatedProxies.
  • SetActive now updates proxies that aren't ticking.

Eval Graph Properties Enhancements

  • Each state stack state now respects its Auto Eval Exposed Properties configuration.
  • Removed EvalGraphPropertiesOnInitialize since that is redundant with OnStateBegin evaluation. Added EvalGraphPropertiesOnInitialize and EvalGraphsOnTransitionEval to Conduits.
  • EvaluateGraphProperties can now target a specific state in the stack, rather than evaluate all states in the stack each time.

States by Name

Added Support for Level Actor Selection on Exposed Actor Soft References

Change suggested and submitted by Trevor!

  • Graph pins allow selection of Actor Soft References, similar to the details panel view.
  • Added Override Actor Soft Reference Pins to editor settings to adjust the scope of the override (None, Logic Driver, All Blueprints).

Transition Enhancements

  • Added DoesTransitionPass to transition instances which evaluates the local transition graph.
  • Added EvaluateFromManuallyBoundEvent to simplify manually bound event transitions.
  • Renaming a delegate should now refresh autobound events when they are compiled.
  • Transition icons can be hidden or moved.
  • Added project setting Default New Transitions to True to default newly placed transitions to true if they don't have a node class assigned.
Copy and Paste Transitions
  1. Copy the transition.
  2. Select two states in order of "From" to "To".
  3. Paste to connect the selected states with the pasted transition.
  4. Or select another transition and paste, adding the pasted transition to the transition stack.

Misc

  • Added state name restrictions to help with invalid characters that can cause problems at different points in the UE pipeline.
    • Added bRestrictInvalidCharacters to project settings, defaults to true.
  • State stack names are now displayed.
    • Added bDisplayStateStackClassNames to editor options, defaults to true.
  • Added simple animations to states when they're placed.
    • Added Enable Animations to editor settings.
  • PostEditChangeProperty fires when an exposed property changes.
  • Component initialization improvements.
  • Components will free their instance reference on shutdown.
  • Absolute node graph coordinates are available at runtime. See GetNodePosition.
  • Added Show Display Name Only option to state nodes to always show their display name instead of the real node name.
  • Added project editor settings to change the default node classes.
  • Improved abstract class handling.
  • Added OnStateMachineInitialStateLoaded native event called when a state has been successfully loaded.
  • Added AreInitialStatesSetFromLoad using a replicated variable to detect when a state machine has been loaded from guids. Valid until Stop is called.
  • Logging now available in debug and development builds.

Bug Fixes

  • Fixed same tick parallel state execution not respecting transition order.
  • Copying and pasting states should correctly increment their name count now.
  • Exposed vectors and rotators can now be reset to defaults.
  • Fixed edge case of rotators and vectors getting stuck at 0, 0, 0.
  • Fixed edge case of state machine graphs being null during creation and duplication.
  • Fixed switching states between inherited node classes preventing variable evaluation.
  • Fixed state machine components not replicating properly when used in Child Actor Components.
  • Fixed EvaluateTransitions not working when called from the active state's graph.
  • Fixed CreateEvent button not working and potentially crashing.
  • Fixed issues when the same autobound event is used to trigger multiple transitions from the same state.



Version 2.4.7

May 15th, 2021 - Unreal Engine 4.24 - 4.26

Enhancements

  • Added support for Electronic Nodes 3.2.

Bug Fixes

  • Fixed conduits not evaluating exposed properties on transition evaluation.
  • Unchecking AllowParallelEntryStates now correctly clears all connections but one.



Version 2.4.6

March 8th, 2021 - Unreal Engine 4.24 - 4.26

Bug Fixes

  • Fixed crash when trying to paste an auto bound transition without both connected states.
  • Fixed crash from modifying a parent SM before a newly created child SM is initially compiled.



Version 2.4.5

January 11th, 2021 - Unreal Engine 4.24 - 4.26

Bug Fixes

  • Fixed crash when adding a new element to an exposed array.



Version 2.4.4

December 18th, 2020 - Unreal Engine 4.24 - 4.26

Bug Fixes

  • Fixed autobound transition delegates not refreshing on duplicated state machine blueprints.



Version 2.4.3

December 3rd, 2020 - Unreal Engine 4.24 - 4.26

Enhancements

  • Transition delegate binding dropdown now searchable.
  • Improved compatibility with engine plugins by allowing blueprint menu extenders in state machine blueprints. (Configurable under Project Editor settings)
  • Added GetRootStateMachineInstance to SMInstances.

Bug Fixes

  • Fixed possible crash when compiling a state machine blueprint on a stand alone development build.
  • Fixed calling SetActive(false) on a state not firing state change events.
  • Renamed logging macros to prevent possible project redefinition.



Version 2.4.2

November 3rd, 2020 - Unreal Engine 4.24 - 4.25

Enhancements

  • Added support for Remote Procedure Calls to SMInstances.
  • Added GetComponentOwner to SMInstances.
  • Added OnPostInitialize Blueprint Implementable Event to components.
  • Added GetEntryStates to SMStateMachineInstances.

Bug Fixes

  • Fixed parallel states updating more than once from transition events.
  • Fixed edge case of OnStateBegin and OnStateEnd being called twice when a transition triggers OnStateEnd, and OnStateEnd also triggers a transition event.
  • Renaming a node is no longer a context menu option when the node title is hidden.



Version 2.4.1

October 4th, 2020 - Unreal Engine 4.24 - 4.25

Enhancements

  • Reduced struct property size in compiled state machines.
    • Exposed variable properties reduced by 93%.
    • Text graph properties reduced by 87%.
  • Added support for Electronic Nodes plugin in state machine K2 graphs.



Version 2.4.0

September 14th, 2020 - Unreal Engine 4.24 - 4.25

New Features

State Combination

State Stack
  • Multiple state classes can be combined into a single state.
    • This can be useful for re-using and executing multiple actions per state.
    • This is only valid for custom state classes. Local state graphs are not used in the stack.
  • All execution node logic executes in the order the states are placed in the stack.
    • State->OnStateBegin, StateStack[0]->OnStateBegin, StateStack[1]->OnStateBegin...

https://i.imgur.com/S6C8CET.png

Merge States
  • Existing state classes can be merged into a single state stack by selecting all desired states and right clicking on the destination state.
  • Cut and Merge States and Copy and Merge States are available.
  • When cutting, inner transitions between the merged states are destroyed and outer transitions are preserved.

https://i.imgur.com/NpVICwM.gif

Transition Evaluation Visualization

  • Transitions that are evaluating are now animated.
  • This can be useful for identifying transitions that can be optimized.
  • Editor preferences options added to configure this feature.

https://i.imgur.com/URIJi7x.gif

Stats System Profiling

  • Added system profiling for key areas that impact performance.

https://i.imgur.com/WqvMKmS.png https://i.imgur.com/4PJPTgr.png

State Machine Logging

  • State machine instances can enable logging for state changes and when a transition is taken.

Enhancements

Multiple Transitions Between the Same States

  • Transitions can now be stacked multiple times between states.

https://i.imgur.com/ExhROPL.png

Previous State Supported for Auto-Bind Events

  • The previous state's delegates can be bound to by outgoing transitions. The correct class is determined automatically.

https://i.imgur.com/KHcZJiw.png

Blueprint Graph Evaluation Optimizations

  • Blueprint local graph evaluation is now avoided for transitions with the following conditions:
    • The conditional result node defaults to true.
    • The conditional result node defaults to false.
    • The conditional result node is connected only to a Can Enter Transition node for a transition instance. This is mostly beneficial if your transitions are defined in C++.

On State Initialized and On State Shutdown

  • States now have optional initialize and shutdown nodes.
  • OnStateInitialized fires before transitions are initialized.
  • OnStateShutdown fires after transitions are shutdown.

New Asset Version Updater

  • On startup state machine assets are updated to the newest version and marked dirty automatically.

Misc

  • The debug object is maintained when opening node blueprints from a state machine graph.
  • Create Child Blueprint Class context menu option now available for blueprint assets.
  • Native properties that are exposed can now be sorted with the meta property DisplayOrder.
  • State machine components with replication disabled will behave consistently for client and server domains.
  • On State Machine Start will call the parent node by default.
  • On Transition Entered will no longer change the transition color by default.
  • Conduits now evaluate their graph properties during their initialize sequence.
  • Added SetCanEvaluate and GetCanEvaluate to conduits.
  • Convert to State Machine Reference improved to maintain the custom state machine node class.

Bug Fixes

  • Fixed child state machine components not inheriting their parent template properly.
  • Fixed OnRootStateMachineStart and OnRootStateMachineStop firing too many times when used in references.
  • Fixed conduits used as entry states not calling their initialize and shutdown nodes.
  • Node template names are now sanitized. This should prevent a crash when switching node classes on a node that has special characters in its name.
  • Reduced flicker on transitions when redrawing the state machine graph.
  • Reduced instances where stale debug data will display when opening a graph.



Version 2.3.1

August 17th, 2020 - Unreal Engine 4.24 - 4.25

Bug Fixes

  • Fixed newly created nodes sometimes losing some of their details panel values on the first editor reload.
  • Fixed compile issues with Any State transitions containing manually bound events.
  • Fixed crash when editing a text graph property and replacing a line of text containing a variable, then undoing that action without exiting text edit.



Version 2.3.0

July 7th, 2020 - Unreal Engine 4.24 - 4.25

Contains file structure changes and deprecations. Make sure everyone on your project is on the same version.

Video

New Features

Parallel States

  • Added support to run multiple active states at once.
    • Support for multiple entry point connections.
    • Support for transitions to run parallel.
    • See the Parallel Guide.
  • Added Stay Active on State Change to states so they may remain active after taking a transition.

https://i.imgur.com/reTspVS.png

Force Set Active State

  • State node instances can call SetActive(bool).
  • This call is replicated.

Added State Machine Flag to Wait For End State

  • Added bWaitForEndState to state machines.
  • This is an optimized routine that will prevent transitions from being evaluated until the state machine is in an end state.
  • If this is a nested FSM and also an end state, then the owning FSM won't be in an end state until the nested FSM is also in one.

https://i.imgur.com/sKDeuJv.png

Enhancements

Node Class Defaults

  • Most state and transition settings previously only available in the state machine graph are now available in their node classes. This allows you to set defaults such as bExcludeFromAnyState at a class level.
  • All regular nodes will be assigned the default node class now. It is no longer possible to set a null class value.
  • Old values are imported into the new system. Please verify your state machines operate normally.

State Information Icons

  • States will display an icon when they are impacted by an AnyState node, an FSM that has bWaitForEndState set, or an FSM with an intermediate graph.
  • These can be disabled with a new editor setting bDisableVisualCues.

https://i.imgur.com/sNXJ9P1.png

Improved Transition Replication

  • When the server is in charge of transitions it is now guaranteed the client will take the same transition path, rather than prioritize being on the current active state(s).
  • Added TransitionResetTimeSeconds to components which dictates the time to maintain the transition buffer over replication. Setting it to 0 is equivalent of the old behavior.

Improved EvaluateTransitions Method

  • This method is now available on SMInstances.
  • It now properly handles nested FSMs.

Added Bindable Events to Node Classes

  • Added OnStateBeginEvent, OnStateUpdateEvent, OnStateEndEvent to states.
  • Added OnTransitionEnteredEvent to transitions.

New Function Events

  • Added OnRootStateMachineStopped to states.
  • Added OnEndStateReached event to state machine classes.

Improved Node Display

  • Adjusted defaults so node widgets should cover the max size of UE4 pins.
  • Added clipping configuration to widget options.

Deprecation

Bug Fixes

  • Fixed child sm actor components not inheriting their parent class template.
  • Switching an sm actor component class to an sm containing a reference which uses a template should no longer crash.
  • Calling GetOutgoingTransitions or GetIncomingTransitions from a node owner that is a state machine reference will now find the correct transitions.
  • Corrected Any States improperly adding transitions by default to their immediate connected states when they had more than one connected state.
  • SetCanEverTick will work properly when the default tick is disabled and the sm is used by an actor component.



Version 2.2.0

June 18th, 2020 - Unreal Engine 4.23 - 4.25

Enhancements

General

  • Added GetIncomingTransitions to state instances.
  • Added GetNodeName to node instances.
  • Added GetAllStateInstances to SMInstances and to custom State Machine node classes.
  • Transition Priority is now available from GetTransitionInfo.

Conduits

  • Added new project preferences setting to default new conduits to be configured as transitions.
    • This is set to enabled by default.
  • Added support for Initialize, Shutdown, and Entered nodes in Conduits.
  • Conduits and their surrounding transitions initialize at once.
  • Conduits configured as transitions will display as active when their path is taken during visual debugging.

Convenience

  • All runtime log messages should now be prefixed with LogLogicDriver instead of SMSystemModule.
  • Compiling a node class will in most cases automatically refresh any nodes in an SMGraph where it is used.
  • When a behavior rule fails the tooltip will now explain which class is responsible for the rule.

Bug Fixes

  • Nested FSMs with exposed variables will properly evaluate their variable graphs when multiple FSMs are present.
  • Fixed crash when compiling an SM that is also the base class for a macro library.
  • Fixed crash when using sub categories on an exposed variable.
  • Fixed edge case of exposed graph property defaults not being properly applied on a paste operation or value reset.



Version 2.1.2

June 9th, 2020 - Unreal Engine 4.25

Bug Fixes

  • Fixed custom context blueprint delegates not auto-binding properly in UE 4.25.



Version 2.1.1

May 28th, 2020 - Unreal Engine 4.23 - 4.25

Enhancements

  • Added Node Icon Tint property for custom icons.

Bug Fixes

  • Fixed potential memory stomp in state machine initialization.
  • Fixed crash importing 1.x actor components on a map with level streaming enabled.
  • Fixed crash when batch opening multiple node classes.
  • Disabling tick evaluation on a state won't prevent auto-binded events from switching states.
  • Changing a node icon to another icon with the same name now works.
  • Conduits can display custom icons.



Version 2.1.0

May 11th, 2020 - Unreal Engine 4.23 - 4.25

When updating it is important everyone working on the same project also updates. Assets saved on this version are not fully compatible with older versions.

Enhancements

General

  • Added user tooltips to graph properties.
  • Added IsActive and GetGuid to node instances.
  • Added documentation links to blueprint editor help menus.

/Images/Tooltip.jpg

Replication

  • Added bIncludeSimulatedProxies to actor components so actors that aren't possessed by a player controller can execute logic when configured for the client domain.
  • Improved initial instance replication which should resolve issues when leaving bInitializeOnBeginPlay checked not always starting the state machine on simulated proxies.
  • Initial replication now replicates the current state(s) of the authority state machine rather than rely on the default initial state being accurate.
    • Can be disabled by unchecking bReplicateStatesOnLoad

Ticking Optimization

  • Actor components are now responsible for ticking their instances.
  • Instances that don't need to tick (such as references) never register their tick function.
  • Instances no longer tick before they are initialized.
  • Added bLetInstanceManageTick to components as an advanced option.
  • Added bTickBeforeInitialize to instances as an advanced option.
  • Added bTickRegistered to instances as an advanced option so they can unregister their tick function all together.

Changes

  • Manually calling the actor component Initialize function and not passing in a context will now automatically set the context to the component owner.
  • Renamed Editor and ProjectEditor settings from State Machine Editor to Logic Driver.
  • Deprecated bCanEnterTransition of conduit classes.
  • Creating a new conduit class no longer automatically wires a parent node to CanEnterTransition.
  • Instance compile validation skips blueprints that are new or loading.
  • Updated custom K2 node pin names to be consistent with UE4 naming conventions. Once you save a state machine on this version you cannot open it in an earlier version of Logic Driver or connections may be broken.

Bug Fixes

  • Fixed intermittent crash during garbage collection for Stand Alone Game builds.
  • Fixed actor component state machine templates from being selectable debug objects.
  • Fixed const mismatch on GetNodeIconSize which could prevent compiling from source using strict warnings.



Version 2.0.1

April 22nd, 2020 - Unreal Engine 4.23 - 4.24

Enhancements

  • Nodes that are impacted by an Any State Node will have their color updated appropriately and additional information displayed on their tooltip.

Bug Fixes

  • Fixed crash for conduits that loop back on themselves and are configured to evaluate as transitions.
  • Variables exposed on the node can no longer be edited while in debug mode.
  • Added missing button images for TextGraphProperty variables.



Version 2.0.0

April 16th, 2020 - Unreal Engine 4.23 - 4.24

New Features

Custom Node Classes

  • Create custom state, state machine, conduit, or transition classes either in C++ or Blueprints and assign them to nodes in a state machine graph.

https://i.imgur.com/jueMghw.png

  • When placed in a state machine graph you will still be able to override class logic similar to intermediate reference graphs.
  • Search the context menu for Get Node Instance in order to get or read values from the class instance.
Behavior
  • Rules can be assigned to each class to define which connections are allowed and where nodes can be placed.
  • This can be used to restrict when nodes show up in a context menu. For example Dialogue Choice nodes can be configured to only be placed from a Dialogue Node.
  • Custom transition classes can be automatically placed as well depending on which states are being connected.

Graph Properties

Variable Properties
  • Any member variable on a custom state class can be exposed directly on the node.
  • Exposing the variable creates an instanced graph on the node.

  • Variables or pure return functions can be drag & dropped on to the node.
  • Setting default values here will automatically set the default values of the node template.
    • This allows editor specific logic to apply, such as changing the icon based on an enum, number, etc.
  • To read the return value of a graph simply use the variable as normal.

Text Graph Property
  • Creates an instanced graph that returns formatted text.
  • Formats state nodes to have an editable text box.

  • Drag and drop member variables or pure blueprint functions with a return value over the text box to auto place them in the graph.
  • To evaluate the graph you just have to break the struct and retrieve the Result text variable.

  • The appearance of the widget can be customized through the class defaults in the editor.

Event Transition Triggers

  • Transitions can now auto bind to multicast delegates in the state machine or on the context.
  • When the transition succeeds it will automatically update the state machine which means it's possible to disable tick all together.

  • Select the delegate name from a drop down on the transition.
  • This will automatically create new event nodes within the transition graph.

  • When you compile these nodes automatically expand similar to this.

  • Delegates on the context can also be bound to.
  • The context class must be chosen as this information is only known at run-time.

Any State

  • New Any State Node available which represents any other state on the graph.
  • Transitions are automatically duplicated from Any State to all other states in the current FSM scope.
  • Nodes can be excluded from being considered for AnyState transitions with bExcludeFromAnyState.

Enhancements

State Machine Components

  • Actor components now have template support allowing individual properties of the state machine instance to be set.
    • Tick Overrides have been deprecated and their values automatically imported to the template.
  • Added bStartOnBeginPlay to automatically start state machines on begin play.
  • State Machine Class, bInitializeOnBeginPlay, and bStartOnBeginPlay now have Expose On Spawn set.

Conduits

  • Added bEvalWithTransitions to conduits. This allows them to behave similar to anim graph conduits-- They will be treated as a transition and the state you are in won't switch unless the conduit and every connected transition (or connected conduits) pass.
  • Local conduit graphs now support the general helper nodes available in other graphs.

Ticking and Time

  • State machine instances are able to automatically manage delta seconds if nothing is passed in during an Update call, such as from manual tick handling or using the new autobinding transition events. This requires the context have a valid world.
  • States can disable transition tick evaluation with bDisableTickTransitionEvaluation.
  • Transitions can disable tick evaluation while allowing auto-binded events to still be processed.
  • Transitions now allow multiple Initialize and Shutdown Nodes.

On Root State Machine Start

  • The old On State Machine Start node for intermediate reference graphs has been renamed to On Root State Machine Start and is now available for any state type graph.

Validation

  • Added compile validation and additional warnings to help rare cases of state machine children not updating properly when a parent dependency was modified. These are configurable in a new State Machine Project Editor Settings.

Bug Fixes

  • Several bug fixes regarding children that call parent state machine graphs.
  • Dropping a function on a state machine graph no longer results in a crash.