Skip to main content
Glama
okenjioxx

Roblox Executor MCP Server

by okenjioxx

Fire a LuaStateProxy's cross-state Event

fire-lua-state-event
Destructive

Fires a Luau state event with typed arguments to modify live game state; confirm=true acknowledges the mutation because listeners may change behavior.

Instructions

WRITES LIVE GAME STATE. Resolve current/game/expression state and call state.Event:Fire(...typed arguments). Requires confirm=true because listeners may mutate live behavior. Signature: { state: any?, stateExpression: any?, arguments: any?, confirm: boolean?, threadContext: number? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, explicit-mutation-approval. Capabilities: getluastate. Produces: operation-receipt. Verify with: assert-state. Safety: MUTATING; writes live game/client state. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
stateNoOptional state selector or reusable state reference returned by a discovery tool.current
confirmNoExplicit safety acknowledgement; must be true before this state-changing operation runs.
argumentsNoOptional ordered typed arguments forwarded to the selected operation.
threadContextNoOptional Roblox thread identity for this call; omit it to use the server default.
stateExpressionNoFor state='expression', a Luau expression resolving to a LuaStateProxy, Actor, or BaseScript.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.0-spies.2

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true/readOnly=false/idempotent=false, but the description adds substantial context beyond them: the rationale that listeners may mutate live behavior, an idempotency qualifier of 'contextual-write', a 'Produces: operation-receipt' result, a 'Verify with: assert-state' follow-up, and a failure-handling pointer. This is rich disclosure a caller needs before mutating live state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the critical fact ('WRITES LIVE GAME STATE') and uses compact labeled segments that are easy to scan. However, the mutation warning is repeated ('WRITES LIVE GAME STATE' and 'Safety: MUTATING; writes live game/client state') and the signature line duplicates a fully-covered schema, adding redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers everything an agent needs: preconditions (active-client, confirm, approval), safety profile, the produced operation-receipt, a verification step, and a failure fallback to tool-schema. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters (including the enum and the arguments maxItems/typed-argument structure) are fully documented in the schema. The description's signature line merely restates the parameter names without adding semantic meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: firing a LuaStateProxy's cross-state Event, and specifies it resolves current/game/expression state before invoking state.Event:Fire with typed arguments. The explicit mention of LuaStateProxy/cross-state lets an agent distinguish it from sibling firing tools like fire-connection, fire-signal, and fire-remote.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete preconditions: confirm=true is required, plus 'Requires: active-client, explicit-mutation-approval' and a Phase=act label. It clearly states the context in which this runs, though it never names an alternative tool or a when-not-to-use condition, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools