Rigidbodies with fixed joint connection rotate instead of forward/back

Here’s the situation. I have a scene with no gravity, and a ship that I move with add relative force/torque. It’s all Newtonian physics, so equal and opposite reactions are the order of the day. It’s not perfect, but with my very small time constraints it’s good enough.

Problem: I have a rigidbody cargo that you pick up with a fixed joint. So envision a ship, with a container underslung. The connect/disconnect works like a charm. Now, we push forward thrust, and go into front flips. Back gives the same result, only back. My other movements, pitch, roll, yaw, transverse all mostly work. They have slight drift in odd angles but I assume it’s all related.

I’ve played with masses and the other rigidbody settings but don’t seem to be resolving the issue.

I doubt it’s something currently in my code, but if anyone wants a detail I will provide it.

Here’s the thrust code in any case, and yes I know what the directions are, I had some weird kludgery but this does otherwise work like a charm.

if(Input.GetButton("Prograde")){ //Accel
		 rigidbody.AddRelativeForce (Vector3.left * thrustSpeed  / 4);
		 fuel -= thrustSpeed / 20;
}//end pro

if(Input.GetButton("Retrograde")){ //Decel
	 rigidbody.AddRelativeForce (Vector3.right * thrustSpeed / 4);
	 fuel -= thrustSpeed / 20;
}//end retro

Attaching the cargo moves your center of gravity. So now, when you put a force on the ship, its off center and it makes it flip.
This is exactly what would happen in space without correctional forces :slight_smile:

Either determine the new center of gravity and point your acceleration force at it, OR set your cargo mass (including the arm picking it up) to 0.