Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions .changelogs/NEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@

## Added

- 9 new Python unit test files covering all v3.3–v3.8 ops modules: animation, audio, material_graph, datatable, struct_enum, input_system, mesh, pcg, statetree (327 tests total)
- Phase 7 smoke tests in `test-comprehensive-mcp.js` covering all 47 new tools from v3.3–v3.8
- `testToolStrict()` helper in comprehensive MCP test to reduce error-check boilerplate

## Fixed

- PCG plugin crash on `restart_listener()`: `unreal.PCGGraphInterface` type annotation in `pcg.py` was evaluated at import time, causing `AttributeError` that killed the listener. Fixed with `from __future__ import annotations` + `hasattr` import guard (mirrors Niagara pattern)
- PCG tools now registered conditionally — gracefully skipped when PCG plugin is absent, matching Niagara's optional registration pattern
## Changed
32 changes: 32 additions & 0 deletions .changelogs/v3.8.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Release v3.8.0

Released: 2026-04-02

## Features

- **Niagara VFX System** (v3.2) — 8 new MCP tools: create systems, add emitters/modules, configure renderers, compile, spawn actors, set parameters, list templates. Rewritten for UE 5.7 Python API
- **Performance Profiling** (v3.3) — 3 new MCP tools: `perf_rendering_stats`, `perf_gpu_stats`, `perf_scene_breakdown` for scene analysis and rendering cost inspection
- **Animation Blueprint System** (v3.4) — 8 new MCP tools: create ABPs, state machines, states, transitions, variables, montages, layer linking, and metadata inspection
- **Advanced Materials & Audio** (v3.5) — 10 new MCP tools: material graph editing (add/connect expressions, set properties, create functions, inspect graph), MetaSound asset creation and node routing
- **Data & Procedural Systems** (v3.6) — 12 new MCP tools: DataTable CRUD (create/add/get/update/delete rows), custom struct and enum creation, Enhanced Input System mapping
- **PCG & StateTree AI** (v3.7) — 14 new MCP tools: PCG graph creation and node management (195+ node types), StateTree asset authoring with states, transitions, tasks, evaluators, and bindings
- **Mesh & LOD Management** (v3.8) — 5 new MCP tools: mesh metadata inspection, FBX LOD import, LOD screen-size thresholds, auto LOD generation, per-LOD instance breakdown

## Testing

- 310 Python unit tests across all ops modules (up from 51 in v3.1.0)
- Phase 7 smoke tests in `test-comprehensive-mcp.js` covering all 47 new tools from v3.3–v3.8
Comment thread
atomantic marked this conversation as resolved.
Outdated
- `testToolStrict()` helper reduces error-check boilerplate in comprehensive E2E tests
Comment thread
atomantic marked this conversation as resolved.

## Bug Fixes

- PCG plugin crash on `restart_listener()`: `unreal.PCGGraphInterface` type annotation evaluated at import time caused `AttributeError`. Fixed with `from __future__ import annotations` + `hasattr` import guard
- PCG tools registered conditionally — gracefully skipped when PCG plugin absent (mirrors Niagara pattern)
- `test_performance` no longer overwrites shared `unreal` mock across test modules
- Restored closing triple-quote in `ops/__init__.py` docstring
- Niagara `set_parameter` complexity reduced — extracted typed dispatch helpers to satisfy linter
- E2E log scanner no longer flags expected error-handling test failures as CI failures

## Full Changelog

**Full Diff**: https://github.com/atomantic/UEMCP/compare/v3.1.0...v3.8.0
Binary file modified Demo/Content/Calibration.umap
Binary file not shown.
160 changes: 80 additions & 80 deletions PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
- [x] Update dev dependencies (TypeScript, ESLint plugins, tsx, ts-jest)
- [x] Bump version to 2.1.0

## Current Focus: v3.0.0 — Blueprint Graph Editing & Game Logic
## v3.0.0 — Blueprint Graph Editing & Game Logic ✅

The #1 gap vs competitors: we can create/compile/document Blueprints but cannot edit the visual graph. This transforms AI from "scene builder" to "game logic builder."

Expand Down Expand Up @@ -53,124 +53,124 @@ The #1 gap vs competitors: we can create/compile/document Blueprints but cannot
- [x] `blueprint_modify_component` — Set any component property via reflection
- [x] `blueprint_set_variable_default` — Set default values on CDO

## v3.1.0 — UMG Widget System
## v3.1.0 — UMG Widget System ✅

Full UI building capability — essential for any real game.

- [ ] `widget_create` — Create Widget Blueprint with parent class
- [ ] `widget_add_component` — Add UI components (TextBlock, Button, Image, Slider, Checkbox, ProgressBar, etc.)
- [ ] `widget_set_layout` — Position, size, anchors, z-order, alignment
- [ ] `widget_set_property` — Set component properties (text, color, font, opacity)
- [ ] `widget_bind_event` — Bind events (OnClicked, OnHovered, OnValueChanged, input events)
- [ ] `widget_set_binding` — Property bindings for dynamic data
- [ ] `widget_get_metadata` — Comprehensive widget inspection (components, layout, hierarchy, bindings)
- [ ] `widget_screenshot` — Capture widget preview for visual verification
- [x] `widget_create` — Create Widget Blueprint with parent class
- [x] `widget_add_component` — Add UI components (TextBlock, Button, Image, Slider, Checkbox, ProgressBar, etc.)
- [x] `widget_set_layout` — Position, size, anchors, z-order, alignment
- [x] `widget_set_property` — Set component properties (text, color, font, opacity)
- [x] `widget_bind_event` — Bind events (OnClicked, OnHovered, OnValueChanged, input events)
- [x] `widget_set_binding` — Property bindings for dynamic data
- [x] `widget_get_metadata` — Comprehensive widget inspection (components, layout, hierarchy, bindings)
- [x] `widget_screenshot` — Capture widget preview for visual verification

## v3.2.0 — Niagara VFX System
## v3.2.0 — Niagara VFX System ✅

Visual effects are a common AI-assisted task.

- [ ] `niagara_create_system` — Create Niagara systems (with templates)
- [ ] `niagara_add_emitter` — Add emitters to systems
- [ ] `niagara_add_module` — Add modules (spawn, update, render) to emitters
- [ ] `niagara_configure_module` — Set module parameters (float, vector, curve, enum)
- [ ] `niagara_set_renderer` — Configure sprite/mesh/ribbon renderers
- [ ] `niagara_compile` — Compile and save systems
- [ ] `niagara_spawn` — Create VFX actors in the world
- [ ] `niagara_get_metadata` — Inspect system structure
- [x] `niagara_create_system` — Create Niagara systems (with templates)
- [x] `niagara_add_emitter` — Add emitters to systems
- [x] `niagara_add_module` — Add modules (spawn, update, render) to emitters
- [x] `niagara_configure_module` — Set module parameters (float, vector, curve, enum)
- [x] `niagara_set_renderer` — Configure sprite/mesh/ribbon renderers
- [x] `niagara_compile` — Compile and save systems
- [x] `niagara_spawn` — Create VFX actors in the world
- [x] `niagara_get_metadata` — Inspect system structure

## v3.3.0 — Performance Profiling & Console
## v3.3.0 — Performance Profiling & Console ✅

Low effort, high utility.

- [ ] `perf_rendering_stats` — Draw calls, VRAM usage, instance breakdown
- [ ] `perf_gpu_stats` — GPU timing and memory
- [ ] `perf_scene_breakdown` — Per-mesh rendering costs, LOD breakdown
- [ ] `console_command` — Execute any UE console command directly
- [x] `perf_rendering_stats` — Draw calls, VRAM usage, instance breakdown
- [x] `perf_gpu_stats` — GPU timing and memory
- [x] `perf_scene_breakdown` — Per-mesh rendering costs, LOD breakdown
- [x] `console_command` — Execute any UE console command directly

## v3.4.0 — Animation Blueprint System
## v3.4.0 — Animation Blueprint System ✅

Required for character-driven games.

- [ ] `anim_create_blueprint` — Create Animation Blueprint with skeleton reference
- [ ] `anim_create_state_machine` — Build state machines programmatically
- [ ] `anim_add_state` — Add states with animation references
- [ ] `anim_add_transition` — Connect states with transition rules
- [ ] `anim_add_variable` — Add typed variables to ABP
- [ ] `anim_get_metadata` — Inspect states, variables, montages
- [ ] `anim_create_montage` — Create animation montages
- [ ] `anim_link_layer` — Animation layer stacking
- [x] `anim_create_blueprint` — Create Animation Blueprint with skeleton reference
- [x] `anim_create_state_machine` — Build state machines programmatically
- [x] `anim_add_state` — Add states with animation references
- [x] `anim_add_transition` — Connect states with transition rules
- [x] `anim_add_variable` — Add typed variables to ABP
- [x] `anim_get_metadata` — Inspect states, variables, montages
- [x] `anim_create_montage` — Create animation montages
- [x] `anim_link_layer` — Animation layer stacking

## v3.5.0 — Advanced Materials & Audio
## v3.5.0 — Advanced Materials & Audio ✅

### Material Graph Editing

- [ ] `material_add_expression` — Add expression nodes (texture sample, math, parameters, custom HLSL)
- [ ] `material_connect_expressions` — Link expression inputs/outputs
- [ ] `material_set_expression_property` — Configure expression settings
- [ ] `material_create_function` — Reusable material node graphs
- [ ] `material_get_graph` — Inspect material expression structure and connections
- [x] `material_add_expression` — Add expression nodes (texture sample, math, parameters, custom HLSL)
- [x] `material_connect_expressions` — Link expression inputs/outputs
- [x] `material_set_expression_property` — Configure expression settings
- [x] `material_create_function` — Reusable material node graphs
- [x] `material_get_graph` — Inspect material expression structure and connections

### MetaSound/Audio

- [ ] `audio_import` — Import WAV, MP3, OGG, FLAC, AIFF
- [ ] `audio_create_metasound` — Create MetaSound source/patch assets
- [ ] `audio_add_node` — Add audio nodes (oscillators, filters, envelopes)
- [ ] `audio_connect_nodes` — Audio routing between nodes
- [ ] `audio_set_parameter` — Configure audio parameters
- [x] `audio_import` — Import WAV, MP3, OGG, FLAC, AIFF
- [x] `audio_create_metasound` — Create MetaSound source/patch assets
- [x] `audio_add_node` — Add audio nodes (oscillators, filters, envelopes)
- [x] `audio_connect_nodes` — Audio routing between nodes
- [x] `audio_set_parameter` — Configure audio parameters

## v3.6.0 — Data & Procedural Systems
## v3.6.0 — Data & Procedural Systems ✅

### DataTable CRUD

- [ ] `datatable_create` — Create DataTables with struct definition
- [ ] `datatable_add_rows` — Add rows with property mapping
- [ ] `datatable_get_rows` — Query rows by name
- [ ] `datatable_update_row` — Modify existing rows
- [ ] `datatable_delete_row` — Remove rows
- [x] `datatable_create` — Create DataTables with struct definition
- [x] `datatable_add_rows` — Add rows with property mapping
- [x] `datatable_get_rows` — Query rows by name
- [x] `datatable_update_row` — Modify existing rows
- [x] `datatable_delete_row` — Remove rows

### Struct & Enum Creation

- [ ] `struct_create` — Create custom UE structs with typed properties
- [ ] `struct_update` — Modify existing structs
- [ ] `enum_create` — Create enum definitions
- [ ] `enum_get_values` — List enum values
- [x] `struct_create` — Create custom UE structs with typed properties
- [x] `struct_update` — Modify existing structs
- [x] `enum_create` — Create enum definitions
- [x] `enum_get_values` — List enum values

### Enhanced Input System

- [ ] `input_create_mapping` — Create input mappings with modifier support
- [ ] `input_list_actions` — List available input actions
- [ ] `input_get_metadata` — Input system introspection
- [x] `input_create_mapping` — Create input mappings with modifier support
- [x] `input_list_actions` — List available input actions
- [x] `input_get_metadata` — Input system introspection

## v3.7.0 — PCG & StateTree AI
## v3.7.0 — PCG & StateTree AI ✅

### Procedural Content Generation

- [ ] `pcg_create_graph` — Create PCG graphs (with built-in templates)
- [ ] `pcg_add_node` — Add nodes from 195+ available types
- [ ] `pcg_connect_nodes` — Wire node connections
- [ ] `pcg_set_node_property` — Configure node settings
- [ ] `pcg_search_palette` — Discover available node types
- [ ] `pcg_spawn_actor` — Create PCG component actors
- [ ] `pcg_execute` — Run procedural generation
- [x] `pcg_create_graph` — Create PCG graphs (with built-in templates)
- [x] `pcg_add_node` — Add nodes from 195+ available types
- [x] `pcg_connect_nodes` — Wire node connections
- [x] `pcg_set_node_property` — Configure node settings
- [x] `pcg_search_palette` — Discover available node types
- [x] `pcg_spawn_actor` — Create PCG component actors
- [x] `pcg_execute` — Run procedural generation

### StateTree AI

- [ ] `statetree_create` — Create StateTree assets with schema
- [ ] `statetree_add_state` — Add execution states
- [ ] `statetree_add_transition` — State transition logic
- [ ] `statetree_add_task` — Task execution nodes
- [ ] `statetree_add_evaluator` — Global evaluators
- [ ] `statetree_add_binding` — Property and target bindings
- [ ] `statetree_get_metadata` — Full structure inspection

## v3.8.0 — Mesh & LOD Management

- [ ] `mesh_get_metadata` — LOD count, vertices, triangles, bounds, materials, Nanite support
- [ ] `mesh_import_lod` — Import FBX into LOD slots
- [ ] `mesh_set_lod_screen_size` — Set LOD transition thresholds
- [ ] `mesh_auto_generate_lods` — Built-in mesh reduction
- [ ] `mesh_get_instance_breakdown` — Rendering cost per LOD
- [x] `statetree_create` — Create StateTree assets with schema
- [x] `statetree_add_state` — Add execution states
- [x] `statetree_add_transition` — State transition logic
- [x] `statetree_add_task` — Task execution nodes
- [x] `statetree_add_evaluator` — Global evaluators
- [x] `statetree_add_binding` — Property and target bindings
- [x] `statetree_get_metadata` — Full structure inspection

## v3.8.0 — Mesh & LOD Management ✅

- [x] `mesh_get_metadata` — LOD count, vertices, triangles, bounds, materials, Nanite support
- [x] `mesh_import_lod` — Import FBX into LOD slots
- [x] `mesh_set_lod_screen_size` — Set LOD transition thresholds
- [x] `mesh_auto_generate_lods` — Built-in mesh reduction
- [x] `mesh_get_instance_breakdown` — Rendering cost per LOD

## Backlog

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "uemcp",
"version": "3.1.0",
"version": "3.8.0",
"description": "Unreal Engine Model Context Protocol - AI Assistant Integration",
"keywords": [
"unreal-engine",
Expand Down
Loading
Loading