Parts In An Array

I want to know how you could make parts go close to certain other parts in an array like a square using a script.

I want to know how you go from this:


to this:

Any help would be appreciated.

1 Like

Where would you want the parts to be relative to their old positions? Does it not matter? Should they be in the middle of the old positions?

2 Likes

It doesn’t matter I just want them to be close to eachother

SORT_POINT is where the parts start from.
PADDING is the distance between each part (discluding automatic distancing by size).
Use the sort function on the array of parts you want to sort.

local SORT_POINT = Vector3.new(0, 1, 0)
local PADDING = 0.2


local function sort(parts: { BasePart })
	local length = #parts
	local root = math.sqrt(length)
	local xLength = math.ceil(root) - 1
	local zLength = math.floor(root) - 1
	local i = 1
	
	
	for x = 0, xLength do
		for z = 0, zLength do
			local part = parts[i]
			part.Position = SORT_POINT + Vector3.new(x * (part.Size.X + PADDING), 0, z * (part.Size.Z + PADDING))
			
			i += 1
		end
	end
end
2 Likes

thanks it works. I couldn’t figure this out but you helped me

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.