so you have a pawn, and you give it a negative z value on it’s transform.location every tick, you get a gravity scale. a simple line trace can detect landscape, and the location of the actors z value can be se to the hitresult.location + capsule half height. you can take the cross product and the arc cosine of the dot product from the hit location of a sphere trace to get the angle of a wall relative to the actor location, and update acceleration vector can be offset by the angle created. etc. etc. etc.
I do not see. how the ENGINE. does what it does. with all due respect to your impressive work.