MultiLineTraceForObjects always returns blocking hit for object with no block collision responses

In one of my blueprints I’m using the MultiLineTraceForObjects node to find the first blocking hit that isn’t a capsule component. This works fine for most things but I have some box components scattered across my map that don’t block any channels, only overlap and they’re reporting a blocking hit when my trace goes through them. I even tried setting their response to all channels to Ignore and I still get a blocking hit.

I set up a simple project to test this and it happens there as well. To repro:

  1. Place an empty actor in the world, add a box component, set it’s collision preset to custom, change all the responses to “Ignore”
  2. Place target points on either side of the box
  3. In the level blueprint set up the tick event to trace between the two points, like so:

You can print the name of the actor and whether it was a blocking hit for each member of OutHits to verify that the box is causing a blocking hit.

Hey kgamble,

I may be misunderstanding the issue, but it seems like this is working as intended. What you’re doing is tracing for specific object types, not by a specific channel. So even if you have a, say World Static object that is set to ignore visibility traces, it will still count as a hit because the trace isn’t looking for objects that block visibility, it’s looking for objects with the World Static object type set in their collision settings.

Does that make sense?

Also, feel free to let me know if this is not the issue you were explaining.

Have a great day

It makes sense that it would find the object and return a hit result for it but what I was specifically referring to was that the hit result said it was a blocking hit.

However, I guess we’re not passing in a channel at all so it can’t really know whether or not it would have been blocked (though I found that the underlying code uses DefaultCollisionChannel, aka WorldStatic). Does that make sense?

Yeah I understand what you’re saying. However, I believe this is the intended functionality. If you do not want an object to be hit by that trace, you’ll need to create a custom object channel and give it that.

Alternatively, you can use MultiLineTraceByChannel and then if you set it to trace visibility and have an object that ignores visibility traces it should work as you’re expecting.