cd /news/developer-tools/vibeue-unreal-engine-vibe-coding-too… Β· home β€Ί topics β€Ί developer-tools β€Ί article
[ARTICLE Β· art-76351] src=github.com β†— pub= topic=developer-tools verified=true sentiment=Β· neutral

VibeUE: Unreal Engine Vibe Coding Tool

VibeUE, an MCP Expansion and AI Editor Toolset for Unreal Engine 5.8+, adds deep editor capabilities including terrain, audio, animation, Niagara, UMG, Blueprint authoring, and a PerformanceService for diagnosing frame rate issues. The tool complements Unreal's native AI toolsets by focusing on domains the engine does not cover, such as real-world terrain from GPS, Custom-HLSL scratch-pad modules, and performance profiling with Unreal Insights trace analysis. A free API key unlocks real-world terrain tools; everything else works without one.

read6 min views1 publishedJul 28, 2026
VibeUE: Unreal Engine Vibe Coding Tool
Image: source

VibeUE is the MCP Expansion + AI Editor Toolset for Unreal Engine 5.8+. Unreal 5.8 added a built-in MCP server and AI toolsets; VibeUE is an MCP Expansion that plugs straight into them and adds a deep AI Editor Toolset β€” a library of editor capabilities β€” Blueprints, materials, landscape, foliage, animation, Niagara, UMG, audio, StateTree, gameplay tags, input, UVs, performance/profiling, and more β€” registered into the engine's own ToolsetRegistry

and ModelContextProtocol

server, plus rich domain skills served through Unreal's native AgentSkill

system. Any MCP-capable agent (Claude Code, Cursor, Copilot, …) drives your editor through Unreal's standard MCP endpoint.

⚠️ VibeUE requires Unreal's native MCP to be set up firstβ€” enable theUnreal MCPplugin (which auto-enablesToolset Registry) and theEditor Toolsplugin, then start the MCP server. Follow Epic's guide:. VibeUE then expands that endpoint β€”[Unreal MCP in the Unreal Editor]no separate server and no in-editor chat.A free API key (set inEditor Preferences β†’ Plugins β†’ VibeUE) unlocks the real-worldterraintools; everything else works without one.

Unreal 5.8 ships its own AI toolsets (Blueprints, materials, actors, assets, meshes, data tables, …). VibeUE complements them β€” it focuses on the domains and depth the engine doesn't cover:

Terrain & worldβ€” Landscape sculpting/heightmaps/splines, landscape auto-materials + RVT, Foliage, procedural FPS** Map Blockout**, and** real-world terrain**(heightmaps + water from GPS).** Audio**β€” MetaSound and SoundCue graph authoring.** Animation assets**β€” AnimSequence keyframe editing, AnimMontage authoring, AnimBP state machines, Skeleton bone/socket/retarget/blend-profile editing.FX depthβ€” Niagara emitter color/curve authoring and** Custom-HLSL scratch-padmodules. UI**β€” UMG widgets with MVVM bindings, animation authoring, and preview/PIE validation.** Higher-order Blueprint authoring**β€” timelines, event dispatchers, delegates, custom-event pins, comment boxes, and a batchbuild_graph

builder.Editor safetyβ€”TransactionService

wraps the editor's transaction buffer (undo / redo / checkpoints) so an agent can group and roll back its own edits β€” the engine's toolsets expose none.⚑ Performance & profilingβ€” VibeUE's standout: see the dedicated section below.** Python-first access**β€” run anyunreal.*

Python in the editor and introspect the whole API.Web researchβ€” search / fetch / geocode for in-context research and terrain workflows.

It deliberately does not duplicate the engine's general tools (basic asset/actor/blueprint/material CRUD, screenshots, logs, PIE) β€” agents use Unreal's native toolsets for those.

Unreal's native AI toolsets have zero performance tooling β€” they can start PIE/Simulate but can't measure anything. VibeUE's

PerformanceService

fills that gap so an agent can actually diagnose and fixframe rate:

β€” Game/Render/GPU/RHI thread split + aframe_timing()

CPU-vs-GPU-bound verdict and a concrete next-step hint.Run this firstβ€” optimising the GPU does nothing on a CPU-bound frame.Unreal Insights captureβ€”start_trace

/stop_trace

/get_trace_status

, withbookmark

andregion_start

/region_end

markers.β€” reads the traceanalyse()

and log back and returns a perf summary (frame stats, worst frames, hitches, notable log lines).Trace-attachedβ€” profile a representative standalone build, not just the editor viewport.start_standalone

import unreal
print(unreal.PerformanceService.frame_timing())   # CPU vs GPU bound β€” diagnose FIRST
unreal.PerformanceService.start_trace("cap", "")   # Insights trace
unreal.PerformanceService.stop_trace()
print(unreal.PerformanceService.analyse("both", ""))

Pair with the profiling

and frame-rate

skills for the full CPU/GPU drill-down.

VibeUE plugs into three native UE 5.8+ systems:

Toolsets(ToolsetRegistry

) β€” VibeUE's services register asUToolsetDefinition

s, so their methods become AICallable tools on the MCP endpoint. They're alsoBlueprintCallable

, so the same methods are callable from Python asunreal.<Name>Service.<method>()

.MCP server(ModelContextProtocol

) β€” a small set of VibeUE utility tools are registered directly on the endpoint:execute_python_code

,discover_python_module

/_class

/_function

,list_python_subsystems

,deep_research

,terrain_data

.Skills(AgentSkillToolset

) β€” ~34 markdown skill packs register as nativeUAgentSkill

s, discoverable viaListSkills

and loaded lazily viaGetSkills

, alongside the engine's own skills.

Efficient usage (for agents): execute_python_code

is the workhorse β€” it batches a whole multi-step task into one round-trip and reaches every VibeUE service plus the full unreal.*

API. Use call_tool

only for skills and the few engine toolsets with no Python path (screenshots, etc.). See Content/samples/AGENTS.md.sample for the full agent guide.

Requirements: Unreal Engine 5.8+ Β· Git

VibeUE is an expansion of Unreal's built-in MCP support, so enable that first. Full details in Epic's guide: ** Unreal MCP in the Unreal Editor**.

Edit → Plugins→ enable** Unreal MCP**(this auto-enables** Toolset Registry**) and** Editor Tools**(the engine's own AI toolsets, so agents get both). These are Experimental. Restart when prompted.** Edit → Editor Preferences → General → Model Context Protocol→ enable Auto Start Server**(or run the console commandModelContextProtocol.StartServer

). Default endpointhttp://127.0.0.1:8000/mcp

(port/path configurable). EnablingTool Search keeps an agent's context small β€” it seeslist_toolsets

/describe_toolset

/call_tool

and loads tools on demand.

cd /path/to/YourProject/Plugins
git clone https://github.com/kevinpbuckley/VibeUE.git

Build with the project script:

Plugins/VibeUE/BuildAndLaunchGame.ps1                  # builds + launches the editor
Plugins/VibeUE/BuildAndLaunchGame.ps1 -StrictRebuild   # full recompile (warnings-as-errors)

On Linux or macOS, use the platform-detecting shell script:

Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5
Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5 --strict-rebuild

Then Edit β†’ Plugins β†’ enable VibeUE and restart. Its services, tools, and skills now register onto the same endpoint, alongside the engine's own.

Two console commands from the editor (open the console with ```

):

1. Write the MCP server config (.mcp.json

at the project root):

ModelContextProtocol.GenerateClientConfig ClaudeCode

(supports ClaudeCode

, Cursor

, VSCode

, Gemini

, Codex

, or All

.)

2. Write VibeUE's agent guide so the assistant uses the efficient patterns:

VibeUE.GenerateAgentConfig ClaudeCode

This writes the guide to the correct file for your agent β€” CLAUDE.md

(Claude Code), GEMINI.md

(Gemini), AGENTS.md

(Codex / Hermes / Cursor), or .github/copilot-instructions.md

(Copilot) β€” or pass All

to write CLAUDE.md + GEMINI.md + AGENTS.md at once. It resolves the plugin location automatically, so it works whether VibeUE was installed from FAB or Git. The guide goes in a managed block, so re-run any time to refresh without disturbing your own notes. Pass import

to link the guide with a one-line @import

instead of copying it (Claude Code / Gemini only β€” other agents don't resolve imports, so they always get a copy).

The MCP server is loopback-only with no authentication β€” same-machine use only (per Epic's docs).

The guide teaches: discover before you call (discover_python_class

), batch with execute_python_code

, load skills via ListSkills

/GetSkills

, and when to reach for deep_research

/ terrain_data

.

Skills are lazy-loaded domain knowledge (workflows, gotchas, property formats) served by Unreal's native AgentSkillToolset

:

call_tool(tool_name="ListSkills", toolset_name="ToolsetRegistry.AgentSkillToolset")

call_tool(tool_name="GetSkills", toolset_name="ToolsetRegistry.AgentSkillToolset",
          arguments={"skillPaths": ["/VibeUE/Python/init_unreal_PY.VibeUE_blueprints"]})

ListSkills

is the live source of truth for what's available (it reads each pack's SKILL.md

). Skills tell you what to do and why; use discover_python_class('unreal.<Name>Service', method_filter='…')

for exact signatures before writing code.

Native engine prerequisites (enable in Step 1 β€” Epic's MCP stack):

Plugin Purpose
Unreal MCP (ModelContextProtocol )
The native MCP server endpoint
Toolset Registry (ToolsetRegistry )
Native AI toolset + AgentSkill registration (auto-enabled by Unreal MCP)
Editor Tools (EditorToolset )
The engine's own AI toolsets β€” VibeUE complements these

Enabled automatically by VibeUE: PythonScriptPlugin

(the unreal.*

API), EditorScriptingUtilities

, and the domain plugins its services need β€” Niagara

, MetaSound

, EnhancedInput

, ModelViewViewModel

, StateTree

, MeshModelingToolset

, GameplayTagsEditor

. (VibeUE also depends on ToolsetRegistry

  • ModelContextProtocol

, so enabling VibeUE pulls them in β€” but you still enable Editor Tools and start the server per Step 1.)

BuildAndLaunchGame.ps1

(project root or Plugins/VibeUE/

) stops the running editor, builds, and relaunches:

-StrictRebuild

β€” full plugin recompile under warnings-as-errors-Clean

β€” wipe intermediate/binaries first-SkipBuild

β€” relaunch only

VibeUE intentionally keeps no static method catalog in this README β€” the surface evolves with the engine. The authoritative, always-current references are:

β†’ which domains exist and when to use them.ListSkills

β†’ exact method signatures.discover_python_class('unreal.<Name>Service')

β†’ the toolset's tools + JSON schemas (token-heavy; prefer skills + discovery).describe_toolset('VibeUE.<Name>Service')

MIT β€” see LICENSE. Project home: https://www.vibeue.com/

── more in #developer-tools 4 stories Β· sorted by recency
github.com Β· Β· #developer-tools
Newspeak
── more on @vibeue 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/vibeue-unreal-engine…] indexed:0 read:6min 2026-07-28 Β· β€”