Editor UI
Editor UI: See and drive any editor tab, window, dialog or menu that has no dedicated command. Unreal Engine 5 command reference with parameters and examples.
Editor UI: See and drive any editor tab, window, dialog or menu that has no dedicated command. Unreal Engine 5 command reference with parameters and examples.
12 commands. Each shows its parameters and an example, and has a copyable deep link, so you (or an AI agent) can jump straight to one.
inspect_widgetsRead the widgets of any tab, window, dialog or menu as compact rows with refs
cfa inspect_widgets --tab "Output Log"
cfa inspect_widgets --tab "Editor Preferences" --filter "Number of Clients"
cfa inspect_widgets --dialog
cfa inspect_widgets --ref li7 --role checkboxfind_widgetsSearch every open window for widgets by text and role
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | No | Text the label or value contains |
| role | string | No | Only one role: button, checkbox, textbox, number, dropdown, slider, list, row, text, link, menu_entry, tab or window |
| max_results | int | No | Most rows to return |
cfa find_widgets --text Play --role button
cfa find_widgets --text "Archive Directory"get_widgetEverything about one widget ref
Returns the role, label, value, flags, tooltip, widget class, the engine source location that created it, its window, its screen rect [x, y, width, height], the built and total rows of a list, and the choices of a dropdown whose menu is open. A widget that UMG built, such as one in a Widget Blueprint's designer, an Editor Utility Widget or game UI during Play, also has umg: the UMG widget's name, class and blueprint asset; a Slate widget inside one reports that UMG widget.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ref | string | Yes | A widget ref from inspect_widgets or find_widgets |
cfa get_widget --ref b12list_ui_commandsList the editor's commands with labels, descriptions and shortcuts
Lists every command the editor and its asset editors register, by context (PlayWorld, LevelEditor, MainFrame, BlueprintEditor...), with its name, label, description and keyboard shortcut. A command with a shortcut can be run with act_on_widget --action key on the focused tab.
| Parameter | Type | Required | Description |
|---|---|---|---|
| context | string | No | Only one command context, such as PlayWorld or LevelEditor |
| filter | string | No | Only commands whose name, label or description contains this text |
| max_results | int | No | Most rows to return |
cfa list_ui_commands --filter Play
cfa list_ui_commands --context LevelEditor --max-results 100get_details_panelRead every property a details panel shows
Finds the details panels inside one target (usually --tab) and reads every property they show through the property editor's own rows, customizations included: path, display name, category, value as text and edit_const, plus the objects each panel edits. Unlike inspect_widgets it also sees rows scrolled out of view. Values are in the panel's own text format, which set_details_property accepts. --panel picks one panel by identifier when a target has several. Three zoom levels: --outline lists only the objects the panel edits (for Editor Preferences, every settings section) with class, shown name, categories and property count; --object <class or shown name> reads one object in full, each row with type, allowed (enum names and shown names) and range (clamp and UI limits); --depth N lists nested rows such as struct fields and array elements, and a row with deeper rows says how many. export_ui writes everything to a file.
cfa get_details_panel --tab "Editor Preferences" --filter Client
cfa get_details_panel --tab Details --filter Intensityexport_uiWrite a tab or window's widgets and details panels to one JSON file
Writes one JSON file for a target (usually --tab): target, widgets (the widget tree: ref, role, label, value, flags and children, nested) and panels (each details panel as objects, then categories, then properties with path, name, display, type, value as typed JSON, text, allowed, range, edit_const and children). The reply is only the file path and counts (widgets, panels, objects, properties, bytes), so it costs almost no context; read the file when you need it. Files go to Saved/CodeFizzEditorAgent/Exports/UI unless --output-dir says otherwise.
cfa export_ui --tab "Editor Preferences"
cfa export_ui --tab LevelEditorSelectionDetails --widgets=falsewait_for_uiWait until a text, a kind of window or a dialog shows up or goes away
Polls the editor every 250 ms until every condition given holds, or until --timeout seconds pass. --text waits until a widget in any window shows the text (label or value), --text-gone until no widget does, --window-kind until a window of that kind is open (main, tab_window, window, dialog, menu, tooltip, notification, cursor), --dialog open or closed until a dialog is open or until none is. The reply has met (true or false), waited_ms, and last: the windows (title and kind) and the widgets found by the last poll, so a wait that timed out says what was there instead. Each poll is list_editor_windows plus find_widgets, which both answer while a dialog is open.
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | No | Wait until a widget shows this text in its label or value |
| text_gone | string | No | Wait until no widget shows this text |
| window_kind | string | No | Wait until a window of this kind is open: main, tab_window, window, dialog, menu, tooltip, notification or cursor |
| dialog | string | No | open waits until a dialog is open; closed waits until none is |
| timeout | int | No | Most seconds to wait |
cfa wait_for_ui --dialog open --timeout 5
cfa wait_for_ui --text-gone "Compiling" --timeout 60
cfa wait_for_ui --window-kind menuset_details_propertySet properties in a details panel, with clear errors for wrong values
Sets one property (--property and --value) or several (--properties as a JSON object) in a details panel inside a target, usually --tab. The property is found by its path, its name or the name the panel shows; the value is the panel's own text: a number, true or false, an enum name or the name the dropdown shows, a path, or a struct literal such as (X=1,Y=2,Z=3). Every write is checked first, so one wrong property or value writes nothing, and the error says what the property wants: the type for a number, every name for an enum, close names for a misspelled property, and --object when several objects in the panel share the property. A number is clamped to its ClampMin and ClampMax as the panel's own box does, and the result says so (pass_with_warnings). route property writes through the panel's property handles and saves settings (Project Settings, Editor Preferences) to their ini the way the settings window does; it returns results with each property's before, after and persisted. route panel types into the panel's own widgets as a person would, so an asset editor sees the change as a user edit; it runs after the reply and the CLI waits for each field. auto (the default) picks panel for an asset editor's panel and property for the rest, and falls back to property when the panel cannot reach the row (a folded category, or a shown name two rows share), with pass_with_warnings and the reason in warning, since the asset editor's own change handling then does not run. A panel with editing turned off, such as the Blueprint editor's during Play for classes it may not recompile, refuses every write, as it would for a person.
cfa set_details_property --tab "Editor Preferences" --property PlayNumberOfClients --value 3
cfa set_details_property --tab "Editor Preferences" --property "Play Net Mode" --value "Play As Listen Server"
cfa set_details_property --tab LevelEditorSelectionDetails --properties '{"Intensity": "5000", "LightColor": "(R=255,G=200,B=150,A=255)"}'act_on_widgetDo one thing to a widget ref, the way a person would
| Parameter | Type | Required | Description |
|---|---|---|---|
| ref | string | Yes | A widget ref from inspect_widgets or find_widgets |
| action | string | Yes | press, toggle, check, uncheck, set_text, set_number, select, select_row, expand, collapse, scroll, scroll_into_view, focus, key, hover, right_click, double_click, drag or wheel; the widget's role decides which apply, and focus, key and the pointer actions work on any widget |
| value | string | No | The text, number, option label or row label the action takes; for scroll: top, bottom or a row count; for wheel: the notches to turn, positive down |
| key | string | No | A key chord for the key action, such as Enter, Escape or Ctrl+S |
| to | string | No | For drag: the ref of the widget to drop on |
| wait | bool | No | Wait until the action ran and include its verdict (false = return at once with the action_id) |
cfa act_on_widget --ref cb7 --action toggle
cfa act_on_widget --ref tb5 --action set_text --value "-log"
cfa act_on_widget --ref co3 --action select --value "Play As Listen Server"
cfa act_on_widget --ref lv1 --action select_row --value PointLight_12
cfa act_on_widget --ref tb2 --action key --key Escape
cfa act_on_widget --ref li12 --action right_click
cfa act_on_widget --ref li12 --action drag --to li7fill_widgetsFill several widgets in order with one call
| Parameter | Type | Required | Description |
|---|---|---|---|
| fields | json | Yes | JSON array of {ref, action, value} objects, each one act_on_widget call |
| wait | bool | No | Wait until every field ran and include each verdict (false = return at once with the action_ids) |
cfa fill_widgets --fields '[{"ref":"tb5","action":"set_text","value":"-log"},{"ref":"nb2","action":"set_number","value":"2"}]'get_ui_actionThe state and verdict of one act_on_widget action
Returns queued, running, done or failed for an act_on_widget action, with its verdict, the value before and after, the error and the windows it opened. An action that opened a dialog stays running until the dialog closes.
| Parameter | Type | Required | Description |
|---|---|---|---|
| action_id | int | Yes | The action_id act_on_widget returned |
cfa get_ui_action --action-id 3