Quick answer: Godot RigidBody2D sliding down inclines that look flat enough to stand on? Increase the body’s friction or use a PhysicsMaterial with combine = Multiply.
An NPC drifts down a 10° slope. The friction between body and tile is set to 0 by default, so gravity wins.
Friction = 0 by Default
RigidBody2D and the colliding tile each have a default friction of 0 in the physics material. Combined friction is 0. Anything below a vertical surface slides.
Set a PhysicsMaterial
Create a PhysicsMaterial resource: friction = 1.0, bounce = 0. Assign to both the body and the static tile’s collision shape. Combine modes can multiply or take the max of the two materials.
Linear Damp Adds Drag
For tiny residual drift, add linear_damp = 0.5 — mimics air resistance and quickly damps low-speed motion.
Verifying
The NPC rests on the slope without drift. Push it and it moves; release and it stops within a moment.
“Slope sliding is missing friction. Both surfaces need a non-zero PhysicsMaterial.”
For characters that need precise slope behavior, use CharacterBody2D with floor_max_angle rather than fighting RigidBody2D friction.