Skip to content

Tasks Reference

Tasks are the building blocks of a State Tree. Each state executes one or more tasks while it is active. Vertex Animation Studio ships the following tasks through the VA StateTree Schema:

  • Play Vertex Animation - plays a single animation
  • Play Random Vertex Animation From Pool - picks one animation from a pool each time the state is entered
  • Randomize Bool - rolls a 50/50 boolean into a referenced property
  • Set Int Parameter / Set Float Parameter / Set Bool Parameter / Set String Parameter / Set Gameplay Tag Parameter - writes a value into a referenced property

To add any of these, select a state in the StateTree editor and click + in the Tasks panel.


The workhorse task: plays a single named animation on the instance for the lifetime of the state.

PropertyTypeDefaultDescription
AnimationVA Compatible Animation-The animation to play. Dropdown is filtered by the collection set in the tree’s Asset Details.
Play RateFloat1.0Playback speed multiplier.
Random Start PositionBoolfalsePicks a random start position per instance so crowds don’t animate in lock-step.
Start PositionFloat0.0Normalised start time (0–1). Hidden when Random Start Position is enabled.
Blend DurationFloat0.2Blend time (seconds) when transitioning into this animation from whatever was playing.
LoopBoolfalseIf true, the animation loops indefinitely and the state never completes on its own. If false, the state fires On State Completed when the clip ends. Pair with an On State Completed transition.
ReverseBoolfalsePlays the animation backwards.

Tip: For looping behaviours you usually want Loop on. For chained or event-driven behaviours (idle → wave → idle) you usually want Loop off so the state can complete and transition. Blend Duration is what makes transitions between states feel smooth rather than snapping.


Picks a random animation from an array each time the state is entered. This is the State Tree equivalent of the Animation List Random mode, but driven by state-machine logic.

PropertyTypeDefaultDescription
Animation PoolArray of VA Compatible Animation-The candidate animations. One is picked uniformly at random on state entry.
Play RateFloat1.0Playback speed multiplier.
Random Start PositionBoolfalsePicks a random start position per instance.
Start PositionFloat0.0Normalised start time (0–1). Hidden when Random Start Position is enabled.
Blend DurationFloat0.2Blend time (seconds) into the picked animation.
LoopBoolfalseLoop the picked animation.
ReverseBoolfalsePlay the picked animation in reverse.

Put idle_1, idle_2, idle_3 in the pool and every crowd member rolls their own. Great for breaking up visual repetition across large crowds.


Rolls a 50/50 boolean and writes it into a referenced bool property. Use it on state entry to seed branching decisions for conditions on outgoing transitions.

PropertyTypeDescription
Set PropertyBool property referenceThe tree parameter (or bound property) that will receive the rolled value.

Note: The roll is a fair 50/50 (FMath::RandBool()). If you need weighted probabilities, use Set Float Parameter with a random range and compare the output in a transition condition.

Example: In an Idle state, Randomize Bool → WillCheer. Add a transition: On State Completed, Condition: WillCheer == true, Next = Cheer. Half of all idle loops chain into a cheer.


There are five Set Parameter tasks, one per supported value type. Each writes a value into a referenced property on state entry.

TaskValue TypeSupports Random Range
Set Int ParameterInt32
Set Float ParameterFloat
Set Bool ParameterBool-
Set String ParameterFString-
Set Gameplay Tag ParameterFGameplayTag-

Both numeric variants share the same properties, differing only in the numeric type.

PropertyTypeDefaultDescription
Set PropertyInt32 / Float property reference-The target parameter to write.
Use Random RangeBoolfalseIf true, the value is rolled in a random range on every state entry. If false, a fixed Value is written.
RangeInt32 Interval / Float Interval0–1 / 0.0–1.0Min/Max inclusive range. Hidden when Use Random Range is off.
ValueInt32 / Float0 / 0.0Fixed value to write. Hidden when Use Random Range is on.

Example: weighted choice: Set Float Parameter → DecisionValue, Use Random Range enabled, Range 0.0 – 1.0. Then on outgoing transitions, use conditions like DecisionValue < 0.7 → Idle and DecisionValue >= 0.7 → Cheer for a 70/30 split.

PropertyTypeDefaultDescription
Set PropertyBool property reference-The target parameter.
ValueBoolfalseThe fixed value to write.
PropertyTypeDefaultDescription
Set PropertyString property reference-The target parameter.
ValueFString""The fixed value to write.
PropertyTypeDefaultDescription
Set PropertyGameplayTag property reference-The target parameter.
ValueFGameplayTag(empty)The fixed tag to write.

Example: mood tagging: On entry to each reaction state, Set Gameplay Tag Parameter → CurrentMood = Mood.Excited. A later state can branch on CurrentMood via a tag-matching condition without needing the original event tag.


A state can hold multiple tasks. They enter in the order they are listed on the state. Parameter-setting tasks (Randomize Bool, Set ... Parameter) don’t tick; they write their value on entry and immediately report success. The next task in the list then enters. A common pattern:

  1. Randomize Bool or Set Parameter: seeds parameters on state entry.
  2. Play Vertex Animation (Loop off): plays the animation for the state’s lifetime.
  3. Outgoing transitions read the seeded parameters via conditions when the animation completes.