Remote-spy controls and diagnostics
remote-spyControl live Roblox remote-call capture: start, pause, filter, block, ignore, and reset rules to inspect or manage game network traffic.
Instructions
WRITES LIVE GAME STATE. Controls the selected spy: lifecycle, configure, pause/resume, clear, block/unblock, ignore/unignore, and reset-controls. Select engine=cobalt (default) or ketamine. status reports effective capture/GUI settings and capabilities; controls lists active block/ignore rules with limit/offset and direction filters. reset-controls clears block/ignore rules in the selected direction, preserving history and capture settings; Ketamine GUI ignore rules span Both and reset only with direction=Both. logs/list support query filters; code generates call code without replay. Configuration is a patch; capture filters affect future MCP records only. Pausing recording preserves blocking and GUI logging. Starting another engine stops the previous after preflight; read/configuration operations never load spies. Block/ignore require observed remotes. Ketamine cannot block incoming RemoteEvents. restart expires IDs/views and resets configuration; stop unloads the selected GUI/hooks. Signature: { engine: "cobalt" | "ketamine"?, operation: "status" | "start" | "restart" | "stop" | "list" | "logs" | "clear" | "block" | "unblock" | "ignore" | "unignore" | "code" | "configure" | "pause" | "resume" | "controls" | "reset-controls", mode: any?, max: number?, capture: { enabled: boolean?, direction: "Incoming" | "Outgoing" | "Both"?, nameFilter: string?, method: "FireServer" | "InvokeServer" | "OnClientEvent" | "OnClientInvoke"?, classFilter: "RemoteEvent" | "UnreliableRemoteEvent" | "RemoteFunction"?, blockedOnly: boolean? }?, resetFilters: boolean?, guiVisible: boolean?, guiLogging: boolean?, limit: any?, offset: number?, resetControl: "block" | "ignore" | "Both"?, direction: any?, remotePath: string?, remoteId: string?, nameFilter: string?, method: "FireServer" | "InvokeServer" | "OnClientEvent" | "OnClientInvoke"?, classFilter: "RemoteEvent" | "UnreliableRemoteEvent" | "RemoteFunction"?, blockedOnly: boolean?, afterId: number?, summaryOnly: any?, callId: number?, threadContext: number? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, resolved-target, explicit-mutation-approval. Produces: bounded-event-snapshot. Verify with: assert-state. Safety: MUTATING; changes persistent executor-side observer or hook state. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Retained MCP calls; resizing preserves newest history and IDs. | |
| mode | No | Cobalt auto prefers supported RakNet; luau selects standard hooks. Ketamine accepts auto/luau only. Changing an active mode requires restart. | auto |
| limit | No | Optional hard result/work budget used to keep output and runtime bounded. | |
| callId | No | Optional numeric value for call id. | |
| engine | No | Remote-spy backend. Only one engine runs per client; starting another stops the current engine. Defaults to cobalt. | cobalt |
| method | No | Optional validated input for method. | |
| offset | No | Pagination offset for controls only. | |
| afterId | No | Optional numeric value for after id. | |
| capture | No | Persistent capture patch; omitted fields keep their current values. Filters apply only to future MCP captures. | |
| remoteId | No | Optional text value for remote id. | |
| direction | No | Capture/control direction; incoming includes client callbacks. | Both |
| operation | Yes | operation selector; use one of the schema's allowed values. | |
| guiLogging | No | Ketamine only: enable/disable new GUI log entries independently of MCP capture; disabling also clears queued GUI entries. | |
| guiVisible | No | Ketamine only: show/hide its GUI without unloading the spy. | |
| nameFilter | No | Optional text value for name filter. | |
| remotePath | No | Optional dotted Roblox instance/value path resolved in the active client. | |
| blockedOnly | No | Whether to enable blocked only. | |
| classFilter | No | Optional validated input for class filter. | |
| summaryOnly | No | Optional validated input for summary only. | |
| resetControl | No | For reset-controls: which rules to clear; defaults to Both. | |
| resetFilters | No | Clear persistent capture filters before applying this patch; preserve pause state, history, and network controls. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |