Read the value at a Luau path/expression (precise slot read)
read-path-valueEvaluate a single Luau expression to inspect the exact value at a path without changing state. Returns type, safe value, and table keys/length for post-scan analysis.
Instructions
Evaluate a single Luau expression and report exactly what lives at that slot — without mutating anything. Use it to read a precise location after a heap scan points you at it (e.g. 'getgenv().PlayerData.Coins', 'game.Players.LocalPlayer.leaderstats.Cash.Value', 'require(game.ReplicatedStorage.Config).GodMode', 'getrawmetatable(game).__namecall'), or to spot-check any value/global/field during analysis. The expression is evaluated as return <expression> under a pcall, so a bad path returns a clean { error } instead of throwing. The result reports { type } (Roblox typeof), { value } (a safe encoded scalar — Instances become 'Instance: ', tables/functions become their address), and { isTable }. When the value is a table it also returns { length } (the array-part length via #) and { keys } (up to 50 string keys, so you can see the shape and pick the next field to read). Reading the keys/length is pcall-guarded. This is read-only and is the counterpart to write-path-value. Requires loadstring/load. Returns { type, value, isTable, length?, keys?, keysTruncated? } or { error }. Signature: { expression: string, threadContext: number? }. Phase: observe; cost=medium; idempotency=read-only. Requires: active-client. 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 |
|---|---|---|---|
| expression | Yes | Luau expression resolving to the value to read, e.g. 'getgenv().PlayerData.Coins', 'game.Players.LocalPlayer.leaderstats.Cash.Value', 'require(game.ReplicatedStorage.Config)', '_G.Settings', or any table slot / global / call result. Evaluated as `return <expression>`. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |