for stairs, I have a good method is use,
collisions player,walls,2,3
For i=1 To CountCollisions(player)
If x#<>0 Or z#<>0 Then
If CollisionNY#(player,i)>.1 Then gravity#=0
EndIf
Next
this makes it so that if the character is not hitting the ground then the gravity is used, otherwise the character will slide along whatever it is hitting
collisions player,walls,2,3
For i=1 To CountCollisions(player)
If x#<>0 Or z#<>0 Then
If CollisionNY#(player,i)>.1 Then gravity#=0
EndIf
Next
this makes it so that if the character is not hitting the ground then the gravity is used, otherwise the character will slide along whatever it is hitting