Skip to content

UMGToolSet.UMGToolSet

UMG widget toolset for AI-driven widget creation and tree manipulation.

IMPORTANT WORKFLOW - for every widget and slot returned by this toolset: 1. Call ObjectTools.list_properties(widget) to discover exact property names. 2. Call ObjectTools.get_properties(widget, [...]) with those exact names. 3. Call ObjectTools.set_properties(widget, {...}) with those exact names. Property names vary per widget class and CANNOT be guessed - list_properties is required. Skipping step 1 causes set_properties to silently fail or set wrong properties.

Returns UObject pointers - ToolsetRegistry serializes them as {"refPath": "..."} automatically. Pass returned Widget, Slot, and Parent pointers directly to ObjectTools or back to this toolset.

23 tool(s).

UMGToolSet.UMGToolSet.AddUIComponent

Adds a UI component of the given class to the named widget.

Input schema

{
  "properties": {
    "componentClass": {
      "description": "The UIComponent subclass to add.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.UIComponent",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetName": {
      "description": "Name of the widget instance to add the component to.",
      "type": "string"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetName",
    "componentClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "Info for the widget the component was added to, including the populated UIComponents array. Returns an empty info on failure.",
      "properties": {
        "bInherited": {
          "description": "True if this widget is inherited from the C++ parent class.",
          "type": "boolean"
        },
        "bIsVariable": {
          "description": "Whether this widget is exposed as a blueprint variable.",
          "type": "boolean"
        },
        "namedSlotHost": {
          "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "parent": {
          "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelWidget",
          "type": "object"
        },
        "slot": {
          "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelSlot",
          "type": "object"
        },
        "uIComponents": {
          "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
          "items": {
            "properties": {
              "component": {
                "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.UIComponent",
                "type": "object"
              },
              "componentClassPath": {
                "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              }
            },
            "required": [
              "component",
              "componentClassPath"
            ],
            "title": "UMGUIComponentInfo",
            "type": "object"
          },
          "type": "array"
        },
        "widget": {
          "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "widgetClassPath": {
          "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "Class@/Script/CoreUObject.Object",
          "type": "object"
        },
        "widgetName": {
          "description": "Widget instance name.",
          "type": "string"
        }
      },
      "required": [
        "widget",
        "parent",
        "slot",
        "namedSlotHost",
        "widgetClassPath",
        "widgetName",
        "bIsVariable",
        "bInherited",
        "uIComponents"
      ],
      "title": "UMGWidgetInfo",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.AddWidget

Adds a widget to the tree at the specified position. Returns full widget info including Slot pointer. When ParentWidget is null and no root exists, the new widget becomes the root of the tree. Use ObjectTools.list_properties on the returned Widget and Slot to get property names before calling set_properties.

Input schema

{
  "properties": {
    "childIndex": {
      "default": -1,
      "description": "Position in parent's child list (0 = first child). -1 (default) appends to end.",
      "type": "integer"
    },
    "parentWidget": {
      "default": null,
      "description": "The panel widget to add to. Pass null to add to root, or to make this widget the root if the tree is empty.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetClass": {
      "description": "The widget class to instantiate.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.Widget",
      "type": "object"
    },
    "widgetDisplayName": {
      "description": "Display name for the new widget instance.",
      "type": "string"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetClass",
    "widgetDisplayName"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "bInherited": {
          "description": "True if this widget is inherited from the C++ parent class.",
          "type": "boolean"
        },
        "bIsVariable": {
          "description": "Whether this widget is exposed as a blueprint variable.",
          "type": "boolean"
        },
        "namedSlotHost": {
          "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "parent": {
          "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelWidget",
          "type": "object"
        },
        "slot": {
          "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelSlot",
          "type": "object"
        },
        "uIComponents": {
          "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
          "items": {
            "properties": {
              "component": {
                "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.UIComponent",
                "type": "object"
              },
              "componentClassPath": {
                "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              }
            },
            "required": [
              "component",
              "componentClassPath"
            ],
            "title": "UMGUIComponentInfo",
            "type": "object"
          },
          "type": "array"
        },
        "widget": {
          "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "widgetClassPath": {
          "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "Class@/Script/CoreUObject.Object",
          "type": "object"
        },
        "widgetName": {
          "description": "Widget instance name.",
          "type": "string"
        }
      },
      "required": [
        "widget",
        "parent",
        "slot",
        "namedSlotHost",
        "widgetClassPath",
        "widgetName",
        "bIsVariable",
        "bInherited",
        "uIComponents"
      ],
      "title": "UMGWidgetInfo",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.BindToEventProperty

Adds a Blueprint event handler graph node bound to a widget's multicast delegate event,

Typical events: UButton::OnClicked / OnPressed / OnReleased / OnHovered / OnUnhovered, UCheckBox::OnCheckStateChanged, USlider::OnValueChanged. The matching delegate UPROPERTY must exist on PropertyClass (or a parent of it).

Preconditions: - PropertyName must exist in the blueprint. - PropertyClass must be the widget's class (or a parent class) that declares the delegate.

Input schema

{
  "properties": {
    "eventName": {
      "description": "Name of the multicast delegate UPROPERTY on PropertyClass (e.g. \"OnClicked\").",
      "type": "string"
    },
    "propertyClass": {
      "description": "Class declaring the delegate, typically the widget's class (e.g. UButton::StaticClass()).",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/CoreUObject.Object",
      "type": "object"
    },
    "propertyName": {
      "description": "Name of the blueprint variable owning the event.",
      "type": "string"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint that will own the event handler.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "eventName",
    "propertyName",
    "propertyClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.CompileWidgetBlueprint

Compiles a widget blueprint. Returns false with error details if compilation fails. Errors include missing BindWidget bindings, type mismatches, and graph errors. Call after all widgets and properties are set. Save separately via AssetTools.save_asset.

Input schema

{
  "properties": {
    "widgetBlueprint": {
      "description": "The widget blueprint to compile.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.CreateWidgetBlueprint

Creates a new Widget Blueprint asset. Returns the blueprint or nullptr on failure.

Input schema

{
  "properties": {
    "assetName": {
      "description": "Name for the new blueprint asset.",
      "type": "string"
    },
    "folderPath": {
      "description": "Content folder path, e.g. \"/Game/UI/Widgets\".",
      "type": "string"
    },
    "parentClass": {
      "description": "The parent UUserWidget class. Get this from GetWidgets Info.ParentClass on the source blueprint.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.UserWidget",
      "type": "object"
    }
  },
  "required": [
    "folderPath",
    "assetName",
    "parentClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "Represents a reference to a UObject or UClass.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.GetNamedSlots

Returns named slot bindings (separate from tree hierarchy).

Input schema

{
  "properties": {
    "widgetBlueprint": {
      "description": "The widget blueprint to query.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "items": {
        "properties": {
          "contentWidget": {
            "description": "Root widget placed in the slot.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "/Script/UMG.Widget",
            "type": "object"
          },
          "hostWidget": {
            "description": "Host widget that owns the slot. nullptr = inherited from parent class.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "/Script/UMG.Widget",
            "type": "object"
          },
          "slotName": {
            "description": "Slot name (e.g., \"content\", \"header\").",
            "type": "string"
          }
        },
        "required": [
          "slotName",
          "hostWidget",
          "contentWidget"
        ],
        "title": "UMGNamedSlotEntry",
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.GetWidgetClassInfo

Returns the Category, Description and if it's a Panel for a single widget class. Same per-entry data as ListWidgetClasses, but lets callers query a class they already have without scanning every UClass. Returns an empty entry if WidgetClass is null. Can be used to get more information on the class from the Description and Category.

Input schema

{
  "properties": {
    "widgetClass": {
      "description": "The widget class to inspect.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.Widget",
      "type": "object"
    }
  },
  "required": [
    "widgetClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "bIsPanel": {
          "description": "Whether this class is a panel (can have children).",
          "type": "boolean"
        },
        "category": {
          "description": "Category for this widget class.",
          "type": "string"
        },
        "description": {
          "description": "Description for this widget class that may contain more information on how the Widget is used and when to use it.",
          "type": "string"
        },
        "widgetClass": {
          "description": "The widget class.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "Class@/Script/UMG.Widget",
          "type": "object"
        }
      },
      "required": [
        "widgetClass",
        "bIsPanel",
        "category",
        "description"
      ],
      "title": "UMGWidgetClassEntry",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.GetWidgetDescription

Full property dump of every widget in the tree. Each line: [N] Type Name Prop:Value ... slot:(SlotProp:Value ...) N is the 0-based index into result.Widgets -- use result.Widgets[N] to get the widget ref without text parsing.

Same indentation format as GetTaggedWidgetDescription; richer per-widget detail.

Input schema

{
  "properties": {
    "maxDepth": {
      "default": -1,
      "description": "1 = no limit; 0 = StartWidget only; N = N levels.",
      "type": "integer"
    },
    "startWidget": {
      "default": null,
      "description": "nullptr = full tree from root.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The WBP asset.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "description": {
          "description": "Human-readable tree. Each line is prefixed [N] where N is the 0-based index into Widgets.",
          "type": "string"
        },
        "widgets": {
          "description": "Flat walk-order list. result.Widgets[N] corresponds to line [N] in Description. Same entries as GetWidgets.",
          "items": {
            "properties": {
              "bInherited": {
                "description": "True if this widget is inherited from the C++ parent class.",
                "type": "boolean"
              },
              "bIsVariable": {
                "description": "Whether this widget is exposed as a blueprint variable.",
                "type": "boolean"
              },
              "namedSlotHost": {
                "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.Widget",
                "type": "object"
              },
              "parent": {
                "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.PanelWidget",
                "type": "object"
              },
              "slot": {
                "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.PanelSlot",
                "type": "object"
              },
              "uIComponents": {
                "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
                "items": {
                  "properties": {
                    "component": {
                      "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                      "properties": {
                        "refPath": {
                          "description": "The reference stored as a soft path string.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "refPath"
                      ],
                      "title": "/Script/UMG.UIComponent",
                      "type": "object"
                    },
                    "componentClassPath": {
                      "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                      "properties": {
                        "refPath": {
                          "description": "The reference stored as a soft path string.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "refPath"
                      ],
                      "title": "Class@/Script/CoreUObject.Object",
                      "type": "object"
                    }
                  },
                  "required": [
                    "component",
                    "componentClassPath"
                  ],
                  "title": "UMGUIComponentInfo",
                  "type": "object"
                },
                "type": "array"
              },
              "widget": {
                "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.Widget",
                "type": "object"
              },
              "widgetClassPath": {
                "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              },
              "widgetName": {
                "description": "Widget instance name.",
                "type": "string"
              }
            },
            "required": [
              "widget",
              "parent",
              "slot",
              "namedSlotHost",
              "widgetClassPath",
              "widgetName",
              "bIsVariable",
              "bInherited",
              "uIComponents"
            ],
            "title": "UMGWidgetInfo",
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "description",
        "widgets"
      ],
      "title": "UMGWidgetDescriptionResult",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.GetWidgetTreeDepth

Returns the maximum depth of the widget tree. Depth: root with no children = 0; root + children = 1; etc.

Input schema

{
  "properties": {
    "startWidget": {
      "default": null,
      "description": "Represents a reference to a UObject or UClass.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "Represents a reference to a UObject or UClass.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "Depth as int32; -1 on error.",
      "type": "integer"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.GetWidgets

Returns blueprint info and all widgets in depth-first order. Children within each parent are in their panel slot order - this is the hierarchy order shown in the designer. Info contains ParentClass (pass to CreateWidgetBlueprint) and RootWidgetClass. Use ObjectTools.list_properties on each returned Widget and Slot to get property names before calling set_properties.

Input schema

{
  "properties": {
    "widgetBlueprint": {
      "description": "The widget blueprint asset (e.g. \"/Game/UI/WBP_MyWidget\"), excluding the \"_C\" suffix.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "info": {
          "description": "Blueprint-level info: parent class, root widget class, counts.",
          "properties": {
            "inheritedWidgetCount": {
              "description": "Number of inherited widgets (from C++ parent class).",
              "type": "integer"
            },
            "namedSlotCount": {
              "description": "Number of named slot bindings.",
              "type": "integer"
            },
            "parentClass": {
              "description": "Parent class of this widget blueprint. Pass directly to CreateWidgetBlueprint's ParentClass param.",
              "properties": {
                "refPath": {
                  "description": "The reference stored as a soft path string.",
                  "type": "string"
                }
              },
              "required": [
                "refPath"
              ],
              "title": "Class@/Script/UMG.UserWidget",
              "type": "object"
            },
            "rootWidgetClass": {
              "description": "Root widget class.",
              "properties": {
                "refPath": {
                  "description": "The reference stored as a soft path string.",
                  "type": "string"
                }
              },
              "required": [
                "refPath"
              ],
              "title": "Class@/Script/UMG.Widget",
              "type": "object"
            },
            "widgetCount": {
              "description": "Total widget count in the tree.",
              "type": "integer"
            }
          },
          "required": [
            "parentClass",
            "rootWidgetClass",
            "widgetCount",
            "inheritedWidgetCount",
            "namedSlotCount"
          ],
          "title": "UMGWidgetBlueprintInfo",
          "type": "object"
        },
        "widgets": {
          "description": "All widgets in depth-first order. Parent pointer indicates hierarchy.",
          "items": {
            "properties": {
              "bInherited": {
                "description": "True if this widget is inherited from the C++ parent class.",
                "type": "boolean"
              },
              "bIsVariable": {
                "description": "Whether this widget is exposed as a blueprint variable.",
                "type": "boolean"
              },
              "namedSlotHost": {
                "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.Widget",
                "type": "object"
              },
              "parent": {
                "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.PanelWidget",
                "type": "object"
              },
              "slot": {
                "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.PanelSlot",
                "type": "object"
              },
              "uIComponents": {
                "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
                "items": {
                  "properties": {
                    "component": {
                      "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                      "properties": {
                        "refPath": {
                          "description": "The reference stored as a soft path string.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "refPath"
                      ],
                      "title": "/Script/UMG.UIComponent",
                      "type": "object"
                    },
                    "componentClassPath": {
                      "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                      "properties": {
                        "refPath": {
                          "description": "The reference stored as a soft path string.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "refPath"
                      ],
                      "title": "Class@/Script/CoreUObject.Object",
                      "type": "object"
                    }
                  },
                  "required": [
                    "component",
                    "componentClassPath"
                  ],
                  "title": "UMGUIComponentInfo",
                  "type": "object"
                },
                "type": "array"
              },
              "widget": {
                "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.Widget",
                "type": "object"
              },
              "widgetClassPath": {
                "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              },
              "widgetName": {
                "description": "Widget instance name.",
                "type": "string"
              }
            },
            "required": [
              "widget",
              "parent",
              "slot",
              "namedSlotHost",
              "widgetClassPath",
              "widgetName",
              "bIsVariable",
              "bInherited",
              "uIComponents"
            ],
            "title": "UMGWidgetInfo",
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "info",
        "widgets"
      ],
      "title": "UMGWidgetTreeInfo",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.ListWidgetBlueprints

Lists widget blueprints in a content folder.

Input schema

{
  "properties": {
    "folderPath": {
      "description": "Content folder to search, e.g. \"/Game/UI\". Searches recursively.",
      "type": "string"
    }
  },
  "required": [
    "folderPath"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "items": {
        "properties": {
          "refPath": {
            "description": "The reference stored as a soft path string.",
            "type": "string"
          }
        },
        "required": [
          "refPath"
        ],
        "title": "/Script/CoreUObject.Object",
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.ListWidgetClasses

Lists available widget classes, optionally filtered by name substring.

Input schema

{
  "properties": {
    "filter": {
      "description": "Substring to match against class names. Pass empty string to return all classes.",
      "type": "string"
    }
  },
  "required": [
    "filter"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "items": {
        "properties": {
          "bIsPanel": {
            "description": "Whether this class is a panel (can have children).",
            "type": "boolean"
          },
          "category": {
            "description": "Category for this widget class.",
            "type": "string"
          },
          "description": {
            "description": "Description for this widget class that may contain more information on how the Widget is used and when to use it.",
            "type": "string"
          },
          "widgetClass": {
            "description": "The widget class.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "Class@/Script/UMG.Widget",
            "type": "object"
          }
        },
        "required": [
          "widgetClass",
          "bIsPanel",
          "category",
          "description"
        ],
        "title": "UMGWidgetClassEntry",
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.MoveUIComponent

Moves a UI component before or after another component on the same widget.

Input schema

{
  "properties": {
    "bMoveAfter": {
      "description": "True to place after RelativeToComponentClass, false to place before.",
      "type": "boolean"
    },
    "componentClassToMove": {
      "description": "The UIComponent subclass to reorder.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.UIComponent",
      "type": "object"
    },
    "relativeToComponentClass": {
      "description": "The UIComponent subclass to move relative to.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.UIComponent",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetName": {
      "description": "Name of the widget instance whose component to move.",
      "type": "string"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetName",
    "componentClassToMove",
    "relativeToComponentClass",
    "bMoveAfter"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "True if the component was moved, false if either component was not found.",
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.MoveWidget

Moves a widget to a new parent panel at the specified position. Returns updated widget info with new Slot.

Input schema

{
  "properties": {
    "childIndex": {
      "default": -1,
      "description": "Position in new parent's child list (0 = first child). -1 (default) appends to end.",
      "type": "integer"
    },
    "newParent": {
      "description": "The destination panel widget.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.PanelWidget",
      "type": "object"
    },
    "widget": {
      "description": "The widget to move.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widget",
    "newParent"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "bInherited": {
          "description": "True if this widget is inherited from the C++ parent class.",
          "type": "boolean"
        },
        "bIsVariable": {
          "description": "Whether this widget is exposed as a blueprint variable.",
          "type": "boolean"
        },
        "namedSlotHost": {
          "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "parent": {
          "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelWidget",
          "type": "object"
        },
        "slot": {
          "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelSlot",
          "type": "object"
        },
        "uIComponents": {
          "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
          "items": {
            "properties": {
              "component": {
                "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.UIComponent",
                "type": "object"
              },
              "componentClassPath": {
                "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              }
            },
            "required": [
              "component",
              "componentClassPath"
            ],
            "title": "UMGUIComponentInfo",
            "type": "object"
          },
          "type": "array"
        },
        "widget": {
          "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "widgetClassPath": {
          "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "Class@/Script/CoreUObject.Object",
          "type": "object"
        },
        "widgetName": {
          "description": "Widget instance name.",
          "type": "string"
        }
      },
      "required": [
        "widget",
        "parent",
        "slot",
        "namedSlotHost",
        "widgetClassPath",
        "widgetName",
        "bIsVariable",
        "bInherited",
        "uIComponents"
      ],
      "title": "UMGWidgetInfo",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.RemoveUIComponent

Removes a UI component of the given class from the named widget.

Input schema

{
  "properties": {
    "componentClass": {
      "description": "The UIComponent subclass to remove.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.UIComponent",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetName": {
      "description": "Name of the widget instance to remove the component from.",
      "type": "string"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetName",
    "componentClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "True if the component was removed, false if it was not found.",
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.RemoveWidget

Removes a widget and its children from the tree.

Input schema

{
  "properties": {
    "widget": {
      "description": "The widget to remove (along with its children).",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widget"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.RenameWidget

Renames a widget. Returns updated widget info or empty on failure.

Input schema

{
  "properties": {
    "newDisplayName": {
      "description": "The new display name.",
      "type": "string"
    },
    "widget": {
      "description": "The widget to rename.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widget",
    "newDisplayName"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "bInherited": {
          "description": "True if this widget is inherited from the C++ parent class.",
          "type": "boolean"
        },
        "bIsVariable": {
          "description": "Whether this widget is exposed as a blueprint variable.",
          "type": "boolean"
        },
        "namedSlotHost": {
          "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "parent": {
          "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelWidget",
          "type": "object"
        },
        "slot": {
          "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelSlot",
          "type": "object"
        },
        "uIComponents": {
          "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
          "items": {
            "properties": {
              "component": {
                "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.UIComponent",
                "type": "object"
              },
              "componentClassPath": {
                "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              }
            },
            "required": [
              "component",
              "componentClassPath"
            ],
            "title": "UMGUIComponentInfo",
            "type": "object"
          },
          "type": "array"
        },
        "widget": {
          "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "widgetClassPath": {
          "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "Class@/Script/CoreUObject.Object",
          "type": "object"
        },
        "widgetName": {
          "description": "Widget instance name.",
          "type": "string"
        }
      },
      "required": [
        "widget",
        "parent",
        "slot",
        "namedSlotHost",
        "widgetClassPath",
        "widgetName",
        "bIsVariable",
        "bInherited",
        "uIComponents"
      ],
      "title": "UMGWidgetInfo",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.ReplaceWidgetWithChild

Replaces a panel widget with its first child, removing the panel from the tree. The widget to replace must be a UPanelWidget with only one child.

Input schema

{
  "properties": {
    "widgetBlueprint": {
      "description": "The widget blueprint containing the panel widget.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetToReplace": {
      "description": "The panel widget to replace with its first child.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetToReplace"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "true on success, false if validation failed.",
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.ReplaceWidgetWithNamedSlot

Replaces a host widget with the content of one of its named slots. The host must implement INamedSlotInterface (e.g., a UUserWidget exposing named slots). The slot's content widget is moved up to take the host's place in the tree.

Input schema

{
  "properties": {
    "namedSlot": {
      "description": "The slot whose content replaces WidgetToReplace.",
      "type": "string"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint containing the host widget.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetToReplace": {
      "description": "The host widget to replace.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetToReplace",
    "namedSlot"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "true on success, false if validation failed.",
      "type": "boolean"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.ReplaceWidgetWithTemplate

Replaces a widget instance in the blueprint's widget tree with a new instance created from a different template widget class. Preserves references for members that exist on both classes with a compatible type/signature: bindings, BP graph variable references, animation bindings, and delegate bindings. Members without a compatible counterpart on the new class are listed in the returned report; references to those members in the outer blueprint will become orphaned graph nodes / dangling bindings.

Input schema

{
  "properties": {
    "templateClass": {
      "description": "The widget class to create the replacement from.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint containing the widget to replace.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetToReplace": {
      "description": "The widget instance to replace (must be in WidgetBlueprint's tree).",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgetToReplace",
    "templateClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "description": "Report whose bSuccess flag indicates whether the replacement happened, MissingReferencesWarning describes warnings that need action, and the Unmatched* arrays list members that have no compatible counterpart on the new class (with the *Referenced* subsets being the ones the blueprint actually uses today).",
      "properties": {
        "bSuccess": {
          "description": "True if the replacement was performed.",
          "type": "boolean"
        },
        "missingReferencesWarning": {
          "description": "List of referenced properties/functions that are missing from the new class.",
          "type": "string"
        },
        "unmatchedFunctions": {
          "description": "BlueprintCallable / BlueprintEvent functions and multicast delegates on the old class that are missing or signature-incompatible on the new class, with per-member reasons.",
          "items": {
            "properties": {
              "name": {
                "description": "Name of the member on the old class.",
                "type": "string"
              },
              "reason": {
                "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch).",
                "type": "string"
              }
            },
            "required": [
              "name",
              "reason"
            ],
            "title": "WidgetUnmatchedMember",
            "type": "object"
          },
          "type": "array"
        },
        "unmatchedProperties": {
          "description": "Blueprint-visible properties on the old class that are missing or type-incompatible on the new class, with per-member reasons.",
          "items": {
            "properties": {
              "name": {
                "description": "Name of the member on the old class.",
                "type": "string"
              },
              "reason": {
                "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch).",
                "type": "string"
              }
            },
            "required": [
              "name",
              "reason"
            ],
            "title": "WidgetUnmatchedMember",
            "type": "object"
          },
          "type": "array"
        },
        "unmatchedReferencedFunctions": {
          "description": "Subset of UnmatchedFunctions that the outer blueprint's graphs currently reference through this widget.",
          "items": {
            "properties": {
              "name": {
                "description": "Name of the member on the old class.",
                "type": "string"
              },
              "reason": {
                "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch).",
                "type": "string"
              }
            },
            "required": [
              "name",
              "reason"
            ],
            "title": "WidgetUnmatchedMember",
            "type": "object"
          },
          "type": "array"
        },
        "unmatchedReferencedProperties": {
          "description": "Subset of UnmatchedProperties that the outer blueprint references through this widget (graphs, bindings, animation property tracks).",
          "items": {
            "properties": {
              "name": {
                "description": "Name of the member on the old class.",
                "type": "string"
              },
              "reason": {
                "description": "Reason this member couldn't be matched on the new class (missing name or type/signature mismatch).",
                "type": "string"
              }
            },
            "required": [
              "name",
              "reason"
            ],
            "title": "WidgetUnmatchedMember",
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "bSuccess",
        "missingReferencesWarning",
        "unmatchedProperties",
        "unmatchedReferencedProperties",
        "unmatchedFunctions",
        "unmatchedReferencedFunctions"
      ],
      "title": "WidgetReplacementReport",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.SetNamedSlotContent

Sets content for a named slot. Returns full widget info including Slot pointer.

Input schema

{
  "properties": {
    "hostWidget": {
      "description": "The widget that owns the named slot, or null to target the root WidgetTree.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "slotName": {
      "description": "Name of the slot to fill (e.g., \"content\", \"header\").",
      "type": "string"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgetClass": {
      "description": "The widget class to place in the slot.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.Widget",
      "type": "object"
    },
    "widgetName": {
      "description": "Name for the new widget instance.",
      "type": "string"
    }
  },
  "required": [
    "widgetBlueprint",
    "hostWidget",
    "slotName",
    "widgetClass",
    "widgetName"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "properties": {
        "bInherited": {
          "description": "True if this widget is inherited from the C++ parent class.",
          "type": "boolean"
        },
        "bIsVariable": {
          "description": "Whether this widget is exposed as a blueprint variable.",
          "type": "boolean"
        },
        "namedSlotHost": {
          "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "parent": {
          "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelWidget",
          "type": "object"
        },
        "slot": {
          "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.PanelSlot",
          "type": "object"
        },
        "uIComponents": {
          "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
          "items": {
            "properties": {
              "component": {
                "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "/Script/UMG.UIComponent",
                "type": "object"
              },
              "componentClassPath": {
                "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                "properties": {
                  "refPath": {
                    "description": "The reference stored as a soft path string.",
                    "type": "string"
                  }
                },
                "required": [
                  "refPath"
                ],
                "title": "Class@/Script/CoreUObject.Object",
                "type": "object"
              }
            },
            "required": [
              "component",
              "componentClassPath"
            ],
            "title": "UMGUIComponentInfo",
            "type": "object"
          },
          "type": "array"
        },
        "widget": {
          "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "/Script/UMG.Widget",
          "type": "object"
        },
        "widgetClassPath": {
          "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
          "properties": {
            "refPath": {
              "description": "The reference stored as a soft path string.",
              "type": "string"
            }
          },
          "required": [
            "refPath"
          ],
          "title": "Class@/Script/CoreUObject.Object",
          "type": "object"
        },
        "widgetName": {
          "description": "Widget instance name.",
          "type": "string"
        }
      },
      "required": [
        "widget",
        "parent",
        "slot",
        "namedSlotHost",
        "widgetClassPath",
        "widgetName",
        "bIsVariable",
        "bInherited",
        "uIComponents"
      ],
      "title": "UMGWidgetInfo",
      "type": "object"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.ToggleWidgetAsVariable

Sets the bIsVariable flag.

Input schema

{
  "properties": {
    "bIsVariable": {
      "description": "True to expose as a blueprint variable, false to hide it.",
      "type": "boolean"
    },
    "widget": {
      "description": "The widget to update.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMG.Widget",
      "type": "object"
    },
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widget",
    "bIsVariable"
  ],
  "type": "object"
}

UMGToolSet.UMGToolSet.WrapWidgets

Wraps one or more widgets in a new panel widget of the specified class. Only the root-most widgets in the selection are wrapped — children of other selected widgets are skipped because their parent will be wrapped. Returns info for each newly created wrapper.

Use ObjectTools.list_properties on each returned Widget and Slot to discover property names before calling set_properties (padding, alignment, anchors, etc. vary per panel class).

Input schema

{
  "properties": {
    "widgetBlueprint": {
      "description": "The widget blueprint to modify.",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "/Script/UMGEditor.WidgetBlueprint",
      "type": "object"
    },
    "widgets": {
      "description": "The widgets to wrap. Must all be in WidgetBlueprint's tree.",
      "items": {
        "properties": {
          "refPath": {
            "description": "The reference stored as a soft path string.",
            "type": "string"
          }
        },
        "required": [
          "refPath"
        ],
        "title": "/Script/UMG.Widget",
        "type": "object"
      },
      "type": "array"
    },
    "wrapperClass": {
      "description": "The panel widget class to wrap with (must be a UPanelWidget subclass).",
      "properties": {
        "refPath": {
          "description": "The reference stored as a soft path string.",
          "type": "string"
        }
      },
      "required": [
        "refPath"
      ],
      "title": "Class@/Script/UMG.PanelWidget",
      "type": "object"
    }
  },
  "required": [
    "widgetBlueprint",
    "widgets",
    "wrapperClass"
  ],
  "type": "object"
}

Output schema

{
  "properties": {
    "returnValue": {
      "items": {
        "properties": {
          "bInherited": {
            "description": "True if this widget is inherited from the C++ parent class.",
            "type": "boolean"
          },
          "bIsVariable": {
            "description": "Whether this widget is exposed as a blueprint variable.",
            "type": "boolean"
          },
          "namedSlotHost": {
            "description": "Named slot host. If set, this widget is named slot content - use SetNamedSlotContent with this host instead of AddWidget. Call GetNamedSlots to find the slot name.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "/Script/UMG.Widget",
            "type": "object"
          },
          "parent": {
            "description": "Parent panel widget. nullptr when this is the root widget or when this widget lives in a named slot (check NamedSlotHost instead).",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "/Script/UMG.PanelWidget",
            "type": "object"
          },
          "slot": {
            "description": "Panel slot for this widget. Pass to ObjectTools to read/write slot properties (padding, alignment, anchors, etc.). nullptr for root widget.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "/Script/UMG.PanelSlot",
            "type": "object"
          },
          "uIComponents": {
            "description": "UI components attached to this widget, in display order. Pass ComponentClass entries back to AddUIComponent / RemoveUIComponent / MoveUIComponent.",
            "items": {
              "properties": {
                "component": {
                  "description": "The component archetype instance. Use ObjectTools to read/write its properties.\n  1. ObjectTools.list_properties(Component) -> get exact property names\n  2. ObjectTools.get_properties(Component, [names]) -> read current values\n  3. ObjectTools.set_properties(Component, {name: value}) -> write values",
                  "properties": {
                    "refPath": {
                      "description": "The reference stored as a soft path string.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "refPath"
                  ],
                  "title": "/Script/UMG.UIComponent",
                  "type": "object"
                },
                "componentClassPath": {
                  "description": "Class path for this component. Pass directly to AddUIComponent, RemoveUIComponent, or MoveUIComponent as ComponentClass.",
                  "properties": {
                    "refPath": {
                      "description": "The reference stored as a soft path string.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "refPath"
                  ],
                  "title": "Class@/Script/CoreUObject.Object",
                  "type": "object"
                }
              },
              "required": [
                "component",
                "componentClassPath"
              ],
              "title": "UMGUIComponentInfo",
              "type": "object"
            },
            "type": "array"
          },
          "widget": {
            "description": "The widget instance. Pass to AddWidget as parent, ObjectTools for properties.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "/Script/UMG.Widget",
            "type": "object"
          },
          "widgetClassPath": {
            "description": "Class path for this widget. Pass directly to AddWidget or SetNamedSlotContent WidgetClass param.",
            "properties": {
              "refPath": {
                "description": "The reference stored as a soft path string.",
                "type": "string"
              }
            },
            "required": [
              "refPath"
            ],
            "title": "Class@/Script/CoreUObject.Object",
            "type": "object"
          },
          "widgetName": {
            "description": "Widget instance name.",
            "type": "string"
          }
        },
        "required": [
          "widget",
          "parent",
          "slot",
          "namedSlotHost",
          "widgetClassPath",
          "widgetName",
          "bIsVariable",
          "bInherited",
          "uIComponents"
        ],
        "title": "UMGWidgetInfo",
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "returnValue"
  ],
  "type": "object"
}