For my Warp System, it relies on the BodyGyro to change it’s CFrame to face the Warp Destination.
However, I’ve ran into an issue where at times the rotation will not be complete before it begins the transition and because of this, the ship is moving on it’s side.
I was wondering if there were a way to wait until the ship is facing the correct direction before initiating the Warp Sequence?
Could it be possible here to use BodyPosition? (The positional part of BodyPosition’s CFrame can be it’s current).
Then you could use the ReachedTarget event and :Wait() upon it.
This will not work because the CFrame will never perfectly align, so the condition will never be met.
This will also not work - OP is trying to wait until a rotation is complete, not until some positional movement has happened.
One approach you can take is to simple wait longer before beginning the warp. Alternatively, you could follow the advice on the DevHub for troubleshooting BodyGyros in order to make it turn faster and be oriented correctly in time for your warp to happen (https://developer.roblox.com/en-us/api-reference/class/BodyGyro).
On a separate point, this is an appropriate situation to use an AlignOrientation, which is a relatively new constraint object that effectively replaces BodyGyro. You can use it to tune the speed and power with which the rotation takes effect in a more detailed and reliable way. You can also use RigidityEnabled to make the rotational change happen very quickly. Read more on the DevHub: AlignOrientation | Documentation - Roblox Creator Hub