Get Blackboard Value as Actor returns None but should not


In my behavior tree first Service I set the Blackboard value "TargetActor (which is an Object → Actor), but in one of the following branches, when I try to Get BlackBoard Value as Actor, the result always returns none. I checked and the value is actually correctly set, it has informations of an actor, but in never finds it in the task.

I have set the task variable correctly (is editable and in the behavior tree, points to TargetActor), and proof of all of that is that, if I use a “MoveTo” node instead of a custom Task, the AI finds said actor instantly … Thus I have absolutely NO clue what is going on, any help is very welcome.

See image :

Still working out this problem, could not find the solution, anyone ?

Ok so this is only part of the answer but it is the only way I could solve my problem.

Few minutes ago I had a “revelation” based on previous experience, I remembered that Event Receive Execute AI often returns empty Owner Controller and Controlled Pawn at first, while Tick AI does not. I am not sure what cause this but my theory is that the Receive Execute event activates itself before receiving any informations about owner . . . Which makes it unable to find a Blackboard reference, which in turn makes it return a Null value for any blackboard key.

I am not sure why the owner of Receive Execute is empty at start, to me it feels like a bug, I could not find any proper informations about that, maybe it is expected behaviour but I will declare it as a bug for my sanity.

So in the end, my solution is to insert a short Dealy node just after the event receive execute to give it time to set its Owner and Pawn properly, it then works like a charm …

Here is a screenshot to show the setup that is working versus the one not working (this HAS to be a bug …) :

you can even set the delay to 0

Hello from 2021, DO NOT PUT A DELAY ON TICK. You’d be better off doing an is valid. Still not a great option.