How can I make a kinematic body that follows a path walk over a non-flat surface? Because whenever the character has to follow a path it seems to ignore every collision there is.

Section of the code as for now:
func physicsprocess(delta):
if pathnode < path.size():
var direction = (path[pathnode] - globaltransform.origin)
if direction.length() < 1:
pathnode += 1
else:
moveandslide(Vector3((direction.normalized() * speed).x,0,(direction.normalized() * speed).z), Vector3.UP)
translation.y == rc.getcollision_point().y