How to make a wallrun?

Okay, sticking to the wall is easy. Here’s the way we’re doing it

Simply have a Sphere or Line Trace check for the wall object, with a TraceChannel. If it finds a hit then you need to set a “canWallWalk” flag and cache the “ImpactPoint”

Then when the player presses a button (or however you change) if the “canWallWalk” flag is set, it will call a “wallwalk” function/event. That event will only happen the one time, and it’s where you need to rotate the player, disable gravity, and set a “isWallWalk” flag. In your situation I would also have a new Tracer on the feet so you know if they stop walking on a wall and can revert them back.

If they press a button and the “isWallWalk” is true, they want to stop. Also, if the feet Tracer doesn’t find anything then you can make them stop. Either way, call a “stopwallwalk” event/function. In this one you will rotate the player back to normal, enable gravity, and set both “canWallWalk” and “isWallWalk” to false.

Here’s a quick example