Quick answer: Godot 2D character sliding down walls instantly with no friction? CharacterBody2D doesn’t use PhysicsMaterial — apply your own gravity dampening when is_on_wall() is true.

A platformer character touches a wall and slides down at full gravity speed. CharacterBody2D ignores physics materials — wall slide needs custom velocity scaling.

CharacterBody Has No Friction

Friction on a PhysicsMaterial applies to RigidBody2D, not CharacterBody2D. The latter is fully kinematic — you set velocity directly each frame.

Scale Vertical Velocity on Wall

if is_on_wall() and velocity.y > 0:
    velocity.y = min(velocity.y, WALL_SLIDE_MAX_SPEED)

Caps the descent while wall-attached. Combine with input-held check for grab-and-slide vs friction.

Coyote Frames

Allow a few frames of wall-cling after leaving the wall so wall-jump feels responsive. Track wall_coyote_timer and decrement each frame.

Verifying

Pressing into a wall while falling reduces descent speed to the configured slide cap. Releasing the wall resumes normal gravity.

“CharacterBody2D ignores PhysicsMaterial. Wall slide needs explicit velocity capping.”

Expose WALL_SLIDE_MAX_SPEED as an inspector property — you’ll tune it per character / per game-feel iteration constantly.