Skip to content

Editor Panel Overview

The Blueprint AI panel is a dockable tab inside the Unreal Editor. It hosts the AI chat, an embedded terminal, attachment chips, and a live context-usage ring.

Open it from Window → Blueprint AI and dock it anywhere a standard tab fits — alongside your viewport, on a second monitor, or as a floating window. Spawn more than one panel tab if you want parallel conversations: each holds its own active session, but they share the on-disk session store (see Sessions & history for the details).

The panel switches between three top-level layouts depending on context.

+------------------------------------------------------------------+
| TopBar [History] "Session Name" [+ New Session] |
+------------------------------------------------------------------+
| Banner (conditional setup notice) |
+------------------------------------------------------------------+
| |
| MessageList |
| User bubble "Create BP_Pickup..." |
| Assistant "I'll do that." |
| ToolUse create_blueprint { name: "BP_Pickup" } |
| PermissionCard "delete_asset" [Allow] [Always] [Deny] |
| QuestionCard "Which approach?" ( )( )( ) [Submit] |
| |
+------------------------------------------------------------------+
| InputBar |
| [chip x] [chip x] |
| Type a message... |
| [+] [/] (ring) | (eye) sel ~~~ [mode v] [> send] |
+------------------------------------------------------------------+

When a session has no messages, MessageList is replaced by EmptyState — a centered logo and a one-line hint.

Toggling the slash button switches MessageList for an embedded xterm.js terminal:

| $ python cli.py apply spec.json |
| > Validating operations... |
| > OK |

The InputBar collapses to just the slash button so you can flip back to chat without leaving the keyboard.

You’ll see these names throughout the rest of the docs.

TermWhat it is
PanelRoot widget
TopBarHeader: session name + history + new-session button
BannerDismissible setup-notice strip at the top of the panel — clicking Setup runs the corresponding fix, Dismiss hides it for the session
MessageListScrollable list of chat bubbles
MessageOne bubble — user or assistant
ToolUseCollapsible block showing a tool call inside a Message (op name, JSON args, pending → executing → completed/failed status, scrollable result)
ThinkingIndicatorAnimated thinking... label during generation
PermissionCardApprove/deny card for an unauthorized tool call — Allow permits the single call, Always permits every future call of that op with the same params, Deny refuses and tells the AI to change course. Blocking, no auto-timeout.
QuestionCardInline follow-up question with radio choices; Submit sends your pick as a normal user message
InputBarBottom composition area
AttachmentBarRow of attachment chips above the input field
InputFieldMulti-line text input
ActionRowButton strip at the bottom of the InputBar
AttachmentButton [+]Opens the AttachmentPicker
SlashButton [/]Opens the slash menu / toggles terminal
ContextRingToken-usage arc; click to expand
SelectionToggleEye icon — sends the current editor selection as context
ModeSelectorAgent / model / mode / effort dropdown
SendButtonGradient button — arrow when ready, square while generating
SessionDrawerHistory list anchored to the TopBar history button
TerminalViewEmbedded xterm.js terminal

Sessions & history

Per-session JSONL files, the history drawer, search and filters.

Attachments

Files, images, viewport screenshots, editor selection.

Autocomplete

/ slash commands and @ asset/file mentions.

Terminal mode

Embedded xterm.js, ConPTY / POSIX PTY, shells and history.