Context
In Behavior Trees, BT Services can be added to nodes. Those services can have configurable FBlackboardKeySelectors. BlackboardKeys are variables on a blackboard that the behavior tree can read/write from. Selectors allow the developer to reference a specific blackboard key.
Problem
FBlackboardKeySelector filters aren't applied when recompiling blueprint if a behavior tree asset containing the blueprint added as a service is closed, or if the blueprint is reparented.
With repro project (recommended):
1.) Download and open repro project provided by licensee.
2.) Open "NewBehaviorTree"; Content Drawer > Content > NewBehaviorTree
3.) Click on each Test Service and in the Details panel click on the "Detection Radius" dropdown menu
Without repro project:
1.) Create a native UBTService subclass 'UBTServiceTestBase' with a FBlackboardKeySelector editable property. In the constructor, call AddFloatFilter on it to constrain its AllowedTypes to floats.
2.) Create a BehaviorTree asset. Add the 'UBTServiceTestBase' service to a node.
Observe:
Expected:
4.) Open "BP_ServiceTest"; Content Drawer > Content > BP_ServiceTest. Keep "NewBehaviorTree" tab open.
5.) Save and Compile BP_ServiceTest
6.) Go back into "NewBehaviorTree" and observe "Detection Radius" dropdown menu in Test Service from BP_ServiceTest still correctly applies filter
7.) Repeat steps 4-6 but close the "NewBehaviorTree" tab
Observe:
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-333204 in the post.
0 |
Component | UE - AI - BehaviorTree |
---|---|
Affects Versions | 5.6 |
Created | Sep 24, 2025 |
---|---|
Updated | Oct 17, 2025 |