For 1. I think you need to use event_impact,
For 2. You can do it several ways. If you want to make it look real and "organic" you need to use physics entities and apply rotational force so that the entity turns in a realistic way. Another way, which is a bit more "robotic" is to use a while-loop to change the rotation in small steps until the desired direction is reached.