Ignore Self not working on Sphere Trace

Hey guys,

While following this specific tutorial to the letter… https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/QuickStart/index.html

I’m doing a Multi Sphere Trace for Objects and the “Ignore Self” checkbox is ticked, but (stepped through the debugger) the hit is still returning himself. The trace is done in AgroCheck (a service of the Behavior Tree.) Everything else I’ve tested seems to be working fine, but he’s not ignoring himself on the trace.

What am I doing wrong?

p.s. Yes, Ignore Actors is not filled, but I didn’t want him to ignore other AI. I’m trying to get AI to fight one another in this specific case.

That is one solution to the overall problem, and something I’ll be doing anyway in the future, but it doesn’t resolve the issue that Ignore Self simply isn’t doing what it should do (and what I’ve used it for in the past.)

wouldn’t you just create an array of actors containing only self and hook that up to the actors to ignore node? I know i seems redundant, but…

That’s weird, no idea why, but I remember coming across it myself before. It was with a sphere trace, box trace works fine if I remember correctly. I don’t remember if I reported it or not.

I think it’s a question of what ‘self’ is. The node doesn’t ask for which object is doing the trace, so I guess by self it just means the blueprint. This pin probably only works if you are using the node inside the AI pawn’s blueprint.

It would be nice if the BT blueprints could be automatically associated with their AI pawns so that this was hooked up, but apparently that’s not the case.

I got this problem and I had to add into the array all the children actors… It could be good to have an option include sub actors when ignoring.

When you use the array “Actors to Ignore” it wants Object References, so it’s not actually useful because you’d have to get a reference to all of the actors you want it to ignore which is expensive. Your best option is to create a new Trace channel in your project settings under the collision category and then set the trace channel of your Sphere trace to use that channel. Then in the channel settings, you can specify the object types you want it to ignore, and create custom object channels for anything unique (like Team actors or something).

Also, to be certain that it IS hitting itself, break the hit result, and the “Get Display Name” from the Hit Actor. In my case I thought it was hitting itself, but it was actually hitting an invisible wall that the turret was inside of.