Deep Lau Table Viewer
Key RequiredUniversal

Deep Lau Table Viewer

Universal ScriptQurenQuren 3.3K views 353 executesUpdated Jun 1, 2025
5.0/ 5(2 votes)
20100% Positive
Lua Script•133 lines (4400 chars)
--[[
	Created By Quren (Discord: fuckyougitler)
]]

function readTable(tbl, saveToFile, forcedPrint, tblName)
    maxLines = 500 -- Maximum output (without saving the file) is <<500>> lines with all existing lines stay in console.
    tblName = tblName or "UnNamed"
    local buffer = {}

    local function generateOutput(tbl, prefix)
        if type(tbl) ~= "table" then
            table.insert(buffer, {type = 'print', text = "Value: " .. tostring(tbl)})
            return
        end
        
        prefix = prefix or ""
        local numValueKeys, otherValueKeys, tableKeys = {}, {}, {}
        
        for k, v in pairs(tbl) do
            if type(v) == "table" then
                table.insert(tableKeys, k)
            elseif type(k) == "number" then
                table.insert(numValueKeys, k)
            else
                table.insert(otherValueKeys, k)
            end
        end
        
        table.sort(numValueKeys)  -- numbers sort
        table.sort(otherValueKeys)  -- letters sort
        table.sort(tableKeys, function(a, b) return tostring(a) < tostring(b) end)  -- tables sort
        
        local sortedKeys = {}
        for _, k in ipairs(numValueKeys) do table.insert(sortedKeys, k) end
        for _, k in ipairs(otherValueKeys) do table.insert(sortedKeys, k) end
        for _, k in ipairs(tableKeys) do table.insert(sortedKeys, k) end
        
        for i, key in ipairs(sortedKeys) do
            local value = tbl[key]
            local isLast = (i == #sortedKeys)
            local isTable = type(value) == "table"
            
            local branch = isTable and "└── " or "┃ "
            local line = prefix .. branch .. '"' .. tostring(key) .. '"'

            if isTable then
                line = prefix .. branch .. tostring(key)
                table.insert(buffer, {type = 'warn', text = line})
                
                local newPrefix = prefix .. (isLast and "    " or "╲   ")
                generateOutput(value, newPrefix)
            else
                local formattedLine = string.format("%s | %s | (%s)", line, tostring(value), typeof(value))
                table.insert(buffer, {type = 'print', text = formattedLine})
            end
            task.wait()
        end
    end

    local t = os.clock()
    
    print("\n\n//--- Reading '" .. tblName .. "' Table..")
    generateOutput(tbl, prefix or "   ")
    print("//--- Table read in", os.clock() - t, "!")

    local function printAll()
        warn("//----------- ", tblName)
        for _, entry in ipairs(buffer) do
            if entry.type == 'warn' then
                warn(entry.text)
            else
                print(entry.text)
            end
            task.wait()
        end
        warn("//-------------------------------------------------------------------------------------------------------------------------\n\n")
    end
    if #buffer > maxLines or saveToFile then
        if makefolder and isfile and writefile then
            local content = {}
            for _, entry in ipairs(buffer) do
                table.insert(content, entry.text)
            end
        
            local extension = ".txt"
            local counter = 0
            local fileName = string.format("%s.txt", tblName)

            makefolder("./ReadTable")
            while isfile("./ReadTable/" .. fileName) do
                counter = counter + 1
                fileName = string.format("%s_%d%s", tblName, counter, extension)
            end
        
            local filename = fileName
            writefile("./ReadTable/" .. filename, table.concat(content, "\n"))
            
            if forcedPrint then
                printAll()
            end
            warn("Output (" .. #buffer .. " lines), written to: [WorkspaceFolder]/Quake/ReadTable/" .. filename)
            return
        else
            warn("Your Exploit doesnt support file saves. Printing table in 10 seconds..")
            task.wait(10)
        end
    end
    printAll()
end


-- example:

local tbl = {
    [1] = true,
    [3] = "Hello World!",
    [6] = 6.7,
    ["JustTable"] = {
        [3] = "f",
        ["JustTable2"] = {
            ["ImTired"] = true,
            ["Roblox"] = false,
        },
        [1] = "eg",
        [2] = 999.43,
    },
    [7] = 8,
    [4] = "A",
    [2] = false,
    [5] = 120000003024304,
}

readTable(tbl, true, true, "Example")

Features & Information

Created By Quren (Discord: fuckyougitler) - Allows saving results to a text file for large tables - Recursively prints table contents to the console - Sorts keys: numeric in ascending order, then non-numeric alphabetically, tables last - Formats output as a tree with prefixes (┃, └──, ╲) - Displays key, value, and data type for non-table values - Supports nested tables with indentation for clarity
#table#output#tree#lua#viewer

Community Comments (26)

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025

You aren't the first one to do this, a million other people have done this, and the Hidden Dumper game also did this for MoonSec V3

QurenQurenJun 1, 2025(edited)

@wjGQiwhUsbUsi9 Okay, so what? Is there any law prohibiting me from making and uploading this script?

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025

@Quren Yeah there is, it is called the "Roblox TOS"

QurenQurenJun 1, 2025

@wjGQiwhUsbUsi9 You are currently sitting on the Roblox scripting platform and I see one script in your profile, it's not for you to talk about Roblox TOS.

QurenQurenJun 1, 2025

@wjGQiwhUsbUsi9 By that logic, every FPS unlocker, auto-clicker, or even Discord overlay should get people banned. Roblox doesn’t care about harmless tools, and neither should you. Go find a real problem.

rivalsisgoodrivalsisgoodJun 1, 2025

Why does it matter to @wjGQiwhUsbUsi92 you decide to click on website and find it here

rivalsisgoodrivalsisgoodJun 1, 2025

You know it's a exploiting/scirpting website @wjGQiwhUsbUsi9

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025

@gubby_13 We already have script like these, we don't need a million other ones.

rivalsisgoodrivalsisgoodJun 1, 2025

So? Why does it bother you so much it's scirpts it's scirptblox you upload scirpts here

rivalsisgoodrivalsisgoodJun 1, 2025(edited)

“we got scripts like these we dont need a million more” mf acting like every script isnt the same for every single game @wjGQiwhUsbUsi9

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025(edited)

@gubby_13 It doesn't even structure it properly like how Hidden Dumper does. This script: ┃ "1" | true | (boolean) And this is hidden dumper {true}

rivalsisgoodrivalsisgoodJun 1, 2025

you think every hidden dumper follow the same structure no dumbas they all different

rivalsisgoodrivalsisgoodJun 1, 2025

why does a simple scirpt bother you so much?

rivalsisgoodrivalsisgoodJun 1, 2025

If you know so much then why not you make one 😭

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025

@gubby_13 I already have one.

rivalsisgoodrivalsisgoodJun 1, 2025

Then why does a scirpt bother you? Even if doesn't follow like other dumper it's still work right?

rivalsisgoodrivalsisgoodJun 1, 2025

Show me you already have one

rivalsisgoodrivalsisgoodJun 1, 2025

aslong as it works who cares if its the same

rivalsisgoodrivalsisgoodJun 1, 2025(edited)

yo shi got too much notes nbdy it's finna understand when u got 90% notes 10% actual code

rivalsisgoodrivalsisgoodJun 1, 2025

why does it matter if the scirpt owner don't forum his correctly like other dumper? Please tell me.

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025

@gubby_13 So you can swap other tables with your own, and Hidden Dumper structure is way more readable.

wjGQiwhUsbUsi9wjGQiwhUsbUsi9Jun 1, 2025

@gubby_13 The notes (comments) are there to make code more readable.

rivalsisgoodrivalsisgoodJun 1, 2025

No? Because idk why your complaining over a scirpt that doesn't even matgee

rivalsisgoodrivalsisgoodJun 1, 2025

how does notes make the code more readable dumbas ur just making the code more messier and not organizing your overfilling notes and it's a * dump stop getting so triggered over something

YellowGregYellowGregJun 1, 2025

there's beef in the comments willd

QurenQurenJun 2, 2025

@YellowGreg These beefs are gonna drive me crazy soon

More Scripts for Universal Scripts