Skip to main content
Glama

override_interface_member

DestructiveIdempotent

Override a Blueprint interface member or parent virtual by name, creating an event override node or function-override graph ready to wire. Use it instead of hand-placed interface event nodes that compile but never fire.

Instructions

Override a Blueprint interface member or parent virtual by name: an event override node (kind="event", node_id) when it returns nothing, else a function-override graph (kind="function", graph_name). Idempotent (was_already_overridden); leaves the Blueprint needing a compile, unsaved. Prefer it to hand-placed interface event nodes, which can compile yet never fire.

Returns: { kind: "event"|"function", created: bool, was_already_overridden: bool, graph_name, node_id? } -- kind "event": an event OVERRIDE node was created or reused in the event graph that graph_name names, and node_id is that node; kind "function": graph_name is an editable function-override graph, ready to wire.

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.
position_xNoIgnored by this tool: the new node is only moved when node_position is given, and node_position then wins.
position_yNoIgnored by this tool: the new node is only moved when node_position is given, and node_position then wins.
member_nameYesName of the interface or overridable function to override (e.g. "CanInteract").
node_positionNoOptional [x, y] canvas position applied to a freshly created event-override node.
blueprint_nameNoBlueprint asset name or path (must implement the interface / inherit the virtual).
blueprint_pathNoAlias of `blueprint_name` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `blueprint_name`.
interface_pathNoIgnored: the member is resolved by member_name alone, implemented interfaces first, then parent classes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.2.0
    • changedInput schema / properties / interface_path / description
      Previous value: -"Optional disambiguator hint; advisory only (resolution is by member name)."New value: +"Ignored: the member is resolved by member_name alone, implemented interfaces first, then parent classes."
    • addedInput schema / properties / position_x / description
      Added value: +"Ignored by this tool: the new node is only moved when node_position is given, and node_position then wins."
    • addedInput schema / properties / position_y / description
      Added value: +"Ignored by this tool: the new node is only moved when node_position is given, and node_position then wins."
  2. First observedv1.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare idempotentHint/destructiveHint/readOnly, yet the description adds real behavioral context beyond them: idempotency is surfaced via was_already_overridden, the result 'leaves the Blueprint needing a compile, unsaved,' and it explains why the alternative node approach silently fails. This is exactly the kind of destructive/stateful nuance the annotations cannot convey.

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 purpose sentence, followed by behavioral constraints and a clearly labeled Returns block. The prose is dense and mostly earns its place, though the Returns paragraph is lengthy and borders on re-stating the outcome modes already given in sentence one.

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

Completeness4/5

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

With no output schema, the description usefully documents the return shape (kind/created/was_already_overridden/graph_name/node_id) and the compile-required, unsaved state. It is nearly complete for a mutation tool, missing only failure modes such as what happens when member_name resolves to nothing.

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 description coverage is 100%, so the parameters (including the PIE-refusal force flag, aliases, and ignored fields) are already fully documented in the schema. The description adds a return-value mapping but no additional parameter syntax or semantics beyond what the schema states, 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?

States a specific verb and resource ('Override a Blueprint interface member or parent virtual by name') and immediately distinguishes the two outcome modes (event override node vs function-override graph). It also differentiates itself from a sibling behavior by warning that hand-placed interface event nodes 'can compile yet never fire,' so an agent can tell this apart from add_custom_event_node/add_component_bound_event without reading a schema.

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 a clear selection cue ('Prefer it to hand-placed interface event nodes') and a conditional outcome rule (event when the member returns nothing, function otherwise). It does not, however, disambiguate against the closely related implement_interface_function/implement_interface siblings or suggest listing overridable members first, so it stops short of full when/when-not guidance.

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