Logic Driver Pro Patch Notes¶
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.
- 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.
Stay Active on State Changeto states so they may remain active after taking a transition.
Force Set Active State¶
- State node instances can call
- This call is replicated.
Added State Machine Flag to Wait For End State¶
bWaitForEndStateto 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.
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
bExcludeFromAnyStateat 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
AnyStatenode, an FSM that has
bWaitForEndStateset, or an FSM with an intermediate graph.
- These can be disabled with a new editor setting
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).
TransitionResetTimeSecondsto 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¶
New Function Events¶
OnEndStateReachedevent 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.
- Deprecated GetActiveStateName
- Deprecated GetNestedActiveStateName
- Deprecated GetActiveStateGuid
- Deprecated GetNestedActiveStateGuid
- Deprecated GetAllCurrentStateGuids
- Deprecated GetActiveStateInstance
- 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.
GetIncomingTransitionsfrom 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.
SetCanEverTickwill work properly when the default tick is disabled and the sm is used by an actor component.
June 18th, 2020 - Unreal Engine 4.23 - 4.25
GetIncomingTransitionsto state instances.
GetNodeNameto node instances.
GetAllStateInstancesto SMInstances and to custom State Machine node classes.
Priorityis now available from
- 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.
- All runtime log messages should now be prefixed with
- 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.
- 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.
June 9th, 2020 - Unreal Engine 4.25
- Fixed custom context blueprint delegates not auto-binding properly in UE 4.25.
May 28th, 2020 - Unreal Engine 4.23 - 4.25
- Added Node Icon Tint property for custom icons.
- 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.
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.
- Added user tooltips to graph properties.
GetGuidto node instances.
- Added documentation links to blueprint editor help menus.
bIncludeSimulatedProxiesto 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
- Can be disabled by unchecking
- 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.
bLetInstanceManageTickto components as an advanced option.
bTickBeforeInitializeto instances as an advanced option.
bTickRegisteredto instances as an advanced option so they can unregister their tick function all together.
- Manually calling the actor component
Initializefunction 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.
bCanEnterTransitionof 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.
- 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.
April 22nd, 2020 - Unreal Engine 4.23 - 4.24
- Nodes that are impacted by an Any State Node will have their color updated appropriately and additional information displayed on their tooltip.
- 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.
April 16th, 2020 - Unreal Engine 4.23 - 4.24
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.
- 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 Instancein order to get or read values from the class instance.
- 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.
- 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
- 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 StateNode 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
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.
bStartOnBeginPlayto automatically start state machines on begin play.
State Machine Class,
Expose On Spawnset.
bEvalWithTransitionsto 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
Updatecall, 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
- 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 Startnode for intermediate reference graphs has been renamed to
On Root State Machine Startand is now available for any state type graph.
- 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.
- 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.
January 21st, 2020 - Unreal Engine 4.24
- Modifying a parent state machine will no longer cause children state machines that haven't been recompiled to have an invalid guid during initialization.
- All children which reference a parent graph will be marked dirty when the parent is compiled.
January 7th, 2020 - Unreal Engine 4.22 - 4.24
- State machine references now support archetypes to load default values which can be set from the details panel.
- This is useful for quickly setting static default values. For advanced configuration the intermediate graph is recommended.
Inheritance Improvement: Call Parent State Machine from Child¶
- Child Blueprints now support adding a State Machine Parent node which can select the desired parent from the details panel.
- This effectively clones the parent graph into the child instance.
Transitions Can Evaluate on the Same Tick as Start State¶
- All state nodes have an advanced configuration option
Eval Transitions on Startwhich allows a state to process transitions immediately after it is started. Normally this occurs on the next tick.
- Transitions have an advanced configuration option
Can Eval with Start Statewhich if false prevents transitions from being evaluated on the same tick.
- Same tick processing can be especially useful for Conduit nodes. However, be careful of your logic paths if you enable this feature. This behavior can be chained which could allow multiple states and transitions to execute in one tick which may effect performance or lead to a blocking infinite loop. To help prevent that self transitions always default to running on the next tick.
Guid Calculation Improvements¶
- Each node in a graph is supposed to be unique which allows for quick retrieval and is useful in saving or reloading states. With the introduction of multiple parent graphs or same type references it's possible Guids could be duplicated so how the final Guid is calculated has changed to ensure it is unique.
- If you are using any Guid retrieval introduced in 1.5 for saving or reloading states you don't have to make any changes, but any existing run-time save data using the Guids won't load into 1.6 until they are saved using the 1.6 run-time.
- The state machine compiler will now automatically fix nodes that have duplicate ids and will display a warning if it does. This can happen if a blueprint was duplicated and then re-parented to the original. There was also a bug where certain nodes that were duplicated wouldn't generate a new Guid.
- You will need to manually save any affected Blueprints to keep the warning from showing up. This fix happens during compile when it's not possible to mark the Blueprint dirty automatically.
Multiple Same Type References Always Instantiate¶
- References of the same class in a single blueprint will always instantiate new instances. This use case wasn't well supported previously and the same instance would be reused. With state machines being able to reuse states, retrieve states for serialization, and now the use of templates this behavior has to change.
- Circular referencing is completely restricted now. It was never supported before but had some logic which allowed it to work under certain conditions.
- There is an advanced reference option
Reuse Referenceif the old behavior is desired, but it is not recommended.
- Opening a reference from a graph node while debugging will maintain the current debug object.
- Graph headers will display the node type in the name. Previously this was limited to only states and transitions.
- Creating new state machine blueprints will automatically create and wire a parent tick node.
- Fixed crash from copying and pasting a nested state machine node which contained another nested state machine.
- Nested state machines which had bReuseState checked will no longer incorrectly call StartState when EndState is called.
Delete Unused Variablesand
Refresh All Nodesnow work.
- Creating a new state machine blueprint from any other means than the content context menu should now correctly setup the blueprint.
- Copy and pasting Transitions or State Machine Nodes will correctly generate a new Guid.
October 14th, 2019 - Unreal Engine 4.21 - 4.24
Intermediate Reference Graphs¶
- State machine references now support an intermediate graph to allow direct control over the reference.
- The context of the reference can be changed.
- A new optional node
Get State Machine Referenceis available in this graph.
- Reference variables can be read or set from here.
- An optional entry point
On State Machine Startis available for initializing properties.
- This fires when the root state machine of the blueprint owning the reference starts.
Save & Restore States¶
- The guid of the active state can be easily retrieved for serialization.
- To restore a state machine to its previous state it only needs the active guid and will automatically set initial states of all affected state machines.
- If the current state of a nested state machine which doesn't contain the active state is important use
- Normally nested state machines clear their state on exit. Added
bReuseIfNotEndStateflags to state machine nodes to allow this behavior to change.
- Normally nested state machines clear their state on exit. Added
- Color and debug information can now be configured.
- State nodes now support standard comment bubbles.
Added Helpers to Retrieve State and Transition Information from a State Machine Graph¶
- Retrieve blueprint friendly read only structs containing helpful information.
- Any contained guids can be checked against the instance itself with
New Common State Machine Events¶
- Added OnTransitionTaken, OnStateChange, and OnStateMachineUpdated events to instances and components.
- State and transition events include the new blueprint friendly structs as parameters.
Replace Withsub menu for converting the selected node to another type while preserving transitions.
- This is destructive to the node and its contents.
- State nodes will better validate and display errors.
- State machine references will no longer default to an empty nested state machine when a reference is forcibly deleted and instead stay in an error state to allow the reference to be changed.
- Organized blueprint functions into different categories.
- Blueprint helper nodes will now display which state they represent.
- State machine instances have more general helper functions exposed in C++ and blueprints to retrieve information such as current states or all referenced instances.
Improved descriptions of Tick overrides to better reflect what they actually change.
- They have always affected the Update rate of a state machine but do not affect overloaded Tick functions.
New Platforms Whitelisted:
Linux has been tested and is supported. No testing has been performed on the other platforms.
Fixed state machine references ticking independently of the parent which could cause state machines to update twice per tick.
bAllowIndependentTickwhich defaults to false and
bCallTickOnManualUpdatewhich defaults to true.
- The new default behavior should fix the issue while not breaking uses of Tick overload on references. However be sure the Parent Tick is still called if you overload Tick.
Promote to Variablenot displaying on some node pins.
September 19th, 2019 - Unreal Engine 4.22 - 4.23
New Platforms Whitelisted:¶
- Cleaned up compiler warnings on packaged builds.
- Dirty symbol will only show up once for Blueprints on UE 4.22+
September 5th, 2019 - Unreal Engine 4.21 - 4.23
- Network crash fix for if transitions were replicated before the instance was initialized from replication.
- In this scenario transitions are now queued and executed after initialization.
- New flag
bDiscardTransitionsBeforeInitializeadded to State Machine actor components to optionally discard transitions instead.
August 26th, 2019 - Unreal Engine 4.20 - 4.22
New Transition Nodes and Support for Event Triggers¶
Optional transition nodes have been added to help support transition logic which may need to occur before and after evaluation such as binding to an event.
On Transition Initialized (When the state leading to the transition is entered)
On Transition Shutdown (When the state leading to the transition is exited)
On Transition Pre-Evaluate (Before each evaluation. Performance warning)
On Transition Post-Evaluate (After each evaluation. Performance warning)
Can Transition Evaluate Getter/Setter which can be used in the transition context. If false the transition is never evaluated and can never be taken.
- State machine instances' GetWorld implementation will now only attempt to return the context's world as this is the only world the state machine should care about. Previously it would check GEngine and the outer object. If ImplementsGetWorld was called on the state machine blueprint during design time it would fail.
- State machine instances' GetContext implementation will only return the context which was set during initialize. Previously it would return the outer object if no context was set. All contexts should be set using the Initialize method.
[These changes shouldn't impact use cases providing state machines are instantiated as ActorComponents or by using the CreateStateMachineInstance function.]
- State Machine instances have improved cleanup handling to prevent a possible crash when garbage collection occurs.
April 16th, 2019 - Unreal Engine 4.20 - 4.22
Change Tick Rate of State Machine¶
- State Machines now support a variable delay in seconds between ticks.
- Added explicit Tick override option for ActorComponents.
- Added/Removed some EditConditions around tick properties to better display when one option requires another.
- Adding or changing a State Machine reference will default the path to the current Blueprint's folder.
- Initializing State Machines when using nested references improved.
- Duplicating a top level K2 State Machine node will correctly rename it when the name is already in use.
April 2nd, 2019 - Unreal Engine 4.20 - 4.22
Add Reference to State Machine¶
- Other State Machine blueprints can now be directly referenced within a State Machine graph. This allows a single State Machine to be reused multiple times.
- The context of the super State Machine will be passed into the reference automatically.
- The reference will inherit the super State Machine's replication settings.
Convert State Machine to Reference¶
- Convert an existing State Machine in-place to a reference.
- This will also look for any existing variables that are referenced and recreate them in the new blueprint. Any additional event graph logic or custom functions won't be copied.
- Blueprint Helper Nodes (Such as 'Time in State') can now be copied and pasted into supporting graphs.
- Removed EditAnywhere from some properties which weren't intended to be modified manually.
February 21st, 2019 - Unreal Engine 4.19 - 4.21
Collapse Nodes to State Machines¶
- Selected state nodes can be collapsed to a nested state machine while preserving transitions.
- Can add comments to state machine graphs.
- Multiple instances of a state machine can be debugged properly now.
- Fixed crash when a nested state machine was removed while opened in the editor.
- Added work around for engine level crash when undoing the creation of a graph for the second time while the graph is open in the editor.