Assert live game state
assert-stateVerify live Roblox outcomes with read-only assertions on paths, properties, attributes, GUI, distances, camera, and counts; every result includes expected/actual evidence and fails on missing data.
Instructions
VERIFY LIVE OUTCOMES in one bounded, read-only execution. Evaluate path existence, property and attribute values, effective GUI state, bounded descendant searches, custom-character distance, camera facing angle, and collection counts. Every result includes expected/actual evidence and errors. Missing, unreadable, or incomplete state always fails instead of being mistaken for success. Use this after actions and consume aggregate.passed, passRatio, and confidence as proof of the real outcome. Signature: { assertions: {{ id: string, kind: any, path: string } | { id: string, kind: any, path: string } | { id: string, kind: any, path: string, property: string, expected: string | number | boolean } | { id: string, kind: any, path: string, property: string, expected: string | number | boolean } | { id: string, kind: any, path: string, property: string, expected: string, caseSensitive: any? } | { id: string, kind: any, path: string, property: string, expected: number } | { id: string, kind: any, path: string, property: string, expected: number } | { id: string, kind: any, path: string, attribute: string, expected: string | number | boolean } | { id: string, kind: any, path: string, expected: any?, effective: any? } | { id: string, kind: any, path: string, expected: any? } | { id: string, kind: any, path: string, selector: { by: any, value: string } | { by: any, value: string, match: any?, caseSensitive: any? } | { by: any, value: string, match: any?, caseSensitive: any? }, expected: any? } | { id: string, kind: any, targetPath: string, operator: "at-most" | "at-least", distance: number, playerName: string?, characterPath: string?, rootPath: string? } | { id: string, kind: any, targetPath: string, maxAngleDegrees: any?, cameraPath: string? } | { id: string, kind: any, path: string, scope: any?, operator: "equals" | "not-equals" | "greater" | "less" | "at-least" | "at-most", count: number, selector: { by: any, value: string } | { by: any, value: string, match: any?, caseSensitive: any? } | { by: any, value: string, match: any?, caseSensitive: any? }? }}, scanLimit: any?, readBudget: any?, timeoutMs: any?, threadContext: number? }. Phase: verify; cost=medium; idempotency=read-only. Requires: active-client. Produces: grounded-evidence, per-assertion evidence, aggregate verification result. Safety: read-only. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scanLimit | No | Maximum descendants examined by any bounded search. | |
| timeoutMs | No | Optional per-call deadline in milliseconds; omit it to use the tool or server default. | |
| assertions | Yes | Predicates evaluated together against one live-game snapshot. | |
| readBudget | No | Maximum guarded live reads shared by the whole assertion batch. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |