Despues de darle vueltas al coco, preguntandome porque esto se atraganta tanto si en principio no tiene mucho misterio, decidí hablar con un experto en el engine del juego y la verdad es que su explicación lógica me ha abierto los ojos...
¿Se puede hacer esto de la manera que realmente quieres? La respuesta es no, al menos de una forma "sencilla" como son los scripts de nivel.
Dentro del propio engine hay dos memorias. La ram y la rom. Cuando tú haces el script del movimiento de la roca, la roca mientras está en tu zona de visión se mantiene en el lado que tú quieres. Lo que ocurre cuando te alejas de la zona de visión el juego refresca la ram,vaciando los datos que tenía en caché y accede a la memoria rom, la rom verifica la posicion original de la roca y la "redibuja" en el sitio original
Entonces..¿cómo hacer esto aunque sea un poco chapucero? No te queda de otra...
Crear dos rocas, la que vamos a mover y la que estará en el sitio final donde tú quieres,oculta (seteada su flag)
Con el script mueves la roca hacia el lado que necesitas y acto seguido muestras la roca final (tengo que probar como quedaría el efecto..) liberando la flag de la roca final y seteando la movida,justo al reves.
Así cuando te alejes del campo de visión y vuelvas, la roca movida sigue ahí pero oculta debido a su flag y en su puesto ves la roca final movida en el sitio que quieres, consiguiendo el efecto deseado.
Mas o menos esto ya te lo han explicado varios usuarios. Realmente muchas cosas se pueden hacer de mil formas. Unos prefieren hacer un script central donde controlar todo y otros simplemente lo tienen subestructurado en varios subscripts.
Espero haber sido de ayuda.