Scan GC tables for numeric values in a [min, max] range (CE range scan)
scan-number-rangeScan live Luau GC tables for numeric values within a specified range. Use this to locate unknown stats like coins or health when you only know approximate bounds.
Instructions
Cheat-Engine-style RANGE scan: walk every live Luau GC table and report each numeric value v where min <= v <= max. Use this when you know a stat is within a window but not its exact value — e.g. coins between 100 and 200, health under 50, a timer in [0, 10], a damage multiplier in [1, 5]. It is the inexact complement to search-gc-value (which needs the precise number). Each hit is recorded as { table, key, value } where 'table' is the container address (tostring), 'key' is the field the number sits under (tostring), and 'value' is the raw number. To narrow many hits down to one, run successive scans with tightening bounds after the stat changes in-game (the Cheat-Engine 'next scan' technique), then read or flip the survivor with read-path-value / write-path-value. Each table's pairs() iteration is pcall-guarded so a locked/proxy table never aborts the scan; GC objects examined are capped by maxScan and results by limit, with a 'truncated' flag. NaN values are skipped. Requires getgc (falls back from getgc(true) to getgc()). Returns { min, max, matchCount, scannedObjects, truncated, matches } or { error }. Signature: { min: number, max: number, limit: any?, maxScan: any?, threadContext: number? }. Phase: observe; cost=high; idempotency=read-only. Requires: active-client. Produces: bounded-candidates. Safety: read-only. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max | Yes | Inclusive upper bound of the numeric window to match (e.g. 200). Must be >= min for any hits. Combine with min to bracket a stat you don't know exactly (e.g. min=100, max=200). | |
| min | Yes | Inclusive lower bound of the numeric window to match (e.g. 100 to find a coin total at least 100). Values v with v >= min and v <= max are recorded. | |
| limit | No | Maximum number of matching numbers to return (default 150). Hitting this sets truncated=true. | |
| maxScan | No | Maximum number of GC objects to examine before stopping (default 40000). Hitting this sets truncated=true. Raise for a deeper sweep at the cost of time; lower if scans are slow. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |