Skip to content

LLM Dynamic UI ​

DSL-driven UMG Widget generation for Unreal Engine 5. The agent writes .llmui JSON, the editor turns it into a real UWidgetBlueprint — full UMG + CommonUI, layout, animations, and SDF effects.

Skill file: skills/llm-dynamic-ui/SKILL.md


When the Agent Loads It ​

The agent loads this skill when the user asks to:

  • Create or design a UE5 UMG interface (login page, menu, HUD, dialog, settings, etc.)
  • Convert an interface description into a .llmui file
  • Inspect or modify an existing .llmui file
  • Look up a UMG widget type, layout container, or animatable property
  • Add an animation track (position, color, opacity, scale) to a widget

Triggers: .llmui, UMG, UMG widget, Widget Blueprint, UI, HUD, menu, login, dialog, animation, fade, slide, SDF, CommonUI, CommonButton, CommonText.


Prerequisites ​

RequirementNotes
UE 5.7+Engine version
LLM Dynamic UI pluginInstall from Fab or copy from this repo to Plugins/
Enabled in editorEdit → Plugins → AI → LLM Dynamic UI → restart editor

The agent does not need the editor running to write the JSON — it just writes the file. You open the editor and click Generate to compile it into a Widget Blueprint.


Quick Example ​

Ask the agent:

"Make me a login screen with a title and a CommonUI login button."

The agent produces a .llmui file:

json
{
  "version": "2.0",
  "name": "LoginScreen",
  "parentClass": "CommonActivatableWidget",
  "rootWidget": {
    "id": "root",
    "type": "VerticalBox",
    "children": [
      {
        "id": "title",
        "type": "Text",
        "style": { "fontSize": 28, "fontWeight": "Bold", "color": "#FFD84D" },
        "content": { "text": "Welcome Back" }
      },
      {
        "id": "loginBtn",
        "type": "Button",
        "style": {
          "normalColor": "#1a66cc",
          "hoveredColor": "#3388ff",
          "cornerRadius": 8
        },
        "content": { "text": "Login" },
        "events": { "onClick": "OnLoginClicked" }
      }
    ]
  }
}

Save it, open the LLM Dynamic UI panel in the editor, click Generate UMG Widget — done.


What the Skill Knows ​

The full skill body contains:

  • Color formats — hex, rgb(), rgba(), named
  • All widget types — VerticalBox, HorizontalBox, Canvas, Overlay, ScrollBox, Text, Image, Button, ProgressBar, Slider, CheckBox, etc.
  • CommonUI types — CommonButton, CommonText, CommonActivatableWidget
  • Layout system — anchors, alignment, padding, slot properties
  • Animation system — 15+ easing functions, loops, ping-pong, autoplay
  • SDF effects — shadows, glows, borders, gradients (single-pass)
  • Property schema — points to PropertySchema.llmschema for full reference

You do not need to memorize any of it. The agent reads the skill, then writes the file.


Compiling the JSON into an Asset ​

The agent writes the file. To turn the file into a Widget Blueprint, you (or the agent, if you also have llm-easy-shell installed) run:

# Option A — manual: editor panel
Tools → LLM Dynamic UI Panel → select .llmui file → Generate UMG Widget

# Option B — CLI: via the running editor
ui generate /Game/UI/LoginScreen --from LoginScreen.llmui

The Widget Blueprint is created at the path you specified and opens in the UMG editor, where you can make further adjustments by hand.


Round-Trip ​

Already have a Widget Blueprint you want to author against with the agent? Use the editor panel's Export to JSON button to dump the current state back to a .llmui file. The agent can then edit that file and you re-generate.


  • llm-easy-shell → — drive the editor from the CLI: run ui generate for you, take a screenshot of the result, etc.
  • llm-easy-shell-lite → — read-only subset; safe for "show me what the UI looks like right now" without risking writes.

Powered by VitePress