HELP IN OPTIMIZATION (it barely runs iterating at 5 seconds)

So the problem is it is iterating 536,870,912 times every 5 seconds doing region3 checks and like idk how else to do it. I need to get all voxels but idk how to do it i keep running out of memory :frowning: testing.rbxl (178.2 KB)

local offsets = {
    Vector3.new(-1,-1,-1),    -- bottom forward left
    Vector3.new(1,-1,-1),    -- bottom forward right
    Vector3.new(-1,-1,1),    -- bottom backward left
    Vector3.new(1,-1,1),    -- bottom backward right
    Vector3.new(-1,1,-1),    -- top forward left
    Vector3.new(1,1,-1),    -- top forward right
    Vector3.new(-1,1,1),    -- top backward left
    Vector3.new(1,1,1)        -- top backward right
}

local function spliceRegions(min, max, iter1, iter2)
    local reference = Region3.new(min, max)
    local regions = {}
    for i=1,#offsets do
        local size = Vector3.new(reference.Size.X/2, reference.Size.Y/2, reference.Size.Z/2)
        local offset = offsets[i] * Vector3.new(reference.Size.X/4, reference.Size.Y/4, reference.Size.Z/4)
        local point = reference.CFrame * CFrame.new(offset)
        local newMin = Vector3.new(point.X, point.Y, point.Z) - size/2
        local newMax = Vector3.new(point.X, point.Y, point.Z) + size/2
        regions[i] = Region3.new(newMin, newMax)
    end
    return regions
end

while wait(5) do
    --[[
    print(workspace.Terrain:ReadVoxels(
        Region3.new(Vector3.new(-555.725, -283.367, -549.748), Vector3.new(532, 51.105, 541)),
        4))
        ]]--
local regions = spliceRegions(Vector3.new(-555.725, -283.367, -549.748), Vector3.new(532, 51.105, 541))
for i=1,#regions do
        print(workspace.Terrain:ReadVoxels(regions[i], 4))
        wait()
end
end