Skip to main content
Glama

set_slot_properties

DestructiveIdempotent

Set any UPanelSlot property by reflection, covering all UMG slot types including those lacking shortcuts, and edit nested struct fields via dotted paths.

Instructions

Set ANY property of a widget's UPanelSlot BY REFLECTION, whatever the concrete slot class is -- including the 9 of UMG's 17 slot types that no shortcut covers (UButtonSlot, which is every widget inside a Button; UUniformGridSlot, UWrapBoxSlot, UStackBoxSlot, UWidgetSwitcherSlot, USafeZoneSlot, UScaleBoxSlot, UBackgroundBlurSlot, UWindowTitleBarAreaSlot) and any slot type a future engine version adds. Accepts dotted paths into nested slot structs ("Padding.Left", "Size.SizeRule") and reports field by field what landed, same honest contract as set_widget_property: the oracle is applied[]/ignored[]/errors[], not success. For the common cases prefer the validated shortcuts, which also normalise formats this does not guess: set_widget_slot_properties (CanvasPanel anchors/offsets/z-order), set_box_slot_properties (HorizontalBox/VerticalBox/Overlay/Border/SizeBox/ScrollBox alignment+padding+size) and set_grid_slot_properties (GridPanel row/column/spans).

Returns: { widget_bp_path: string, widget_name: string, parent_name: string, slot_class: string, requested_paths: [string], applied: [string], ignored: [string], errors: [{path, error}], failed_paths: [string], applied_count: int, all_applied: bool, current_values: object, saved: bool, save_error: string }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
saveNoCompile + save the Widget Blueprint when done (default true).
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.
propertiesYes{"<property or dotted path>": <value>, ...} written onto the slot object, e.g. {"Padding":[8,4,8,4],"HorizontalAlignment":"HAlign_Center"}. Enums accept the short name; FMargin accepts a scalar, [h,v] or [l,t,r,b].
widget_nameYesname of the widget whose slot to edit (its PARENT panel decides the slot class; read it from get_widget_blueprint_tree include_slot=true)
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 Widget Blueprint asset

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 already declare destructiveHint=true and idempotentHint=true, but the description adds the crucial partial-success contract: 'reports field by field what landed... the oracle is applied[]/ignored[]/errors[], not success.' That tells the agent a nominal call can silently ignore paths, which is exactly the behavioral detail 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?

The core capability and the routing to shortcuts are front-loaded in the first sentence, and the Returns block is separated out. The enumeration of all 9 uncovered slot classes is long, but it is load-bearing for scope; overall appropriately sized for a reflective catch-all tool.

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?

Despite no output schema, the description inlines the full return shape (applied/ignored/errors/failed_paths/current_values/saved), and the schema covers save and the PIE-refusal force flag. An agent has everything needed to invoke it correctly and interpret results.

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 description coverage is 100%, so the parameters are already well documented. The description reinforces the reflective semantics (dotted paths into nested slot structs like 'Padding.Left', 'Size.SizeRule') and warns that formats are not guessed/normalised, which adds meaning beyond the schema's own examples, though most of the per-parameter detail lives in the schema.

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 precise verb+resource: set ANY property of a widget's UPanelSlot BY REFLECTION. It explicitly delimits its scope by naming the 9 slot classes no shortcut covers (UButtonSlot, UUniformGridSlot, etc.) and by contrasting with the sibling shortcuts, so an agent can distinguish it from set_widget_slot_properties / set_box_slot_properties / set_grid_slot_properties without opening 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 Guidelines5/5

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

Gives explicit routing: 'For the common cases prefer the validated shortcuts' and then names all three alternatives with the exact cases each handles (CanvasPanel anchors/offsets/z-order; Horizontal/Vertical/Overlay/Border/SizeBox/ScrollBox alignment+padding+size; GridPanel row/column/spans). It also states the differentiator (this tool does not normalise formats the shortcuts do).

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