ue-mcp 0.7.13 → 0.7.14

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.
@@ -21,6 +21,48 @@ export const niagaraTool = categoryTool("niagara", "Niagara VFX: systems, emitte
21
21
  create_system_from_spec: bp("Declaratively create a system + emitters. Params: name, packagePath?, emitters?:[{path}]", "create_niagara_system_from_spec"),
22
22
  get_compiled_hlsl: bp("Read GPU compute script info for an emitter. Params: systemPath, emitterName?, emitterIndex?", "get_niagara_compiled_hlsl"),
23
23
  list_system_parameters: bp("List user-exposed system parameters. Params: systemPath", "list_niagara_system_parameters"),
24
+ list_module_inputs: bp("List modules + their input pins for an emitter. Params: systemPath, emitterName?, emitterIndex?, stackContext? (ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all — default all)", "list_niagara_module_inputs"),
25
+ set_module_input: bp("Set literal default on a module input pin. Params: systemPath, moduleName, inputName, value, emitterName?, emitterIndex?, stackContext?", "set_niagara_module_input"),
26
+ list_static_switches: bp("List static switch inputs on a module. Params: systemPath, moduleName, emitterName?, emitterIndex?, stackContext?", "list_niagara_static_switches"),
27
+ set_static_switch: bp("Set static switch value on a module's function call node. Params: systemPath, moduleName, switchName, value, emitterName?, emitterIndex?, stackContext?", "set_niagara_static_switch"),
28
+ create_module_from_hlsl: bp("Create a NiagaraScript module backed by a custom HLSL node. Params: name, hlsl, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}]", "create_niagara_module_from_hlsl"),
29
+ batch: {
30
+ description: "Run a sequence of niagara operations against the bridge in order. Fails fast on the first error (returns results up to that point + error). Params: ops:[{action, params}] where action is any niagara subaction listed above.",
31
+ handler: async (ctx, params) => {
32
+ const opsUnknown = params.ops;
33
+ if (!Array.isArray(opsUnknown))
34
+ throw new Error("'ops' must be an array of {action, params}");
35
+ const results = [];
36
+ for (let i = 0; i < opsUnknown.length; i++) {
37
+ const op = opsUnknown[i];
38
+ const action = op?.action;
39
+ if (!action) {
40
+ results.push({ action: "(missing)", error: `ops[${i}] missing 'action'` });
41
+ return { results, stoppedAt: i };
42
+ }
43
+ const spec = niagaraTool.actions[action];
44
+ if (!spec) {
45
+ results.push({ action, error: `Unknown niagara action '${action}'` });
46
+ return { results, stoppedAt: i };
47
+ }
48
+ if (action === "batch") {
49
+ results.push({ action, error: "nested batch not allowed" });
50
+ return { results, stoppedAt: i };
51
+ }
52
+ try {
53
+ const subParams = { ...(op.params ?? {}), action };
54
+ const result = await spec.handler?.(ctx, subParams)
55
+ ?? (spec.bridge ? await ctx.bridge.call(spec.bridge, spec.mapParams ? spec.mapParams(subParams) : (() => { const { action: _, ...r } = subParams; return r; })(), spec.timeoutMs) : undefined);
56
+ results.push({ action, result });
57
+ }
58
+ catch (e) {
59
+ results.push({ action, error: e.message });
60
+ return { results, stoppedAt: i };
61
+ }
62
+ }
63
+ return { results, stoppedAt: null };
64
+ },
65
+ },
24
66
  }, undefined, {
25
67
  assetPath: z.string().optional(), actorLabel: z.string().optional(),
26
68
  directory: z.string().optional(), recursive: z.boolean().optional(),
@@ -41,5 +83,13 @@ export const niagaraTool = categoryTool("niagara", "Niagara VFX: systems, emitte
41
83
  propertyName: z.string().optional(),
42
84
  emitters: z.array(z.record(z.unknown())).optional().describe("Spec: [{path:'/Game/VFX/E_Fire'}]"),
43
85
  onConflict: z.string().optional().describe("skip|error when asset exists"),
86
+ moduleName: z.string().optional().describe("For module input / static switch ops: name of the module function call node"),
87
+ inputName: z.string().optional().describe("For set_module_input: module input pin name"),
88
+ switchName: z.string().optional().describe("For set_static_switch: static switch input name"),
89
+ stackContext: z.string().optional().describe("ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all (default all)"),
90
+ hlsl: z.string().optional().describe("For create_module_from_hlsl: HLSL body"),
91
+ inputs: z.array(z.record(z.unknown())).optional().describe("For create_module_from_hlsl: [{name, type}]"),
92
+ outputs: z.array(z.record(z.unknown())).optional().describe("For create_module_from_hlsl: [{name, type}]"),
93
+ ops: z.array(z.record(z.unknown())).optional().describe("For batch: [{action, params}]"),
44
94
  });
45
95
  //# sourceMappingURL=niagara.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"niagara.js","sourceRoot":"","sources":["../../src/tools/niagara.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"niagara.js","sourceRoot":"","sources":["../../src/tools/niagara.ts"],"names":[],"mappings":"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"}
@@ -341,6 +341,83 @@ export const projectTool = categoryTool("project", "Project status, config INI f
341
341
  return { engineRoot, moduleCount: modules.length, modules };
342
342
  },
343
343
  },
344
+ search_engine_cpp: {
345
+ description: "Search engine .h/.cpp/.inl files across Runtime/Editor/Developer/Plugins. Params: query, tree? (Runtime|Editor|Developer|Plugins|all — default Runtime), subdirectory?, maxResults? (default 500)",
346
+ handler: async (ctx, p) => {
347
+ ctx.project.ensureLoaded();
348
+ const resolvedEngineRoot = findEngineInstall(ctx.project.engineAssociation ?? null);
349
+ if (!resolvedEngineRoot)
350
+ throw new Error("Could not resolve engine install path");
351
+ const engineRoot = resolvedEngineRoot;
352
+ const query = p.query?.toLowerCase();
353
+ if (!query)
354
+ throw new Error("Missing required parameter 'query'");
355
+ const tree = p.tree ?? "Runtime";
356
+ const maxResults = p.maxResults ?? 500;
357
+ const subdir = p.subdirectory;
358
+ const engineSource = path.join(engineRoot, "Engine", "Source");
359
+ const roots = [];
360
+ if (tree === "all") {
361
+ for (const t of ["Runtime", "Editor", "Developer"]) {
362
+ const d = path.join(engineSource, t);
363
+ if (fs.existsSync(d))
364
+ roots.push(d);
365
+ }
366
+ const pluginsDir = path.join(engineRoot, "Engine", "Plugins");
367
+ if (fs.existsSync(pluginsDir))
368
+ roots.push(pluginsDir);
369
+ }
370
+ else if (tree === "Plugins") {
371
+ const d = path.join(engineRoot, "Engine", "Plugins");
372
+ if (!fs.existsSync(d))
373
+ throw new Error(`Engine plugins dir not found: ${d}`);
374
+ roots.push(d);
375
+ }
376
+ else {
377
+ const d = path.join(engineSource, tree);
378
+ if (!fs.existsSync(d))
379
+ throw new Error(`Engine tree '${tree}' not found: ${d}`);
380
+ roots.push(subdir ? path.join(d, subdir) : d);
381
+ }
382
+ const results = [];
383
+ function scan(dir) {
384
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
385
+ if (results.length >= maxResults)
386
+ return true;
387
+ const full = path.join(dir, entry.name);
388
+ if (entry.isDirectory()) {
389
+ if (entry.name === "Intermediate" || entry.name === "Binaries")
390
+ continue;
391
+ if (scan(full))
392
+ return true;
393
+ }
394
+ else if (/\.(h|cpp|inl)$/i.test(entry.name)) {
395
+ let content;
396
+ try {
397
+ content = fs.readFileSync(full, "utf-8");
398
+ }
399
+ catch {
400
+ continue;
401
+ }
402
+ const lines = content.split(/\r?\n/);
403
+ for (let i = 0; i < lines.length; i++) {
404
+ if (lines[i].toLowerCase().includes(query)) {
405
+ results.push({ file: path.relative(engineRoot, full).replace(/\\/g, "/"), line: i + 1, content: lines[i].trimEnd() });
406
+ if (results.length >= maxResults)
407
+ return true;
408
+ }
409
+ }
410
+ }
411
+ }
412
+ return false;
413
+ }
414
+ for (const r of roots) {
415
+ if (scan(r))
416
+ break;
417
+ }
418
+ return { query: p.query, tree, subdirectory: subdir ?? "(root)", engineRoot, resultCount: results.length, results };
419
+ },
420
+ },
344
421
  set_config: bp("Write to INI. Params: configName, section, key, value", "set_config"),
345
422
  build: bp("Build C++ project. Params: configuration?, platform?, clean?", "build_project"),
346
423
  generate_project_files: bp("Generate IDE project files (Visual Studio, Xcode, etc.)", "generate_project_files"),
@@ -483,7 +560,9 @@ export const projectTool = categoryTool("project", "Project status, config INI f
483
560
  platform: z.string().optional().describe("Target platform: Win64, Linux, Mac"),
484
561
  clean: z.boolean().optional().describe("Clean build"),
485
562
  symbol: z.string().optional().describe("Symbol name for find_engine_symbol"),
486
- maxResults: z.number().optional().describe("Cap on find_engine_symbol hits (default 100)"),
563
+ maxResults: z.number().optional().describe("Cap on find_engine_symbol / search_engine_cpp hits (default 100 / 500)"),
564
+ tree: z.string().optional().describe("For search_engine_cpp: Runtime|Editor|Developer|Plugins|all (default Runtime)"),
565
+ subdirectory: z.string().optional().describe("For search_engine_cpp: subdirectory within the chosen tree"),
487
566
  // v0.7.13 — native C++ authoring
488
567
  className: z.string().optional().describe("For create_cpp_class: new class name (no A/U prefix — handled by parent type)"),
489
568
  parentClass: z.string().optional().describe("For create_cpp_class: parent UClass. Short native names ('Actor') or /Script/<Module>.<Class> paths work. Default UObject."),
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,10 @@ tasks:
59
59
  class_path: project.list_engine_modules
60
60
  group: project
61
61
  description: List modules in Engine/Source/Runtime
62
+ project.search_engine_cpp:
63
+ class_path: project.search_engine_cpp
64
+ group: project
65
+ description: "Search engine .h/.cpp/.inl files across Runtime/Editor/Developer/Plugins. Params: query, tree? (Runtime|Editor|Developer|Plugins|all — default Runtime), subdirectory?, maxResults? (default 500)"
62
66
  project.set_config:
63
67
  class_path: ue-mcp.bridge
64
68
  group: project
@@ -1405,6 +1409,40 @@ tasks:
1405
1409
  description: "List user-exposed system parameters. Params: systemPath"
1406
1410
  options:
1407
1411
  method: list_niagara_system_parameters
1412
+ niagara.list_module_inputs:
1413
+ class_path: ue-mcp.bridge
1414
+ group: niagara
1415
+ description: "List modules + their input pins for an emitter. Params: systemPath, emitterName?, emitterIndex?, stackContext? (ParticleSpawn|ParticleUpdate|EmitterSpawn|EmitterUpdate|all — default all)"
1416
+ options:
1417
+ method: list_niagara_module_inputs
1418
+ niagara.set_module_input:
1419
+ class_path: ue-mcp.bridge
1420
+ group: niagara
1421
+ description: "Set literal default on a module input pin. Params: systemPath, moduleName, inputName, value, emitterName?, emitterIndex?, stackContext?"
1422
+ options:
1423
+ method: set_niagara_module_input
1424
+ niagara.list_static_switches:
1425
+ class_path: ue-mcp.bridge
1426
+ group: niagara
1427
+ description: "List static switch inputs on a module. Params: systemPath, moduleName, emitterName?, emitterIndex?, stackContext?"
1428
+ options:
1429
+ method: list_niagara_static_switches
1430
+ niagara.set_static_switch:
1431
+ class_path: ue-mcp.bridge
1432
+ group: niagara
1433
+ description: "Set static switch value on a module's function call node. Params: systemPath, moduleName, switchName, value, emitterName?, emitterIndex?, stackContext?"
1434
+ options:
1435
+ method: set_niagara_static_switch
1436
+ niagara.create_module_from_hlsl:
1437
+ class_path: ue-mcp.bridge
1438
+ group: niagara
1439
+ description: "Create a NiagaraScript module backed by a custom HLSL node. Params: name, hlsl, packagePath?, inputs?:[{name,type}], outputs?:[{name,type}]"
1440
+ options:
1441
+ method: create_niagara_module_from_hlsl
1442
+ niagara.batch:
1443
+ class_path: niagara.batch
1444
+ group: niagara
1445
+ description: "Run a sequence of niagara operations against the bridge in order. Fails fast on the first error (returns results up to that point + error). Params: ops:[{action, params}] where action is any niagara subaction listed above."
1408
1446
 
1409
1447
  # ── audio ──
1410
1448
  audio.list:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ue-mcp",
3
- "version": "0.7.13",
3
+ "version": "0.7.14",
4
4
  "description": "Unreal Engine MCP server — 19 tools, 300+ actions for AI-driven editor control",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,11 +20,19 @@
20
20
  #include "NiagaraDataInterface.h"
21
21
  #include "NiagaraScriptSource.h"
22
22
  #include "NiagaraScript.h"
23
+ #include "NiagaraGraph.h"
24
+ #include "NiagaraNodeFunctionCall.h"
25
+ #include "NiagaraNodeCustomHlsl.h"
26
+ #include "NiagaraScriptFactoryNew.h"
27
+ #include "NiagaraEmitterHandle.h"
23
28
  #include "Editor.h"
24
29
  #include "Engine/World.h"
25
30
  #include "EngineUtils.h"
26
31
  #include "GameFramework/Actor.h"
27
32
  #include "Factories/Factory.h"
33
+ #include "EdGraph/EdGraph.h"
34
+ #include "EdGraph/EdGraphPin.h"
35
+ #include "EdGraph/EdGraphNode.h"
28
36
 
29
37
  void FNiagaraHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
30
38
  {
@@ -50,6 +58,13 @@ void FNiagaraHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
50
58
  Registry.RegisterHandler(TEXT("create_niagara_system_from_spec"), &CreateNiagaraSystemFromSpec);
51
59
  Registry.RegisterHandler(TEXT("get_niagara_compiled_hlsl"), &GetCompiledHLSL);
52
60
  Registry.RegisterHandler(TEXT("list_niagara_system_parameters"), &ListSystemParameters);
61
+
62
+ // v0.7.14 — module inputs, static switches, HLSL modules
63
+ Registry.RegisterHandler(TEXT("list_niagara_module_inputs"), &ListModuleInputs);
64
+ Registry.RegisterHandler(TEXT("set_niagara_module_input"), &SetModuleInput);
65
+ Registry.RegisterHandler(TEXT("list_niagara_static_switches"), &ListStaticSwitches);
66
+ Registry.RegisterHandler(TEXT("set_niagara_static_switch"), &SetStaticSwitch);
67
+ Registry.RegisterHandler(TEXT("create_niagara_module_from_hlsl"), &CreateModuleFromHlsl);
53
68
  }
54
69
 
55
70
  TSharedPtr<FJsonValue> FNiagaraHandlers::ListNiagaraSystems(const TSharedPtr<FJsonObject>& Params)
@@ -1100,3 +1115,414 @@ TSharedPtr<FJsonValue> FNiagaraHandlers::ListSystemParameters(const TSharedPtr<F
1100
1115
  Res->SetNumberField(TEXT("parameterCount"), Arr.Num());
1101
1116
  return MCPResult(Res);
1102
1117
  }
1118
+
1119
+ // ===========================================================================
1120
+ // v0.7.14 — module inputs, static switches, HLSL modules
1121
+ // ===========================================================================
1122
+
1123
+ namespace
1124
+ {
1125
+ struct FScriptSlot
1126
+ {
1127
+ FString Context;
1128
+ UNiagaraScript* Script;
1129
+ };
1130
+
1131
+ void CollectEmitterScripts(FVersionedNiagaraEmitterData* Data, const FString& StackContext, TArray<FScriptSlot>& Out)
1132
+ {
1133
+ const bool bAll = StackContext.IsEmpty() || StackContext.Equals(TEXT("all"), ESearchCase::IgnoreCase);
1134
+ if (!Data) return;
1135
+ if (bAll || StackContext.Equals(TEXT("ParticleSpawn"), ESearchCase::IgnoreCase)) Out.Add({TEXT("ParticleSpawn"), Data->SpawnScriptProps.Script});
1136
+ if (bAll || StackContext.Equals(TEXT("ParticleUpdate"), ESearchCase::IgnoreCase)) Out.Add({TEXT("ParticleUpdate"), Data->UpdateScriptProps.Script});
1137
+ if (bAll || StackContext.Equals(TEXT("EmitterSpawn"), ESearchCase::IgnoreCase)) Out.Add({TEXT("EmitterSpawn"), Data->EmitterSpawnScriptProps.Script});
1138
+ if (bAll || StackContext.Equals(TEXT("EmitterUpdate"), ESearchCase::IgnoreCase)) Out.Add({TEXT("EmitterUpdate"), Data->EmitterUpdateScriptProps.Script});
1139
+ }
1140
+
1141
+ UNiagaraGraph* GraphOfScript(UNiagaraScript* Script)
1142
+ {
1143
+ if (!Script) return nullptr;
1144
+ UNiagaraScriptSource* Src = Cast<UNiagaraScriptSource>(Script->GetLatestSource());
1145
+ return Src ? Src->NodeGraph : nullptr;
1146
+ }
1147
+
1148
+ TSharedPtr<FJsonObject> PinToJson(const UEdGraphPin* Pin)
1149
+ {
1150
+ TSharedPtr<FJsonObject> O = MakeShared<FJsonObject>();
1151
+ O->SetStringField(TEXT("name"), Pin->PinName.ToString());
1152
+ O->SetStringField(TEXT("type"), Pin->PinType.PinCategory.ToString());
1153
+ O->SetStringField(TEXT("subCategory"), Pin->PinType.PinSubCategory.ToString());
1154
+ O->SetStringField(TEXT("defaultValue"), Pin->DefaultValue);
1155
+ O->SetBoolField(TEXT("linked"), Pin->LinkedTo.Num() > 0);
1156
+ return O;
1157
+ }
1158
+ }
1159
+
1160
+ TSharedPtr<FJsonValue> FNiagaraHandlers::ListModuleInputs(const TSharedPtr<FJsonObject>& Params)
1161
+ {
1162
+ FString SystemPath;
1163
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1164
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1165
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1166
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1167
+ FString ModuleFilter = OptionalString(Params, TEXT("moduleName"), TEXT(""));
1168
+
1169
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1170
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1171
+
1172
+ UNiagaraEmitter* Emitter = nullptr;
1173
+ FGuid Version;
1174
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1175
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1176
+
1177
+ TArray<FScriptSlot> Scripts;
1178
+ CollectEmitterScripts(Data, StackContext, Scripts);
1179
+
1180
+ TArray<TSharedPtr<FJsonValue>> ModulesArr;
1181
+ for (const FScriptSlot& Slot : Scripts)
1182
+ {
1183
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1184
+ if (!Graph) continue;
1185
+ for (UEdGraphNode* N : Graph->Nodes)
1186
+ {
1187
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1188
+ if (!FC) continue;
1189
+ const FString ModName = FC->GetFunctionName();
1190
+ if (!ModuleFilter.IsEmpty() && !ModName.Equals(ModuleFilter, ESearchCase::IgnoreCase)) continue;
1191
+
1192
+ TSharedPtr<FJsonObject> ModObj = MakeShared<FJsonObject>();
1193
+ ModObj->SetStringField(TEXT("stackContext"), Slot.Context);
1194
+ ModObj->SetStringField(TEXT("moduleName"), ModName);
1195
+ ModObj->SetStringField(TEXT("scriptAsset"), FC->FunctionScript ? FC->FunctionScript->GetPathName() : FString());
1196
+
1197
+ TArray<TSharedPtr<FJsonValue>> Inputs;
1198
+ TArray<TSharedPtr<FJsonValue>> Outputs;
1199
+ for (UEdGraphPin* Pin : FC->Pins)
1200
+ {
1201
+ if (!Pin) continue;
1202
+ if (Pin->Direction == EGPD_Input) Inputs.Add(MakeShared<FJsonValueObject>(PinToJson(Pin)));
1203
+ if (Pin->Direction == EGPD_Output) Outputs.Add(MakeShared<FJsonValueObject>(PinToJson(Pin)));
1204
+ }
1205
+ ModObj->SetArrayField(TEXT("inputs"), Inputs);
1206
+ ModObj->SetArrayField(TEXT("outputs"), Outputs);
1207
+ ModulesArr.Add(MakeShared<FJsonValueObject>(ModObj));
1208
+ }
1209
+ }
1210
+
1211
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1212
+ Res->SetStringField(TEXT("systemPath"), SystemPath);
1213
+ Res->SetStringField(TEXT("emitter"), Emitter ? Emitter->GetName() : TEXT(""));
1214
+ Res->SetArrayField(TEXT("modules"), ModulesArr);
1215
+ Res->SetNumberField(TEXT("moduleCount"), ModulesArr.Num());
1216
+ return MCPResult(Res);
1217
+ }
1218
+
1219
+ TSharedPtr<FJsonValue> FNiagaraHandlers::SetModuleInput(const TSharedPtr<FJsonObject>& Params)
1220
+ {
1221
+ FString SystemPath;
1222
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1223
+ FString ModuleName;
1224
+ if (auto Err = RequireString(Params, TEXT("moduleName"), ModuleName)) return Err;
1225
+ FString InputName;
1226
+ if (auto Err = RequireString(Params, TEXT("inputName"), InputName)) return Err;
1227
+ FString Value;
1228
+ if (auto Err = RequireString(Params, TEXT("value"), Value)) return Err;
1229
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1230
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1231
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1232
+
1233
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1234
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1235
+
1236
+ UNiagaraEmitter* Emitter = nullptr;
1237
+ FGuid Version;
1238
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1239
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1240
+
1241
+ TArray<FScriptSlot> Scripts;
1242
+ CollectEmitterScripts(Data, StackContext, Scripts);
1243
+
1244
+ int32 SetCount = 0;
1245
+ FString PrevValue;
1246
+ FString MatchedContext;
1247
+ TArray<FString> SeenModules;
1248
+ for (const FScriptSlot& Slot : Scripts)
1249
+ {
1250
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1251
+ if (!Graph) continue;
1252
+ for (UEdGraphNode* N : Graph->Nodes)
1253
+ {
1254
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1255
+ if (!FC) continue;
1256
+ SeenModules.AddUnique(FC->GetFunctionName());
1257
+ if (!FC->GetFunctionName().Equals(ModuleName, ESearchCase::IgnoreCase)) continue;
1258
+ for (UEdGraphPin* Pin : FC->Pins)
1259
+ {
1260
+ if (!Pin || Pin->Direction != EGPD_Input) continue;
1261
+ if (Pin->PinName.ToString().Equals(InputName, ESearchCase::IgnoreCase))
1262
+ {
1263
+ if (SetCount == 0) PrevValue = Pin->DefaultValue;
1264
+ FC->Modify();
1265
+ Graph->Modify();
1266
+ Pin->Modify();
1267
+ Pin->DefaultValue = Value;
1268
+ MatchedContext = Slot.Context;
1269
+ ++SetCount;
1270
+ }
1271
+ }
1272
+ if (SetCount > 0) FC->MarkNodeRequiresSynchronization(TEXT("MCP_SetModuleInput"), true);
1273
+ }
1274
+ if (SetCount > 0) Graph->NotifyGraphChanged();
1275
+ }
1276
+
1277
+ if (SetCount == 0)
1278
+ {
1279
+ return MCPError(FString::Printf(TEXT("Module '%s' or input '%s' not found. Modules seen: [%s]"),
1280
+ *ModuleName, *InputName, *FString::Join(SeenModules, TEXT(", "))));
1281
+ }
1282
+
1283
+ Emitter->PostEditChange();
1284
+ UEditorAssetLibrary::SaveLoadedAsset(System);
1285
+
1286
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1287
+ MCPSetUpdated(Res);
1288
+ Res->SetStringField(TEXT("moduleName"), ModuleName);
1289
+ Res->SetStringField(TEXT("inputName"), InputName);
1290
+ Res->SetStringField(TEXT("value"), Value);
1291
+ Res->SetStringField(TEXT("previousValue"), PrevValue);
1292
+ Res->SetStringField(TEXT("stackContext"), MatchedContext);
1293
+ Res->SetNumberField(TEXT("pinsUpdated"), SetCount);
1294
+ Res->SetStringField(TEXT("note"), TEXT("Writes pin default on the function-call node. Inputs already bound via the stack override map will not observe this change; use the override-map variant in a future patch."));
1295
+
1296
+ // Rollback: restore previous pin default
1297
+ TSharedPtr<FJsonObject> RbPayload = MakeShared<FJsonObject>();
1298
+ RbPayload->SetStringField(TEXT("systemPath"), SystemPath);
1299
+ RbPayload->SetStringField(TEXT("moduleName"), ModuleName);
1300
+ RbPayload->SetStringField(TEXT("inputName"), InputName);
1301
+ RbPayload->SetStringField(TEXT("value"), PrevValue);
1302
+ RbPayload->SetStringField(TEXT("emitterName"), EmitterName);
1303
+ RbPayload->SetNumberField(TEXT("emitterIndex"), EmitterIndex);
1304
+ RbPayload->SetStringField(TEXT("stackContext"), MatchedContext);
1305
+ MCPSetRollback(Res, TEXT("set_niagara_module_input"), RbPayload);
1306
+ return MCPResult(Res);
1307
+ }
1308
+
1309
+ TSharedPtr<FJsonValue> FNiagaraHandlers::ListStaticSwitches(const TSharedPtr<FJsonObject>& Params)
1310
+ {
1311
+ FString SystemPath;
1312
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1313
+ FString ModuleFilter = OptionalString(Params, TEXT("moduleName"), TEXT(""));
1314
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1315
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1316
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1317
+
1318
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1319
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1320
+
1321
+ UNiagaraEmitter* Emitter = nullptr;
1322
+ FGuid Version;
1323
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1324
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1325
+
1326
+ TArray<FScriptSlot> Scripts;
1327
+ CollectEmitterScripts(Data, StackContext, Scripts);
1328
+
1329
+ TArray<TSharedPtr<FJsonValue>> ModulesArr;
1330
+ for (const FScriptSlot& Slot : Scripts)
1331
+ {
1332
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1333
+ if (!Graph) continue;
1334
+ for (UEdGraphNode* N : Graph->Nodes)
1335
+ {
1336
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1337
+ if (!FC) continue;
1338
+ const FString ModName = FC->GetFunctionName();
1339
+ if (!ModuleFilter.IsEmpty() && !ModName.Equals(ModuleFilter, ESearchCase::IgnoreCase)) continue;
1340
+
1341
+ TArray<TSharedPtr<FJsonValue>> Switches;
1342
+ UNiagaraGraph* FuncGraph = FC->GetCalledGraph();
1343
+ if (FuncGraph)
1344
+ {
1345
+ const TArray<FNiagaraVariable> SwitchVars = FuncGraph->FindStaticSwitchInputs(false);
1346
+ for (const FNiagaraVariable& Var : SwitchVars)
1347
+ {
1348
+ const FName VarName = Var.GetName();
1349
+ UEdGraphPin* SwitchPin = nullptr;
1350
+ for (UEdGraphPin* Pin : FC->Pins)
1351
+ {
1352
+ if (Pin && Pin->Direction == EGPD_Input && Pin->PinName == VarName) { SwitchPin = Pin; break; }
1353
+ }
1354
+ TSharedPtr<FJsonObject> O = MakeShared<FJsonObject>();
1355
+ O->SetStringField(TEXT("name"), VarName.ToString());
1356
+ O->SetStringField(TEXT("type"), Var.GetType().GetName());
1357
+ O->SetStringField(TEXT("defaultValue"), SwitchPin ? SwitchPin->DefaultValue : FString());
1358
+ O->SetBoolField(TEXT("boundToPin"), SwitchPin != nullptr);
1359
+ Switches.Add(MakeShared<FJsonValueObject>(O));
1360
+ }
1361
+ }
1362
+ if (Switches.Num() == 0) continue;
1363
+ TSharedPtr<FJsonObject> ModObj = MakeShared<FJsonObject>();
1364
+ ModObj->SetStringField(TEXT("stackContext"), Slot.Context);
1365
+ ModObj->SetStringField(TEXT("moduleName"), ModName);
1366
+ ModObj->SetArrayField(TEXT("staticSwitches"), Switches);
1367
+ ModulesArr.Add(MakeShared<FJsonValueObject>(ModObj));
1368
+ }
1369
+ }
1370
+
1371
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1372
+ Res->SetStringField(TEXT("systemPath"), SystemPath);
1373
+ Res->SetStringField(TEXT("emitter"), Emitter ? Emitter->GetName() : TEXT(""));
1374
+ Res->SetArrayField(TEXT("modules"), ModulesArr);
1375
+ Res->SetNumberField(TEXT("moduleCount"), ModulesArr.Num());
1376
+ return MCPResult(Res);
1377
+ }
1378
+
1379
+ TSharedPtr<FJsonValue> FNiagaraHandlers::SetStaticSwitch(const TSharedPtr<FJsonObject>& Params)
1380
+ {
1381
+ FString SystemPath;
1382
+ if (auto Err = RequireString(Params, TEXT("systemPath"), SystemPath)) return Err;
1383
+ FString ModuleName;
1384
+ if (auto Err = RequireString(Params, TEXT("moduleName"), ModuleName)) return Err;
1385
+ FString SwitchName;
1386
+ if (auto Err = RequireString(Params, TEXT("switchName"), SwitchName)) return Err;
1387
+ FString Value;
1388
+ if (auto Err = RequireString(Params, TEXT("value"), Value)) return Err;
1389
+ FString EmitterName = OptionalString(Params, TEXT("emitterName"), TEXT(""));
1390
+ int32 EmitterIndex = OptionalInt(Params, TEXT("emitterIndex"), 0);
1391
+ FString StackContext = OptionalString(Params, TEXT("stackContext"), TEXT("all"));
1392
+
1393
+ UNiagaraSystem* System = Cast<UNiagaraSystem>(UEditorAssetLibrary::LoadAsset(SystemPath));
1394
+ if (!System) return MCPError(FString::Printf(TEXT("System not found: %s"), *SystemPath));
1395
+
1396
+ UNiagaraEmitter* Emitter = nullptr;
1397
+ FGuid Version;
1398
+ FVersionedNiagaraEmitterData* Data = ResolveEmitter(System, EmitterName, EmitterIndex, Emitter, Version);
1399
+ if (!Data) return MCPError(TEXT("Emitter not resolved"));
1400
+
1401
+ TArray<FScriptSlot> Scripts;
1402
+ CollectEmitterScripts(Data, StackContext, Scripts);
1403
+
1404
+ int32 SetCount = 0;
1405
+ FString PrevValue;
1406
+ FString MatchedContext;
1407
+ for (const FScriptSlot& Slot : Scripts)
1408
+ {
1409
+ UNiagaraGraph* Graph = GraphOfScript(Slot.Script);
1410
+ if (!Graph) continue;
1411
+ for (UEdGraphNode* N : Graph->Nodes)
1412
+ {
1413
+ UNiagaraNodeFunctionCall* FC = Cast<UNiagaraNodeFunctionCall>(N);
1414
+ if (!FC) continue;
1415
+ if (!FC->GetFunctionName().Equals(ModuleName, ESearchCase::IgnoreCase)) continue;
1416
+ // Find the static switch pin by name (FindStaticSwitchInputPin isn't exported, so walk pins).
1417
+ UEdGraphPin* SwitchPin = nullptr;
1418
+ const FName Needle(*SwitchName);
1419
+ for (UEdGraphPin* Pin : FC->Pins)
1420
+ {
1421
+ if (Pin && Pin->Direction == EGPD_Input && Pin->PinName == Needle) { SwitchPin = Pin; break; }
1422
+ }
1423
+ if (!SwitchPin) continue;
1424
+ if (SetCount == 0) PrevValue = SwitchPin->DefaultValue;
1425
+ FC->Modify();
1426
+ Graph->Modify();
1427
+ SwitchPin->Modify();
1428
+ SwitchPin->DefaultValue = Value;
1429
+ FC->MarkNodeRequiresSynchronization(TEXT("MCP_SetStaticSwitch"), true);
1430
+ MatchedContext = Slot.Context;
1431
+ ++SetCount;
1432
+ }
1433
+ if (SetCount > 0) Graph->NotifyGraphChanged();
1434
+ }
1435
+
1436
+ if (SetCount == 0)
1437
+ {
1438
+ return MCPError(FString::Printf(TEXT("Static switch '%s' on module '%s' not found"), *SwitchName, *ModuleName));
1439
+ }
1440
+
1441
+ Emitter->PostEditChange();
1442
+ UEditorAssetLibrary::SaveLoadedAsset(System);
1443
+
1444
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1445
+ MCPSetUpdated(Res);
1446
+ Res->SetStringField(TEXT("moduleName"), ModuleName);
1447
+ Res->SetStringField(TEXT("switchName"), SwitchName);
1448
+ Res->SetStringField(TEXT("value"), Value);
1449
+ Res->SetStringField(TEXT("previousValue"), PrevValue);
1450
+ Res->SetStringField(TEXT("stackContext"), MatchedContext);
1451
+ Res->SetNumberField(TEXT("pinsUpdated"), SetCount);
1452
+
1453
+ TSharedPtr<FJsonObject> RbPayload = MakeShared<FJsonObject>();
1454
+ RbPayload->SetStringField(TEXT("systemPath"), SystemPath);
1455
+ RbPayload->SetStringField(TEXT("moduleName"), ModuleName);
1456
+ RbPayload->SetStringField(TEXT("switchName"), SwitchName);
1457
+ RbPayload->SetStringField(TEXT("value"), PrevValue);
1458
+ RbPayload->SetStringField(TEXT("emitterName"), EmitterName);
1459
+ RbPayload->SetNumberField(TEXT("emitterIndex"), EmitterIndex);
1460
+ RbPayload->SetStringField(TEXT("stackContext"), MatchedContext);
1461
+ MCPSetRollback(Res, TEXT("set_niagara_static_switch"), RbPayload);
1462
+ return MCPResult(Res);
1463
+ }
1464
+
1465
+ TSharedPtr<FJsonValue> FNiagaraHandlers::CreateModuleFromHlsl(const TSharedPtr<FJsonObject>& Params)
1466
+ {
1467
+ FString Name;
1468
+ if (auto Err = RequireString(Params, TEXT("name"), Name)) return Err;
1469
+ FString Hlsl;
1470
+ if (auto Err = RequireString(Params, TEXT("hlsl"), Hlsl)) return Err;
1471
+ FString PackagePath = OptionalString(Params, TEXT("packagePath"), TEXT("/Game/VFX/Modules"));
1472
+
1473
+ if (auto Hit = MCPCheckAssetExists(PackagePath, Name, OptionalString(Params, TEXT("onConflict"), TEXT("skip")), TEXT("NiagaraScript")))
1474
+ {
1475
+ return Hit;
1476
+ }
1477
+
1478
+ // Use the stock module factory to create a baseline module with Param-map get/set scaffolding,
1479
+ // then add a CustomHLSL node that carries the user's HLSL body.
1480
+ UNiagaraModuleScriptFactory* Factory = NewObject<UNiagaraModuleScriptFactory>();
1481
+ IAssetTools& AssetTools = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools").Get();
1482
+ UObject* NewObj = AssetTools.CreateAsset(Name, PackagePath, UNiagaraScript::StaticClass(), Factory);
1483
+ UNiagaraScript* Script = Cast<UNiagaraScript>(NewObj);
1484
+ if (!Script) return MCPError(TEXT("Failed to create NiagaraScript"));
1485
+
1486
+ UNiagaraScriptSource* Source = Cast<UNiagaraScriptSource>(Script->GetLatestSource());
1487
+ UNiagaraGraph* Graph = Source ? Source->NodeGraph : nullptr;
1488
+ if (!Graph) return MCPError(TEXT("New module has no graph"));
1489
+
1490
+ // Inject a CustomHLSL node next to the existing Output node.
1491
+ FGraphNodeCreator<UNiagaraNodeCustomHlsl> Creator(*Graph);
1492
+ UNiagaraNodeCustomHlsl* Custom = Creator.CreateNode();
1493
+ Creator.Finalize();
1494
+ // SetCustomHlsl / RebuildSignatureFromPins aren't exported from NiagaraEditor.
1495
+ // Write the CustomHlsl UPROPERTY directly; Niagara's PostEditChange + ReconstructNode
1496
+ // re-parses the HLSL body and regenerates pins.
1497
+ if (FProperty* HlslProp = Custom->GetClass()->FindPropertyByName(TEXT("CustomHlsl")))
1498
+ {
1499
+ if (FStrProperty* SP = CastField<FStrProperty>(HlslProp))
1500
+ {
1501
+ Custom->Modify();
1502
+ SP->SetPropertyValue(SP->ContainerPtrToValuePtr<void>(Custom), Hlsl);
1503
+ }
1504
+ }
1505
+ Custom->ReconstructNode();
1506
+ Custom->PostEditChange();
1507
+
1508
+ // Touch inputs/outputs array for informational echo (the CustomHLSL node manages its own pins via HLSL parsing)
1509
+ const TArray<TSharedPtr<FJsonValue>>* InputsArr = nullptr;
1510
+ Params->TryGetArrayField(TEXT("inputs"), InputsArr);
1511
+ const TArray<TSharedPtr<FJsonValue>>* OutputsArr = nullptr;
1512
+ Params->TryGetArrayField(TEXT("outputs"), OutputsArr);
1513
+
1514
+ Graph->NotifyGraphChanged();
1515
+ Script->MarkPackageDirty();
1516
+ UEditorAssetLibrary::SaveLoadedAsset(Script);
1517
+
1518
+ TSharedPtr<FJsonObject> Res = MCPSuccess();
1519
+ MCPSetCreated(Res);
1520
+ Res->SetStringField(TEXT("path"), Script->GetPathName());
1521
+ Res->SetStringField(TEXT("name"), Name);
1522
+ Res->SetNumberField(TEXT("hlslLength"), Hlsl.Len());
1523
+ Res->SetNumberField(TEXT("requestedInputs"), InputsArr ? InputsArr->Num() : 0);
1524
+ Res->SetNumberField(TEXT("requestedOutputs"), OutputsArr ? OutputsArr->Num() : 0);
1525
+ Res->SetStringField(TEXT("note"), TEXT("Module scaffold created with embedded CustomHLSL node. Pins are auto-derived from the HLSL body — open the asset to confirm signatures."));
1526
+ MCPSetDeleteAssetRollback(Res, Script->GetPathName());
1527
+ return MCPResult(Res);
1528
+ }
@@ -32,4 +32,11 @@ private:
32
32
  static TSharedPtr<FJsonValue> CreateNiagaraSystemFromSpec(const TSharedPtr<FJsonObject>& Params);
33
33
  static TSharedPtr<FJsonValue> GetCompiledHLSL(const TSharedPtr<FJsonObject>& Params);
34
34
  static TSharedPtr<FJsonValue> ListSystemParameters(const TSharedPtr<FJsonObject>& Params);
35
+
36
+ // v0.7.14 — module inputs, static switches, HLSL modules
37
+ static TSharedPtr<FJsonValue> ListModuleInputs(const TSharedPtr<FJsonObject>& Params);
38
+ static TSharedPtr<FJsonValue> SetModuleInput(const TSharedPtr<FJsonObject>& Params);
39
+ static TSharedPtr<FJsonValue> ListStaticSwitches(const TSharedPtr<FJsonObject>& Params);
40
+ static TSharedPtr<FJsonValue> SetStaticSwitch(const TSharedPtr<FJsonObject>& Params);
41
+ static TSharedPtr<FJsonValue> CreateModuleFromHlsl(const TSharedPtr<FJsonObject>& Params);
35
42
  };