Component Overlap hit position always returns 0,0,0

I met the same problem in 2023. So should I use the sweep tracing in each tick instead of the OnComponentBeginOverlap event? It seems not a good practice.

It seems I should use ECollisionEnabled::ProbeOnly, but I can not find some example about it. I want a component attach to Socket, and it will trigger OnHit delegate.

For anyone still having this issue, the collision box (or whatever you are using) needs to be your Root, like so:

image

The box is my collision. This allows you to use on overlap and break your sweep result and get an actual impact point

1 Like

I had the same issue. UE 5.3. A workaround is just to grab the actor’s location when the collision occurs, the result is very close (if not the same) as when using the Sweep Result. It worked perfectly for me.

1 Like

Drag off the “Other Comp” and use then GetWorldLocation:

Here’s one solution I’ve come up with that works well. If your sphere/box/capsule collision is meant for a weapon, what you can do is open up the mesh of the weapon, add a socket, then use a “Get Socket Location” and put in the name of the new socket you created. This will get the location of the socket you placed in the mesh and use it as a location to spawn your effects. If you wanted to be more accurate, you could put multiple sockets in the mesh at different locations and use a “Get distance to” node from the collision component actor to the target that’s going to be hit, then use a “greater than” node with a branch to set different socket locations for the emitter to spawn at.