local startPos = Vector3.new(330, 78, 468) local endPos = Vector3.new(288, 126, 549) local mirrorSide = "right" local regionWidth = math.abs(startPos.X - endPos.X) local baseOffset = regionWidth + 3 local mirrorOffset = mirrorSide == "left" and baseOffset or -baseOffset local regionCenter = Vector3.new( (startPos.X + endPos.X) / 2, (startPos.Y + endPos.Y) / 2, (startPos.Z + endPos.Z) / 2 ) local regionSize = Vector3.new( regionWidth + 1, math.abs(startPos.Y - endPos.Y) + 1, math.abs(startPos.Z - endPos.Z) + 1 ) local blocks = BlockService.getNearbyBlocks(regionCenter, regionSize, nil) if not blocks then return end local placedPositions = {} for _, block in ipairs(blocks) do local pos = block.position if not pos then continue end local mirroredX = (regionCenter.X - (pos.X - regionCenter.X)) + mirrorOffset local mirroredPos = Vector3.new(mirroredX, pos.Y, pos.Z) local key = mirroredPos.X .. "," .. mirroredPos.Y .. "," .. mirroredPos.Z if placedPositions[key] or BlockService.getBlockAt(mirroredPos) then continue end BlockService.placeBlock(block.blockType, mirroredPos) placedPositions[key] = true end