PYTHON-FIRST ARCHITECTURE
VibeUE uses a Python-first architecture that gives AI assistants full access to Unreal Engine through MCP discovery tools and specialized Python services.
Discover APIs at runtime, execute Python code in Unreal context, and use high-level services for common game development tasks.
🏗️ How It Works
MCP Discovery Tools
Lightweight tools for exploring and executing Python in Unreal
Python API Services
High-level services for common game development tasks
Full Unreal Python API
Direct access to all unreal.* modules
Load Skills → Discover API → Execute Code Workflow
🔍 MCP Discovery & Execution Tools
Lightweight MCP tools for exploring and executing Python code in Unreal Engine context
discover_python_module
Inspect module contents - classes, functions, and constants available in any Python module
discover_python_class
Get class methods, properties, and inheritance hierarchy for any class
discover_python_function
Get function signatures, parameters, and docstrings for any callable
execute_python_code
Run Python code directly in Unreal Editor context with full API access
list_python_subsystems
List all available Unreal Engine editor subsystems accessible via Python
manage_skills
Load domain-specific knowledge (blueprints, materials, etc.) for better AI assistance
manage_asset
Search, open, save, move, duplicate, and delete assets safely through a single MCP workflow tool
read_logs
Read and filter Unreal Engine log files with regex support for debugging and analysis
terrain_data
Generate heightmaps and map images from real-world terrain data for Unreal Engine landscape import. Actions: generate_heightmap, preview_elevation, get_map_image, list_styles
deep_research
Web research and GPS geocoding via DuckDuckGo and Jina Reader. Actions: search, fetch_page, geocode, reverse_geocode
Example: Discovering an API
# 1. Discover what's in a service
discover_python_class("unreal.BlueprintService", method_filter="variable")
# Response shows methods like:
# - add_variable(path, name, type, default_value, ...)
# - remove_variable(path, name)
# - list_variables(path)
# - get_variable_info(path, name)
# 2. Execute code using discovered API
execute_python_code("""
import unreal
path = unreal.BlueprintService.create_blueprint("BP_Player", "Actor", "/Game/Blueprints")
unreal.BlueprintService.add_variable(path, "Health", "Float", "100.0")
unreal.BlueprintService.compile_blueprint(path)
""") 🐍 VibeUE Python API Services
High-level services exposed to Python for common game development tasks. All accessible via unreal.<ServiceName>.<method>()
📘 BlueprintService
116 methodsComplete Blueprint lifecycle, variables, functions, components, nodes, event dispatchers (multicast delegates + broadcast nodes), timelines (float/vector/color/event tracks + key CRUD), and custom event input pin CRUD
▶ View representative methods
🎬 AnimGraphService
48 methodsAnimation Blueprint state machines, states, transitions, transition rules (bool / comparison / automatic), entry state, a declarative one-call builder, validation, and animation nodes
▶ View representative methods
🎞️ AnimSequenceService
89 methodsAnimation sequence CRUD: discovery, creation, bone tracks, notifies, curves, sync markers, root motion
▶ View representative methods
🥊 AnimMontageService
62 methodsAnimation montages with sections, slots, segments, branching points, and blend settings for combo systems
▶ View representative methods
🦴 SkeletonService
53 methodsSkeleton & skeletal mesh manipulation: bones, sockets, retargeting, curves, blend profiles
▶ View representative methods
🎨 MaterialService
30 methodsMaterial and material instance creation, properties, and parameters
▶ View representative methods
🔗 MaterialNodeService
41 methodsMaterial graph expressions and connections
▶ View representative methods
🖼️ WidgetService
41 methodsUMG widget blueprints, snapshots, styling, animations, preview/PIE validation, and MVVM bindings
▶ View representative methods
🎮 InputService
23 methodsEnhanced Input actions, contexts, modifiers, and triggers
▶ View representative methods
📁 AssetDiscoveryService
20 methodsAsset search, import/export, and references
▶ View representative methods
📊 DataAssetService
11 methodsUDataAsset instances and properties
▶ View representative methods
📋 DataTableService
15 methodsDataTable rows and structure management
▶ View representative methods
🧩 EnumStructService
20 methodsUser-defined enums and structs: create, edit, inspect, and delete
▶ View representative methods
🏔️ LandscapeService
68 methodsLandscape creation, sculpting, heightmaps, weight layer painting, visibility holes, and spline-based road/path creation
▶ View representative methods
🎨 LandscapeMaterialService
22 methodsLandscape material layers, blend nodes, layer info objects, and grass output for terrain shading
▶ View representative methods
🌿 FoliageService
15 methodsFoliage type management, instance scattering, layer-aware placement, and instance queries
▶ View representative methods
🏗️ ActorService
33 methodsLevel actor management - discovery, transforms, selection, spawning, and viewport camera helpers
▶ View representative methods
📸 ScreenshotService
6 methodsCapture editor windows, viewports, and per-asset-editor screenshots for AI vision capabilities
▶ View representative methods
🖥️ ViewportService
19 methodsActive editor viewport control - perspective and ortho views, layout switching, view modes, exposure, clip planes, and camera settings
▶ View representative methods
✨ NiagaraService
37 methodsCreate and manage Niagara VFX systems, emitters, parameters, settings discovery, and rapid iteration values
▶ View representative methods
🔥 NiagaraEmitterService
23 methodsManage Niagara emitter modules, renderers, and script properties
▶ View representative methods
📋 ProjectSettingsService
16 methodsConfigure project settings, editor preferences, UI appearance, and default maps
▶ View representative methods
⚙️ EngineSettingsService
23 methodsControl engine configuration: rendering, physics, audio, CVars, scalability, and garbage collection
▶ View representative methods
🏷️ GameplayTagService
8 methodsFull CRUD for Gameplay Tags: add, remove, rename, list with prefix filtering, check existence, inspect tag hierarchy. Tags are written to INI and registered at runtime — immediately visible in editor pickers
▶ View representative methods
🔊 SoundCueService
38 methodsCreate and edit SoundCue audio graphs — add wave players, random/mixer/concatenator nodes, wire connections, set volume/pitch/attenuation/sound class, import SoundWave assets
▶ View representative methods
🎛️ MetaSoundService
17 methodsCreate and edit MetaSound Source assets — add DSP nodes, wire audio pins, set input defaults, manage graph inputs/outputs for runtime-parameterisable procedural audio
▶ View representative methods
🗺️ RuntimeVirtualTextureService
4 methodsCreate Runtime Virtual Texture assets, place RVT volume actors, and assign RVTs to landscapes for efficient rendering
▶ View representative methods
🧠 StateTreeService
94 methodsCreate, inspect, and edit StateTree AI behavior assets with hierarchical states, state type and linked-state configuration, in-place state reparenting, tasks, Blueprint-capable evaluators, Blueprint-capable global tasks, enter conditions, transitions, parameters, theme colors, component overrides, evaluator, global-task, and per-task property bindings, utility AI considerations, and compile/save
▶ View representative methods
⚡ Full Unreal Engine Python API
Beyond the VibeUE services, you have direct access to ALL Unreal Engine Python APIs
unreal.EditorAssetLibrary
Asset operations - load, save, delete, duplicate, rename
unreal.EditorActorSubsystem
Level manipulation - actor spawning, selection, transforms
⚠️ Replaces deprecated EditorLevelLibrary
unreal.EditorUtilityLibrary
Editor utilities - selection, filtering, batch operations
unreal.SystemLibrary
System functions - paths, platform info, console commands
unreal.BlueprintEditorLibrary
Blueprint editor operations - compile, open, navigate
And Many More...
Full access to everything Unreal exposes via Python
🔧 Common Workflows
Create Blueprint with Variables
import unreal
# Create blueprint
path = unreal.BlueprintService.create_blueprint(
"BP_Player", "Actor", "/Game/Blueprints")
# Add variables
unreal.BlueprintService.add_variable(
path, "Health", "Float", "100.0")
unreal.BlueprintService.add_variable(
path, "MaxHealth", "Float", "100.0")
# Compile (REQUIRED before variable nodes)
unreal.BlueprintService.compile_blueprint(path)
# Save
unreal.EditorAssetLibrary.save_asset(path) Build Material Graph
import unreal
# Create material
path = "/Game/Materials/M_Custom"
unreal.MaterialService.create_material(
"M_Custom", "/Game/Materials")
# Create color parameter
param_id = unreal.MaterialNodeService.create_parameter(
path, "Vector", "BaseColor", "Surface", "", -300, 0)
# Connect to material output
unreal.MaterialNodeService.connect_to_output(
path, param_id, "", "BaseColor")
# Compile
unreal.MaterialService.compile_material(path) 🧠 Skills System - Domain Knowledge
34 lazy-loaded domain knowledge modules help AI understand critical rules, workflows, and common mistakes. Several skills (state-trees, blueprint-graphs, animsequence, landscape, landscape-auto-material) are split into a concise index plus sibling sub-docs loaded on demand.
blueprints
Lifecycle, variables, dispatchers, timelines
blueprint-graphs
Graph nodes, pins, wiring
animation-blueprint
State machines, states, transitions
animsequence
Keyframes, curves, notifies
animation-montage
Sections, slots, combo timing
animation-editing
General animation editing
materials
Creation, graph editing
enhanced-input
Actions, mappings, triggers
data-tables
Rows, JSON import/export
data-assets
Instances, properties
enum-struct
User-defined enums & structs
umg-widgets
UI creation, styling
level-actors
Manipulation, spawning
asset-management
Search, import/export
screenshots
Editor & per-asset capture
viewport
Camera, layout, view mode
niagara-systems
VFX system creation
niagara-emitters
Emitter modules
skeleton
Bones, sockets, retargeting
landscape
Terrain sculpting & splines
landscape-auto-material
Auto-blend materials, RVT
landscape-materials
Layer blending
foliage
Scatter & paint foliage
terrain-data
Real-world heightmaps
state-trees
AI state machines, tasks, transitions
gameplay-tags
Tag CRUD & hierarchy
metasounds
MetaSound graph authoring
sound-cues
Sound cue graph editing
project-settings
Project config, editor prefs
engine-settings
CVars, scalability, physics
pcg
Procedural content generation
pie-testing
Play-In-Editor automated checks
uv-mapping
UV channels, unwrap, lightmaps
vibeue
VibeUE workflow conventions
Using Skills
# List available skills
manage_skills(action="list")
# Load a specific skill for domain knowledge
manage_skills(action="load", skill_name="blueprints")
# Load multiple skills
manage_skills(action="load", skill_names=["blueprints", "enhanced-input"]) Have Questions About the Python API?
Check out our comprehensive FAQ covering installation, features, use cases, and troubleshooting.
📚 View FAQReady to Use the Python API?
Start exploring Unreal Engine with AI-powered Python development