Skip to main content
Glama

set_pie_widget_value

DestructiveIdempotent

Set a live PIE input widget's real value for Slider, CheckBox, EditableTextBox, ComboBoxString, or ProgressBar, updating its actual state and change events, not just a delegate.

Instructions

Set a LIVE PIE input widget's REAL value (companion to click_pie_widget, which only broadcasts a delegate with zero-init params and never touches Slider/CheckBox/EditableTextBox/ComboBoxString state first). Resolves the widget exactly like click_pie_widget (same widget_name/child_name/player_index rules), then calls the widget's real setter: USlider::SetValue, UCheckBox::SetIsChecked, UEditableTextBox::SetText/UEditableText::SetText, UComboBoxString::SetSelectedOption, or UProgressBar::SetPercent. fire_event genuinely gates a manual OnCheckStateChanged/OnTextChanged(+OnTextCommitted) broadcast for CheckBox/EditableText(Box); Slider/ComboBoxString auto-broadcast on the engine side whenever the value actually changes (fire_event cannot suppress that -- see event_fired_note); ProgressBar has no change event at all. Errors clearly if no PIE session is running, the widget is not found, or its class is not one of the supported input types.

Returns: { widget_name, resolved_widget, resolved_class, value_type, value, set: bool, event_fired: bool, player_index, child_name?, event_fired_note?, world: string, world_name: string|null, world_package: string|null, world_type: string|null, net_mode: string|null, pie_instance: number }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valueYesRequired object: {"type":"float"|"bool"|"string", "value": <matching JSON type>}.
worldNoOptional world selector: absent/'pie' (default: PlayWorld, else the first PIE context) | 'server' (the PIE world with authority) | 'client' | 'pie:N' | 'game' (alias of 'pie'). In a 2-player PIE session EVERY client has its OWN widgets, so the default may well read the other player's HUD.
child_nameNoOptional: drill into a descendant widget with this name after resolving widget_name.
fire_eventNoOptional bool (default true): broadcast the widget's change event where the engine does not already do so unconditionally (CheckBox / EditableTextBox / EditableText).
commit_typeNoOptional "Default" | "OnEnter" | "OnUserMovedFocus": when present (EditableTextBox/EditableText only, and fire_event is true), also broadcasts OnTextCommitted with this commit type.
widget_nameYesRequired. Name of the target UWidget in the live tree (as reported by read_pie_widgets).
player_indexNoOptional (default 0): filter to viewport UserWidgets owned by this local player index.

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 only give the safety profile (not readOnly, destructive, idempotent); the description adds substantial behavioral detail beyond that: what fire_event actually gates, that Slider/ComboBoxString auto-broadcast on the engine side and cannot be suppressed, and that ProgressBar has no change event at all. It also documents the resolution rules and the exact failure modes, which is exactly the context annotations cannot provide.

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 purpose and the sibling differentiation are front-loaded, and every sentence carries real information (setters, event behavior, error cases, return shape). The first sentence is dense and heavily parenthesized, which slightly hurts parseability, but there is no filler to cut.

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, and the description compensates with an explicit Returns block listing the fields (resolved_widget, set, event_fired, event_fired_note, world metadata, etc.). Combined with the resolution rules, event semantics, and error conditions, an agent has everything needed to invoke and interpret the tool on a 7-parameter mutation with nested value objects.

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 schema already documents each parameter and the baseline is 3. The description adds genuine meaning beyond the schema for fire_event ('genuinely gates a manual OnCheckStateChanged/OnTextChanged broadcast... Slider/ComboBoxString auto-broadcast... fire_event cannot suppress that'), which is a non-obvious semantic the schema alone does not convey.

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?

The description states a specific verb+resource ('Set a LIVE PIE input widget's REAL value') and immediately names the sibling it is not (click_pie_widget) with the exact reason. It enumerates the supported widget classes (Slider, CheckBox, EditableTextBox, ComboBoxString, ProgressBar) and the concrete setters called, so the agent knows precisely what the tool touches without opening any 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?

It clearly positions itself relative to click_pie_widget ('which only broadcasts a delegate... and never touches Slider/CheckBox... state first'), giving strong context for when this tool is the right choice. It also states the error conditions (no PIE session, widget not found, unsupported class). It stops short of explicit when-not-to-use guidance or listing other alternatives.

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