Agent skill

Umg Widgets

by kevinpbuckley in kevinpbuckley/VibeUE

Create and modify UMG Widget Blueprints (UI) — build the widget hierarchy, set properties, style fonts/brushes, author widget animations, bind events, capture previews, run PIE checks, and wire MVVM…

MITAuto-check passedGame Development

Install Umg Widgets

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill umg-widgets -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE umg-widgets --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kevinpbuckley/VibeUE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Content/Skills/umg-widgets .claude/skills/umg-widgets && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
umg-widgets
GitHub stars
730
Token cost
~4.1k tokens
SKILL.md length
1,714 words
Files
14 (incl. scripts)
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Create and modify UMG Widget Blueprints (UI) — build the widget hierarchy, set properties, style fonts/brushes, author widget animations, bind events, capture previews, run PIE checks, and wire MVVM…

  • Works in 3 steps: After hierarchy edits: re-read with… → After property/style edits: read the… → Open/compile the WBP and confirm no…
  • The user asks to create a UI/HUD/menu
  • SKILL.md covers Critical Rules, Task Index, Sub-docs and Verification (do this before…, plus 1 more section
  • Arrange widgets (Button

What it does

Umg Widgets is an agent skill from kevinpbuckley/VibeUE. Create and modify UMG Widget Blueprints (UI) — build the widget hierarchy, set properties, style fonts/brushes, author widget animations, bind events, capture previews, run PIE checks, and wire MVVM ViewModels. Use when the user asks to create a UI/HUD/menu, add or arrange widgets (Button, TextBlock, Image, panels), style or animate a widget, or set up data bindings in a Widget Blueprint (WBP).

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts (for example `mvvm.md`, `reference.md` and `workflows.md`).

It sits in Game Development. The repository describes itself as: Unreal Engine Vibe Coding tool. The licence is MIT.

When your agent uses it

  • The user asks to create a UI/HUD/menu
  • Arrange widgets (Button
  • Animate a widget
  • Set up data bindings in a Widget Blueprint (WBP)

Example prompts

  • “/umg-widgets”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. After hierarchy edits: re-read with get_widget_snapshot(path) and confirm the expected widgets/parents.
  2. After property/style edits: read the value back (get_property / get_font / get_brush).
  3. Open/compile the WBP and confirm no errors, then unreal.EditorAssetLibrary.save_asset(path).

What it can do on your machine

Read from SKILL.md and the folder at commit dc051be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 10 files in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Umg Widgets loads about 4.1k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 1,714 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from kevinpbuckley/VibeUE at commit dc051be, republished under its MIT licence (© kevinpbuckley). 1,714 words, ~4,087 tokens.

Download SKILL.mdSave it as .claude/skills/umg-widgets/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
umg-widgets
description
Create and modify UMG Widget Blueprints (UI) — build the widget hierarchy, set properties, style fonts/brushes, author widget animations, bind events, capture previews, run PIE checks, and wire MVVM ViewModels. Use when the user asks to create a UI/HUD/menu, add or arrange widgets (Button, TextBlock, Image, panels), style or animate a widget, or set up data bindings in a Widget Blueprint (WBP).
display_name
UMG Widget Blueprints
vibeue_classes
WidgetService, BlueprintService
unreal_classes
EditorAssetLibrary
keywords
umg, widget, ui, hud, menu, canvas, button, textblock, panel, viewmodel, mvvm, binding, animation
related_skills
blueprints, blueprint-graphs

🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "umg-and-slate"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.

UMG Widget Blueprints Skill

This skill covers authoring Widget Blueprints (WBP) with WidgetService. Read the Critical Rules below first — they prevent the most common failures. Then pick a task from the Task Index and load the matching workflow doc and/or run the matching sample script.

Load the blueprints skill when you also need to add Blueprint variables, functions, or components, and blueprint-graphs when wiring event-graph nodes for bound events.

Critical Rules

🚨 Creating Widget Blueprints — only one pattern works

WidgetService does not create the asset. Create it with the factory, then use WidgetService to populate it:

python
import unreal
factory = unreal.WidgetBlueprintFactory()
factory.set_editor_property("parent_class", unreal.UserWidget)
asset_tools = unreal.AssetToolsHelpers.get_asset_tools()
asset_tools.create_asset("MainMenu", "/Game/UI", unreal.WidgetBlueprint, factory)

Do not call BlueprintEditorLibrary.get_blueprint_class(), unreal.create_widget_blueprint(), or WidgetService.create_widget() — none exist. (Runnable: scripts/create_widget.txt.)

🚨 Hierarchy: set the root first, parents before children
python
unreal.WidgetService.add_component(path, "CanvasPanel", "RootCanvas", "", True)   # empty parent -> becomes root
unreal.WidgetService.add_component(path, "Button", "PlayButton", "RootCanvas", False)

That 5th argument is is_variable, not set_as_root — a widget becomes the root because its parent name is empty, not because of that flag. A 6th argument, child_index, inserts at a position instead of appending; reorder_component moves an existing widget within its parent. See reference.md ▸ Child order.

⚠️ Widget names are unique per-blueprint, NOT per-parent. UMG enforces one name across the whole Widget Blueprint, so you can't add an ItemLabel/ItemButton under each of Item1, Item2, Item3. Suffix per-parent (Item1Label, Item2Label, …) — reusing a name silently lands the component on the wrong parent or no-ops.

🚨 Property values are ALWAYS strings
python
unreal.WidgetService.set_property(path, "PlayText", "Font.Size", "24")  # "24", not 24
🚨 Color properties: FSlateColor vs FLinearColor — verify with a readback

ColorAndOpacity on text/image widgets is FSlateColor, whose export text is "(SpecifiedColor=(R=1.0,G=0.5,B=0.0,A=1.0))" — a bare LinearColor string is auto-wrapped into that form by set_property. ShadowColorAndOpacity is a plain FLinearColor: "(R=0.0,G=0.0,B=0.0,A=1.0)". Named color strings ("red", "orange") are NOT supported on either — pass numeric RGBA.

Always get_property after set_property and compare. A struct set can return True while writing nothing (UE struct import ignores unrecognized member names). If the readback still shows the old value, your value string didn't match the struct's member layout — check list_properties for the property's real type and use its export-text form.

🚨 Use dedicated style APIs for full font/brush edits

Use set_font / set_brush (with WidgetFontInfo / WidgetBrushInfo) when changing a complete font or brush — they keep related fields together. Use set_property only for single leaf values or slot aliases like Position X, Size Y, Anchor Min X. See reference.md for every field name; runnable examples in scripts/apply_font.txt and scripts/apply_brush.txt.

set_brush requires a slot_name: set_brush(widget_path, component_name, slot_name, brush_info) (for an Image the slot is "Brush"). set_font takes an optional property_name that defaults to "Font".

⚠️ set_property("Font.Typeface", ...) silently returns False (size and color leaf-sets work, but typeface/family do not go through the struct sub-property path). Always change typeface/family via set_font with a WidgetFontInfo. Don't trust the True/False return of set_property on nested struct sub-fields — read it back to confirm.

✅ set_font colour is now applied (ColorAndOpacity is an FSlateColor; the old path silently no-op'd a bare (R=,G=,B=,A=) tuple). Pass a LINEAR tuple, e.g. (R=0.035,G=0.002,B=0.002,A=1); set_font returns False and logs a Warning if a supplied colour did not land, so trust the return.

⚠️ get_font readback quirk (issue #470): the struct-typed string fields color, shadow_color, and shadow_offset come back as two concatenated representations glued together, e.g. shadow_offset == "(X=0.0,Y=0.0)(X=1.000000,Y=1.000000)". The trailing parenthesized group is the real value. Scalar fields (size, typeface, font_family, letter_spacing, outline_size) are clean. When verifying a font round-trip, parse the last (...) group of these three fields (or compare scalars only) until #470 is fixed.

🚨 Override-gated properties (SizeBox width/height etc.)

set_editor_property("width_override", 34.0) on a USizeBox stores the value but leaves the paired bOverride_WidthOverride edit-condition flag false — the override silently never applies (the value even reads back as 34.0). Call the dedicated setters (set_width_override(), set_height_override(), set_min_desired_width(), ...) which set flag + value together. Applies to any widget property gated by a bOverride_* flag; after a raw property set, read the flag back before trusting the layout.

🚨 Animations require real property paths

add_animation_track / add_keyframe target actual widget properties or slot aliases (RenderOpacity, ColorAndOpacity, Position X/Y, Size X/Y). Always create the animation first, then the track, then keyframes. (Runnable: scripts/create_animation.txt.)

🚨 Preview vs PIE — different purposes
  • capture_preview renders an editor-side PNG without starting gameplay — use for appearance checks. It now renders with a single gamma pass (an sRGB PNG matching the designer, no more double-gamma) and a layout prepass (Overlay-centred content is centred, not bottom-aligned).
  • start_pie + spawn_widget_in_pie are for runtime state / live property reads — use only when you need a live instance.
🚨 Custom WBPs as components — discover first, pass the asset name

Use list_widget_blueprints("") to find existing WBPs, then pass just the asset name (e.g. "WBP_HealthBar", not the full package path) as component_type. The child WBP must already exist; circular references are rejected; the parent recompiles automatically.

🚨 Field-name gotchas (return objects)
WRONGCORRECT
p.namep.property_name
p.typep.property_type
p.property_valuep.current_value
w.component_name / w.namew.widget_name
w.widget_typew.widget_class

WidgetInfo complete fields: widget_name, widget_class, parent_widget, is_root_widget, is_variable, children.

children is an Array[str] of widget NAMES, not nested objects. Iterating it and reading .widget_name/.is_variable raises AttributeError: 'str' object has no attribute .... To walk the tree, build a name→info map first:

python
infos = {w.widget_name: w for w in unreal.WidgetService.get_hierarchy(path)}
for child_name in infos["RootCanvas"].children:
    child = infos[child_name]          # look the child up by name
    print(child.widget_name, child.widget_class, child.is_variable)

get_widget_snapshot(path) returns full data (hierarchy + slot + all properties) for a valid path — if it comes back empty, the path is wrong; do not conclude the widget is empty.

Full field tables for every return type are in reference.md.

🚨 Auditing widgets (best-practices review) — use these exact APIs

For "do our widgets follow best practices?" style audits:

  • Property bindings (the #1 anti-pattern): in a snapshot's properties, any *Delegate entry (e.g. VisibilityDelegate, TextDelegate) with current_value of (null).None is unbound — a function name there means a polling property binding exists.
  • Tick/graph checks go through BlueprintService (a WBP is a Blueprint): list_graphs(path) → get_nodes_in_graph(path, "EventGraph") → find Event Tick → get_node_pins(path, graph, node_id) and check each pin's connected flag. A Tick node with no connected pins is just the default stub, not live logic.
  • These methods do NOT exist — do not guess them: BlueprintService.get_graphs, get_functions, get_connected_nodes, unreal.find_class. Use list_graphs, list_functions, get_nodes_in_graph, get_node_details (includes pin connections), and unreal.load_class(None, path) instead.
Show full SKILL.md (688 more words)Show less
Slot editing via set_property

set_property edits slot layout through these aliases (string values):

  • Canvas children: Position X/Y, Size X/Y, Anchor Min X/Y, Anchor Max X/Y, Alignment X/Y (pivot — set to 0.5 with anchors at 0.5 to truly center), ZOrder (or Z Order).
  • Box/Overlay children (VerticalBox/HorizontalBox/Overlay): Horizontal Alignment / Vertical Alignment (values Fill/Left/Center/Right/Top/Bottom), Padding (one value or (Left=..,Top=..,Right=..,Bottom=..)), Padding Left/Top/Right/Bottom, and on box slots Size Rule (Fill/Automatic) + Size Value.
python
unreal.WidgetService.set_property(path, "PlayButton", "ZOrder", "5")
unreal.WidgetService.set_property(path, "HeaderRow", "Vertical Alignment", "Top")
unreal.WidgetService.set_property(path, "HeaderRow", "Padding", "8")

Shadowed names prefer the WIDGET (fixed in issue #553). A name that exists on both a widget and its slot (e.g. HorizontalAlignment on a Border sitting in an Overlay) now writes the widget's own property; a log warning notes the ambiguity. To target the slot explicitly, prefix with Slot. — e.g. set_property(path, "BackgroundBorder", "Slot.HorizontalAlignment", "Center") (value aliases like Fill/Center still work behind the prefix). Names that exist only as slot aliases (the lists above) keep resolving to the slot with no prefix needed.

Reparenting — reparent_widget

Move an existing widget to a new parent panel (preserves the widget object/GUID):

python
unreal.WidgetService.reparent_widget(path, "BackgroundImage", "MainContainer")

Rejects moving a panel into itself/a descendant; the root cannot be reparented.

Panel types
TypePurpose
CanvasPanelAbsolute positioning (X, Y coords)
VerticalBoxStack children vertically
HorizontalBoxStack children horizontally
OverlayStack children on top of each other

Task Index

Pick the task, load its workflow section, and/or run its sample script via execute_python_code. Sample scripts under scripts/ are runnable examples — edit the variables at the top, then execute.

TaskWorkflowSample script (run via execute_python_code)
Create a Widget Blueprintworkflows.md → Create Widget Blueprintscripts/create_widget.txt
Build a menu (root + panel + buttons)workflows.md → Build a Menuscripts/build_menu.txt
Position widgets on a CanvasPanelworkflows.md → Canvas Positioning—
Inspect a widget (hierarchy + properties)workflows.md → Inspect a Widgetscripts/inspect_hierarchy.txt
Apply full font stylingworkflows.md → Font Stylingscripts/apply_font.txt
Apply full brush stylingworkflows.md → Brush Stylingscripts/apply_brush.txt
Author a widget animationworkflows.md → Widget Animationscripts/create_animation.txt
Bind a widget event to a functionworkflows.md → Bind Event—
Rename / remove a widgetworkflows.md → Edit the Hierarchy—
Edit slot layout (z-order, alignment, padding) / reparentSKILL.md → Slot editingscripts/edit_slots.txt
Capture a preview PNGworkflows.md → Capture Previewscripts/capture_preview.txt
Inspect a widget live in PIEworkflows.md → PIE Runtime Checkscripts/pie_inspect.txt
Add MVVM ViewModel + bindingsmvvm.mdscripts/mvvm_hud.txt

Sub-docs

Load these only when the task needs them — read the sibling file directly under Plugins/VibeUE/Content/Skills/umg-widgets/ (the engine AgentSkillToolset GetSkills is the loader that exposes this skill; there is no vibeue-skills-manager tool):

  • workflows.md — step-by-step task workflows with copy-paste Python for every task above.
  • reference.md — field-name tables for every return type (FWidgetInfo, FWidgetComponentSnapshot, FWidgetSlotInfo, FWidgetFontInfo, FWidgetBrushInfo, FWidgetAnimInfo, FWidgetPreviewResult, FPIEWidgetHandle), the WidgetService action list, common properties, and event names.
  • mvvm.md — MVVM ViewModel support: rules, creation types, binding modes, field names, and full add/bind/list/remove workflows.

Verification (do this before claiming success)

  1. After hierarchy edits: re-read with get_widget_snapshot(path) and confirm the expected widgets/parents.
  2. After property/style edits: read the value back (get_property / get_font / get_brush).
  3. Open/compile the WBP and confirm no errors, then unreal.EditorAssetLibrary.save_asset(path).

Never report a widget as created/configured until it appears in a fresh get_widget_snapshot result.

Additional gotchas

  • capture_preview renders correct gamma/colour now, but still confirm slot values with get_component_snapshot and layout in PIE. UMG colours are LINEAR — a dark sRGB red is about (0.035, 0.002, 0.002).
  • Slot values written through ObjectIterator are discarded on the next compile; set them with set_property(path, widget, "Slot.<Prop>", value) or in C++ NativeConstruct.
  • A fresh WBP has no root: the first add_component(path, type, name, parent_name="") becomes it. BindWidget binds only when the tree widget is is_variable=True; reading a bound member from Python is blocked, so enumerate ObjectIterator(unreal.TextBlock) filtered by the instance path.
  • bind_event is only provably bound on the GameInstance_*-outered PIE instance (asset/preview instances always read unbound); simulate a click with on_clicked.broadcast() on that instance. Hand-built bound-event nodes compile but never fire — use create_component_bound_event.
  • A widget can be fully authored yet never compiled; compile a legacy widget and read the error first. UE 5.8 renamed WidgetBlueprintLibrary to unreal.WidgetLibrary, and UserWidget instances do not expose get_widget_from_name.
  • Input modes: a UI-only mode drops the first WASD press after it closes, so use SetInputMode_GameAndUIEx in Construct; the input mode survives ServerTravel; DefaultInput.ini holds a full serialised InputSettings block mid-file, so a key appended at the section top is silently overridden.

© kevinpbuckley, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (scripts) in Content/Skills/umg-widgets of kevinpbuckley/VibeUE.

  • SKILL.md
  • mvvm.md
  • reference.md
  • scripts/apply_brush.txt
  • scripts/apply_font.txt
  • scripts/build_menu.txt
  • scripts/capture_preview.txt
  • scripts/create_animation.txt
  • scripts/create_widget.txt
  • scripts/edit_slots.txt
  • scripts/inspect_hierarchy.txt
  • scripts/mvvm_hud.txt
  • scripts/pie_inspect.txt
  • workflows.md

Open the folder on GitHubat commit dc051be

Compare with similar skills

Umg Widgets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Umg Widgets compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Umg Widgets this skillkevinpbuckley/VibeUE730—~4.1kAutomated safety check: PassMIT
Image to Three.js Modelimg2threejs/img2threejs18k1 repos~8.2kAutomated safety check: PassApache-2.0
Web CloneJane-xiaoer/claude-skill-web-clone1k1 repos~2.7kAutomated safety check: PassMIT
Threejs Game Directormajidmanzarpour/threejs-game-skills2.5k—~2.2kAutomated safety check: PassMIT
Game Asset Generatorhtdt/godogen7.1k—~2.8kAutomated safety check: PassMIT
Threejs Gameplay Systemsvalkor-ai/loom1.2k1 repos~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed
  • Web Clone

    Jane-xiaoer/claude-skill-web-clone

    网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…

    1k GitHub starsUsed in 1 repo~2.7k tokens
    Game DevelopmentAuto-check passed
  • Threejs Game Director

    majidmanzarpour/threejs-game-skills

    Entrypoint for building, upgrading, and finishing Three.js browser games.

    2.5k GitHub stars~2.2k tokensUpdated 13 days ago
    Game DevelopmentAuto-check passed
  • Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.

    7.1k GitHub stars~2.8k tokensUpdated 9 days ago
    Game DevelopmentAuto-check passed
  • Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…

    1.2k GitHub starsUsed in 1 repo~1.4k tokens
    Game DevelopmentAuto-check passed
  • Uloop Execute Dynamic Code

    CyberAgentGameEntertainment/NovaShader

    Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.

    1.6k GitHub starsUsed in 1 repo~1.9k tokens
    Game DevelopmentAuto-check passed

More from kevinpbuckley/VibeUE

All 39 skills in this repo
  • Unreal Animation Bone Editor

    kevinpbuckley/VibeUE

    Previews, validates and bakes bone-rotation edits on Unreal Engine AnimSequences, enforcing a coordinate space and a constraint-checked preview-validate-bake loop.

    730 GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Animation Montage

    kevinpbuckley/VibeUE

    Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings.

    730 GitHub stars~3.6k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal AnimSequence Editor

    kevinpbuckley/VibeUE

    Creates and edits AnimSequence keyframes and bone tracks in Unreal Engine through AnimSequenceService, following an inspect, preview, validate and bake workflow with correct bone-space handling.

    730 GitHub stars~3.2k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Asset Import and Export

    kevinpbuckley/VibeUE

    Imports files into Unreal Engine, exports textures, reads the Content Browser selection and checks open assets via VibeUE, plus mesh reimport material fixes.

    730 GitHub stars~6.5k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Engine Settings Control

    kevinpbuckley/VibeUE

    Changes Unreal Engine console variables, scalability levels and raw INI values through VibeUE's Python API, now that registered settings moved to the engine's own toolset.

    730 GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Unreal Enhanced Input Setup

    kevinpbuckley/VibeUE

    Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.

    730 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed

Questions about Umg Widgets

What does Umg Widgets do?

Create and modify UMG Widget Blueprints (UI) — build the widget hierarchy, set properties, style fonts/brushes, author widget animations, bind events, capture previews, run PIE checks, and wire MVVM…. Umg Widgets is an agent skill from kevinpbuckley/VibeUE. Create and modify UMG Widget Blueprints (UI) — build the widget hierarchy, set properties, style fonts/brushes, author widget animations, bind events, capture previews, run PIE checks, and wire MVVM ViewModels.

When should I use Umg Widgets?

Umg Widgets fits situations like: the user asks to create a UI/HUD/menu; arrange widgets (Button; animate a widget; set up data bindings in a Widget Blueprint (WBP).

How do I install Umg Widgets in Claude Code?

Run `npx skills add kevinpbuckley/VibeUE --skill umg-widgets -a claude-code`. Or copy the skill folder (Content/Skills/umg-widgets in kevinpbuckley/VibeUE) into .claude/skills/umg-widgets in your project. Claude Code loads it when a task matches its description.

How do I install Umg Widgets in Codex?

Run `npx skills add kevinpbuckley/VibeUE --skill umg-widgets -a codex`. Or copy the skill folder (Content/Skills/umg-widgets in kevinpbuckley/VibeUE) into .agents/skills/umg-widgets in your project. Codex loads it when a task matches its description.

Can I use Umg Widgets in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kevinpbuckley/VibeUE --skill umg-widgets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/umg-widgets, .gemini/skills/umg-widgets, .github/skills/umg-widgets and .opencode/skills/umg-widgets in your project.

What does Umg Widgets need to run?

SKILL.md names no scripts, command-line tools or credentials: Umg Widgets is instructions for the agent only. Our summary lists: Python 3.

Does Umg Widgets access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Umg Widgets safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Umg Widgets use?

Umg Widgets is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Umg Widgets use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Umg Widgets?

Skills that share tags, products or a category with Umg Widgets: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.5k stars) and Game Asset Generator (htdt/godogen, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Umg Widgets?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 730 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 7, 2026.

Source: kevinpbuckley/VibeUE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.