Update properties of an existing Drawing object
draw-updateUpdate an existing Drawing overlay by integer id: move tracers, recolor ESP boxes, toggle visibility, or change labels via Luau property expressions.
Instructions
Mutates a Drawing overlay previously created by draw-create, looking the handle up by its integer id in getgenv().__mcp_drawings and assigning each given property. Use it to move a tracer (To = 'Vector2.new(400,300)'), recolor an ESP box (Color = 'Color3.new(0,1,0)'), toggle visibility (Visible = 'false'), or change a label (Text = '"BOSS"'). PROPERTIES: each value is a Luau EXPRESSION STRING evaluated via loadstring, identical to draw-create. Unknown/failed properties are reported per-property in 'updated' (ok=false) without aborting the rest. Requires the Drawing table (type-guarded). If the id is unknown it returns { error }; on an executor without it, it returns { error = "Drawing is not available in this executor." }. Returns { id, updated[] } or { error }. Signature: { id: number, properties: {[string]: any}, threadContext: number?, timeoutMs: number? }. Phase: act; cost=medium; idempotency=contextual-write. Requires: active-client, explicit-mutation-approval. Capabilities: Drawing. Produces: structured-result. Verify with: list-drawings. Safety: MUTATING; changes executor drawing overlay state. On failure: inspect tool-schema for exact fields, defaults, constraints, and an invocation example.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Integer id of the Drawing object (as returned by draw-create / list-drawings). | |
| timeoutMs | No | Optional per-call deadline in milliseconds; omit it to use the tool or server default. | |
| properties | Yes | Map of property name -> Luau expression STRING to assign. Values are evaluated via loadstring, so use Luau syntax: Color = 'Color3.new(0,1,0)', To = 'Vector2.new(400,300)', Visible = 'false', Text = '"label"'. Failed properties are reported in 'updated' with ok=false. | |
| threadContext | No | Optional Roblox thread identity for this call; omit it to use the server default. |