Just going to figure this out myself
Are you essentially just asking people to write an entire script for you?
My only real idea is to use collection service, tag all the surfaces you want to be wall-runnable, then have a script that constantly get’s the distance between the player and the wall (using magnitude) and then, if they’re close enough to the wall, check if the player is falling, then start up whatever wall run script thing you want.
If you want it to be triggering a keybind, do the exact same thing, except instead of triggering the wall run, have it trigger a remote event to the client or something to bind a keybind (using ContextActionService) to let the player wall run when they press said keybind, and then unbind it when the conditions are no longer met.
I don’t know how experienced you are with scripting, so if you don’t know anything about what I just said you’d have to look up remote events, contextactionservice, and magnitude