I got a report from one of my designers that since we took 5.6, they have been unable to see the "Promote to Parameter" options when attempting to bind an output from one of our common tasks. I took a look at the code and sure enough, the behavior changed in 5.6, although the comment describing the intended behavior did not. Is this a bug?
5.5 behavior of FStateTreeBindingExtention::CanPromoteToParamter (line 1781)
else if (const FStructProperty* StructProperty = CastField<FStructProperty>(Property)) { // Support Property Refs as even though these aren't bp types, the actual types that would be added are the ones in the meta-data RefType if (StructProperty->Struct && StructProperty->Struct->IsChildOf(FStateTreePropertyRef::StaticStruct())) { return true; }
5.6.1 behavior - refactored into a separate function
bool FStateTreeBindingExtension::GetPromotionToParameterOverrideInternal(const FProperty& InProperty, bool& bOutOverride) const { if (const FStructProperty* StructProperty = CastField<FStructProperty>(&InProperty)) { // Support Property Refs as even though these aren't bp types, the actual types that would be added are the ones in the meta-data RefType if (StructProperty->Struct && StructProperty->Struct->IsChildOf(FStateTreePropertyRef::StaticStruct())) { bOutOverride = false; return true; } } return false; }
bOutOverride is initialized to false at the callsite so this can never return true. Just wanted to bring this to your attention as it seems like a mistake.
Steps to Reproduce
Create any StateTreePropertyRef parameter for a State tree task. You can optionally add the Run EQS StateTree task to a StateTree and attempt to promote the Result to a parameter. The option is not present in the binding options.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-352719 in the post.
| 0 |
| Component | UE - AI - StateTree |
|---|---|
| Affects Versions | 5.6, 5.7 |
| Target Fix | 5.7.2 |
| Created | Nov 5, 2025 |
|---|---|
| Updated | Nov 7, 2025 |