Record a user demonstration and draft a reusable playbook
teach-modeCapture Roblox input, GUI, and prompt events during a live session, then stop to obtain a timeline and a review-required playbook draft.
Instructions
Event-driven demonstration recorder with start, poll, stop, and cancel actions. It uses bounded client-side ring buffers and temporary Roblox signal connections to observe keyboard, mouse, touch, throttled movement, GuiButton activation, meaningful GUI appearance/disappearance, ProximityPrompt triggers, character respawns, and Tool equip/backpack transitions. Optional remote capture is started and read through trace-remote-traffic via the normal nested-tool invoker when that tool and executor capabilities are available. stop disconnects every owned listener, returns the retained chronological timeline, and builds a conservative review-required playbook draft with semantic selectors, path evidence, virtual-input/click-button/fire-proximity-prompt and remote candidates, inferred waits/guards, placeholders, uncertainty, and manual-review flags. It does not claim perfect intent inference. cancel disconnects and discards. Idle sessions self-expire and a three-session cap evicts the oldest recorder to prevent leaked listeners. Signature: { action: "start" | "poll" | "stop" | "cancel", sessionId: string?, maxEvents: any?, movementThrottleMs: any?, expirySeconds: any?, maxGuiWatch: any?, sinceSeq: any?, limit: any?, includeRemoteSpy: any?, remoteLimit: any?, sinceRemoteTime: any?, threadContext: number? }. Phase: orchestrate; cost=medium; idempotency=contextual-write. Requires: active-client, explicit-mutation-approval, An active Roblox client, The user is ready to demonstrate the workflow after action=start. Capabilities: UserInputService and Roblox RBXScriptSignal connections, getgenv for state across calls, Optional hookmetamethod/getnamecallmethod/newcclosure for remote capture. Produces: grounded-evidence, Bounded chronological event timeline, Semantic instance selectors and path evidence, Conservative reusable playbook draft with uncertainty and review flags. Verify with: assert-state, teach-mode action=poll to confirm events are arriving, Manual review of selectors, guards, timing, and server-reaching candidates, Run the reviewed playbook in a disposable/test game state and verify outcomes. Safety: MUTATING; writes live game/client state, Temporarily installs bounded signal listeners in the active client, May temporarily install a remote-spy metamethod hook when explicitly requested, Does not execute the generated playbook automatically. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | poll only: maximum local timeline events returned in this page. | |
| action | Yes | start creates the recorder; poll returns retained events after sinceSeq; stop disconnects and returns the timeline plus a conservative playbook draft; cancel disconnects and discards the recording. | |
| sinceSeq | No | poll only: return retained local events whose sequence is greater than this cursor. | |
| maxEvents | No | start only: circular timeline capacity; oldest events are overwritten and counted. | |
| sessionId | No | Optional stable recording id. start generates one when omitted; later actions default to the newest active session. | |
| maxGuiWatch | No | start only: cap on watched GuiObjects/ScreenGuis to keep listener overhead bounded. | |
| remoteLimit | No | Maximum remote-spy entries merged into poll/stop results. | |
| expirySeconds | No | start only: idle time before automatic disconnection and session removal. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. | |
| sinceRemoteTime | No | poll only: omit remote events at or before this many seconds since recording start. | |
| includeRemoteSpy | No | start only: request outgoing remote capture through trace-remote-traffic. Failure is non-fatal and reported. | |
| movementThrottleMs | No | start only: minimum interval for mouse/touch/gamepad movement observations. |