set_widget_property
Set one or many reflected properties on a Widget Blueprint widget, including nested style fields via dotted paths, and report which fields applied or were ignored.
Instructions
Set ONE or MANY reflected properties on a widget of a Widget Blueprint, addressing NESTED STYLE FIELDS by dotted path ("WidgetStyle.Normal.TintColor", "WidgetStyle.Hovered.OutlineSettings.CornerRadii") and reporting FIELD BY FIELD what actually landed. Two calling shapes over one write path: property_name+value writes a single path; properties writes a whole map with ONE Modify + ONE compile + ONE save (a FButtonStyle is ~30 leaf fields -- one call, not 30 recompiles). WARNING: The oracle is applied[]/ignored[]/errors[], NOT success: a JSON key that matches no reflected field lands in ignored[] and all_applied goes false instead of the silent no-op the engine's converter reports as success. Read the result back with get_widget_blueprint_tree(property_paths=[...]).
Returns: { widget_bp_path: string, widget_name: string, widget_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
| Name | Required | Description | Default |
|---|---|---|---|
| save | No | Compile + save the Widget Blueprint when done (default true). Pass false to chain several calls and save once at the end -- the asset stays dirty in memory until something saves it. | |
| force | No | Optional. 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. | |
| value | No | New value for property_name: string, number, bool, JSON object (struct, applied field by field) or JSON array. Colors accept {"R":1,"G":0,"B":0,"A":1}, [r,g,b,a] or "#RRGGBBAA"; FMargin accepts a scalar, [h,v] or [l,t,r,b]; an FSlateBrush accepts a texture/material path string; enums accept the short name ("Box"). | |
| properties | No | Batch form: {"<dotted path>": <value>, ...}. Every path is written against the SAME widget under one Modify/compile/save. Combinable with property_name+value (both end up in the same map). | |
| widget_name | Yes | name of the widget in the tree (get_widget_blueprint_tree lists them) | |
| property_name | No | Single reflected property name ("Text") OR a dotted path into nested structs ("WidgetStyle.Normal.TintColor"); array indices are supported ("Items[0].Label"). Requires `value`. Omit when using `properties`. | |
| blueprint_name | No | Alias of `widget_bp_path` (same value, same meaning). Accepted because sibling tools spell this parameter differently; prefer `widget_bp_path`. | |
| widget_bp_path | No | /Game path of the Widget Blueprint asset |