What are the advantages of behaviour trees?

I have been fiddling with behaviour trees for the past week or so and every time I try to do something slightly complex I find myself reaching for workarounds. It seems like behaviour trees only expose simpler logic than blueprints - there is no decorator for comparing floats, and you have to use a blackboard instead of setting variables, for instance.

Are behaviour trees more efficient than blueprints? Do they only make sense for really complex things? Why shouldn’t I write my AI in blueprints, which allow me inheritance, interfaces and a familiar UI? Is there a theory behind behaviour trees that I can read up on? I feel like I’m misunderstanding something here.

Behavior trees and part of the suite of things you would find you need when animating characters in the world.

You can do a lot of it in BP, but if you try and do all of it in BP, you’ll find sooner or later, you try to code some sort of state machine. That’s why Epic invented BTs. They are just for handling the state machine side of character programming.

Same for blend spaces and animation BPs. They both cover a small area, but it’s an area you definitely need, otherwise, your BPs would be a total nightmare.

So, in short, do it all in BP, until you notice the part you’re working on would work better in one of the above.

Yeah I think that’s where I’ve landed. I can’t make progress in behaviour trees at all, but in blueprints it’s going well. I’m going to keep building in blueprints until, inevitably, I realise I should have used behaviour trees all along.

Exactly what I did. I reached a point in BP where the code was starting to get unwieldy, then the BT fixed it.