i would like to rotate an object from an other objects script

hey, Im trying to make a flight game that includes a verticcal takeoff and landing plane, for grafic and utility purpose i would like to have an engine rotate, the engine being a child of the plane, from the code of the plane it selffor some akward reason, the cube seems to rotate x, y, and z axis at the same time when i only need x, and extreemly fast. here is the code im using.

#pragma strict

var Speed = 0; 
var Torque = 10;
var Gravity = 100.0;
var Acceleration = 2;
var maxSpeed = 0;
var minSpeed = 0;
private var SavedGravity = 0;
var engin : Transform;
var engineOrient = 0.0;
var engineRotSpeed = 10.0;
SavedGravity = Gravity;

function Start () {

}

function Update () {

if (Speed >= maxSpeed)Speed = maxSpeed;
if (Speed <= minSpeed)Speed = minSpeed;
if (Input.GetKey(KeyCode.W))Speed += 1 * Acceleration;
if (Input.GetKey(KeyCode.S))Speed -= 1 * Acceleration;
if (Input.GetKey(KeyCode.Tab))engineOrient += 1 * engineRotSpeed/100; 
if (Input.GetKey(KeyCode.LeftControl))engineOrient -= 1 * engineRotSpeed/100;

constantForce.relativeTorque.y = Input.GetAxis("Yaw") * Torque * 2 * Time.deltaTime;
constantForce.relativeTorque.x = Input.GetAxis("Pitch") * Torque * Time.deltaTime;
constantForce.relativeTorque.z = Input.GetAxis("Roll") * Torque * Time.deltaTime;

// set direction of engine
engin.transform.rotation.x = engineOrient;

Gravity = SavedGravity - Speed;
if(Gravity <= 0)Gravity = 0;
// note that the speed s not here because it will be set acording to the engines orientation

thank you all

rotation is stored as a quanternion. You do now screw with quanternions. They are based on irrational numbers math and your cant screw with them directly without knowing more about math than you know. It can end up producing results like what you just got.

You want to use

rotation.eulerangles

euler angles are what your thinking a rotation is.

Google Quanternions or euler angles for a more in depth answer.

if you would like to just make the engine point at the ground just
use RotateTo(transform.rotation.eulerangles, -vector3.up() );
notice the negative sign in front of vector3.up(). Makes it down.

alternatly you can lock the y and z axis