After playing around with it some more today, I came up with pretty much the same solution. And I also haven't got a clue what the manual lock is:) The mechjeb code also uses the Quaternation.Euler(90,0,0), so i gues that is the right way. I did find a way prevent the SAS to go mad when you set it: currentHeading = Quaternion.LookRotation(vessel.transform.up) * Quaternion.Euler(90,0,0); targetHeading = Quaternion.LookRotation(targetVector) * Quaternion.Euler(90,0,0); if (Quaternion.Angle(currentHeading, targetHeading) > 10) { target = Quaternion.RotateTowards(currentHeading, targetHeading, 2f); } else { target = Quaternion.LookRotation(targetHeading); } part.vessel.VesselSAS.LockHeading(target, true); Hope this makes sense.