ue-mcp 0.4.0-alpha

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.
Files changed (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/dist/bridge.d.ts +25 -0
  4. package/dist/bridge.js +124 -0
  5. package/dist/bridge.js.map +1 -0
  6. package/dist/deployer.d.ts +18 -0
  7. package/dist/deployer.js +175 -0
  8. package/dist/deployer.js.map +1 -0
  9. package/dist/editor-control.d.ts +15 -0
  10. package/dist/editor-control.js +181 -0
  11. package/dist/editor-control.js.map +1 -0
  12. package/dist/github-app.d.ts +4 -0
  13. package/dist/github-app.js +94 -0
  14. package/dist/github-app.js.map +1 -0
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.js +125 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/init.d.ts +2 -0
  19. package/dist/init.js +290 -0
  20. package/dist/init.js.map +1 -0
  21. package/dist/instructions.d.ts +1 -0
  22. package/dist/instructions.js +150 -0
  23. package/dist/instructions.js.map +1 -0
  24. package/dist/project.d.ts +32 -0
  25. package/dist/project.js +175 -0
  26. package/dist/project.js.map +1 -0
  27. package/dist/tools/animation.d.ts +2 -0
  28. package/dist/tools/animation.js +62 -0
  29. package/dist/tools/animation.js.map +1 -0
  30. package/dist/tools/asset.d.ts +2 -0
  31. package/dist/tools/asset.js +128 -0
  32. package/dist/tools/asset.js.map +1 -0
  33. package/dist/tools/audio.d.ts +2 -0
  34. package/dist/tools/audio.js +24 -0
  35. package/dist/tools/audio.js.map +1 -0
  36. package/dist/tools/blueprint.d.ts +2 -0
  37. package/dist/tools/blueprint.js +64 -0
  38. package/dist/tools/blueprint.js.map +1 -0
  39. package/dist/tools/demo.d.ts +2 -0
  40. package/dist/tools/demo.js +10 -0
  41. package/dist/tools/demo.js.map +1 -0
  42. package/dist/tools/editor.d.ts +2 -0
  43. package/dist/tools/editor.js +133 -0
  44. package/dist/tools/editor.js.map +1 -0
  45. package/dist/tools/feedback.d.ts +2 -0
  46. package/dist/tools/feedback.js +44 -0
  47. package/dist/tools/feedback.js.map +1 -0
  48. package/dist/tools/foliage.d.ts +2 -0
  49. package/dist/tools/foliage.js +29 -0
  50. package/dist/tools/foliage.js.map +1 -0
  51. package/dist/tools/gameplay.d.ts +2 -0
  52. package/dist/tools/gameplay.js +101 -0
  53. package/dist/tools/gameplay.js.map +1 -0
  54. package/dist/tools/gas.d.ts +2 -0
  55. package/dist/tools/gas.js +43 -0
  56. package/dist/tools/gas.js.map +1 -0
  57. package/dist/tools/landscape.d.ts +2 -0
  58. package/dist/tools/landscape.js +32 -0
  59. package/dist/tools/landscape.js.map +1 -0
  60. package/dist/tools/level.d.ts +2 -0
  61. package/dist/tools/level.js +66 -0
  62. package/dist/tools/level.js.map +1 -0
  63. package/dist/tools/material.d.ts +2 -0
  64. package/dist/tools/material.js +59 -0
  65. package/dist/tools/material.js.map +1 -0
  66. package/dist/tools/networking.d.ts +2 -0
  67. package/dist/tools/networking.js +42 -0
  68. package/dist/tools/networking.js.map +1 -0
  69. package/dist/tools/niagara.d.ts +2 -0
  70. package/dist/tools/niagara.js +42 -0
  71. package/dist/tools/niagara.js.map +1 -0
  72. package/dist/tools/pcg.d.ts +2 -0
  73. package/dist/tools/pcg.js +39 -0
  74. package/dist/tools/pcg.js.map +1 -0
  75. package/dist/tools/project.d.ts +2 -0
  76. package/dist/tools/project.js +282 -0
  77. package/dist/tools/project.js.map +1 -0
  78. package/dist/tools/reflection.d.ts +2 -0
  79. package/dist/tools/reflection.js +26 -0
  80. package/dist/tools/reflection.js.map +1 -0
  81. package/dist/tools/widget.d.ts +2 -0
  82. package/dist/tools/widget.js +34 -0
  83. package/dist/tools/widget.js.map +1 -0
  84. package/dist/types.d.ts +21 -0
  85. package/dist/types.js +38 -0
  86. package/dist/types.js.map +1 -0
  87. package/package.json +76 -0
  88. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/BridgeServer.cpp +746 -0
  89. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/BridgeServer.h +81 -0
  90. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/GameThreadExecutor.cpp +49 -0
  91. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/GameThreadExecutor.h +37 -0
  92. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/HandlerRegistry.cpp +75 -0
  93. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/HandlerRegistry.h +50 -0
  94. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.cpp +1418 -0
  95. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.h +43 -0
  96. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AssetHandlers.cpp +1773 -0
  97. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AssetHandlers.h +48 -0
  98. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers.cpp +289 -0
  99. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers.h +18 -0
  100. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers.cpp +1982 -0
  101. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers.h +44 -0
  102. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DemoHandlers.cpp +1217 -0
  103. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DemoHandlers.h +71 -0
  104. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DialogHandlers.cpp +465 -0
  105. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DialogHandlers.h +49 -0
  106. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.cpp +1676 -0
  107. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.h +53 -0
  108. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/FoliageHandlers.cpp +876 -0
  109. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/FoliageHandlers.h +22 -0
  110. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GameplayHandlers.cpp +2222 -0
  111. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GameplayHandlers.h +54 -0
  112. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GasHandlers.cpp +783 -0
  113. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GasHandlers.h +24 -0
  114. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LandscapeHandlers.cpp +898 -0
  115. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LandscapeHandlers.h +24 -0
  116. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LevelHandlers.cpp +1270 -0
  117. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LevelHandlers.h +34 -0
  118. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/MaterialHandlers.cpp +2190 -0
  119. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/MaterialHandlers.h +53 -0
  120. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NetworkingHandlers.cpp +554 -0
  121. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NetworkingHandlers.h +29 -0
  122. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NiagaraHandlers.cpp +601 -0
  123. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NiagaraHandlers.h +25 -0
  124. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PCGHandlers.cpp +1024 -0
  125. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PCGHandlers.h +25 -0
  126. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PhysicsHandlers.cpp +370 -0
  127. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PhysicsHandlers.h +19 -0
  128. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/ReflectionHandlers.cpp +499 -0
  129. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/ReflectionHandlers.h +27 -0
  130. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SequencerHandlers.cpp +426 -0
  131. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SequencerHandlers.h +19 -0
  132. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SplineHandlers.cpp +303 -0
  133. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SplineHandlers.h +18 -0
  134. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/WidgetHandlers.cpp +985 -0
  135. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/WidgetHandlers.h +27 -0
  136. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/JsonSerializer.cpp +181 -0
  137. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/JsonSerializer.h +42 -0
  138. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/UE_MCP_Bridge.cpp +39 -0
  139. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Public/UE_MCP_BridgeModule.h +14 -0
  140. package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/UE_MCP_Bridge.Build.cs +87 -0
  141. package/plugin/ue_mcp_bridge/UE_MCP_Bridge.uplugin +55 -0
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const blueprintTool = categoryTool("blueprint", "Blueprint reading, authoring, and compilation. Covers variables, functions, graphs, nodes, components, interfaces, and event dispatchers.", {
4
+ read: bp("read_blueprint", (p) => ({ path: p.assetPath })),
5
+ list_variables: bp("list_blueprint_variables", (p) => ({ path: p.assetPath })),
6
+ list_functions: bp("list_blueprint_functions", (p) => ({ path: p.assetPath })),
7
+ read_graph: bp("read_blueprint_graph", (p) => ({ path: p.assetPath, graphName: p.graphName })),
8
+ create: bp("create_blueprint", (p) => ({ path: p.assetPath, parentClass: p.parentClass })),
9
+ add_variable: bp("add_variable", (p) => ({ path: p.assetPath, name: p.name, type: p.varType })),
10
+ set_variable_properties: bp("set_variable_properties", (p) => ({ path: p.assetPath, name: p.name, instanceEditable: p.instanceEditable, blueprintReadOnly: p.blueprintReadOnly, category: p.category, tooltip: p.tooltip, replicationType: p.replicationType })),
11
+ create_function: bp("create_function", (p) => ({ path: p.assetPath, functionName: p.functionName })),
12
+ delete_function: bp("delete_function", (p) => ({ path: p.assetPath, functionName: p.functionName })),
13
+ rename_function: bp("rename_function", (p) => ({ path: p.assetPath, oldName: p.oldName, newName: p.newName })),
14
+ add_node: bp("add_node", (p) => ({ path: p.assetPath, graphName: p.graphName ?? "EventGraph", nodeClass: p.nodeClass, nodeParams: p.nodeParams })),
15
+ delete_node: bp("delete_node", (p) => ({ path: p.assetPath, graphName: p.graphName, nodeName: p.nodeName })),
16
+ set_node_property: bp("set_node_property", (p) => ({ path: p.assetPath, graphName: p.graphName, nodeName: p.nodeName, propertyName: p.propertyName, value: p.value })),
17
+ connect_pins: bp("connect_pins"),
18
+ add_component: bp("add_component", (p) => ({ path: p.assetPath, componentClass: p.componentClass, componentName: p.componentName ?? p.componentClass })),
19
+ compile: bp("compile_blueprint", (p) => ({ path: p.assetPath })),
20
+ list_node_types: bp("list_node_types"),
21
+ search_node_types: bp("search_node_types"),
22
+ create_interface: bp("create_blueprint_interface", (p) => ({ path: p.assetPath })),
23
+ add_interface: bp("add_blueprint_interface"),
24
+ add_event_dispatcher: bp("add_event_dispatcher"),
25
+ }, `- read: Read full BP structure. Params: assetPath
26
+ - list_variables: List variables. Params: assetPath
27
+ - list_functions: List functions/graphs. Params: assetPath
28
+ - read_graph: Read graph nodes. Params: assetPath, graphName
29
+ - create: Create Blueprint. Params: assetPath, parentClass?
30
+ - add_variable: Add variable. Params: assetPath, name, varType
31
+ - set_variable_properties: Edit variable. Params: assetPath, name, instanceEditable?, blueprintReadOnly?, category?, tooltip?, replicationType?
32
+ - create_function: Create function. Params: assetPath, functionName
33
+ - delete_function: Delete function. Params: assetPath, functionName
34
+ - rename_function: Rename function. Params: assetPath, oldName, newName
35
+ - add_node: Add graph node. Params: assetPath, graphName?, nodeClass, nodeParams?
36
+ - delete_node: Delete node. Params: assetPath, graphName, nodeName
37
+ - set_node_property: Set node property. Params: assetPath, graphName, nodeName, propertyName, value
38
+ - connect_pins: Wire nodes. Params: sourceNode, sourcePin, targetNode, targetPin, assetPath, graphName?
39
+ - add_component: Add BP component. Params: assetPath, componentClass, componentName?
40
+ - compile: Compile Blueprint. Params: assetPath
41
+ - list_node_types: List node types. Params: category?, includeFunctions?
42
+ - search_node_types: Search nodes. Params: query
43
+ - create_interface: Create BP Interface. Params: assetPath
44
+ - add_interface: Implement interface. Params: blueprintPath, interfacePath
45
+ - add_event_dispatcher: Add dispatcher. Params: blueprintPath, name`, {
46
+ assetPath: z.string().optional().describe("Blueprint asset path"),
47
+ graphName: z.string().optional(), functionName: z.string().optional(),
48
+ name: z.string().optional(), varType: z.string().optional().describe("Variable type"),
49
+ parentClass: z.string().optional(),
50
+ instanceEditable: z.boolean().optional(), blueprintReadOnly: z.boolean().optional(),
51
+ category: z.string().optional(), tooltip: z.string().optional(),
52
+ replicationType: z.string().optional(),
53
+ oldName: z.string().optional(), newName: z.string().optional(),
54
+ nodeClass: z.string().optional(), nodeParams: z.record(z.unknown()).optional(),
55
+ nodeName: z.string().optional(), propertyName: z.string().optional(),
56
+ value: z.unknown().optional(),
57
+ sourceNode: z.string().optional(), sourcePin: z.string().optional(),
58
+ targetNode: z.string().optional(), targetPin: z.string().optional(),
59
+ componentClass: z.string().optional(), componentName: z.string().optional(),
60
+ query: z.string().optional(),
61
+ includeFunctions: z.boolean().optional(),
62
+ blueprintPath: z.string().optional(), interfacePath: z.string().optional(),
63
+ });
64
+ //# sourceMappingURL=blueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint.js","sourceRoot":"","sources":["../../src/tools/blueprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAY,YAAY,CAChD,WAAW,EACX,2IAA2I,EAC3I;IACE,IAAI,EAAe,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACvE,cAAc,EAAK,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACjF,cAAc,EAAK,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACjF,UAAU,EAAS,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACrG,MAAM,EAAa,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrG,YAAY,EAAO,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACpG,uBAAuB,EAAE,EAAE,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAChQ,eAAe,EAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACtG,eAAe,EAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACtG,eAAe,EAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAChH,QAAQ,EAAW,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3J,WAAW,EAAQ,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClH,iBAAiB,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACtK,YAAY,EAAO,EAAE,CAAC,cAAc,CAAC;IACrC,aAAa,EAAM,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAC5J,OAAO,EAAY,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1E,eAAe,EAAI,EAAE,CAAC,iBAAiB,CAAC;IACxC,iBAAiB,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC1C,gBAAgB,EAAG,EAAE,CAAC,4BAA4B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACnF,aAAa,EAAM,EAAE,CAAC,yBAAyB,CAAC;IAChD,oBAAoB,EAAE,EAAE,CAAC,sBAAsB,CAAC;CACjD,EACD;;;;;;;;;;;;;;;;;;;;oEAoBkE,EAClE;IACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IACrF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3E,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const demoTool: ToolDef;
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const demoTool = categoryTool("demo", "Neon Shrine demo scene builder and cleanup.", {
4
+ step: bp("demo_step", (p) => p.stepIndex !== undefined ? { step: p.stepIndex } : {}),
5
+ cleanup: bp("demo_cleanup"),
6
+ }, `- step: Execute demo step. Params: stepIndex? (omit for step list)
7
+ - cleanup: Remove demo assets and actors`, {
8
+ stepIndex: z.number().optional().describe("Step index to execute. Omit for step list."),
9
+ });
10
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/tools/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAY,YAAY,CAC3C,MAAM,EACN,6CAA6C,EAC7C;IACE,IAAI,EAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC;CAC5B,EACD;yCACuC,EACvC;IACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACxF,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const editorTool: ToolDef;
@@ -0,0 +1,133 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ import { startEditor, stopEditor, restartEditor } from "../editor-control.js";
4
+ export const editorTool = categoryTool("editor", "Editor commands, Python execution, PIE, undo/redo, hot reload, viewport, performance, sequencer, build pipeline, logs, editor control.", {
5
+ // Editor Control
6
+ start_editor: {
7
+ handler: async (ctx) => {
8
+ return startEditor(ctx.project);
9
+ },
10
+ },
11
+ stop_editor: {
12
+ handler: async () => {
13
+ return stopEditor();
14
+ },
15
+ },
16
+ restart_editor: {
17
+ handler: async (ctx) => {
18
+ return restartEditor(ctx.project, ctx.bridge);
19
+ },
20
+ },
21
+ // Editor Commands
22
+ execute_command: bp("execute_command"),
23
+ execute_python: bp("execute_python"),
24
+ set_property: bp("set_property"),
25
+ play_in_editor: bp("pie_control", (p) => ({ action: p.pieAction ?? "status" })),
26
+ get_runtime_value: bp("get_runtime_value"),
27
+ hot_reload: bp("hot_reload"),
28
+ undo: bp("undo"),
29
+ redo: bp("redo"),
30
+ get_perf_stats: bp("get_editor_performance_stats"),
31
+ run_stat: bp("run_stat_command"),
32
+ set_scalability: bp("set_scalability"),
33
+ capture_screenshot: bp("capture_screenshot"),
34
+ get_viewport: bp("get_viewport_info"),
35
+ set_viewport: bp("set_viewport_camera"),
36
+ focus_on_actor: bp("focus_viewport_on_actor"),
37
+ create_sequence: bp("create_level_sequence"),
38
+ get_sequence_info: bp("get_sequence_info"),
39
+ add_sequence_track: bp("add_sequence_track"),
40
+ play_sequence: bp("play_sequence", (p) => ({ assetPath: p.assetPath, action: p.sequenceAction ?? "play" })),
41
+ // Build Pipeline
42
+ build_all: bp("build_all"),
43
+ build_geometry: bp("build_geometry"),
44
+ build_hlod: bp("build_hlod"),
45
+ validate_assets: bp("validate_assets"),
46
+ get_build_status: bp("get_build_status"),
47
+ cook_content: bp("cook_content"),
48
+ // Logs
49
+ get_log: bp("get_output_log"),
50
+ search_log: bp("search_log"),
51
+ get_message_log: bp("get_message_log"),
52
+ // Crash Handling
53
+ list_crashes: bp("list_crashes"),
54
+ get_crash_info: bp("get_crash_info"),
55
+ check_for_crashes: bp("check_for_crashes"),
56
+ // Dialogs
57
+ set_dialog_policy: bp("set_dialog_policy"),
58
+ clear_dialog_policy: bp("clear_dialog_policy"),
59
+ get_dialog_policy: bp("get_dialog_policy"),
60
+ list_dialogs: bp("list_dialogs"),
61
+ respond_to_dialog: bp("respond_to_dialog"),
62
+ // Asset Editor
63
+ open_asset: bp("open_asset"),
64
+ // Dev
65
+ reload_bridge: bp("reload_handlers"),
66
+ }, `- start_editor: Launch Unreal Editor with the current project. No params.
67
+ - stop_editor: Close Unreal Editor gracefully (allows save dialogs). No params.
68
+ - restart_editor: Stop then start the editor. No params.
69
+ - execute_command: Run console command. Params: command
70
+ - execute_python: Run Python in editor. Params: code
71
+ - set_property: Set UObject property. Params: objectPath, propertyName, value
72
+ - play_in_editor: PIE control. Params: pieAction ('start'|'stop'|'status')
73
+ - get_runtime_value: Read PIE actor value. Params: actorLabel, propertyName
74
+ - hot_reload: Hot reload C++
75
+ - undo/redo: Undo/redo last transaction
76
+ - get_perf_stats: Editor performance stats
77
+ - run_stat: Run stat command. Params: command
78
+ - set_scalability: Set quality. Params: level
79
+ - capture_screenshot: Screenshot. Params: filename?, resolution?
80
+ - get_viewport: Get viewport camera
81
+ - set_viewport: Set viewport camera. Params: location?, rotation?
82
+ - focus_on_actor: Focus on actor. Params: actorLabel
83
+ - create_sequence: Create Level Sequence. Params: name, packagePath?
84
+ - get_sequence_info: Read sequence. Params: assetPath
85
+ - add_sequence_track: Add track. Params: assetPath, trackType, actorLabel?
86
+ - play_sequence: Play/stop/pause. Params: assetPath, sequenceAction
87
+ - build_all: Build all (geometry, lighting, paths, HLOD)
88
+ - build_geometry: Rebuild BSP geometry
89
+ - build_hlod: Build HLODs
90
+ - validate_assets: Run data validation. Params: directory?
91
+ - get_build_status: Get build/map status
92
+ - cook_content: Cook content. Params: platform?
93
+ - get_log: Read output log. Params: maxLines?, filter?, category?
94
+ - search_log: Search log. Params: query
95
+ - get_message_log: Read message log. Params: logName?
96
+ - set_dialog_policy: Auto-respond to dialogs matching a pattern. Params: pattern, response ('yes'|'no'|'ok'|'cancel'|'retry'|'continue'|'yesall'|'noall')
97
+ - clear_dialog_policy: Clear dialog policies. Params: pattern? (omit to clear all)
98
+ - get_dialog_policy: Get current dialog policies
99
+ - list_dialogs: List active modal dialogs with title, message, and button labels
100
+ - respond_to_dialog: Click a button on the active modal dialog. Params: buttonIndex? or buttonLabel?, action? ('escape')
101
+ - open_asset: Open asset in its editor (e.g. Material Editor, Animation Editor). Params: assetPath
102
+ - reload_bridge: Hot-reload all Python bridge handlers from disk (no editor restart needed)`, {
103
+ command: z.string().optional(),
104
+ code: z.string().optional(),
105
+ objectPath: z.string().optional(),
106
+ propertyName: z.string().optional(),
107
+ value: z.unknown().optional(),
108
+ pieAction: z.enum(["start", "stop", "status"]).optional(),
109
+ actorLabel: z.string().optional(),
110
+ level: z.string().optional(),
111
+ filename: z.string().optional(),
112
+ resolution: z.number().optional(),
113
+ location: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
114
+ rotation: z.object({ pitch: z.number(), yaw: z.number(), roll: z.number() }).optional(),
115
+ name: z.string().optional(),
116
+ packagePath: z.string().optional(),
117
+ assetPath: z.string().optional(),
118
+ trackType: z.string().optional(),
119
+ sequenceAction: z.enum(["play", "stop", "pause"]).optional(),
120
+ directory: z.string().optional(),
121
+ platform: z.string().optional(),
122
+ maxLines: z.number().optional(),
123
+ filter: z.string().optional(),
124
+ category: z.string().optional(),
125
+ query: z.string().optional(),
126
+ logName: z.string().optional(),
127
+ crashFolder: z.string().optional(),
128
+ pattern: z.string().optional().describe("Substring to match in dialog title or message"),
129
+ response: z.enum(["yes", "no", "ok", "cancel", "retry", "continue", "yesall", "noall"]).optional().describe("Auto-response for matched dialogs"),
130
+ buttonIndex: z.number().optional().describe("Index of button to click in active dialog"),
131
+ buttonLabel: z.string().optional().describe("Label of button to click in active dialog"),
132
+ });
133
+ //# sourceMappingURL=editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/tools/editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const feedbackTool: ToolDef;
@@ -0,0 +1,44 @@
1
+ import { z } from "zod";
2
+ import { categoryTool } from "../types.js";
3
+ import { submitFeedback } from "../github-app.js";
4
+ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve ue-mcp when native tools fall short and execute_python was used as a workaround.", {
5
+ submit: {
6
+ handler: async (_ctx, params) => {
7
+ const title = params.title;
8
+ const summary = params.summary;
9
+ const pythonWorkaround = params.pythonWorkaround;
10
+ const idealTool = params.idealTool;
11
+ const sections = ["## Summary", summary];
12
+ if (idealTool) {
13
+ sections.push("", "## Ideal Tool/Action", idealTool);
14
+ }
15
+ if (pythonWorkaround) {
16
+ sections.push("", "## Python Workaround Used", "```python", pythonWorkaround, "```");
17
+ }
18
+ sections.push("", "---", "*Submitted via ue-mcp agent feedback*");
19
+ const body = sections.join("\n");
20
+ const result = await submitFeedback(title, body);
21
+ return {
22
+ message: "Feedback submitted successfully!",
23
+ issue_url: result.url,
24
+ issue_number: result.number,
25
+ };
26
+ },
27
+ },
28
+ }, `- submit: Submit feedback about a tool gap. Params: title, summary, pythonWorkaround?, idealTool?`, {
29
+ title: z
30
+ .string()
31
+ .describe("Short title describing the tool gap (do not include project-specific details)"),
32
+ summary: z
33
+ .string()
34
+ .describe("What the user was trying to accomplish and why the native tool couldn't handle it"),
35
+ pythonWorkaround: z
36
+ .string()
37
+ .optional()
38
+ .describe("The execute_python code that was used as a workaround"),
39
+ idealTool: z
40
+ .string()
41
+ .optional()
42
+ .describe("What tool/action should have handled this natively (e.g. 'blueprint(action=set_variable_default)')"),
43
+ });
44
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAkC,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAY,YAAY,CAC/C,UAAU,EACV,6GAA6G,EAC7G;IACE,MAAM,EAAE;QACN,OAAO,EAAE,KAAK,EAAE,IAAiB,EAAE,MAA+B,EAAE,EAAE;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAe,CAAC;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;YACzC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAsC,CAAC;YACvE,MAAM,SAAS,GAAG,MAAM,CAAC,SAA+B,CAAC;YAEzD,MAAM,QAAQ,GAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEnD,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,2BAA2B,EAC3B,WAAW,EACX,gBAAgB,EAChB,KAAK,CACN,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,uCAAuC,CAAC,CAAC;YAElE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,kCAAkC;gBAC3C,SAAS,EAAE,MAAM,CAAC,GAAG;gBACrB,YAAY,EAAE,MAAM,CAAC,MAAM;aAC5B,CAAC;QACJ,CAAC;KACF;CACF,EACD,mGAAmG,EACnG;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,mFAAmF,CAAC;IAChG,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oGAAoG,CAAC;CAClH,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const foliageTool: ToolDef;
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const foliageTool = categoryTool("foliage", "Foliage painting, types, sampling, and settings.", {
4
+ list_types: bp("list_foliage_types"),
5
+ get_settings: bp("get_foliage_type_settings"),
6
+ sample: bp("sample_foliage"),
7
+ paint: bp("paint_foliage"),
8
+ erase: bp("erase_foliage"),
9
+ create_type: bp("create_foliage_type"),
10
+ set_settings: bp("set_foliage_type_settings"),
11
+ }, `- list_types: List foliage types in level
12
+ - get_settings: Read foliage type settings. Params: foliageTypeName
13
+ - sample: Query instances in region. Params: center {x,y,z}, radius, foliageType?
14
+ - paint: Add foliage. Params: foliageType, center {x,y,z}, radius, count?, density?
15
+ - erase: Remove foliage. Params: center {x,y,z}, radius, foliageType?
16
+ - create_type: Create from mesh. Params: meshPath, name?, packagePath?
17
+ - set_settings: Modify type settings. Params: foliageTypeName, settings`, {
18
+ foliageTypeName: z.string().optional(),
19
+ foliageType: z.string().optional(),
20
+ center: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
21
+ radius: z.number().optional(),
22
+ count: z.number().optional(),
23
+ density: z.number().optional(),
24
+ meshPath: z.string().optional(),
25
+ name: z.string().optional(),
26
+ packagePath: z.string().optional(),
27
+ settings: z.record(z.unknown()).optional(),
28
+ });
29
+ //# sourceMappingURL=foliage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foliage.js","sourceRoot":"","sources":["../../src/tools/foliage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAY,YAAY,CAC9C,SAAS,EACT,kDAAkD,EAClD;IACE,UAAU,EAAK,EAAE,CAAC,oBAAoB,CAAC;IACvC,YAAY,EAAG,EAAE,CAAC,2BAA2B,CAAC;IAC9C,MAAM,EAAS,EAAE,CAAC,gBAAgB,CAAC;IACnC,KAAK,EAAU,EAAE,CAAC,eAAe,CAAC;IAClC,KAAK,EAAU,EAAE,CAAC,eAAe,CAAC;IAClC,WAAW,EAAI,EAAE,CAAC,qBAAqB,CAAC;IACxC,YAAY,EAAG,EAAE,CAAC,2BAA2B,CAAC;CAC/C,EACD;;;;;;wEAMsE,EACtE;IACE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const gameplayTool: ToolDef;
@@ -0,0 +1,101 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const gameplayTool = categoryTool("gameplay", "Gameplay systems: physics, collision, navigation, input, behavior trees, AI (EQS, perception, State Trees, Smart Objects), game framework.", {
4
+ // Physics & Collision
5
+ set_collision_profile: bp("set_collision_profile"),
6
+ set_simulate_physics: bp("set_simulate_physics"),
7
+ set_collision_enabled: bp("set_collision_enabled"),
8
+ set_physics_properties: bp("set_physics_properties"),
9
+ // Navigation
10
+ rebuild_navigation: bp("rebuild_navigation"),
11
+ get_navmesh_info: bp("get_navmesh_info"),
12
+ project_to_nav: bp("project_point_to_navigation"),
13
+ spawn_nav_modifier: bp("spawn_nav_modifier_volume"),
14
+ // Input
15
+ create_input_action: bp("create_input_action"),
16
+ create_input_mapping: bp("create_input_mapping_context"),
17
+ list_input_assets: bp("list_input_assets"),
18
+ // Behavior Trees
19
+ list_behavior_trees: bp("list_behavior_trees"),
20
+ get_behavior_tree_info: bp("get_behavior_tree_info"),
21
+ create_blackboard: bp("create_blackboard"),
22
+ create_behavior_tree: bp("create_behavior_tree"),
23
+ // EQS
24
+ create_eqs_query: bp("create_eqs_query"),
25
+ list_eqs_queries: bp("list_eqs_queries"),
26
+ // AI Perception
27
+ add_perception: bp("add_perception_component"),
28
+ configure_sense: bp("configure_ai_perception_sense"),
29
+ // State Trees
30
+ create_state_tree: bp("create_state_tree"),
31
+ list_state_trees: bp("list_state_trees"),
32
+ add_state_tree_component: bp("add_state_tree_component"),
33
+ // Smart Objects
34
+ create_smart_object_def: bp("create_smart_object_definition"),
35
+ add_smart_object_component: bp("add_smart_object_component"),
36
+ // Game Framework
37
+ create_game_mode: bp("create_game_mode"),
38
+ create_game_state: bp("create_game_state"),
39
+ create_player_controller: bp("create_player_controller"),
40
+ create_player_state: bp("create_player_state"),
41
+ create_hud: bp("create_hud"),
42
+ set_world_game_mode: bp("set_world_game_mode"),
43
+ get_framework_info: bp("get_game_framework_info"),
44
+ }, `- set_collision_profile: Set collision preset. Params: actorLabel, profileName
45
+ - set_simulate_physics: Toggle physics. Params: actorLabel, simulate
46
+ - set_collision_enabled: Set collision mode. Params: actorLabel, collisionEnabled
47
+ - set_physics_properties: Set mass/damping/gravity. Params: actorLabel, mass?, linearDamping?, angularDamping?, enableGravity?
48
+ - rebuild_navigation: Rebuild navmesh
49
+ - get_navmesh_info: Query nav system
50
+ - project_to_nav: Project point to navmesh. Params: location, extent?
51
+ - spawn_nav_modifier: Place nav modifier. Params: location, extent?, areaClass?
52
+ - create_input_action: Create InputAction. Params: name, packagePath?, valueType?
53
+ - create_input_mapping: Create InputMappingContext. Params: name, packagePath?
54
+ - list_input_assets: List input assets. Params: directory?, recursive?
55
+ - list_behavior_trees: List BTs. Params: directory?, recursive?
56
+ - get_behavior_tree_info: Inspect BT. Params: assetPath
57
+ - create_blackboard: Create Blackboard. Params: name, packagePath?
58
+ - create_behavior_tree: Create BT. Params: name, packagePath?, blackboardPath?
59
+ - create_eqs_query: Create EQS query. Params: name, packagePath?
60
+ - list_eqs_queries: List EQS queries. Params: directory?
61
+ - add_perception: Add AIPerceptionComponent. Params: blueprintPath, senses?
62
+ - configure_sense: Configure perception sense. Params: blueprintPath, senseType (Sight|Hearing|Damage|Touch|Team), settings?
63
+ - create_state_tree: Create StateTree. Params: name, packagePath?
64
+ - list_state_trees: List StateTrees. Params: directory?
65
+ - add_state_tree_component: Add StateTreeComponent. Params: blueprintPath
66
+ - create_smart_object_def: Create SmartObjectDefinition. Params: name, packagePath?
67
+ - add_smart_object_component: Add SmartObjectComponent. Params: blueprintPath
68
+ - create_game_mode: Create GameMode BP. Params: name, packagePath?, parentClass?, defaults? (defaultPawnClass, hudClass, playerControllerClass, gameStateClass)
69
+ - create_game_state: Create GameState BP. Params: name, packagePath?, parentClass?
70
+ - create_player_controller: Create PlayerController BP. Params: name, packagePath?, parentClass?
71
+ - create_player_state: Create PlayerState BP. Params: name, packagePath?
72
+ - create_hud: Create HUD BP. Params: name, packagePath?
73
+ - set_world_game_mode: Set level GameMode override. Params: gameModePath
74
+ - get_framework_info: Get level framework classes`, {
75
+ actorLabel: z.string().optional(),
76
+ profileName: z.string().optional(),
77
+ simulate: z.boolean().optional(),
78
+ collisionEnabled: z.string().optional(),
79
+ mass: z.number().optional(),
80
+ linearDamping: z.number().optional(),
81
+ angularDamping: z.number().optional(),
82
+ enableGravity: z.boolean().optional(),
83
+ location: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
84
+ extent: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
85
+ areaClass: z.string().optional(),
86
+ name: z.string().optional(),
87
+ packagePath: z.string().optional(),
88
+ valueType: z.string().optional(),
89
+ directory: z.string().optional(),
90
+ recursive: z.boolean().optional(),
91
+ assetPath: z.string().optional(),
92
+ blackboardPath: z.string().optional(),
93
+ blueprintPath: z.string().optional(),
94
+ senses: z.array(z.string()).optional(),
95
+ senseType: z.string().optional(),
96
+ settings: z.record(z.unknown()).optional(),
97
+ parentClass: z.string().optional(),
98
+ defaults: z.record(z.string()).optional(),
99
+ gameModePath: z.string().optional(),
100
+ });
101
+ //# sourceMappingURL=gameplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gameplay.js","sourceRoot":"","sources":["../../src/tools/gameplay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAY,YAAY,CAC/C,UAAU,EACV,4IAA4I,EAC5I;IACE,sBAAsB;IACtB,qBAAqB,EAAG,EAAE,CAAC,uBAAuB,CAAC;IACnD,oBAAoB,EAAI,EAAE,CAAC,sBAAsB,CAAC;IAClD,qBAAqB,EAAG,EAAE,CAAC,uBAAuB,CAAC;IACnD,sBAAsB,EAAE,EAAE,CAAC,wBAAwB,CAAC;IACpD,aAAa;IACb,kBAAkB,EAAM,EAAE,CAAC,oBAAoB,CAAC;IAChD,gBAAgB,EAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9C,cAAc,EAAU,EAAE,CAAC,6BAA6B,CAAC;IACzD,kBAAkB,EAAM,EAAE,CAAC,2BAA2B,CAAC;IACvD,QAAQ;IACR,mBAAmB,EAAK,EAAE,CAAC,qBAAqB,CAAC;IACjD,oBAAoB,EAAI,EAAE,CAAC,8BAA8B,CAAC;IAC1D,iBAAiB,EAAO,EAAE,CAAC,mBAAmB,CAAC;IAC/C,iBAAiB;IACjB,mBAAmB,EAAK,EAAE,CAAC,qBAAqB,CAAC;IACjD,sBAAsB,EAAE,EAAE,CAAC,wBAAwB,CAAC;IACpD,iBAAiB,EAAO,EAAE,CAAC,mBAAmB,CAAC;IAC/C,oBAAoB,EAAI,EAAE,CAAC,sBAAsB,CAAC;IAClD,MAAM;IACN,gBAAgB,EAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9C,gBAAgB,EAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9C,gBAAgB;IAChB,cAAc,EAAU,EAAE,CAAC,0BAA0B,CAAC;IACtD,eAAe,EAAS,EAAE,CAAC,+BAA+B,CAAC;IAC3D,cAAc;IACd,iBAAiB,EAAO,EAAE,CAAC,mBAAmB,CAAC;IAC/C,gBAAgB,EAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9C,wBAAwB,EAAE,EAAE,CAAC,0BAA0B,CAAC;IACxD,gBAAgB;IAChB,uBAAuB,EAAE,EAAE,CAAC,gCAAgC,CAAC;IAC7D,0BAA0B,EAAE,EAAE,CAAC,4BAA4B,CAAC;IAC5D,iBAAiB;IACjB,gBAAgB,EAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9C,iBAAiB,EAAO,EAAE,CAAC,mBAAmB,CAAC;IAC/C,wBAAwB,EAAE,EAAE,CAAC,0BAA0B,CAAC;IACxD,mBAAmB,EAAK,EAAE,CAAC,qBAAqB,CAAC;IACjD,UAAU,EAAc,EAAE,CAAC,YAAY,CAAC;IACxC,mBAAmB,EAAK,EAAE,CAAC,qBAAqB,CAAC;IACjD,kBAAkB,EAAM,EAAE,CAAC,yBAAyB,CAAC;CACtD,EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA8BgD,EAChD;IACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const gasTool: ToolDef;
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const gasTool = categoryTool("gas", "Gameplay Ability System: abilities, effects, attribute sets, cues.", {
4
+ add_asc: bp("add_ability_system_component"),
5
+ create_attribute_set: bp("create_attribute_set"),
6
+ add_attribute: bp("add_attribute"),
7
+ create_ability: bp("create_gameplay_ability"),
8
+ set_ability_tags: bp("set_ability_tags"),
9
+ create_effect: bp("create_gameplay_effect"),
10
+ set_effect_modifier: bp("set_effect_modifier"),
11
+ create_cue: bp("create_gameplay_cue"),
12
+ get_info: bp("get_gas_info"),
13
+ }, `- add_asc: Add AbilitySystemComponent. Params: blueprintPath, componentName?
14
+ - create_attribute_set: Create AttributeSet BP. Params: name, packagePath?
15
+ - add_attribute: Add attribute to set. Params: attributeSetPath, attributeName, defaultValue?
16
+ - create_ability: Create GameplayAbility BP. Params: name, packagePath?, parentClass?
17
+ - set_ability_tags: Set tags on ability. Params: abilityPath, ability_tags?, cancel_abilities_with_tag?, activation_required_tags?, activation_blocked_tags?
18
+ - create_effect: Create GameplayEffect BP. Params: name, packagePath?, durationPolicy? (Instant|HasDuration|Infinite)
19
+ - set_effect_modifier: Add modifier. Params: effectPath, attribute, operation?, magnitude?
20
+ - create_cue: Create GameplayCue. Params: name, packagePath?, cueType? (Static|Actor)
21
+ - get_info: Inspect GAS setup. Params: blueprintPath`, {
22
+ blueprintPath: z.string().optional(),
23
+ name: z.string().optional(),
24
+ packagePath: z.string().optional(),
25
+ componentName: z.string().optional(),
26
+ attributeSetPath: z.string().optional(),
27
+ attributeName: z.string().optional(),
28
+ defaultValue: z.number().optional(),
29
+ parentClass: z.string().optional(),
30
+ abilityPath: z.string().optional(),
31
+ ability_tags: z.array(z.string()).optional(),
32
+ cancel_abilities_with_tag: z.array(z.string()).optional(),
33
+ block_abilities_with_tag: z.array(z.string()).optional(),
34
+ activation_required_tags: z.array(z.string()).optional(),
35
+ activation_blocked_tags: z.array(z.string()).optional(),
36
+ effectPath: z.string().optional(),
37
+ attribute: z.string().optional(),
38
+ operation: z.string().optional(),
39
+ magnitude: z.number().optional(),
40
+ durationPolicy: z.string().optional(),
41
+ cueType: z.string().optional(),
42
+ });
43
+ //# sourceMappingURL=gas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tools/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAY,YAAY,CAC1C,KAAK,EACL,oEAAoE,EACpE;IACE,OAAO,EAAc,EAAE,CAAC,8BAA8B,CAAC;IACvD,oBAAoB,EAAE,EAAE,CAAC,sBAAsB,CAAC;IAChD,aAAa,EAAQ,EAAE,CAAC,eAAe,CAAC;IACxC,cAAc,EAAO,EAAE,CAAC,yBAAyB,CAAC;IAClD,gBAAgB,EAAK,EAAE,CAAC,kBAAkB,CAAC;IAC3C,aAAa,EAAQ,EAAE,CAAC,wBAAwB,CAAC;IACjD,mBAAmB,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAC9C,UAAU,EAAW,EAAE,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,EAAa,EAAE,CAAC,cAAc,CAAC;CACxC,EACD;;;;;;;;qDAQmD,EACnD;IACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const landscapeTool: ToolDef;
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const landscapeTool = categoryTool("landscape", "Landscape terrain: info, layers, sculpting, painting, materials, heightmap import.", {
4
+ get_info: bp("get_landscape_info"),
5
+ list_layers: bp("list_landscape_layers"),
6
+ sample: bp("sample_landscape"),
7
+ list_splines: bp("list_landscape_splines"),
8
+ get_component: bp("get_landscape_component"),
9
+ sculpt: bp("sculpt_landscape"),
10
+ paint_layer: bp("paint_landscape_layer"),
11
+ set_material: bp("set_landscape_material"),
12
+ add_layer_info: bp("add_landscape_layer_info"),
13
+ import_heightmap: bp("import_landscape_heightmap"),
14
+ }, `- get_info: Get landscape setup
15
+ - list_layers: List paint layers
16
+ - sample: Sample height/layers. Params: x, y
17
+ - list_splines: Read landscape splines
18
+ - get_component: Inspect component. Params: componentIndex
19
+ - sculpt: Sculpt heightmap. Params: x, y, radius, strength, falloff?
20
+ - paint_layer: Paint weight layer. Params: layerName, x, y, radius, strength?
21
+ - set_material: Set landscape material. Params: materialPath
22
+ - add_layer_info: Register paint layer. Params: layerName
23
+ - import_heightmap: Import heightmap file. Params: filePath`, {
24
+ x: z.number().optional(), y: z.number().optional(),
25
+ radius: z.number().optional(), strength: z.number().optional(),
26
+ falloff: z.number().optional(),
27
+ layerName: z.string().optional(),
28
+ materialPath: z.string().optional(),
29
+ filePath: z.string().optional(),
30
+ componentIndex: z.number().optional(),
31
+ });
32
+ //# sourceMappingURL=landscape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landscape.js","sourceRoot":"","sources":["../../src/tools/landscape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAY,YAAY,CAChD,WAAW,EACX,oFAAoF,EACpF;IACE,QAAQ,EAAW,EAAE,CAAC,oBAAoB,CAAC;IAC3C,WAAW,EAAQ,EAAE,CAAC,uBAAuB,CAAC;IAC9C,MAAM,EAAa,EAAE,CAAC,kBAAkB,CAAC;IACzC,YAAY,EAAO,EAAE,CAAC,wBAAwB,CAAC;IAC/C,aAAa,EAAM,EAAE,CAAC,yBAAyB,CAAC;IAChD,MAAM,EAAa,EAAE,CAAC,kBAAkB,CAAC;IACzC,WAAW,EAAQ,EAAE,CAAC,uBAAuB,CAAC;IAC9C,YAAY,EAAO,EAAE,CAAC,wBAAwB,CAAC;IAC/C,cAAc,EAAK,EAAE,CAAC,0BAA0B,CAAC;IACjD,gBAAgB,EAAG,EAAE,CAAC,4BAA4B,CAAC;CACpD,EACD;;;;;;;;;4DAS0D,EAC1D;IACE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type ToolDef } from "../types.js";
2
+ export declare const levelTool: ToolDef;
@@ -0,0 +1,66 @@
1
+ import { z } from "zod";
2
+ import { categoryTool, bp } from "../types.js";
3
+ export const levelTool = categoryTool("level", "Level actors, selection, components, level management, volumes, lights, and splines.", {
4
+ get_outliner: bp("get_world_outliner"),
5
+ place_actor: bp("place_actor"),
6
+ delete_actor: bp("delete_actor"),
7
+ get_actor_details: bp("get_actor_details"),
8
+ move_actor: bp("move_actor"),
9
+ select: bp("select_actors"),
10
+ get_selected: bp("get_selected_actors"),
11
+ add_component: bp("add_component_to_actor"),
12
+ set_component_property: bp("set_component_property"),
13
+ get_current: bp("get_current_level"),
14
+ load: bp("load_level"),
15
+ save: bp("save_current_level"),
16
+ list: bp("list_levels"),
17
+ create: bp("create_new_level"),
18
+ spawn_volume: bp("spawn_volume"),
19
+ list_volumes: bp("list_volumes"),
20
+ set_volume_properties: bp("set_volume_properties"),
21
+ spawn_light: bp("spawn_light"),
22
+ set_light_properties: bp("set_light_properties"),
23
+ build_lighting: bp("build_lighting"),
24
+ get_spline_info: bp("get_spline_info"),
25
+ set_spline_points: bp("set_spline_points"),
26
+ }, `- get_outliner: List actors. Params: classFilter?, nameFilter?
27
+ - place_actor: Spawn actor. Params: actorClass, label?, location?, rotation?, scale?, properties?
28
+ - delete_actor: Remove actor. Params: actorLabel
29
+ - get_actor_details: Inspect actor. Params: actorLabel
30
+ - move_actor: Transform actor. Params: actorLabel, location?, rotation?, scale?
31
+ - select: Select actors. Params: actorLabels[]
32
+ - get_selected: Get selection
33
+ - add_component: Add component to actor. Params: actorLabel, componentClass, componentName?
34
+ - set_component_property: Set component prop. Params: actorLabel, componentName, propertyName, value
35
+ - get_current/load/save/list/create: Level management. Params: levelPath?, templateLevel?
36
+ - spawn_volume: Place volume. Params: volumeType, location?, extent?, label?
37
+ - list_volumes: List volumes. Params: volumeType?
38
+ - set_volume_properties: Edit volume. Params: actorLabel, properties
39
+ - spawn_light: Place light. Params: lightType, location?, rotation?, intensity?, color?, label?
40
+ - set_light_properties: Edit light. Params: actorLabel, intensity?, color?, temperature?, castShadows?, attenuationRadius?
41
+ - build_lighting: Build lights. Params: quality?
42
+ - get_spline_info: Read spline. Params: actorLabel
43
+ - set_spline_points: Set spline points. Params: actorLabel, points[], closedLoop?`, {
44
+ actorLabel: z.string().optional(), actorLabels: z.array(z.string()).optional(),
45
+ actorClass: z.string().optional(), label: z.string().optional(),
46
+ location: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
47
+ rotation: z.object({ pitch: z.number(), yaw: z.number(), roll: z.number() }).optional(),
48
+ scale: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
49
+ properties: z.record(z.unknown()).optional(),
50
+ classFilter: z.string().optional(), nameFilter: z.string().optional(),
51
+ componentClass: z.string().optional(), componentName: z.string().optional(),
52
+ propertyName: z.string().optional(), value: z.unknown().optional(),
53
+ levelPath: z.string().optional(), templateLevel: z.string().optional(),
54
+ directory: z.string().optional(), recursive: z.boolean().optional(),
55
+ volumeType: z.string().optional(),
56
+ extent: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
57
+ lightType: z.string().optional(), intensity: z.number().optional(),
58
+ color: z.object({ r: z.number(), g: z.number(), b: z.number() }).optional(),
59
+ temperature: z.number().optional(), castShadows: z.boolean().optional(),
60
+ attenuationRadius: z.number().optional(),
61
+ innerConeAngle: z.number().optional(), outerConeAngle: z.number().optional(),
62
+ quality: z.string().optional(),
63
+ points: z.array(z.object({ x: z.number(), y: z.number(), z: z.number() })).optional(),
64
+ closedLoop: z.boolean().optional(),
65
+ });
66
+ //# sourceMappingURL=level.js.map