CodeFizz
ToolsDemoDocsBlogRoadmapChangelogPricingCompareFAQ
Get the plugin

Getting Started

  • Introduction
  • Quick Start
  • Requirements
  • Installing the CLI
  • License & Machines

Guides

  • Installing the Plugin
  • The AI Skill
  • CLI vs MCP
  • Multiple Editors
  • How It Works
  • Discovering Commands
  • The Editor Chat Panel
  • Image Generation (OpenRouter)
  • Play Testing and Packaging

Walkthroughs

  • Build a Blueprint with AI
  • Author a Material Graph
  • Create a Niagara System
  • Rig a Character with AI
  • Build an Animation Blueprint
  • Build Sound with AI
  • Build a Modular Character
  • Grow a Tree with AI
  • Build a Gameplay Ability System
  • Generate a Landscape with AI
  • Work with World Partition

Reference

  • Reference
  • Audio
  • Mutable
  • Control Rig
  • Niagara
  • PCG
  • Procedural Vegetation
  • Materials
  • Gameplay Ability System
  • World Building
  • Behavior Trees
  • Environment Queries
  • StateTree
  • Sequencer
  • Level Actors
  • Project Settings
  • Blueprints
  • Blueprint Structs and Enums
  • Enhanced Input
  • Asset Management
  • Bulk Asset Ops
  • Data Assets
  • Object Properties
  • UMG Widgets
  • Data Tables
  • Curves
  • Retargeting
  • Skeletal Meshes
  • Animation
  • Chooser Tables
  • UAF (Animation Framework)
  • Console Commands
  • Revision Control and Asset Diff
  • Profiling
  • Packaging and Devices
  • Editor UI
  • Image Generation
  • Core
  • Debug
  • Mass Entity (ECS)

Help

  • FAQ
  • Troubleshooting
  • For AI Agents
  • Fix: Plugin failed to load, module could not be loaded (GetLastError 126)
  • Fix: bridge unreachable, editor not responding
  • Fix: cfa targeted the wrong Unreal editor
  • Fix: the CodeFizz panel does not show Active
  • Fix: Unknown command, or plugin version mismatch after an update
DocsReferenceEditor UI

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.

Loading…
PreviousPackaging and DevicesNextImage Generation
CodeFizz

A drop-in Unreal Engine 5 plugin that exposes the entire editor surface (Blueprints, Materials, Niagara, PCG, StateTree, Control Rig, Insights profiling, and more) over the Model Context Protocol. Connect Claude Code, Cursor, VS Code, or any MCP-compatible client and let your AI build inside the engine.

Product

  • Features
  • Docs
  • Tools
  • Blog
  • Demo
  • Roadmap
  • Changelog
  • Pricing
  • Compare
  • FAQ

Resources

  • Install guide
  • Discord
  • YouTube
  • Open-source edition
  • Manage subscription

Legal

  • Refund Policy
  • Privacy Policy
  • Terms of Service

© 2026 CodeFizz. All rights reserved.

CodeFizz Editor Agent is a CodeFizz product. Payments processed by Polar Software, Inc. (Polar), the Merchant of Record.

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_widgets

Read the widgets of any tab, window, dialog or menu as compact rows with refs

example
  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 checkbox
find_widgets

Search every open window for widgets by text and role

ParameterTypeRequiredDescription
textstringNoText the label or value contains
rolestringNoOnly one role: button, checkbox, textbox, number, dropdown, slider, list, row, text, link, menu_entry, tab or window
max_resultsintNoMost rows to return
example
  cfa find_widgets --text Play --role button
  cfa find_widgets --text "Archive Directory"
get_widget

Everything 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.

ParameterTypeRequiredDescription
refstringYesA widget ref from inspect_widgets or find_widgets
example
  cfa get_widget --ref b12
list_ui_menus

List the editor's menus and toolbars, or one menu's entries

Without --menu, lists every registered menu and toolbar by its full name (LevelEditor.MainMenu.File, LevelEditor.LevelEditorToolBar.PlayToolBar...) with how many entries it has. With --menu, lists that menu's entries: section, name, label, tooltip, shortcut and submenu. Some sections are filled only when the menu opens, because their entries depend on what is selected; those are named in built_on_open, so open the menu and read it with inspect_widgets --menu.

ParameterTypeRequiredDescription
menustringNoOne menu's full name, to list its entries
filterstringNoOnly menus, or entries, whose name or label contains this text
max_resultsintNoMost rows to return
example
  cfa list_ui_menus --filter LevelEditor.MainMenu
  cfa list_ui_menus --menu LevelEditor.MainMenu.File
list_ui_commands

List 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.

ParameterTypeRequiredDescription
contextstringNoOnly one command context, such as PlayWorld or LevelEditor
filterstringNoOnly commands whose name, label or description contains this text
max_resultsintNoMost rows to return
example
  cfa list_ui_commands --filter Play
  cfa list_ui_commands --context LevelEditor --max-results 100
get_details_panel

Read 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.

example
  cfa get_details_panel --tab "Editor Preferences" --filter Client
  cfa get_details_panel --tab Details --filter Intensity
export_ui

Write 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.

example
  cfa export_ui --tab "Editor Preferences"
  cfa export_ui --tab LevelEditorSelectionDetails --widgets=false
wait_for_ui

Wait 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.

ParameterTypeRequiredDescription
textstringNoWait until a widget shows this text in its label or value
text_gonestringNoWait until no widget shows this text
window_kindstringNoWait until a window of this kind is open: main, tab_window, window, dialog, menu, tooltip, notification or cursor
dialogstringNoopen waits until a dialog is open; closed waits until none is
timeoutintNoMost seconds to wait
example
  cfa wait_for_ui --dialog open --timeout 5
  cfa wait_for_ui --text-gone "Compiling" --timeout 60
  cfa wait_for_ui --window-kind menu
set_details_property

Set 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.

example
  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_widget

Do one thing to a widget ref, the way a person would

ParameterTypeRequiredDescription
refstringYesA widget ref from inspect_widgets or find_widgets
actionstringYespress, 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
valuestringNoThe 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
keystringNoA key chord for the key action, such as Enter, Escape or Ctrl+S
tostringNoFor drag: the ref of the widget to drop on
waitboolNoWait until the action ran and include its verdict (false = return at once with the action_id)
example
  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 li7
fill_widgets

Fill several widgets in order with one call

ParameterTypeRequiredDescription
fieldsjsonYesJSON array of {ref, action, value} objects, each one act_on_widget call
waitboolNoWait until every field ran and include each verdict (false = return at once with the action_ids)
example
  cfa fill_widgets --fields '[{"ref":"tb5","action":"set_text","value":"-log"},{"ref":"nb2","action":"set_number","value":"2"}]'
get_ui_action

The 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.

ParameterTypeRequiredDescription
action_idintYesThe action_id act_on_widget returned
example
  cfa get_ui_action --action-id 3