Skip to content

Logic Driver Lite Patch Notes

Update Guide


Version 1.4.1

April 13th, 2022 - Unreal Engine 4.26 - 5.0

Bug Fixes

  • 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.
  • Fixed an edge case crash when force deleting multiple assets.

Version 1.4.0

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

New Features

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.
  • See the updated Networking Guide for more information.

Retrieve and Set States by Qualified Name

States can be retrieved and set by their fully qualified name.

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. 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.

  • This will especially benefit Lite as all nodes use the default node instance.
  • See the Performance Guide's Node Instance section.

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

State machine references can have their double click behavior customized under Editor Preferences to either open the local graph or an external graph.

  • 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.
  • 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 slate refresh time.
  • AnyState transitions are now compiled into the final blueprint even if they are always false.

Bug Fixes

  • Fixed intermittent cooking error caused by the state machine component.
  • Fixed OnStateShutdown firing before OnStateEnd.
  • Fixed Replace With not clearing the details panel of stale data.
  • 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 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 1.3.1

September 24th, 2021 - Unreal Engine 4.26 - 4.27

Bug Fixes

  • Adjusted shutdown sequence to avoid blueprint runtime errors from unbinding autobound transitions.
  • Fixed a possible linkerload crash.
  • 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.



Version 1.3.0

July 31st, 2021 - Unreal Engine 4.26

New Features

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.

Enhancements

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.

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

States by Name

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.
  • Added project setting Default New Transitions to True to default newly placed transitions to true.
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 connected states.

Added Default Node Property Blueprint Setters

  • Default node instance properties have been assigned public C++/Blueprint Getters and Setters that will properly update the node values.
  • The original properties are changing from Public to Private so any C++ code that accesses them will have to be updated.
  • This is unlikely to impact Lite users and mostly serves to keep the API in sync with Pro.

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.
  • Component initialization improvements.
  • Components will free their instance reference on shutdown.
  • 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

  • Copying and pasting states should correctly increment their name count now.
  • Fixed edge case of state machine graphs being null during creation and duplication.
  • 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 1.2.3

May 15th, 2021 - Unreal Engine 4.25 - 4.26

Enhancements

  • Added support for Electronic Nodes 3.2.



Version 1.2.2

March 8th, 2021 - Unreal Engine 4.25 - 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 1.2.1

December 18th, 2020 - Unreal Engine 4.25 - 4.26

Bug Fixes

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



Version 1.2.0

December 3rd, 2020 - Unreal Engine 4.25 - 4.26

New Features

Pro Feature Auto-Binding Event Transitions Now Available for Lite

  • 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.

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

Pro Feature Get Node Instance Available for Lite

  • Each node has a node instance which can be retrieved using GetNodeInstance.
  • From here additional information and commands for a node are available. Note that creating custom node classes is not supported in Lite.

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

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

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

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.

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

  • Added support for Electronic Nodes plugin in state machine K2 graphs.
  • Improved compatibility with engine plugins by allowing blueprint menu extenders in state machine blueprints. (Configurable under Project Editor settings)
  • Create Child Blueprint Class context menu option now available for blueprint assets.
  • 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.
  • Added SetCanEvaluate and GetCanEvaluate to conduits.

Deprecation

Bug Fixes

  • Fixed compile issues with Any State transitions containing manually bound events.
  • 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.
  • Reduced flicker on transitions when redrawing the state machine graph.
  • Reduced instances where stale debug data will display when opening a graph.
  • Fixed possible crash when compiling a state machine blueprint on a stand alone development build.
  • Renamed logging macros to prevent possible project redefinition.



Version 1.1

July 11th, 2020 - Unreal Engine 4.23 - 4.25

Enhancements

Transitions

  • New EvaluateTransitions Method available on SMInstances.
    • This can be used with manual event transitions to disable tick on the state machine.
  • 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.

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.

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.
  • 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 1.0

May 25th, 2020 - Unreal Engine 4.23 - 4.25

Initial release.