Currently working in 4.8.1. For some reason, no matter what I do, my blackboard keys never update. I have gone through several simplification stages in order to get a waypoint navigation system working, and now only have two tasks in my behavior tree. All they are doing is (trying to) change values. I know what these values are supposed to equal because I am setting them manually in the blueprint when I Set the Blackboard Value. I have no local variables in any of my tasks. I’m just working with the blackboard. Here is a screenshot of the task that’s supposed to update the vector key
Here is the task that’s supposed to update my interger.
And finally, here is what my Behavior tree looks like when I run the system
Also, I’m guessing because the Blackboard Values are never being set, the Print String node never prints anything, either to the screen or to the output log. I am at a loss. I’m pretty sure I don’t want to try setting up this type of system in one AI controller without a behavior tree. Would anyone happen to know why this is happening?
Are you properly associating the blackboard values with the local variables of the same name in your tasks?
It’s important to remember that the “location” and “boop” that exist in your blackboard are NOT the same as the local variables of those names in your tasks.
In order to make the association between the two, you need to make the local variables in your tasks public (clicking on the eyeball next to them). Then in the BT editor, you select the task in your tree and set the input blackboard key for that tasks’s public variable with the drop-down.
Apologies if you’ve already done all that. Just wasn’t clear from your description.
1 Like
I don’t have any local variables in either task. I’m inputing values straight into the blackboard. And yes, I did consider that, which was why I didn’t create any local variables to start with. Thanks for pointing that out though. I went ahead and updated my original question to include that information. 
Huh. So what do the “boop” and “location” nodes refer to in your task blueprints? And how do you place them there?
Perhaps this is a new feature of 4.8 I don’t know, but I don’t think in 4.7 you can “directly” access a blackboard entry from inside a task implementation unless you either use a BlackboardKey_selector variable OR you explicitly look up the entry by name in the blackboard. Part of the reason is that the task doesn’t know what blackboard it’s meant to be attached to (because different kinds of characters could be making use of the same task implementation).
Boop and Location are the Blackboard keys that I am trying to change. These are the only two keys in my blackboard. The purpose of these tasks is to change their value, just to get that working first. I’m not trying to get their values just yet, I just want to know that they are updating, which I can see in the behavior tree when it’s running that they aren’t.
Boop is an interger key and Location is a vector key. I’ve already double checked their spelling, so I don’t think its the naming that’s causing this issue. I’m using blackboard key selectors in these blueprints also. The strange thing is that I have set up similar blueprints in earlier versions of Unreal and have not encountered this problem.
Right, so if you see “boop” and “location” listed as BlackboardKeySelectors under the list of variables in your task blueprints, they are effectively local variables – there is no built-in association with the keys of the same name in your blackboard. So the spelling, matching or not, totally does not matter.
The only way to create the association between the selector and the blackboard key is go to the BT editor, select the task node, and associate the key with the selector in the drop down (and the selector is only exposed there, again, if it is set to “public”).
(It may well have worked by coincidence in previous versions of the engine, since it seems to occasionally automatically choose a key binding for the exposed selector for a task node in the BT, but for me that automatic choice is usually just the first key in the blackboard, which is almost never correct.)
It’s a bit of a complicated system, for sure!
Oh, okay. That makes sense. It looks like that was what I was missing. Once I made the blackboard key selectors public and updated them in the dropdown in the behavior tree, the values finally changed. I should have guessed all this frustration would be caused by something so simple. I had assumed that having a key selector with the same name would select the correct key from the Blackboard. Thanks a lot for your help! It’s much appreciated!