Skip to main content
Glama

set_named_slot_content

DestructiveIdempotent

Fills a named slot in a nested Widget Blueprint instance and verifies the binding to catch silent drops; can also list available slots.

Instructions

Put a widget into a NAMED SLOT of a NESTED Widget Blueprint instance -- the "template screen with holes" pattern. reparent_widget already fills a UNamedSlot that belongs to your own tree (it is a UContentWidget, so it is just a panel), but the slot of an embedded instance is not a panel in your tree at all: it is an entry in that instance's NamedSlotBindings, and no other tool writes it. WARNING: the engine's SetContentForSlot returns nothing and SILENTLY DROPS the binding when the slot name does not exist, so this re-reads it with GetContentForSlot afterwards and reports the RE-READ, never the call. List what a given instance offers with available_slots in the response, or pass no slot_name at all to just enumerate them.

Returns: { widget_bp_path, host_widget_name, host_class, available_slots: [string], slot_name, content_widget_name, filled: bool, verified_content: string, saved, save_error } -- verified_content is what GetContentForSlot returns AFTER the write: empty when the engine dropped the binding, which is the only way to tell that from a success.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
saveNoCompile + save the Widget Blueprint when done (default true).
clearNoEmpty the slot instead of filling it (default false). Mutually exclusive with content_widget_name.
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.
slot_nameYesName of the named slot to fill. Omit to only enumerate what the host offers (nothing is written, available_slots is still returned).
blueprint_nameNoAlias of `widget_bp_path` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `widget_bp_path`.
widget_bp_pathNo/Game path of the OUTER Widget Blueprint (the one that owns both the nested instance and the content).
host_widget_nameYesName of the nested Widget Blueprint instance in the outer tree -- the widget that OWNS the slot.
content_widget_nameNoName of the widget in the OUTER tree to place in the slot. It must already exist there (add_widget_extended creates it). Omit together with clear=true to empty the slot.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare write, destructive, and idempotent, but the description adds critical behavior the annotations cannot convey: the engine SILENTLY DROPS a binding when the slot name does not exist, so the tool re-reads with GetContentForSlot and reports the re-read, never the call. It also explains that empty verified_content is the only way to distinguish a dropped binding from success, and discloses the Play-in-Editor refusal.

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 the sibling differentiation first, then the warning and return contract. Dense but almost every sentence earns its place; the warning sentence is long but carries load-bearing failure semantics.

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?

There is no output schema, yet the description enumerates the full return object (widget_bp_path, host_widget_name, available_slots, filled, verified_content, saved, save_error) and explains the one non-obvious field, verified_content. Nothing an agent needs to call and interpret correctly is missing.

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 100% so the baseline is 3, but the description adds outcome-level meaning: omitting slot_name only enumerates without writing, and clear/content_widget_name interact to empty vs fill. It connects parameters to observable results (available_slots, verified_content) beyond the schema's field descriptions.

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 ('Put a widget into a NAMED SLOT of a NESTED Widget Blueprint instance') and names the exact sibling it is not: reparent_widget, explaining that reparent_widget only fills a UNamedSlot in your own tree. An agent can distinguish this from all other widget tools without opening a single schema.

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

Usage Guidelines5/5

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

Explicitly contrasts with reparent_widget ('no other tool writes it'), tells the agent how to enumerate available slots ('pass no slot_name at all'), and ties content_widget_name to a prerequisite tool (add_widget_extended). Both when-to-use and how-to-discover are covered.

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