Skip to main content
Glama

set_pin_default_value

DestructiveIdempotent

Set the literal default on an unconnected Blueprint input pin and read the value back to confirm what actually landed.

Instructions

Write the literal default of an UNCONNECTED input pin and return the value read BACK off the pin. Struct pins are canonicalized: a bare GameplayTag name becomes (TagName="X") and an UNREGISTERED tag is rejected up front instead of silently landing as an empty tag; value_json nativizes any struct (and is the only way to put SEVERAL tags in a GameplayTagContainer). Array/set/map pins are refused (use a MakeArray/MakeSet/MakeMap node) and so are pins currently split into sub-pins (recombine_blueprint_pin first). A plain string is fine for an FText pin. TRAP: on a FormatText "Format" pin the literal IS written but the {argument} pins are NOT created, leaving a valid, useless node -- build the string with Concat_StrStr / Conv_StringToText instead.

Returns: { node_id, pin_name, default_value } -- default_value is re-read from the pin AFTER the write, so it is the oracle for what actually landed (a rejected value shows up as the old one).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoOptional. This command is REFUSED while a Play-in-Editor session is running: it either compiles a Blueprint (the reinstancer can retain a world, and CheckForWorldGCLeaks is Fatal -- it KILLS the editor) or writes to disk (Editor.AllowSavingAssetsDuringPIE=0 makes the engine refuse the write, so it would report success without writing a byte). Stop PIE and retry instead; force=true runs it anyway, at your own risk.
valueNoLiteral default in the pin's exported-text form; empty string allowed (clears it). For a struct pin, "()" clears and a leading "(" is passed through untouched.
node_idYesNodeGuid of the node owning the pin
pin_nameYesPin name; an INPUT pin of that name is preferred, any pin with the name is the fallback
graph_nameNoTarget graph name; defaults to the Blueprint's event graph when omitted
value_jsonNoOptional JSON object nativized into the struct's export-text form, for STRUCT pins only. For an FGameplayTagContainer it must carry a "GameplayTags" array (["A","B"] or [{"TagName":"A"}]) and every tag is validated; takes precedence over 'value'.
blueprint_nameNoBlueprint asset name or path
blueprint_pathNoAlias of `blueprint_name` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `blueprint_name`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover only the safety profile (destructive, idempotent, not read-only); the description adds substantial behavioral context beyond them: struct canonicalization of bare GameplayTag names, up-front rejection of unregistered tags, refusal of split/array pins, and the read-back oracle semantics ('a rejected value shows up as the old one'). That last point is critical for an agent interpreting a silent failure.

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-loaded with the core action and read-back oracle, then caveats, then the TRAP. Dense but nearly every sentence carries load. Minor cost: long run-on clauses and heavy uppercase emphasis reduce scannability slightly.

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 an 8-parameter mutation tool with no output schema, the description supplies the return shape ({ node_id, pin_name, default_value }), the PIE-restriction consequence, and the failure-mode interpretation. An agent has enough to call it and to detect when it silently did not take effect.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3. The description still adds meaning: value_json is 'the only way to put SEVERAL tags in a GameplayTagContainer' and 'takes precedence over value', plus the note that a plain string is acceptable for an FText pin. Some overlap with the schema's own value_json text, but precedence and capability notes are additive.

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?

States a specific verb+resource+scope: 'Write the literal default of an UNCONNECTED input pin and return the value read BACK off the pin.' The uppercase qualifiers (UNCONNECTED, input pin) precisely delimit the operation, and the read-back promise immediately signals this is a write-with-verification, not a plain setter.

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 explicit refusal conditions and routes to alternates: array/set/map pins -> use a MakeArray/MakeSet/MakeMap node; split pins -> recombine_blueprint_pin first; FormatText Format pin -> build with Concat_StrStr/Conv_StringToText. It does not differentiate at the tool level from nearby setters (e.g. set_rigvm_pin_default, set_bp_variable_default), but the in-scope exclusions are unusually thorough.

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