Ready-made StateTree tools for Unreal Engine 5
Launch URL Added task documentation for Launch URL, covering the URL input and the fact that success means the platform launch request was sent, not that the destination was reachable.
Create Widget
Documented the widget lifetime and scope caveat more clearly: on supported engine versions the task completes when the UUserWidget is actually destroyed, not merely when it is removed from the viewport, so external strong references can keep it alive and leave the task Running off-screen.
UE 5.8 StateTree completion behavior Updated completion settings for waitable async tasks so StateTree’s native On State Completed transitions work consistently with tasks that wait for external completion. Instant side-effect tasks remain completion-disabled, while wait-style tasks such as StartActionAndWait, PlayMontage, spawned audio/Niagara tasks, Create Widget, TryActivateAbilityByClass, WaitForDelegate, WaitForWidgetDelegate, and GAS tag waits are treated as completion-aware.
CallEvent
Added a Utilities | Events task for calling supported static BlueprintCallable functions without needing an actor or component target. Supports the standard enter/exit firing options, hides world-context parameters when the engine can provide them automatically, and describes calls using Class::Function(...).
CallEvent, StartActionAndWait World-context parameters generated by scripting systems are now treated like regular engine-supplied world-context parameters. They are hidden from generated inputs, filled automatically at runtime, and do not interfere with StartActionAndWait’s required action-payload parameter.
WaitForWidgetDelegate Added a UI task that waits for one Blueprint-assignable multicast delegate on a bound widget, publishes supported payload values into fixed generic outputs, and completes without ticking. Like WaitForDelegate, it requires the owning StateTree to keep ticking so transitions can be processed.
AGameModeBase.StructUtils plugin dependency warning on newer engine versions.Better generated node descriptions Improved generated descriptions across call, set, delegate, widget, and action nodes so the displayed summaries are more informative.
Richer SetActorProperty descriptions SetActorProperty descriptions now include both the actor expression and the value expression instead of collapsing that detail out of the summary.
Bound values no longer show up as None in generated descriptions
Fixed several cases where a parameter was correctly bound but the generated task description still printed None instead of the bound expression.
Improved search filtering in editor dropdowns Updated the searchable pickers across the editor customizations to use a better text filter, making it easier to find functions, delegates, properties, widgets, and similar entries.
UUserWidget is destroyed (OnNativeDestruct), not merely when it is removed from the hierarchy; external strong references to the widget can keep it alive off-screen and leave the task Running until the last reference is released (or the object is otherwise torn down).AddMappingContext, RemoveMappingContext Added Enhanced Input category tasks for adding and removing Input Mapping Contexts on the Enhanced Input Local Player Subsystem. Both support the standard enter/exit firing checkboxes. Add Mapping Context also has a Remove On Exit State option that removes the context on any exit, and the StateTree compiler rejects configurations where both Remove On Exit State and Call On Exit State are enabled simultaneously.
GetActorOfClass Added an Actor category task that wraps Unreal’s Blueprint Get Actor Of Class node. Takes an actor class and outputs the first matching actor found in the world; finding no actor is not an error.
QuitGame Added a System category task that wraps Unreal’s built-in Quit Game node. Supports all the same parameters: an optional specific player controller, quit preference (Quit or Background), and ignore platform restrictions.
CallWidgetEvent
Added a UI task for calling Blueprint functions on a bound UUserWidget by name. Works like CallActorEvent — set the widget class to populate the event dropdown, select a function, fill or bind its parameters, and control whether it fires on enter, exit, or both.
Set Input Mode: Game Only, Set Input Mode: UI Only, Set Input Mode: Game And UI Added three Input category tasks that wrap Unreal’s Set Input Mode nodes. Each takes a bound player controller and mode-specific parameters (widget to focus, mouse lock mode, hide cursor during capture), and supports the standard enter/exit firing checkboxes.
CreateWidget
Added a task for creating UUserWidget instances from StateTree, with support for expose-on-spawn properties, optional viewport insertion, and widget output binding.
BindWidgetEvent
Added a UI task that listens to one selected widget event on a bound widget and forwards it into StateTree as either a delegate trigger or a typed StateTree event.
Works with widgets created by Create Widget or any other bound UUserWidget, filters the target widget picker down to widgets with supported bindable events, supports regular buttons and Common UI button click events, expects the selected target widget to already exist when the task enters, shows the payload type for StateTree event mode, and shows a legend for which outputs are populated in delegate mode.
WaitForDelegate Added an event task that waits for one Blueprint-assignable multicast delegate on an actor or component, publishes supported payload values into fixed generic outputs, and completes without ticking. The task shows a read-only Delegate Outputs Used legend so users can see exactly which payload parameters map to outputs. Added an explicit warning that WaitForDelegate and WaitForWidgetDelegate require the owning StateTree to keep ticking; if the StateTree is not ticking (for example while paused without tick-when-paused), delegate fires do not get processed into transitions.
CallComponentDelegate Added a task for broadcasting Blueprint-assignable multicast delegates directly on a bound actor component, with the same delegate input workflow as CallActorDelegate.
CallComponentEvent Added a task for calling Blueprint events and functions directly on a bound actor component, mirroring CallActorEvent without needing a component name lookup on an actor.
SetComponentProperty Added a task for setting exposed properties directly on a bound actor component, mirroring SetActorProperty without needing a component name lookup on an actor.
GetComponentByClass Added a property function that mirrors Unreal’s Blueprint Get Component By Class node and returns the first matching component on a bound actor.
GetEnhancedInputLocalPlayerSubsystem, GetEnhancedInputWorldSubsystem Added Enhanced Input category property functions for accessing the Enhanced Input Local Player Subsystem (from a player controller) and the Enhanced Input World Subsystem (from the current world).
GetPlayerController (Game category)
Added a property function that mirrors Unreal’s Blueprint Get Player Controller node. Takes a player index and returns the corresponding APlayerController.
GetWidgetAnimation (UI category)
Added a property function that gets a named UWidgetAnimation from a bound widget. The widget class populates the animation dropdown and compile validation catches renamed or deleted animations.
Optional GAS sub-plugin loading StateTree Tools Gameplay Ability System is now optional instead of always-on. The GAS sub-plugin only becomes available and loads when Unreal’s built-in Gameplay Abilities plugin is enabled; otherwise StateTree Tools Core still loads normally without GAS-specific nodes.
Compile-time validation for selected events, delegates, properties, and functions Nodes that let you choose actor events, delegates, properties, and pure functions now validate those selections during compile. This catches cases where a Blueprint event, delegate, function, or property was deleted or renamed after the node was configured, instead of silently leaving an invalid selection behind.
Array support for task inputs Task inputs for event calls, delegate calls, property setting, and Create Widget now support array values. This includes event parameters for CallActorEvent, CallActorDelegate, StartActionAndWait, CallComponentEvent, CallComponentDelegate, property values for SetActorProperty and SetComponentProperty, and expose-on-spawn widget properties for Create Widget.
Default values for generated task inputs Generated fields for event calls, delegate calls, StartActionAndWait inputs, property-setting values, and Create Widget expose-on-spawn properties now initialize from reflected defaults when available. Existing user-entered values are preserved when those fields refresh.
CallActorEvent Calls any event or non-pure function on any actor or its components.
SetActorProperty Sets any property on any actor or its components.
CallActorDelegate Calls any delegate on any actor or its components.
StartActionAndWait Calls an event on an actor or component, then keeps the task active until the event calls the Finish Action Blueprint node.
PlayMontage Plays animation montages from StateTree tasks.
PlaySoundAtLocation, SpawnSoundAtLocation, PlaySound2D, SpawnSound2D Audio playback tasks for world-space and 2D sounds.
DrawDebugLine, DrawDebugPoint, DrawDebugDirectionalArrow, DrawDebugBox, DrawDebugSphere, and more Includes the full set of debug draw helpers, plus FlushPersistentDebugLines and FlushDebugStrings.
GetRandomReachablePointInRadius Finds a random reachable navigation point for wandering and patrol behaviors.
SpawnSystemAttached and SpawnSystemAtLocation Niagara spawning tasks for attached and world-space effects.
SendStateTreeEvent Sends a StateTree event from a StateTree task.
GAS: WaitForGameplayTagAdded and WaitForGameplayTagRemoved Keeps the task active until the requested gameplay tag change occurs.
GAS: ApplyGameplayEffect and ApplyGameplayEffectToTarget Applies gameplay effects through the Gameplay Ability System.
GAS: TryActivateAbilityByClass Tries to activate an ability by class and keeps the task active until the ability completes.
GAS: SendGameplayEventToActor Sends GAS gameplay events to an actor.
GetRootComponent Gets the root component of an actor.
CallPureFunction Accesses any Blueprint-exposed pure function from a property function.
Floating point math operations and vector math operations Includes reusable math property functions for float and vector calculations.
GAS: GetFloatAttribute Reads a float gameplay attribute through GAS.
PerceptionEventForwarder Forwards all events from AI Perception components into StateTree components on the same actor.
GASEventForwarder Forwards GAS events into StateTree components on the same actor.