local serpent = grab('#158') local function tableToLua(t) return "return "..serpent.block(t) end local function isSimpleTable(tbl, seen) if seen == nil then seen = {} end local seen = {} if seen[tbl] then return false end -- has cycles, not simple local t = type(tbl) if t == 'number' or t == 'string' then return true end if t ~= 'table' then return false end seen[tbl] = true for k, v in pairs(tbl) do if not isSimpleTable(k, seen) or not isSimpleTable(t, seen) then return false end end end local lines = {} for k, v in pairs(_G) do if type(v) == 'number' then table.insert(lines, k..'='..tostring(v)) elseif type(v) == 'string' then table.insert(lines, k..'='..('%q'):format(v)) elseif type(v) == 'table' and isSimpleTable(v) then table.insert(lines, k..'='..tableToLua(v)) end end return table.concat(lines, "\n")