How to ignore initial penetration in line traces

I am implementing bullet penetration and for my character skeletal meshes I am running into the issue where the second+ ray cast returns blocking hit immediately because the trace finds it’s penetrating the physics asset already.

To clarify, I am tracing to find a skeletal mesh w/ physics assets as my first blocker, I then use this impact + a small vector in the shot direction as the start of my second trace. Now this returns blocking immediately with bStartPenetrating to true. I can’t simply add this Actor to ignored actors since I NEED to know multiple hits of a single actor (in this case, let’s say hitting both his hands and head) but I wish to ignore the hit if it is an initial blocker/overlap.

using:
FCollisionQueryParams QueryParams;
QueryParams.bFindInitialOverlaps = false;

Has no effect either, the character mesh set to Block my weapon’s trace channel and not overlap, which makes sense given the name of the bFindInitialOverlaps above, but there is seemingly no option to ignore initial penetration? which is what I need to let the trace pass through the element (eg. piece of it’s leg that’s a capsule in the physics asset) and continue tracing to find either a different primitive of the same physics asset OR a new actor entirely.

Cheers!

Tom

(green is impact location, purple is the start of the NEXT trace + 10 units offset in direction of the shot. You can see green and purple in the SAME location, meaning bStartPenetration must be TRUE which I am trying to filter out)

Multi-trace is what I used originally. Problem is that ideally I don’t use OVERLAP on my content. I am considering using OVERLAP on skeletal meshes and keep BLOCKING on all other content which is simply preferable as it allows less mistakes for designers that author content and may use non standard collision profiles.

Projectiles will really alter the behavior of the code and client/server replication so that’s would be my very very last resort. I really want to stick with hitscan weapons for this.

p.s. Another thing I am noticing is that “Backfaces” of BSP also count as blockers. This means that when I trace though, I get 2 hits on a single BSP cube which ideally I would pass though (although this may count as a separate issue altogether)

I too have had all kinds of issues with collision with BSP and line-traces, so I just completely avoid BSP altogether now.