I have a script that randomly generates a map made of hexagonal tiles, and sometimes a loop in it errors, specifically the for i,v in ipairs(hexes) do
local function generateMap()
repeat
local t = {}
for i,v in ipairs(hexes) do
local angle = 30
local pos = v.CFrame.Position
for i2=1,6 do
if hexAmount == maxHexAmount then
break
end
local dir = (CFrame.new(pos)*CFrame.fromEulerAnglesXYZ(0,math.rad(angle),0)).LookVector*3.132
local result = workspace:Raycast(pos,dir,rp)
if not result and math.random(1,chance) == 1 then
hexClone = hexTile:Clone()
hexClone.Parent = map
hexClone.CFrame = CFrame.new(pos+dir)
table.insert(t,hexClone)
hexAmount += 1
end
angle += 60
end
if i % 5 == 0 then task.wait() end
end
if #t > 0 then
hexes = t
end
until hexAmount >= maxHexAmount
end