MakeShortestRotationBetween() not really producing expected results

I’m new to verse and I am trying to make this device that works with the “costal boat” prop to automatically calculate rotation when moving between different vectors. The angles it calculates are way off, and sometimes they are positive instead of negative. Also, I think if the vectors are the same it will output 0 instead of whatever the current rotation is, maybe that’s why they are all off? Maybe I should be using ApplyYaw() instead of ApplyLocalRotationZ()? Additionally, there’s got to be a better syntax than checking if(x<>0), but I guess that isn’t a big deal.

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/SpatialMath }

boat := class<concrete>(creative_device):

    @editable
    BoatProp: creative_prop := creative_prop{}

    OnBegin<override>()<suspends> : void =
        var X : int = 0
        
        var TroofthsArray : []vector3 = array{
            vector3{X:=256.0, Y:=576.0, Z:=-100.0}
            vector3{X:=2048.0, Y:=-1024.0, Z:=-100.0}
            vector3{X:=320.0, Y:=-3136.0, Z:=-100.0}
            vector3{X:=-7616.0, Y:=-3840.0, Z:=-100.0}
            vector3{X:=-7616.0, Y:=-3840.0, Z:=-100.0}
            vector3{X:=-8832.0, Y:=-6656.0, Z:=-100.0}
            vector3{X:=-6272.0, Y:=-8576.0, Z:=-100.0}
            vector3{X:=-2560.0, Y:=-512.0, Z:=-100.0}
            }

        loop:
            for (Index := 0..TroofthsArray.Length - 1):
                if (coord := TroofthsArray[Index]):
                    if(coord2 : vector3 = TroofthsArray[Index - 1]):
                        BoatProp.MoveTo(coord, IdentityRotation().ApplyLocalRotationZ(MakeShortestRotationBetween(coord, coord2).GetAngle()), 5.0)
                    else:
                        if(coord2 : vector3 = TroofthsArray[TroofthsArray.Length - 1]):
                            Print("{RadiansToDegrees(MakeShortestRotationBetween(coord, coord2).GetAngle())}")
                            BoatProp.MoveTo(coord, IdentityRotation().ApplyLocalRotationZ(MakeShortestRotationBetween(coord, coord2).GetAngle()), 5.0)
            if(X<>0):
                break