How to spawn actor on surface?

Hey. I’m trying to follow Ryan Laley tutorial where he is using this BP code to spawn actor on surface:


but seems like you need to be very accurate with placing because if you just place it in scene you’ll get this:

Of course, I can find the right position, but it still require a lot of time. How can I modify this code to place character exactly on surface?
Character I’m trying to spawn:

Surface collision:

The way to “place an actor on a surface” is to figure out where the surface is, and place the actor there.

The easiest way to do it is to run a raycast before doing the spawn, and place the actor at the position of the raycast, but back off by however big the part below the origin is in the actors bounding box.