$git clone https://github.com/kevinpbuckley/VibeUEhttps://www.vibeue.com/
| 1 | <div align="center"> |
| 2 | |
| 3 | # VibeUE — AI-Powered Unreal Engine Development |
| 4 | |
| 5 | ### 🧩 MCP Expansion + AI Editor Toolset for Unreal Engine 5.8+ |
| 6 | |
| 7 | https://www.vibeue.com/ |
| 8 | |
| 9 | [](https://www.unrealengine.com) |
| 10 | [](https://modelcontextprotocol.io) |
| 11 | [](LICENSE) |
| 12 | [](https://discord.gg/hZs73ST59a) |
| 13 | [](https://www.vibeue.com/donate) |
| 14 | |
| 15 | </div> |
| 16 | |
| 17 | **VibeUE is the MCP Expansion + AI Editor Toolset for Unreal Engine 5.8+.** Unreal 5.8 added a |
| 18 | built-in MCP server and AI toolsets; VibeUE is an **MCP Expansion** that plugs straight into them and |
| 19 | adds a deep **AI Editor Toolset** — a library of editor capabilities — Blueprints, materials, landscape, foliage, animation, Niagara, UMG, audio, StateTree, |
| 20 | gameplay tags, input, UVs, **performance/profiling**, and more — registered into the engine's own |
| 21 | `ToolsetRegistry` and `ModelContextProtocol` server, plus rich domain **skills** served through |
| 22 | Unreal's native `AgentSkill` system. Any MCP-capable agent (Claude Code, Cursor, Copilot, …) drives |
| 23 | your editor through Unreal's standard MCP endpoint. |
| 24 | |
| 25 | > ⚠️ **VibeUE requires Unreal's native MCP to be set up first** — enable the **Unreal MCP** plugin |
| 26 | > (which auto-enables **Toolset Registry**) and the **Editor Tools** plugin, then start the MCP server. |
| 27 | > Follow Epic's guide: **[Unreal MCP in the Unreal Editor](https://dev.epicgames.com/documentation/unreal-engine/unreal-mcp-in-unreal-editor)**. |
| 28 | > VibeUE then expands that endpoint — **no separate server and no in-editor chat.** A free API key |
| 29 | > (set in **Editor Preferences → Plugins → VibeUE**) unlocks the real-world **terrain** tools; everything |
| 30 | > else works without one. |
| 31 | |
| 32 | --- |
| 33 | |
| 34 | ## ✨ What VibeUE adds |
| 35 | |
| 36 | Unreal 5.8 ships its own AI toolsets (Blueprints, materials, actors, assets, meshes, data tables, …). |
| 37 | VibeUE **complements** them — it focuses on the domains and depth the engine doesn't cover: |
| 38 | |
| 39 | - **Terrain & world** — Landscape sculpting/heightmaps/splines, landscape auto-materials + RVT, |
| 40 | Foliage, procedural FPS **Map Blockout**, and **real-world terrain** (heightmaps + water from GPS). |
| 41 | - **Audio** — MetaSound and SoundCue graph authoring. |
| 42 | - **Animation assets** — AnimSequence keyframe editing, AnimMontage authoring, AnimBP state machines, |
| 43 | Skeleton bone/socket/retarget/blend-profile editing. |
| 44 | - **FX depth** — Niagara emitter color/curve authoring and **Custom-HLSL scratch-pad** modules. |
| 45 | - **UI** — UMG widgets with MVVM bindings, animation authoring, and preview/PIE validation. |
| 46 | - **Higher-order Blueprint authoring** — timelines, event dispatchers, delegates, custom-event pins, |
| 47 | comment boxes, and a batch `build_graph` builder. |
| 48 | - **Editor safety** — `TransactionService` wraps the editor's transaction buffer (undo / redo / |
| 49 | checkpoints) so an agent can group and roll back its own edits — the engine's toolsets expose none. |
| 50 | - **⚡ Performance & profiling** — VibeUE's standout: see the dedicated section below. |
| 51 | - **Python-first access** — run any `unreal.*` Python in the editor and introspect the whole API. |
| 52 | - **Web research** — search / fetch / geocode for in-context research and terrain workflows. |
| 53 | |
| 54 | It deliberately **does not duplicate** the engine's general tools (basic asset/actor/blueprint/material |
| 55 | CRUD, screenshots, logs, PIE) — agents use Unreal's native toolsets for those. |
| 56 | |
| 57 | --- |
| 58 | |
| 59 | ## ⚡ Performance & Profiling (flagship) |
| 60 | |
| 61 | **Unreal's native AI toolsets have *zero* performance tooling** — they can start PIE/Simulate but can't |
| 62 | measure anything. VibeUE's `PerformanceService` fills that gap so an agent can actually *diagnose and |
| 63 | fix* frame rate: |
| 64 | |
| 65 | - **`frame_timing()`** — Game/Render/GPU/RHI thread split + a **CPU-vs-GPU-bound verdict** a |