I’m trying to get the center of N amount of Vector3’s, kinda of like the position from Model:GetBoundingBox().

I have thought of just creating part’s with the positions and parenting them to a model then using GetBoundingBox() but in certain cases I cannot use a method and for performance.

In that case, you can just take the average of all the positions:

local function AveragePositions(parts: {Part}): number
local total = Vector3.zero
for _, part in pairs(parts) do
total = total + part.Position
end
return total / #parts
end

You could use a different algorithm for averaging, if you’re worried about overflow or numeric stability.

Average position ≠ Central position, so if the OP is asking for the physical center of the Vector3s, it would be something like this instead

local function CentralPosition(parts: {BasePart}): Vector3
local minExtents: {number} = {math.huge, math.huge, math.huge}
local maxExtents: {number} = {-math.huge, -math.huge, -math.huge}
for _, part in parts do
local v: Vector3 = part.Position
minExtents[1] = math.min(minExtents[1], v.X)
minExtents[2] = math.min(minExtents[2], v.Y)
minExtents[3] = math.min(minExtents[3], v.Z)
maxExtents[1] = math.max(maxExtents[1], v.X)
maxExtents[2] = math.max(maxExtents[2], v.Y)
maxExtents[3] = math.max(maxExtents[3], v.Z)
end
return Vector3.new(unpack(minExtents)):Lerp(Vector3.new(unpack(maxExtents)), .5)
end