Recursively dump a Luau table
dump-tableEvaluate a Luau expression in a live Roblox client, recursively encode its table contents to a chosen depth and key limit, and detect cycles or truncation for inspecting configs and globals.
Instructions
Resolve a Luau expression to a TABLE and recursively encode its contents to a chosen depth. Scalar, Instance and function values are encoded via the shared encoder; nested tables are recursed into until maxDepth, after which they collapse to 'table: (truncated)'. Each level is capped at maxKeys (the cap is noted via a per-level Truncated flag), and cycles are detected so self-referential tables won't loop forever. Ideal for reading config tables, getgenv()/getrenv() subtables, a ModuleScript's return value, or any captured upvalue table you already have a handle on. WARNING: this ACTS ON THE LIVE GAME — it evaluates your expression in the running client, which may trigger __index metamethods or other side effects while iterating. Returns { Target, Depth, Table:, Truncated } or { error }. Signature: { tablePath: string, maxDepth: any?, maxKeys: any?, threadContext: number? }. Phase: observe; cost=medium; idempotency=read-only. Requires: active-client, resolved-target. Produces: structured-observation. Safety: read-only. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maxKeys | No | Maximum number of keys to encode PER table level (default 100, max 500). When a level has more keys than this, the extras are dropped and that level is flagged Truncated = true. | |
| maxDepth | No | How many levels of nested tables to recurse into (default 2, max 5). Beyond this depth, nested tables are rendered as 'table: <addr> (truncated)' rather than expanded. | |
| tablePath | Yes | Luau expression resolving to a table, e.g. 'getgenv()', 'getrenv()._G', 'require(game.ReplicatedStorage.Config)', 'getrawmetatable(game)', or 'debug.getupvalues(someFn)[1]'. Evaluated as `return <tablePath>` and must yield a table. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |