Quick answer: Floor Snap Length 8 (or step height). floor_constant_speed = true. floor_max_angle 45+.
Player runs over edge between slope and flat. Loses contact, brief airborne. Snap distance too small.
The Fix
extends CharacterBody2D
func _ready():
floor_snap_length = 8.0
floor_constant_speed = true
floor_max_angle = deg_to_rad(50)
floor_block_on_wall = true
func _physics_process(d):
velocity.y += gravity * d
move_and_slide()
Snap length lets the body stick to ground over small ledges. Constant speed avoids slowing on slope transitions.
Verifying
Run over slope-flat edge. Body stays grounded. Without snap: brief air time + bouncing.
“Snap. Constant speed. Glide.”
Related Issues
For RigidBody3D damp, see damp. For ShapeCast3D thin, see ShapeCast3D.
Snap holds. No air.