Teleporting part to closest side of baseplate, depending on it's original position?

function GetRandomSpawnPoint()
    local X = {-Baseplate.Size.X, Baseplate.Size.X}; X = X[math.random(1, 2)]
    local Z = {-Baseplate.Size.Z, Baseplate.Size.Z}; Z = Z[math.random(1, 2)]
    return Vector3.new(tonumber(X), DefaultY, tonumber(Z))
end

function OrbAdded(Orb)
    if Orb:IsA("BasePart") then
        local OriginalPos = Orb.Position
        local NewPos = GetRandomSpawnPoint()

        local Waypoints = BezierTweens.Waypoints.new(NewPos, NewPos + Vector3.new(0, 50, 0), OriginalPos)

        --Bezier Tween Here
        Tween:Play()
    end
end

heres my current code. essentially the way it works is once an orb is positioned and spawned somewhere (on the server), the client will then teleport the orb off the baseplate and a few studs down, and then bezier curve the orb back up to its original spawning position, as if it’s appearing from under the map. how should I attempt making the orb teleport to the side closest to its spawn position, instead of just a random position somewhere off the map (which causes orbs to fly really far sometimes)?