How to get direction/rotation along surface?

Hi! thanks for the response I’ve been playing around with the wallride mechanic since and I have gotten around to a result that I am happy with.

Instead of a line trace I used a single capsule trace that originates from the middle of the character, this is so it can get the impact normal of surfaces that line traces arent accurate enough to detect.

I then took that impact normal and added a negative impulse to make sure the character wouldnt just fly off the surface (this would happen with a cylinder for example)

After that I just launch the character based on its forward vector which enables it to wallride at the velocity it starts the wallride on

I think the most important part of the mechanic is the capsule trace as the linetrace is unable to detect the more complex objects that I was willing to wallride on.

Also for the rotation of the character I took the impact normal and added/subtracted 90 degrees depending on which side I started the wallride