extends CharacterBody3D var speed = 14 var fall_acceleration = 75 var target_velocity = Vector3.ZERO func _physics_process(delta: float): var direction = Vector3.ZERO if Input.is_action_pressed("move_forward"): direction.z -= 1 if Input.is_action_pressed("move_back"): direction.z += 1 if Input.is_action_pressed("move_left"): direction.x -= 1 if Input.is_action_pressed("move_right"): direction.x += 1 if direction != Vector3.ZERO: direction = direction.normalized() $pivot.basis = Basis.looking_at(direction) target_velocity.x = direction.x * speed target_velocity.z = direction.z * speed if !is_on_floor(): target_velocity.y = target_velocity.y - ( fall_acceleration * delta ) velocity = target_velocity move_and_slide()