unreal-engine-mcp-server 0.3.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.production +1 -1
- package/.github/copilot-instructions.md +45 -0
- package/.github/workflows/publish-mcp.yml +1 -1
- package/README.md +22 -7
- package/dist/index.js +137 -46
- package/dist/prompts/index.d.ts +10 -3
- package/dist/prompts/index.js +186 -7
- package/dist/resources/actors.d.ts +19 -1
- package/dist/resources/actors.js +55 -64
- package/dist/resources/assets.d.ts +3 -2
- package/dist/resources/assets.js +117 -109
- package/dist/resources/levels.d.ts +21 -3
- package/dist/resources/levels.js +31 -56
- package/dist/tools/actors.d.ts +3 -14
- package/dist/tools/actors.js +246 -302
- package/dist/tools/animation.d.ts +57 -102
- package/dist/tools/animation.js +429 -450
- package/dist/tools/assets.d.ts +13 -2
- package/dist/tools/assets.js +58 -46
- package/dist/tools/audio.d.ts +22 -13
- package/dist/tools/audio.js +467 -121
- package/dist/tools/blueprint.d.ts +32 -13
- package/dist/tools/blueprint.js +699 -448
- package/dist/tools/build_environment_advanced.d.ts +0 -1
- package/dist/tools/build_environment_advanced.js +236 -87
- package/dist/tools/consolidated-tool-definitions.d.ts +232 -15
- package/dist/tools/consolidated-tool-definitions.js +124 -255
- package/dist/tools/consolidated-tool-handlers.js +749 -766
- package/dist/tools/debug.d.ts +72 -10
- package/dist/tools/debug.js +170 -36
- package/dist/tools/editor.d.ts +9 -2
- package/dist/tools/editor.js +30 -44
- package/dist/tools/foliage.d.ts +34 -15
- package/dist/tools/foliage.js +97 -107
- package/dist/tools/introspection.js +19 -21
- package/dist/tools/landscape.d.ts +1 -2
- package/dist/tools/landscape.js +311 -168
- package/dist/tools/level.d.ts +3 -28
- package/dist/tools/level.js +642 -192
- package/dist/tools/lighting.d.ts +14 -3
- package/dist/tools/lighting.js +236 -123
- package/dist/tools/materials.d.ts +25 -7
- package/dist/tools/materials.js +102 -79
- package/dist/tools/niagara.d.ts +10 -12
- package/dist/tools/niagara.js +74 -94
- package/dist/tools/performance.d.ts +12 -4
- package/dist/tools/performance.js +38 -79
- package/dist/tools/physics.d.ts +34 -10
- package/dist/tools/physics.js +364 -292
- package/dist/tools/rc.js +98 -24
- package/dist/tools/sequence.d.ts +1 -0
- package/dist/tools/sequence.js +146 -24
- package/dist/tools/ui.d.ts +31 -4
- package/dist/tools/ui.js +83 -66
- package/dist/tools/visual.d.ts +11 -0
- package/dist/tools/visual.js +245 -30
- package/dist/types/tool-types.d.ts +0 -6
- package/dist/types/tool-types.js +1 -8
- package/dist/unreal-bridge.d.ts +32 -2
- package/dist/unreal-bridge.js +621 -127
- package/dist/utils/elicitation.d.ts +57 -0
- package/dist/utils/elicitation.js +104 -0
- package/dist/utils/error-handler.d.ts +0 -33
- package/dist/utils/error-handler.js +4 -111
- package/dist/utils/http.d.ts +2 -22
- package/dist/utils/http.js +12 -75
- package/dist/utils/normalize.d.ts +4 -4
- package/dist/utils/normalize.js +15 -7
- package/dist/utils/python-output.d.ts +18 -0
- package/dist/utils/python-output.js +290 -0
- package/dist/utils/python.d.ts +2 -0
- package/dist/utils/python.js +4 -0
- package/dist/utils/response-validator.d.ts +6 -1
- package/dist/utils/response-validator.js +66 -13
- package/dist/utils/result-helpers.d.ts +27 -0
- package/dist/utils/result-helpers.js +147 -0
- package/dist/utils/safe-json.d.ts +0 -2
- package/dist/utils/safe-json.js +0 -43
- package/dist/utils/validation.d.ts +16 -0
- package/dist/utils/validation.js +70 -7
- package/mcp-config-example.json +2 -2
- package/package.json +11 -10
- package/server.json +37 -14
- package/src/index.ts +146 -50
- package/src/prompts/index.ts +211 -13
- package/src/resources/actors.ts +59 -44
- package/src/resources/assets.ts +123 -102
- package/src/resources/levels.ts +37 -47
- package/src/tools/actors.ts +269 -313
- package/src/tools/animation.ts +556 -539
- package/src/tools/assets.ts +59 -45
- package/src/tools/audio.ts +507 -113
- package/src/tools/blueprint.ts +778 -462
- package/src/tools/build_environment_advanced.ts +312 -106
- package/src/tools/consolidated-tool-definitions.ts +136 -267
- package/src/tools/consolidated-tool-handlers.ts +871 -795
- package/src/tools/debug.ts +179 -38
- package/src/tools/editor.ts +35 -37
- package/src/tools/foliage.ts +110 -104
- package/src/tools/introspection.ts +24 -22
- package/src/tools/landscape.ts +334 -181
- package/src/tools/level.ts +683 -182
- package/src/tools/lighting.ts +244 -123
- package/src/tools/materials.ts +114 -83
- package/src/tools/niagara.ts +87 -81
- package/src/tools/performance.ts +49 -88
- package/src/tools/physics.ts +393 -299
- package/src/tools/rc.ts +103 -25
- package/src/tools/sequence.ts +157 -30
- package/src/tools/ui.ts +101 -70
- package/src/tools/visual.ts +250 -29
- package/src/types/tool-types.ts +0 -9
- package/src/unreal-bridge.ts +658 -140
- package/src/utils/elicitation.ts +129 -0
- package/src/utils/error-handler.ts +4 -159
- package/src/utils/http.ts +16 -115
- package/src/utils/normalize.ts +20 -10
- package/src/utils/python-output.ts +351 -0
- package/src/utils/python.ts +3 -0
- package/src/utils/response-validator.ts +68 -17
- package/src/utils/result-helpers.ts +193 -0
- package/src/utils/safe-json.ts +0 -50
- package/src/utils/validation.ts +94 -7
- package/tests/run-unreal-tool-tests.mjs +720 -0
- package/tsconfig.json +2 -2
- package/dist/python-utils.d.ts +0 -29
- package/dist/python-utils.js +0 -54
- package/dist/tools/tool-definitions.d.ts +0 -4919
- package/dist/tools/tool-definitions.js +0 -1065
- package/dist/tools/tool-handlers.d.ts +0 -47
- package/dist/tools/tool-handlers.js +0 -863
- package/dist/types/index.d.ts +0 -323
- package/dist/types/index.js +0 -28
- package/dist/utils/cache-manager.d.ts +0 -64
- package/dist/utils/cache-manager.js +0 -176
- package/dist/utils/errors.d.ts +0 -133
- package/dist/utils/errors.js +0 -256
- package/src/python/editor_compat.py +0 -181
- package/src/python-utils.ts +0 -57
- package/src/tools/tool-definitions.ts +0 -1081
- package/src/tools/tool-handlers.ts +0 -973
- package/src/types/index.ts +0 -414
- package/src/utils/cache-manager.ts +0 -213
- package/src/utils/errors.ts +0 -312
|
@@ -3,26 +3,14 @@ export const consolidatedToolDefinitions = [
|
|
|
3
3
|
// 1. ASSET MANAGER - Combines asset operations
|
|
4
4
|
{
|
|
5
5
|
name: 'manage_asset',
|
|
6
|
-
description: `
|
|
6
|
+
description: `Asset library utility for browsing, importing, and bootstrapping simple materials.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
8
|
+
Use it when you need to:
|
|
9
|
+
- explore project content (\u002fContent automatically maps to \u002fGame).
|
|
10
|
+
- import FBX/PNG/WAV/EXR files into the project.
|
|
11
|
+
- spin up a minimal Material asset at a specific path.
|
|
12
12
|
|
|
13
|
-
Supported actions:
|
|
14
|
-
- list: Returns assets in a folder (recursive behavior is auto-enabled for /Game).
|
|
15
|
-
- import: Imports a file into the project at a destination path (e.g., /Game/Folder).
|
|
16
|
-
- create_material: Creates a simple Material asset at a path.
|
|
17
|
-
|
|
18
|
-
Tips:
|
|
19
|
-
- Unreal uses /Game for project content; this server maps /Content → /Game automatically.
|
|
20
|
-
- For large projects, listing /Game returns a sample subset for speed; refine to subfolders.
|
|
21
|
-
|
|
22
|
-
Examples:
|
|
23
|
-
- {"action":"list","directory":"/Game/ThirdPerson"}
|
|
24
|
-
- {"action":"import","sourcePath":"C:/Temp/Tree.fbx","destinationPath":"/Game/Environment/Trees"}
|
|
25
|
-
- {"action":"create_material","name":"M_Mask","path":"/Game/Materials"}`,
|
|
13
|
+
Supported actions: list, import, create_material.`,
|
|
26
14
|
inputSchema: {
|
|
27
15
|
type: 'object',
|
|
28
16
|
properties: {
|
|
@@ -69,35 +57,14 @@ Examples:
|
|
|
69
57
|
// 2. ACTOR CONTROL - Combines actor operations
|
|
70
58
|
{
|
|
71
59
|
name: 'control_actor',
|
|
72
|
-
description: `
|
|
73
|
-
|
|
74
|
-
When to use this tool:
|
|
75
|
-
- Place an actor/mesh, remove an actor, or nudge an actor with a physics force.
|
|
76
|
-
|
|
77
|
-
Supported actions:
|
|
78
|
-
- spawn
|
|
79
|
-
- delete
|
|
80
|
-
- apply_force
|
|
81
|
-
|
|
82
|
-
Spawning:
|
|
83
|
-
- classPath can be a class name (e.g., StaticMeshActor, CameraActor) OR an asset path (e.g., /Engine/BasicShapes/Cube, /Game/Meshes/SM_Rock).
|
|
84
|
-
- Asset paths auto-spawn StaticMeshActor with the mesh assigned.
|
|
85
|
-
|
|
86
|
-
Deleting:
|
|
87
|
-
- Finds actors by label/name (case-insensitive) and deletes matches.
|
|
88
|
-
|
|
89
|
-
Apply force:
|
|
90
|
-
- Applies a world-space force vector to an actor with physics enabled.
|
|
60
|
+
description: `Viewport actor toolkit for spawning, removing, or nudging actors with physics forces.
|
|
91
61
|
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
62
|
+
Use it when you need to:
|
|
63
|
+
- drop a class or mesh into the level (classPath accepts names or asset paths).
|
|
64
|
+
- delete actors by label, case-insensitively.
|
|
65
|
+
- push a physics-enabled actor with a world-space force vector.
|
|
96
66
|
|
|
97
|
-
|
|
98
|
-
- {"action":"spawn","classPath":"/Engine/BasicShapes/Cube","location":{"x":0,"y":0,"z":100}}
|
|
99
|
-
- {"action":"delete","actorName":"Cube_1"}
|
|
100
|
-
- {"action":"apply_force","actorName":"PhysicsBox","force":{"x":0,"y":0,"z":5000}}`,
|
|
67
|
+
Supported actions: spawn, delete, apply_force.`,
|
|
101
68
|
inputSchema: {
|
|
102
69
|
type: 'object',
|
|
103
70
|
properties: {
|
|
@@ -156,26 +123,14 @@ Examples:
|
|
|
156
123
|
// 3. EDITOR CONTROL - Combines editor operations
|
|
157
124
|
{
|
|
158
125
|
name: 'control_editor',
|
|
159
|
-
description: `
|
|
126
|
+
description: `Editor session controls for PIE playback, camera placement, and view modes.
|
|
160
127
|
|
|
161
|
-
|
|
162
|
-
-
|
|
128
|
+
Use it when you need to:
|
|
129
|
+
- start or stop Play In Editor.
|
|
130
|
+
- reposition the active viewport camera.
|
|
131
|
+
- switch between Lit/Unlit/Wireframe and other safe view modes.
|
|
163
132
|
|
|
164
|
-
Supported actions:
|
|
165
|
-
- play
|
|
166
|
-
- stop
|
|
167
|
-
- set_camera
|
|
168
|
-
- set_view_mode
|
|
169
|
-
|
|
170
|
-
Notes:
|
|
171
|
-
- View modes are validated; unsafe modes are blocked.
|
|
172
|
-
- Camera accepts location/rotation (optional); values normalized.
|
|
173
|
-
|
|
174
|
-
Examples:
|
|
175
|
-
- {"action":"play"}
|
|
176
|
-
- {"action":"set_camera","location":{"x":0,"y":-600,"z":250},"rotation":{"pitch":0,"yaw":0,"roll":0}}
|
|
177
|
-
- {"action":"set_view_mode","viewMode":"Wireframe"}
|
|
178
|
-
- {"action":"stop"}`,
|
|
133
|
+
Supported actions: play, stop, set_camera, set_view_mode (with validation).`,
|
|
179
134
|
inputSchema: {
|
|
180
135
|
type: 'object',
|
|
181
136
|
properties: {
|
|
@@ -232,28 +187,15 @@ Examples:
|
|
|
232
187
|
// 4. LEVEL MANAGER - Combines level and lighting operations
|
|
233
188
|
{
|
|
234
189
|
name: 'manage_level',
|
|
235
|
-
description: `
|
|
236
|
-
|
|
237
|
-
When to use this tool:
|
|
238
|
-
- Switch to a level, save the current level, stream sublevels, add a light, or start a lighting build.
|
|
190
|
+
description: `Level management helper for loading/saving, streaming, light creation, and lighting builds.
|
|
239
191
|
|
|
240
|
-
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
- build_lighting
|
|
192
|
+
Use it when you need to:
|
|
193
|
+
- open or save a level by path.
|
|
194
|
+
- toggle streaming sublevels on/off.
|
|
195
|
+
- spawn a light actor of a given type.
|
|
196
|
+
- kick off a lighting build at a chosen quality.
|
|
246
197
|
|
|
247
|
-
|
|
248
|
-
- Use /Game paths for levels (e.g., /Game/Maps/Level).
|
|
249
|
-
- For streaming, set shouldBeLoaded and shouldBeVisible accordingly.
|
|
250
|
-
- For lights, provide lightType and optional location/intensity.
|
|
251
|
-
|
|
252
|
-
Examples:
|
|
253
|
-
- {"action":"load","levelPath":"/Game/Maps/Lobby"}
|
|
254
|
-
- {"action":"stream","levelName":"Sublevel_A","shouldBeLoaded":true,"shouldBeVisible":true}
|
|
255
|
-
- {"action":"create_light","lightType":"Directional","name":"KeyLight","intensity":5.0}
|
|
256
|
-
- {"action":"build_lighting","quality":"High"}`,
|
|
198
|
+
Supported actions: load, save, stream, create_light, build_lighting.`,
|
|
257
199
|
inputSchema: {
|
|
258
200
|
type: 'object',
|
|
259
201
|
properties: {
|
|
@@ -308,25 +250,14 @@ Examples:
|
|
|
308
250
|
// 5. ANIMATION SYSTEM - Combines animation and physics setup
|
|
309
251
|
{
|
|
310
252
|
name: 'animation_physics',
|
|
311
|
-
description: `
|
|
312
|
-
|
|
313
|
-
When to use this tool:
|
|
314
|
-
- Generate an Anim Blueprint for a skeleton, play a Montage/Animation on an actor, or enable ragdoll.
|
|
315
|
-
|
|
316
|
-
Supported actions:
|
|
317
|
-
- create_animation_bp
|
|
318
|
-
- play_montage
|
|
319
|
-
- setup_ragdoll
|
|
253
|
+
description: `Animation and physics rigging helper covering Anim BPs, montage playback, and ragdoll setup.
|
|
320
254
|
|
|
321
|
-
|
|
322
|
-
-
|
|
323
|
-
-
|
|
324
|
-
-
|
|
255
|
+
Use it when you need to:
|
|
256
|
+
- generate an Animation Blueprint for a skeleton.
|
|
257
|
+
- play a montage/animation on an actor at a chosen rate.
|
|
258
|
+
- enable a quick ragdoll using an existing physics asset.
|
|
325
259
|
|
|
326
|
-
|
|
327
|
-
- {"action":"create_animation_bp","name":"ABP_Hero","skeletonPath":"/Game/Characters/Hero/SK_Hero_Skeleton","savePath":"/Game/Characters/Hero"}
|
|
328
|
-
- {"action":"play_montage","actorName":"Hero","montagePath":"/Game/Anim/MT_Attack"}
|
|
329
|
-
- {"action":"setup_ragdoll","skeletonPath":"/Game/Characters/Hero/SK_Hero_Skeleton","physicsAssetName":"PHYS_Hero"}`,
|
|
260
|
+
Supported actions: create_animation_bp, play_montage, setup_ragdoll.`,
|
|
330
261
|
inputSchema: {
|
|
331
262
|
type: 'object',
|
|
332
263
|
properties: {
|
|
@@ -365,24 +296,14 @@ Examples:
|
|
|
365
296
|
// 6. EFFECTS SYSTEM - Combines particles and visual effects
|
|
366
297
|
{
|
|
367
298
|
name: 'create_effect',
|
|
368
|
-
description: `
|
|
299
|
+
description: `FX sandbox for spawning Niagara systems, particle presets, or disposable debug shapes.
|
|
369
300
|
|
|
370
|
-
|
|
371
|
-
-
|
|
301
|
+
Use it when you need to:
|
|
302
|
+
- fire a Niagara system at a specific location/scale.
|
|
303
|
+
- trigger a simple particle effect by tag/name.
|
|
304
|
+
- draw temporary debug primitives (box/sphere/line) for planning layouts.
|
|
372
305
|
|
|
373
|
-
Supported actions:
|
|
374
|
-
- particle
|
|
375
|
-
- niagara
|
|
376
|
-
- debug_shape
|
|
377
|
-
|
|
378
|
-
Tips:
|
|
379
|
-
- Set color as RGBA [r,g,b,a]; scale defaults to 1 if omitted.
|
|
380
|
-
- Use debug shapes for quick layout planning and measurements.
|
|
381
|
-
|
|
382
|
-
Examples:
|
|
383
|
-
- {"action":"niagara","systemPath":"/Game/FX/NS_Explosion","location":{"x":0,"y":0,"z":200},"scale":1.0}
|
|
384
|
-
- {"action":"particle","effectType":"Smoke","name":"SMK1","location":{"x":100,"y":0,"z":50}}
|
|
385
|
-
- {"action":"debug_shape","shape":"Sphere","location":{"x":0,"y":0,"z":0},"size":100,"duration":5}`,
|
|
306
|
+
Supported actions: niagara, particle, debug_shape.`,
|
|
386
307
|
inputSchema: {
|
|
387
308
|
type: 'object',
|
|
388
309
|
properties: {
|
|
@@ -442,22 +363,13 @@ Examples:
|
|
|
442
363
|
// 7. BLUEPRINT MANAGER - Blueprint operations
|
|
443
364
|
{
|
|
444
365
|
name: 'manage_blueprint',
|
|
445
|
-
description: `
|
|
446
|
-
|
|
447
|
-
When to use this tool:
|
|
448
|
-
- Quickly scaffold a Blueprint asset or add a component to an existing Blueprint.
|
|
449
|
-
|
|
450
|
-
Supported actions:
|
|
451
|
-
- create
|
|
452
|
-
- add_component
|
|
366
|
+
description: `Blueprint scaffolding helper for creating assets and attaching components.
|
|
453
367
|
|
|
454
|
-
|
|
455
|
-
-
|
|
456
|
-
-
|
|
368
|
+
Use it when you need to:
|
|
369
|
+
- create a new Blueprint of a specific base type (Actor, Pawn, Character, ...).
|
|
370
|
+
- add a component to an existing Blueprint asset with a unique name.
|
|
457
371
|
|
|
458
|
-
|
|
459
|
-
- {"action":"create","name":"BP_Switch","blueprintType":"Actor","savePath":"/Game/Blueprints"}
|
|
460
|
-
- {"action":"add_component","name":"BP_Switch","componentType":"PointLightComponent","componentName":"KeyLight"}`,
|
|
372
|
+
Supported actions: create, add_component.`,
|
|
461
373
|
inputSchema: {
|
|
462
374
|
type: 'object',
|
|
463
375
|
properties: {
|
|
@@ -491,34 +403,21 @@ Examples:
|
|
|
491
403
|
// 8. ENVIRONMENT BUILDER - Landscape and foliage
|
|
492
404
|
{
|
|
493
405
|
name: 'build_environment',
|
|
494
|
-
description: `Environment authoring
|
|
495
|
-
|
|
496
|
-
When to use this tool:
|
|
497
|
-
- Create a procedural terrain alternative, add/paint foliage, or attempt a landscape workflow.
|
|
498
|
-
|
|
499
|
-
Supported actions:
|
|
500
|
-
- create_landscape
|
|
501
|
-
- sculpt
|
|
502
|
-
- add_foliage
|
|
503
|
-
- paint_foliage
|
|
504
|
-
|
|
505
|
-
Important:
|
|
506
|
-
- Native Landscape creation via Python is limited and may return a helpful error suggesting Landscape Mode in the editor.
|
|
507
|
-
- Foliage helpers create FoliageType assets and support simple placement.
|
|
406
|
+
description: `Environment authoring toolkit for landscapes and foliage, from sculpting to procedural scatters.
|
|
508
407
|
|
|
509
|
-
|
|
510
|
-
-
|
|
408
|
+
Use it when you need to:
|
|
409
|
+
- create or sculpt a landscape actor.
|
|
410
|
+
- add foliage via types or paint strokes.
|
|
411
|
+
- drive procedural terrain/foliage generation with bounds, seeds, and density settings.
|
|
412
|
+
- spawn explicit foliage instances at transforms.
|
|
511
413
|
|
|
512
|
-
|
|
513
|
-
- {"action":"create_landscape","name":"Landscape_Basic","sizeX":1024,"sizeY":1024}
|
|
514
|
-
- {"action":"add_foliage","name":"FT_Grass","meshPath":"/Game/Foliage/SM_Grass","density":300}
|
|
515
|
-
- {"action":"paint_foliage","foliageType":"/Game/Foliage/Types/FT_Grass","position":{"x":0,"y":0,"z":0},"brushSize":300}`,
|
|
414
|
+
Supported actions: create_landscape, sculpt, add_foliage, paint_foliage, create_procedural_terrain, create_procedural_foliage, add_foliage_instances, create_landscape_grass_type.`,
|
|
516
415
|
inputSchema: {
|
|
517
416
|
type: 'object',
|
|
518
417
|
properties: {
|
|
519
418
|
action: {
|
|
520
419
|
type: 'string',
|
|
521
|
-
enum: ['create_landscape', 'sculpt', 'add_foliage', 'paint_foliage'],
|
|
420
|
+
enum: ['create_landscape', 'sculpt', 'add_foliage', 'paint_foliage', 'create_procedural_terrain', 'create_procedural_foliage', 'add_foliage_instances', 'create_landscape_grass_type'],
|
|
522
421
|
description: 'Environment action'
|
|
523
422
|
},
|
|
524
423
|
// Common
|
|
@@ -530,9 +429,52 @@ Examples:
|
|
|
530
429
|
type: 'string',
|
|
531
430
|
description: 'Sculpt tool (Sculpt, Smooth, Flatten, etc.)'
|
|
532
431
|
},
|
|
533
|
-
//
|
|
432
|
+
// Advanced: procedural terrain
|
|
433
|
+
location: {
|
|
434
|
+
type: 'object',
|
|
435
|
+
properties: { x: { type: 'number' }, y: { type: 'number' }, z: { type: 'number' } }
|
|
436
|
+
},
|
|
437
|
+
subdivisions: { type: 'number' },
|
|
438
|
+
heightFunction: { type: 'string' },
|
|
439
|
+
materialPath: { type: 'string' },
|
|
440
|
+
// Advanced: procedural foliage
|
|
441
|
+
bounds: {
|
|
442
|
+
type: 'object',
|
|
443
|
+
properties: {
|
|
444
|
+
location: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' }, z: { type: 'number' } } },
|
|
445
|
+
size: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' }, z: { type: 'number' } } }
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
foliageTypes: {
|
|
449
|
+
type: 'array',
|
|
450
|
+
items: {
|
|
451
|
+
type: 'object',
|
|
452
|
+
properties: {
|
|
453
|
+
meshPath: { type: 'string' },
|
|
454
|
+
density: { type: 'number' },
|
|
455
|
+
minScale: { type: 'number' },
|
|
456
|
+
maxScale: { type: 'number' },
|
|
457
|
+
alignToNormal: { type: 'boolean' },
|
|
458
|
+
randomYaw: { type: 'boolean' }
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
seed: { type: 'number' },
|
|
463
|
+
// Advanced: direct foliage instances
|
|
464
|
+
foliageType: { type: 'string' },
|
|
465
|
+
transforms: {
|
|
466
|
+
type: 'array',
|
|
467
|
+
items: {
|
|
468
|
+
type: 'object',
|
|
469
|
+
properties: {
|
|
470
|
+
location: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' }, z: { type: 'number' } } },
|
|
471
|
+
rotation: { type: 'object', properties: { pitch: { type: 'number' }, yaw: { type: 'number' }, roll: { type: 'number' } } },
|
|
472
|
+
scale: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' }, z: { type: 'number' } } }
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
// Foliage (for add_foliage)
|
|
534
477
|
meshPath: { type: 'string', description: 'Mesh path' },
|
|
535
|
-
foliageType: { type: 'string', description: 'Foliage type' },
|
|
536
478
|
density: { type: 'number', description: 'Density' },
|
|
537
479
|
// Painting
|
|
538
480
|
position: {
|
|
@@ -562,31 +504,16 @@ Examples:
|
|
|
562
504
|
// 9. PERFORMANCE & AUDIO - System settings
|
|
563
505
|
{
|
|
564
506
|
name: 'system_control',
|
|
565
|
-
description: `
|
|
566
|
-
|
|
567
|
-
When to use this tool:
|
|
568
|
-
- Toggle profiling and FPS stats, adjust quality (sg.*), play a sound, create/show a basic widget, take a screenshot, or launch/quit the editor.
|
|
569
|
-
|
|
570
|
-
Supported actions:
|
|
571
|
-
- profile
|
|
572
|
-
- show_fps
|
|
573
|
-
- set_quality
|
|
574
|
-
- play_sound
|
|
575
|
-
- create_widget
|
|
576
|
-
- show_widget
|
|
577
|
-
- screenshot
|
|
578
|
-
- engine_start
|
|
579
|
-
- engine_quit
|
|
507
|
+
description: `Runtime/system controls for profiling, quality tiers, audio/UI triggers, screenshots, and editor lifecycle.
|
|
580
508
|
|
|
581
|
-
|
|
582
|
-
-
|
|
583
|
-
-
|
|
509
|
+
Use it when you need to:
|
|
510
|
+
- toggle stat overlays or targeted profilers.
|
|
511
|
+
- adjust scalability categories (sg.*) or enable FPS display.
|
|
512
|
+
- play a one-shot sound and optionally position it.
|
|
513
|
+
- create/show lightweight widgets.
|
|
514
|
+
- capture a screenshot or start/quit the editor process.
|
|
584
515
|
|
|
585
|
-
|
|
586
|
-
- {"action":"show_fps","enabled":true}
|
|
587
|
-
- {"action":"set_quality","category":"Shadows","level":2}
|
|
588
|
-
- {"action":"play_sound","soundPath":"/Game/Audio/SFX/Click","volume":0.5}
|
|
589
|
-
- {"action":"screenshot","resolution":"1920x1080"}`,
|
|
516
|
+
Supported actions: profile, show_fps, set_quality, play_sound, create_widget, show_widget, screenshot, engine_start, engine_quit.`,
|
|
590
517
|
inputSchema: {
|
|
591
518
|
type: 'object',
|
|
592
519
|
properties: {
|
|
@@ -655,22 +582,9 @@ Examples:
|
|
|
655
582
|
// 10. CONSOLE COMMAND - Universal tool
|
|
656
583
|
{
|
|
657
584
|
name: 'console_command',
|
|
658
|
-
description: `
|
|
659
|
-
|
|
660
|
-
When to use this tool:
|
|
661
|
-
- Fire a specific command (e.g., stat fps, viewmode wireframe, r.ScreenPercentage 75).
|
|
662
|
-
|
|
663
|
-
Safety:
|
|
664
|
-
- Dangerous commands are blocked (quit/exit, GPU crash triggers, unsafe visualizebuffer modes, etc.).
|
|
665
|
-
- Unknown commands will return a warning instead of crashing.
|
|
666
|
-
|
|
667
|
-
Tips:
|
|
668
|
-
- Prefer dedicated tools (system_control, control_editor) when available for structured control.
|
|
585
|
+
description: `Guarded console command executor for one-off \`stat\`, \`r.*\`, or viewmode commands.
|
|
669
586
|
|
|
670
|
-
|
|
671
|
-
- {"command":"stat fps"}
|
|
672
|
-
- {"command":"viewmode wireframe"}
|
|
673
|
-
- {"command":"r.ScreenPercentage 75"}`,
|
|
587
|
+
Use it when higher-level tools don't cover the console tweak you need. Hazardous commands (quit/exit, crash triggers, unsafe viewmodes) are blocked, and unknown commands respond with a warning instead of executing blindly.`,
|
|
674
588
|
inputSchema: {
|
|
675
589
|
type: 'object',
|
|
676
590
|
properties: {
|
|
@@ -693,29 +607,15 @@ Examples:
|
|
|
693
607
|
// 11. REMOTE CONTROL PRESETS
|
|
694
608
|
{
|
|
695
609
|
name: 'manage_rc',
|
|
696
|
-
description: `
|
|
610
|
+
description: `Remote Control preset helper for building, exposing, and mutating RC assets.
|
|
697
611
|
|
|
698
|
-
|
|
699
|
-
-
|
|
612
|
+
Use it when you need to:
|
|
613
|
+
- create a preset asset on disk.
|
|
614
|
+
- expose actors or object properties to the preset.
|
|
615
|
+
- list the exposed fields for inspection.
|
|
616
|
+
- get or set property values through RC with JSON-serializable payloads.
|
|
700
617
|
|
|
701
|
-
Supported actions:
|
|
702
|
-
- create_preset
|
|
703
|
-
- expose_actor
|
|
704
|
-
- expose_property
|
|
705
|
-
- list_fields
|
|
706
|
-
- set_property
|
|
707
|
-
- get_property
|
|
708
|
-
|
|
709
|
-
Tips:
|
|
710
|
-
- value must be JSON-serializable.
|
|
711
|
-
- Use objectPath/presetPath with full asset/object paths.
|
|
712
|
-
|
|
713
|
-
Examples:
|
|
714
|
-
- {"action":"create_preset","name":"LivePreset","path":"/Game/RCPresets"}
|
|
715
|
-
- {"action":"expose_actor","presetPath":"/Game/RCPresets/LivePreset","actorName":"CameraActor"}
|
|
716
|
-
- {"action":"expose_property","presetPath":"/Game/RCPresets/LivePreset","objectPath":"/Script/Engine.Default__Engine","propertyName":"GameUserSettings"}
|
|
717
|
-
- {"action":"list_fields","presetPath":"/Game/RCPresets/LivePreset"}
|
|
718
|
-
- {"action":"set_property","objectPath":"/Game/MyActor","propertyName":"CustomFloat","value":0.5}`,
|
|
618
|
+
Supported actions: create_preset, expose_actor, expose_property, list_fields, set_property, get_property.`,
|
|
719
619
|
inputSchema: {
|
|
720
620
|
type: 'object',
|
|
721
621
|
properties: {
|
|
@@ -749,37 +649,15 @@ Examples:
|
|
|
749
649
|
// 12. SEQUENCER / CINEMATICS
|
|
750
650
|
{
|
|
751
651
|
name: 'manage_sequence',
|
|
752
|
-
description: `
|
|
753
|
-
|
|
754
|
-
When to use this tool:
|
|
755
|
-
- Build quick cinematics: create/open a sequence, add a camera or actors, tweak properties, and play.
|
|
652
|
+
description: `Sequencer automation helper for Level Sequences: asset management, bindings, and playback control.
|
|
756
653
|
|
|
757
|
-
|
|
758
|
-
- create
|
|
759
|
-
-
|
|
760
|
-
-
|
|
761
|
-
-
|
|
762
|
-
- add_actors
|
|
763
|
-
- remove_actors
|
|
764
|
-
- get_bindings
|
|
765
|
-
- add_spawnable_from_class
|
|
766
|
-
- play
|
|
767
|
-
- pause
|
|
768
|
-
- stop
|
|
769
|
-
- set_properties
|
|
770
|
-
- get_properties
|
|
771
|
-
- set_playback_speed
|
|
654
|
+
Use it when you need to:
|
|
655
|
+
- create or open a sequence asset.
|
|
656
|
+
- add actors, spawnable cameras, or other bindings.
|
|
657
|
+
- adjust sequence metadata (frame rate, bounds, playback window).
|
|
658
|
+
- drive playback (play/pause/stop), adjust speed, or fetch binding info.
|
|
772
659
|
|
|
773
|
-
|
|
774
|
-
- Set spawnable=true to auto-create a camera actor.
|
|
775
|
-
- Use frameRate/lengthInFrames to define timing; use playbackStart/End to trim.
|
|
776
|
-
|
|
777
|
-
Examples:
|
|
778
|
-
- {"action":"create","name":"Intro","path":"/Game/Cinematics"}
|
|
779
|
-
- {"action":"add_camera","spawnable":true}
|
|
780
|
-
- {"action":"add_actor","actorName":"Hero"}
|
|
781
|
-
- {"action":"play","loopMode":"once"}
|
|
782
|
-
- {"action":"set_properties","path":"/Game/Cinematics/Intro","frameRate":24,"lengthInFrames":480}`,
|
|
660
|
+
Supported actions: create, open, add_camera, add_actor, add_actors, remove_actors, get_bindings, add_spawnable_from_class, play, pause, stop, set_properties, get_properties, set_playback_speed.`,
|
|
783
661
|
inputSchema: {
|
|
784
662
|
type: 'object',
|
|
785
663
|
properties: {
|
|
@@ -831,22 +709,13 @@ Examples:
|
|
|
831
709
|
// 13. INTROSPECTION
|
|
832
710
|
{
|
|
833
711
|
name: 'inspect',
|
|
834
|
-
description: `
|
|
835
|
-
|
|
836
|
-
When to use this tool:
|
|
837
|
-
- Inspect an object by path (class default object or actor/component) and optionally modify properties.
|
|
838
|
-
|
|
839
|
-
Supported actions:
|
|
840
|
-
- inspect_object
|
|
841
|
-
- set_property
|
|
712
|
+
description: `Introspection utility for reading or mutating properties on actors, components, or CDOs.
|
|
842
713
|
|
|
843
|
-
|
|
844
|
-
-
|
|
845
|
-
-
|
|
714
|
+
Use it when you need to:
|
|
715
|
+
- inspect an object by path and retrieve its serialized properties.
|
|
716
|
+
- set a property value with built-in validation.
|
|
846
717
|
|
|
847
|
-
|
|
848
|
-
- {"action":"inspect_object","objectPath":"/Script/Engine.Default__Engine"}
|
|
849
|
-
- {"action":"set_property","objectPath":"/Game/MyActor","propertyName":"CustomBool","value":true}`,
|
|
718
|
+
Supported actions: inspect_object, set_property.`,
|
|
850
719
|
inputSchema: {
|
|
851
720
|
type: 'object',
|
|
852
721
|
properties: {
|