Try to change the bold line

proc_late();
climb = 1;
vec_set(player.x,my.skill21); //place it at the stored position to prevent the normal movement
my.skill30 = c_move(p...

into player.z = my.skill23;



and

break;
}
vec_set(my.skill21,player.x);
wait(1);

into my.skill23 = player.z;

Add before the wait(1); comment above for example this:

if(vec_dist(vector(my.skill21,my.skill22,0),vector(player.x,player.y,0) > 64) {
climb = 0;
break;
}


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends