Get an object's raw metatable
get-metatableDump a value's raw metatable by evaluating a Luau expression, bypassing __metatable locks to inspect metamethods, read-only status, and locked state.
Instructions
Resolve a Luau expression to ANY value (table, Instance, userdata, etc.) and dump its raw metatable via getrawmetatable (bypassing __metatable locks). For each metamethod it reports the key, value type, and — for function metamethods like __index/__namecall/__newindex — the connected function's source/line/params. Also reports whether the metatable is read-only and whether getmetatable is locked (a string __metatable). Use this to understand how a table/instance is protected or proxied, or to find the __namecall/__index that game security routes through. Unlike inspect-instance-metatable this works on any value, not just Instances. Requires getrawmetatable; returns { Target, TargetType, HasMetatable, ReadOnly, LockedMetatableValue, Metamethods } or { error }. Signature: { objectPath: string, threadContext: number? }. Phase: observe; cost=medium; idempotency=read-only. Requires: active-client, resolved-target. Capabilities: getrawmetatable. 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 |
|---|---|---|---|
| objectPath | Yes | Luau expression resolving to the object whose metatable you want, e.g. 'game', 'game.Players.LocalPlayer', 'getrawmetatable(game)', or 'getgenv().SomeTable'. Evaluated as `return <objectPath>`. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |