Normally if you have a property in your state tree instance data of the input property(Category = Input), when you compile the state tree, you will get errors if the property does not have a binding.
However, if you have a struct property, and within the struct is a Category = Input property, the compile process will not validate that bindings exist for these properties.
Expectation: All Category = Input, even nested ones, would be validated
For example:
// Property inside a task instance data // Provides ability priority groups UPROPERTY(EditAnywhere, meta=(TitleProperty=Ability)) TArray<FExecuteAbilityPriority> AbilityPriorities; USTRUCT(BlueprintType) struct FExecuteAbilityPriority { GENERATED_USTRUCT_BODY() UPROPERTY(EditAnywhere, meta = (Categories = "Ability")) FGameplayTag Ability; // is not validated for a binding UPROPERTY(VisibleAnywhere, Category = Input) TStateTreePropertyRef<FGameBehaviorDefinition> RuntimeAbility; };
1. Create class or struct containing variables marked with Input as the category
2. Create new StateTree task that has an array of the above class/struct
3. Add task to a StateTree state
4. Add element to array for task
5. Do NOT bind anything to the variables marked as Input
6. Compile the StateTree asset
Expected Result
The compilation fails with an error that the input variable of the array element is not bound to anything
Actual Result
Asset compiles successfully with no warning or error.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-348380 in the post.
0 |
Component | UE - AI - StateTree |
---|---|
Affects Versions | 5.6 |
Target Fix | 5.8 |
Created | Oct 10, 2025 |
---|---|
Updated | Oct 16, 2025 |