enfusion-mcp 0.4.4 → 0.4.6

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.
@@ -20,5 +20,5 @@
20
20
  ],
21
21
  "prefabs": [],
22
22
  "configs": [],
23
- "instructions": "1. Edit the AdminComponent to implement your admin commands\n2. Add keybind checks in the AdminKeyHandler\n3. IMPORTANT: Add authority checks — verify the player has admin privileges before executing commands\n4. Use Rpc methods for server-authoritative commands (teleport, spawn)\n5. Attach the AdminComponent to the player controller prefab\n6. Test with host player in a local server"
23
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard and many obvious-sounding methods don't exist.\n1. Use api_search to look up SCR_PlayerController, InputManager, and any other classes you need — verify methods exist before using them\n2. Edit the AdminComponent to implement your admin commands — only call methods confirmed by api_search\n3. Add keybind checks in the AdminKeyHandler — verify input handling methods via api_search\n4. IMPORTANT: Add authority checks — verify the player has admin privileges before executing commands\n5. Use Rpc methods for server-authoritative commands (teleport, spawn)\n6. Attach the AdminComponent to the player controller prefab\n7. Test with host player in a local server"
24
24
  }
@@ -21,5 +21,5 @@
21
21
  }
22
22
  ],
23
23
  "configs": [],
24
- "instructions": "1. Edit the InteractAction script to define what happens on interaction\n2. Customize CanBePerformedScript to control when the action is available\n3. Customize CanBeShownScript to control visibility\n4. Create the interactive prefab with a mesh and ActionsManagerComponent\n5. Add the action to the ActionsManagerComponent in the prefab\n6. Place the prefab in a world and test interaction"
24
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call on Enfusion classes. Never guess method names.\n1. Use api_search to find ScriptedUserAction methods and any other classes your action interacts with (e.g., damage managers, inventory, etc.)\n2. Edit the InteractAction script to define what happens on interaction — ONLY use methods confirmed by api_search\n3. Customize CanBePerformedScript to control when the action is available\n4. Customize CanBeShownScript to control visibility\n5. Create the interactive prefab the MeshObject component MUST reference a base game .xob model or the entity will be invisible\n6. Add the action to the ActionsManagerComponent in the prefab\n7. Place the prefab in a world and test interaction"
25
25
  }
@@ -13,5 +13,5 @@
13
13
  ],
14
14
  "prefabs": [],
15
15
  "configs": [],
16
- "instructions": "1. Edit the component script to add your member variables and logic\n2. Use [Attribute()] to expose configuration in Workbench\n3. Override EOnInit for initialization, OnPostInit for post-setup\n4. Override OnDelete for cleanup\n5. Attach the component to entity prefabs via their 'components' block\n6. Access the component at runtime: entity.FindComponent(YourComponent)"
16
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard and many obvious-sounding methods don't exist.\n1. Use api_search to look up ScriptComponent and any classes your component interacts with — verify methods exist before using them\n2. Edit the component script to add your member variables and logic — only call methods confirmed by api_search\n3. Use [Attribute()] to expose configuration in Workbench\n4. Override EOnInit for initialization, OnPostInit for post-setup — verify these exist on your parent class via api_search\n5. Override OnDelete for cleanup\n6. Attach the component to entity prefabs via their 'components' block\n7. Access the component at runtime: entity.FindComponent(YourComponent)"
17
17
  }
@@ -33,5 +33,5 @@
33
33
  "content": "SCR_Faction {\n m_sKey \"{PREFIX}_faction\"\n m_sName \"{PREFIX} Faction\"\n m_Color \"0,100,200,255\"\n m_sFlagPath \"\"\n}"
34
34
  }
35
35
  ],
36
- "instructions": "1. Edit the FactionInit script to set your faction key, name, and color\n2. Edit the LoadoutConfig to define weapons and equipment\n3. Create the character prefab with prefab_create\n4. Add your faction to the game mode's faction list in a modded SCR_BaseGameMode\n5. Test in Game Master by placing faction spawn points"
36
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard and many obvious-sounding methods don't exist.\n1. Use api_search to look up SCR_Faction, SCR_BaseGameMode, SCR_LoadoutManager, and any faction/loadout classes — verify methods exist before using them\n2. Edit the FactionInit script to set your faction key, name, and color — only call methods confirmed by api_search\n3. Edit the LoadoutConfig to define weapons and equipment\n4. Create the character prefab with prefab_create — characters MUST inherit from a base game character prefab for animations and physics\n5. Add your faction to the game mode's faction list in a modded SCR_BaseGameMode — verify the override method exists first\n6. Test in Game Master by placing faction spawn points"
37
37
  }
@@ -21,5 +21,5 @@
21
21
  }
22
22
  ],
23
23
  "configs": [],
24
- "instructions": "1. Find a base vehicle prefab to inherit from (e.g., M151A2, UAZ469)\n2. Create your vehicle prefab inheriting from the base\n3. Modify vehicle properties (speed, armor, fuel capacity) in the prefab\n4. Add the custom VehicleController component for special behavior\n5. Place the vehicle in a world or use Game Master to spawn it\n6. Test driving, collision, and vehicle entry/exit"
24
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard and many obvious-sounding methods don't exist.\n1. Use api_search to look up VehicleControllerComponent, CarControllerComponent, and any vehicle-related classes — verify methods exist before using them\n2. Find a base vehicle prefab to inherit from (e.g., M151A2, UAZ469)\n3. Create your vehicle prefab inheriting from the base — vehicles MUST inherit from a base game vehicle prefab or they won't have physics/driving setup\n4. Modify vehicle properties (speed, armor, fuel capacity) in the prefab\n5. Add the custom VehicleController component for special behavior — only call methods confirmed by api_search\n6. Place the vehicle in a world or use Game Master to spawn it\n7. Test driving, collision, and vehicle entry/exit"
25
25
  }
@@ -33,5 +33,5 @@
33
33
  "content": "SCR_MissionHeader {\n m_sName \"{PREFIX} Scenario\"\n m_sDescription \"Custom game mode scenario\"\n m_sWorldFile \"\"\n m_sIcon \"\"\n m_bIsModded 1\n}"
34
34
  }
35
35
  ],
36
- "instructions": "1. Edit the GameMode script to define round logic, win conditions, and player flow\n2. Edit the ScoringSystem to implement your scoring rules\n3. Create the game mode prefab and attach both components\n4. Create a test world with the game mode prefab placed\n5. Add spawn points for each faction\n6. Test with 'Play' in Workbench"
36
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names.\n1. Use api_search to look up SCR_BaseGameMode, SCR_RespawnSystemComponent, and any other classes you need — verify methods exist before using them\n2. Edit the GameMode script to define round logic, win conditions, and player flow\n3. Edit the ScoringSystem to implement your scoring rules\n4. Create the game mode prefab and attach both components\n5. Create a test world with the game mode prefab placed\n6. Add spawn points for each faction\n7. Test with 'Play' in Workbench"
37
37
  }
@@ -13,5 +13,5 @@
13
13
  ],
14
14
  "prefabs": [],
15
15
  "configs": [],
16
- "instructions": "1. Create a .layout file in UI/layouts/ for the widget visual design\n2. Edit the HudComponent to load and manage the layout\n3. Use GetGame().GetHUDManager() to register your widget\n4. Implement UpdateDisplay to show dynamic content\n5. Attach the component to the player controller prefab\n6. NOTE: UI layout files (.layout) must be created in Workbench's Resource Manager\n7. Test by joining a game and verifying the widget appears"
16
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard.\n1. Use api_search to look up HUD-related classes and verify available methods before writing code\n2. Create a .layout file using layout_create for the widget visual design\n3. Edit the HudComponent to load and manage the layout\n4. Implement UpdateDisplay to show dynamic content\n5. Attach the component to the player controller prefab\n6. Test by joining a game and verifying the widget appears"
17
17
  }
@@ -13,5 +13,5 @@
13
13
  ],
14
14
  "prefabs": [],
15
15
  "configs": [],
16
- "instructions": "This pattern scaffolds a config constants class. You need to add the actual modded scripts yourself:\n1. Use api_search to find the class you want to modify\n2. Use script_create with scriptType 'modded' and the target class as parentClass\n3. Reference constants from the {PREFIX}_Config class for tunable values\n4. ALWAYS call super.MethodName() in overrides unless you want to completely replace the behavior\n5. Use [Attribute()] for values you want editable in Workbench\n6. IMPORTANT: modded classes apply globally — they affect ALL instances of the base class\n7. Only ONE modded class per target class — do not create multiple files modding the same parent"
16
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call or override. Never guess Enfusion API method names.\nThis pattern scaffolds a config constants class. You need to add the actual modded scripts yourself:\n1. Use api_search to find the class you want to modify — read its full method list\n2. Verify the method you want to override actually exists in the search results\n3. Use script_create with scriptType 'modded' and the target class as parentClass\n4. Reference constants from the {PREFIX}_Config class for tunable values\n5. ALWAYS call super.MethodName() in overrides unless you want to completely replace the behavior\n6. Use [Attribute()] for values you want editable in Workbench\n7. IMPORTANT: modded classes apply globally — they affect ALL instances of the base class\n8. Only ONE modded class per target class — do not create multiple files modding the same parent"
17
17
  }
@@ -28,5 +28,5 @@
28
28
  }
29
29
  ],
30
30
  "configs": [],
31
- "instructions": "1. Edit SpawnManager to implement spawn point selection logic\n2. Edit SpawnPointComponent to define availability rules\n3. Create the spawn point prefab with prefab_create\n4. Attach SpawnManager to your game mode prefab\n5. Place spawn point prefabs in the world\n6. Mod the SCR_RespawnSystemComponent to use your custom manager\n7. Test with multiple players connecting and respawning"
31
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard and many obvious-sounding methods don't exist.\n1. Use api_search to look up SCR_RespawnSystemComponent, SCR_SpawnPoint, and any other spawn-related classes — verify methods exist before using them\n2. Edit SpawnManager to implement spawn point selection logic — only call methods confirmed by api_search\n3. Edit SpawnPointComponent to define availability rules\n4. Create the spawn point prefab with prefab_create\n5. Attach SpawnManager to your game mode prefab\n6. Mod the SCR_RespawnSystemComponent to use your custom manager — verify the override method exists first\n7. Place spawn point prefabs in the world\n8. Test with multiple players connecting and respawning"
32
32
  }
@@ -21,5 +21,5 @@
21
21
  }
22
22
  ],
23
23
  "configs": [],
24
- "instructions": "1. Find the base weapon prefab you want to modify using api_search\n2. Create a new weapon prefab inheriting from the base weapon\n3. Modify weapon properties (damage, rate of fire, recoil) in the prefab\n4. Optionally add the modded script for runtime behavior changes\n5. Add the weapon to a loadout or spawn it in Game Master for testing"
24
+ "instructions": "CRITICAL: Use api_search to verify EVERY method you call. Never guess Enfusion API method names — they are non-standard and many obvious-sounding methods don't exist.\n1. Use api_search to look up SCR_WeaponAttachmentsStorageComponent, BaseWeaponComponent, and weapon-related classes — verify methods exist before using them\n2. Find the base weapon prefab you want to modify\n3. Create a new weapon prefab inheriting from the base weapon — weapons MUST inherit from a base game weapon prefab or they won't function\n4. Modify weapon properties (damage, rate of fire, recoil) in the prefab\n5. Optionally add the modded script for runtime behavior changes — only override methods confirmed by api_search\n6. Add the weapon to a loadout or spawn it in Game Master for testing"
25
25
  }
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { logger } from "./utils/logger.js";
7
7
  const config = loadConfig();
8
8
  const server = new McpServer({
9
9
  name: "enfusion-mcp",
10
- version: "0.4.4",
10
+ version: "0.4.6",
11
11
  });
12
12
  registerTools(server, config);
13
13
  const transport = new StdioServerTransport();
@@ -1 +1 @@
1
- {"version":3,"file":"create-mod.d.ts","sourceRoot":"","sources":["../../src/prompts/create-mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAsIzF"}
1
+ {"version":3,"file":"create-mod.d.ts","sourceRoot":"","sources":["../../src/prompts/create-mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAsJzF"}
@@ -66,15 +66,30 @@ Before writing any code, assess the scope of what the user is asking for. Think
66
66
 
67
67
  This file is the handoff document. A future Claude instance with zero context will read this file and know exactly what the mod is, what's done, and what to build next. Be specific — list actual file names, class names, and system relationships. The user can then use \`/modify-mod\` to continue with subsequent phases.
68
68
 
69
+ ## CRITICAL: API VERIFICATION RULE
70
+
71
+ **NEVER guess, assume, or invent Enfusion API method names.** The Enfusion scripting API is non-standard and poorly documented. Methods that seem obvious often do not exist (e.g., \`HitZone.SetHealth()\`, \`IEntity.GetVelocity()\`, \`AIWorld.GetAIGroups()\`).
72
+
73
+ Before writing ANY script that calls an Enfusion API method, you MUST:
74
+ 1. Use **api_search** to find the class
75
+ 2. Read the method list in the results
76
+ 3. Only use methods that appear in the search results
77
+ 4. If the method you need doesn't exist, search for alternative classes or approaches
78
+ 5. For damage/health: use \`SCR_CharacterDamageManagerComponent.FullHeal()\`, NOT per-hitzone SetHealth
79
+ 6. For any class interaction: search the class first, read its methods, then write code
80
+
81
+ If you cannot find a method via api_search, it probably does not exist. Do NOT write code that calls unverified methods — it will fail to compile silently in Workbench.
82
+
69
83
  ## STEP 1: BUILD
70
84
 
71
- 1. Use **api_search** to find the relevant Enfusion API classes needed.
85
+ 1. Use **api_search** to find the relevant Enfusion API classes AND verify that the methods you plan to use actually exist. Search every class you intend to call methods on. Do this BEFORE writing any scripts.
72
86
 
73
87
  2. Use **mod_create** to scaffold the addon project. Pick a good name, class prefix, and pattern based on the description.
74
88
 
75
89
  3. Use **script_create** for each script:
76
90
  - Correct scriptType (component, gamemode, action, modded, etc.)
77
91
  - Proper method stubs and description comments
92
+ - ONLY call methods verified via api_search
78
93
 
79
94
  4. Use **prefab_create** for any prefabs needed (spawn points, entities, game mode, etc.)
80
95
 
@@ -87,18 +102,19 @@ This file is the handoff document. A future Claude instance with zero context wi
87
102
  8. Use **mod_validate** to check for structural issues.
88
103
 
89
104
  9. **Workbench Setup** (MANDATORY — do not skip, do not tell the user to do this):
90
- a. **wb_launch** with \`gprojPath\` set to the addon's .gproj file — this automatically injects the EnfusionMCP handler addon as a temporary dependency, skips the launcher, and opens the project in the World Editor with full NET API access
105
+ a. **wb_launch** with \`gprojPath\` set to the addon's .gproj file — this copies handler scripts into the mod, skips the launcher, and opens the project in the World Editor with full NET API access
91
106
  b. **wb_reload** (target: "scripts") — Compile all scripts
92
107
  c. **wb_resources** (action: "register") — Register every new prefab, config, and layout file
93
108
  d. If compilation fails, fix with **project_write** and reload again
94
109
 
95
110
  10. **wb_play** — Launch the mod in-game to test. Use **wb_stop** to return to editor.
96
111
 
97
- 11. **wb_cleanup** with the addon's .gproj path — Remove the temporary EnfusionMCP dependency before the user publishes. NEVER skip this step.
112
+ 11. **wb_cleanup** with the addon's root directory path — Remove the temporary handler scripts before the user publishes. NEVER skip this step.
98
113
 
99
114
  ## STEP 2: SUMMARIZE
100
115
 
101
116
  Enfusion rules:
117
+ - NEVER guess API methods — if you didn't find it via api_search, it doesn't exist
102
118
  - All scripts go in Scripts/Game/ (other folders are silently ignored)
103
119
  - Use a consistent class prefix (e.g., ZS_ for Zombie Survival)
104
120
  - modded classes affect ALL instances globally
@@ -1 +1 @@
1
- {"version":3,"file":"create-mod.js","sourceRoot":"","sources":["../../src/prompts/create-mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,QAAwB;IACjF,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAE1C,MAAM,CAAC,cAAc,CACnB,YAAY,EACZ;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,mHAAmH;QACrH,UAAU,EAAE;YACV,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,gGAAgG,CAAC;SAC9G;KACF,EACD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0CAA0C,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2GrE,WAAW,EAAE;iBACJ;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-mod.js","sourceRoot":"","sources":["../../src/prompts/create-mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,QAAwB;IACjF,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAE1C,MAAM,CAAC,cAAc,CACnB,YAAY,EACZ;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,mHAAmH;QACrH,UAAU,EAAE;YACV,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,gGAAgG,CAAC;SAC9G;KACF,EACD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0CAA0C,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2HrE,WAAW,EAAE;iBACJ;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"modify-mod.d.ts","sourceRoot":"","sources":["../../src/prompts/modify-mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+F/D"}
1
+ {"version":3,"file":"modify-mod.d.ts","sourceRoot":"","sources":["../../src/prompts/modify-mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgG/D"}
@@ -34,9 +34,9 @@ Follow this workflow — every step is mandatory:
34
34
  - Read existing scripts, prefabs, configs, and layouts
35
35
  - Identify the class prefix convention in use
36
36
 
37
- 3. **Research the API** — Use **api_search** to find relevant classes and methods.
37
+ 3. **Research the API** — Use **api_search** to find relevant classes and methods. **CRITICAL: NEVER guess or assume Enfusion API method names.** The API is non-standard — methods that seem obvious often don't exist (e.g., \`HitZone.SetHealth()\`, \`IEntity.GetVelocity()\`). You MUST search every class you plan to call methods on and verify the methods exist in the search results. If a method isn't listed, it does not exist — find an alternative.
38
38
 
39
- 4. **Plan the changes** — Determine what to modify, create, or remove. For phased projects, verify your plan aligns with the MODPLAN.
39
+ 4. **Plan the changes** — Determine what to modify, create, or remove. For phased projects, verify your plan aligns with the MODPLAN. Only use API methods verified via api_search.
40
40
 
41
41
  5. **Implement** — Make all modifications:
42
42
  - Existing files: **project_read** then **project_write**
@@ -48,14 +48,14 @@ Follow this workflow — every step is mandatory:
48
48
  6. **Validate** — Use **mod_validate** to check for issues.
49
49
 
50
50
  7. **Workbench Setup** (MANDATORY — do not skip, do not tell the user to do this):
51
- a. **wb_launch** with \`gprojPath\` set to the addon's .gproj file — this automatically injects the EnfusionMCP handler addon as a temporary dependency, skips the launcher, and opens the project in the World Editor with full NET API access
51
+ a. **wb_launch** with \`gprojPath\` set to the addon's .gproj file — this copies handler scripts into the mod, skips the launcher, and opens the project in the World Editor with full NET API access
52
52
  b. **wb_reload** (target: "scripts") — Compile all scripts
53
53
  c. **wb_resources** (action: "register") — Register any new prefabs, configs, or layouts
54
54
  d. If compilation fails, fix and reload again
55
55
 
56
56
  8. **wb_play** — Test the changes in-game. Use **wb_stop** to return to editor.
57
57
 
58
- 9. **wb_cleanup** with the addon's .gproj path — Remove the temporary EnfusionMCP dependency before the user publishes. NEVER skip this step.
58
+ 9. **wb_cleanup** with the addon's root directory path — Remove the temporary handler scripts before the user publishes. NEVER skip this step.
59
59
 
60
60
  10. **Update the plan** — If a \`MODPLAN.md\` exists, use **project_read** then **project_write** to update it:
61
61
  - Mark completed phases as \`COMPLETE\` with a list of files created/modified
@@ -66,6 +66,7 @@ Follow this workflow — every step is mandatory:
66
66
  11. Summarize what changed and how the mod works now.
67
67
 
68
68
  Enfusion rules:
69
+ - NEVER guess API methods — if you didn't verify it via api_search, assume it doesn't exist
69
70
  - Read existing code BEFORE modifying it. Understand what's there first.
70
71
  - Match existing code style, class prefix, and naming conventions.
71
72
  - All scripts go in Scripts/Game/ (other folders are silently ignored)
@@ -1 +1 @@
1
- {"version":3,"file":"modify-mod.js","sourceRoot":"","sources":["../../src/prompts/modify-mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,cAAc,CACnB,YAAY,EACZ;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,mHAAmH;QACrH,UAAU,EAAE;YACV,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,0EAA0E,CAAC;YACvF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,2HAA2H,CAAC;SACzI;KACF,EACD,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,4CAA4C,WAAW;;aAE5D,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8IAiE6H;iBACnI;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"modify-mod.js","sourceRoot":"","sources":["../../src/prompts/modify-mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,cAAc,CACnB,YAAY,EACZ;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,mHAAmH;QACrH,UAAU,EAAE;YACV,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,CAAC,0EAA0E,CAAC;YACvF,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,2HAA2H,CAAC;SACzI;KACF,EACD,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,4CAA4C,WAAW;;aAE5D,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8IAkE6H;iBACnI;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefab.d.ts","sourceRoot":"","sources":["../../src/templates/prefab.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAClB,WAAW,GACX,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA2ED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA4D1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"prefab.d.ts","sourceRoot":"","sources":["../../src/templates/prefab.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAClB,WAAW,GACX,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4ED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA4D1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -50,7 +50,8 @@ const PREFAB_CONFIGS = {
50
50
  defaultParent: "",
51
51
  subdirectory: "Prefabs/Props",
52
52
  defaultComponents: [
53
- { type: "MeshObject", properties: {} },
53
+ { type: "MeshObject", properties: { Object: "" } },
54
+ { type: "RigidBody", properties: { ModelGeometry: "1" } },
54
55
  { type: "ActionsManagerComponent", properties: {} },
55
56
  ],
56
57
  },
@@ -1 +1 @@
1
- {"version":3,"file":"prefab.js","sourceRoot":"","sources":["../../src/templates/prefab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefab.js","sourceRoot":"","sources":["../../src/templates/prefab.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefab-create.d.ts","sourceRoot":"","sources":["../../src/tools/prefab-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAmH5E"}
1
+ {"version":3,"file":"prefab-create.d.ts","sourceRoot":"","sources":["../../src/tools/prefab-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAuH5E"}
@@ -5,7 +5,7 @@ import { generatePrefab, getPrefabSubdirectory, getPrefabFilename, } from "../te
5
5
  import { validateFilename } from "../utils/safe-path.js";
6
6
  export function registerPrefabCreate(server, config) {
7
7
  server.registerTool("prefab_create", {
8
- description: "Create a new Entity Template (.et) prefab file for an Arma Reforger mod. Generates a properly structured prefab with components in valid Enfusion text serialization format.",
8
+ description: "Create a new Entity Template (.et) prefab file for an Arma Reforger mod. Generates a properly structured prefab with components in valid Enfusion text serialization format. IMPORTANT: For 'interactive' and other visible prefabs, the MeshObject component MUST have its 'Object' property set to a base game .xob model path (e.g., '{5F4C4181F065B447}Assets/Props/Military/Barrels/BarrelGreen_01.xob') or the entity will be invisible in-game. Use api_search to find model paths.",
9
9
  inputSchema: {
10
10
  name: z
11
11
  .string()
@@ -73,11 +73,14 @@ export function registerPrefabCreate(server, config) {
73
73
  };
74
74
  }
75
75
  writeFileSync(targetPath, content, "utf-8");
76
+ const meshWarning = (prefabType === "interactive" || prefabType === "generic")
77
+ ? "\n\n⚠️ IMPORTANT: The MeshObject 'Object' property is empty. You MUST set it to a base game .xob model path (e.g., '{5F4C4181F065B447}Assets/Props/Military/Barrels/BarrelGreen_01.xob') or the entity will be INVISIBLE in-game. Use project_write to update the prefab."
78
+ : "";
76
79
  return {
77
80
  content: [
78
81
  {
79
82
  type: "text",
80
- text: `Prefab created: ${subdir}/${filename}\n\n\`\`\`\n${content}\n\`\`\``,
83
+ text: `Prefab created: ${subdir}/${filename}\n\n\`\`\`\n${content}\n\`\`\`${meshWarning}`,
81
84
  },
82
85
  ],
83
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prefab-create.js","sourceRoot":"","sources":["../../src/tools/prefab-create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefab-create.js","sourceRoot":"","sources":["../../src/tools/prefab-create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wb-launch.d.ts","sourceRoot":"","sources":["../../src/tools/wb-launch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,eAAe,GACtB,IAAI,CA6GN"}
1
+ {"version":3,"file":"wb-launch.d.ts","sourceRoot":"","sources":["../../src/tools/wb-launch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,eAAe,GACtB,IAAI,CA+GN"}
@@ -1,12 +1,13 @@
1
1
  import { z } from "zod";
2
+ import { dirname } from "node:path";
2
3
  export function registerWbLaunch(server, client) {
3
4
  server.registerTool("wb_launch", {
4
- description: "Launch Arma Reforger Workbench (Arma Reforger Tools). Automatically installs handler scripts, " +
5
- "injects the EnfusionMCP handler addon as a temporary dependency of the target mod (so NET API " +
6
- "handlers compile), starts the Workbench executable, and waits for the NET API to become available. " +
5
+ description: "Launch Arma Reforger Workbench (Arma Reforger Tools). Automatically copies handler scripts " +
6
+ "into the target mod's Scripts/WorkbenchGame/ directory (so NET API handlers compile as part " +
7
+ "of the mod), starts the Workbench executable, and waits for the NET API to become available. " +
7
8
  "All other wb_* tools call this automatically if Workbench is not running, so you rarely need to " +
8
9
  "call this directly. IMPORTANT: When done working with Workbench, call wb_cleanup to remove the " +
9
- "temporary EnfusionMCP dependency from the mod's .gproj before the user publishes.",
10
+ "handler scripts from the mod before the user publishes.",
10
11
  inputSchema: {
11
12
  timeoutSeconds: z
12
13
  .number()
@@ -18,8 +19,8 @@ export function registerWbLaunch(server, client) {
18
19
  .string()
19
20
  .optional()
20
21
  .describe("Path to a .gproj file to open directly. Skips the Workbench launcher screen and goes straight " +
21
- "into the World Editor. The EnfusionMCP handler addon is automatically injected as a dependency " +
22
- "so all wb_* tools work. If omitted, Workbench opens to its launcher."),
22
+ "into the World Editor. Handler scripts are copied into the mod so all wb_* tools work. " +
23
+ "If omitted, Workbench opens to its launcher."),
23
24
  },
24
25
  }, async ({ gprojPath }) => {
25
26
  try {
@@ -35,9 +36,10 @@ export function registerWbLaunch(server, client) {
35
36
  };
36
37
  }
37
38
  await client.ensureRunning(gprojPath);
38
- const note = gprojPath
39
- ? `\n\nNote: EnfusionMCP handler dependency was temporarily added to the mod's .gproj. ` +
40
- `Call **wb_cleanup** with this gprojPath when done to remove it before publishing.`
39
+ const modDir = gprojPath ? dirname(gprojPath) : null;
40
+ const note = modDir
41
+ ? `\n\nNote: Handler scripts were copied to ${modDir}/Scripts/WorkbenchGame/EnfusionMCP/. ` +
42
+ `Call **wb_cleanup** with the mod directory path when done to remove them before publishing.`
41
43
  : "";
42
44
  return {
43
45
  content: [
@@ -60,24 +62,25 @@ export function registerWbLaunch(server, client) {
60
62
  };
61
63
  }
62
64
  });
63
- // Cleanup tool to remove EnfusionMCP dependency after Workbench work is done
65
+ // Cleanup tool to remove handler scripts after Workbench work is done
64
66
  server.registerTool("wb_cleanup", {
65
- description: "Remove the temporary EnfusionMCP handler dependency from a mod's .gproj file. " +
67
+ description: "Remove the temporary EnfusionMCP handler scripts from a mod's directory. " +
68
+ "Deletes Scripts/WorkbenchGame/EnfusionMCP/ from the mod. " +
66
69
  "Call this after finishing Workbench work and before the user publishes their mod. " +
67
- "This is safe to call even if the dependency was never injected.",
70
+ "Safe to call even if scripts were never installed.",
68
71
  inputSchema: {
69
- gprojPath: z
72
+ modDir: z
70
73
  .string()
71
- .describe("Path to the mod's .gproj file to clean up."),
74
+ .describe("Path to the mod's root directory (the folder containing the .gproj file)."),
72
75
  },
73
- }, async ({ gprojPath }) => {
74
- const removed = client.cleanupHandlerDependency(gprojPath);
76
+ }, async ({ modDir }) => {
77
+ const removed = client.cleanupHandlerScripts(modDir);
75
78
  if (removed) {
76
79
  return {
77
80
  content: [
78
81
  {
79
82
  type: "text",
80
- text: "**Cleanup Complete** — EnfusionMCP handler dependency removed from the mod's .gproj. The mod is ready to publish.",
83
+ text: "**Cleanup Complete** — EnfusionMCP handler scripts removed from the mod. The mod is ready to publish.",
81
84
  },
82
85
  ],
83
86
  };
@@ -86,7 +89,7 @@ export function registerWbLaunch(server, client) {
86
89
  content: [
87
90
  {
88
91
  type: "text",
89
- text: "**No Cleanup Needed** — EnfusionMCP dependency was not present in the .gproj.",
92
+ text: "**No Cleanup Needed** — Handler scripts were not present in the mod directory.",
90
93
  },
91
94
  ],
92
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wb-launch.js","sourceRoot":"","sources":["../../src/tools/wb-launch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,MAAuB;IAEvB,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,gGAAgG;YAChG,gGAAgG;YAChG,qGAAqG;YACrG,kGAAkG;YAClG,iGAAiG;YACjG,mFAAmF;QACrF,WAAW,EAAE;YACX,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,CAAC,EAAE,CAAC;iBACP,GAAG,CAAC,GAAG,CAAC;iBACR,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CACP,qFAAqF,CACtF;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gGAAgG;gBAChG,iGAAiG;gBACjG,sEAAsE,CACvE;SACJ;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,wFAAwF;yBAC/F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,IAAI,GAAG,SAAS;gBACpB,CAAC,CAAC,sFAAsF;oBACtF,mFAAmF;gBACrF,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,mHAAmH,IAAI,EAAE;qBAChI;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wBAAwB,GAAG,EAAE;qBACpC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,6EAA6E;IAC7E,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EACT,gFAAgF;YAChF,oFAAoF;YACpF,iEAAiE;QACnE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,CAAC,4CAA4C,CAAC;SAC1D;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,mHAAmH;qBAC1H;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+EAA+E;iBACtF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wb-launch.js","sourceRoot":"","sources":["../../src/tools/wb-launch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,MAAuB;IAEvB,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,6FAA6F;YAC7F,8FAA8F;YAC9F,+FAA+F;YAC/F,kGAAkG;YAClG,iGAAiG;YACjG,yDAAyD;QAC3D,WAAW,EAAE;YACX,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,CAAC,EAAE,CAAC;iBACP,GAAG,CAAC,GAAG,CAAC;iBACR,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CACP,qFAAqF,CACtF;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gGAAgG;gBAChG,yFAAyF;gBACzF,8CAA8C,CAC/C;SACJ;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,wFAAwF;yBAC/F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM;gBACjB,CAAC,CAAC,4CAA4C,MAAM,uCAAuC;oBACzF,6FAA6F;gBAC/F,CAAC,CAAC,EAAE,CAAC;YAEP,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,mHAAmH,IAAI,EAAE;qBAChI;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wBAAwB,GAAG,EAAE;qBACpC;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,sEAAsE;IACtE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;QACE,WAAW,EACT,2EAA2E;YAC3E,2DAA2D;YAC3D,oFAAoF;YACpF,oDAAoD;QACtD,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,2EAA2E,CAAC;SACzF;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,uGAAuG;qBAC9G;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,gFAAgF;iBACvF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -44,17 +44,18 @@ export declare class WorkbenchClient {
44
44
  */
45
45
  ping(): Promise<boolean>;
46
46
  /**
47
- * Remove the EnfusionMCP handler dependency from a mod's .gproj.
47
+ * Remove injected handler scripts from a mod's directory.
48
48
  * Call this after Workbench work is done, before publishing the mod.
49
- * Safe to call even if the dependency was never injected.
49
+ * Deletes Scripts/WorkbenchGame/EnfusionMCP/ from the mod.
50
+ * Safe to call even if scripts were never injected.
50
51
  */
51
- cleanupHandlerDependency(gprojPath: string): boolean;
52
+ cleanupHandlerScripts(modDir: string): boolean;
52
53
  toString(): string;
53
54
  private launchWorkbench;
54
55
  private findWorkbenchExe;
55
56
  /**
56
57
  * Find a .gproj to pass via -gproj so Workbench skips the launcher.
57
- * Uses the EnfusionMCP handler addon (always installed before launch).
58
+ * Looks for any .gproj in the default project path.
58
59
  */
59
60
  private findFallbackGproj;
60
61
  /**
@@ -64,15 +65,9 @@ export declare class WorkbenchClient {
64
65
  */
65
66
  private findGameDir;
66
67
  /**
67
- * Read the GUID from the EnfusionMCP handler addon's .gproj.
68
+ * Copy handler scripts into a mod directory so they compile as part of that mod.
69
+ * If no modDir given, installs to default project path (standalone, less useful).
68
70
  */
69
- private getHandlerGuid;
70
- /**
71
- * Add the EnfusionMCP handler addon as a dependency of the target mod's .gproj.
72
- * This makes Workbench compile the handler scripts when opening the target mod,
73
- * enabling all wb_* NET API tools.
74
- */
75
- private injectHandlerDependency;
76
71
  private installHandlerScripts;
77
72
  /**
78
73
  * Raw TCP call — no auto-launch, no retry.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/workbench/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAChB,oBAAoB,GACpB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,eAAe;gBANnB,OAAO,EAAE,MAAM,EACC,IAAI,GAChB,oBAAoB,GACpB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,eAA6B;CAKpC;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAA8B;gBAGhC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,GAAE,MAA0B;IAGvD;;;OAGG;IACG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,CAAC,CAAC;IAkBb;;;;OAIG;IACG,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9B;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAMpD,QAAQ,IAAI,MAAM;YAQJ,eAAe;IA+D7B,OAAO,CAAC,gBAAgB;IAUxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,qBAAqB;IAwC7B;;OAEG;IACH,OAAO,CAAC,OAAO;CA0HhB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/workbench/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAChB,oBAAoB,GACpB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,eAAe;gBANnB,OAAO,EAAE,MAAM,EACC,IAAI,GAChB,oBAAoB,GACpB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,eAA6B;CAKpC;AAED,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAA8B;gBAGhC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,QAAQ,GAAE,MAA0B;IAGvD;;;OAGG;IACG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,CAAC,CAAC;IAkBb;;;;OAIG;IACG,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9B;;;;;OAKG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAkB9C,QAAQ,IAAI,MAAM;YAQJ,eAAe;IAkE7B,OAAO,CAAC,gBAAgB;IAUxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,OAAO;CA0HhB"}
@@ -9,8 +9,7 @@
9
9
  * and retries the original call.
10
10
  */
11
11
  import { Socket } from "node:net";
12
- import { existsSync, mkdirSync, copyFileSync, readdirSync, writeFileSync, readFileSync } from "node:fs";
13
- import { generateGproj } from "../templates/gproj.js";
12
+ import { existsSync, mkdirSync, copyFileSync, readdirSync, rmSync } from "node:fs";
14
13
  import { join, resolve, dirname } from "node:path";
15
14
  import { fileURLToPath } from "node:url";
16
15
  import { spawn } from "node:child_process";
@@ -100,15 +99,29 @@ export class WorkbenchClient {
100
99
  }
101
100
  }
102
101
  /**
103
- * Remove the EnfusionMCP handler dependency from a mod's .gproj.
102
+ * Remove injected handler scripts from a mod's directory.
104
103
  * Call this after Workbench work is done, before publishing the mod.
105
- * Safe to call even if the dependency was never injected.
104
+ * Deletes Scripts/WorkbenchGame/EnfusionMCP/ from the mod.
105
+ * Safe to call even if scripts were never injected.
106
106
  */
107
- cleanupHandlerDependency(gprojPath) {
108
- const handlerGuid = this.getHandlerGuid();
109
- if (!handlerGuid)
107
+ cleanupHandlerScripts(modDir) {
108
+ const handlerDir = join(modDir, "Scripts", "WorkbenchGame", HANDLER_FOLDER);
109
+ if (!existsSync(handlerDir))
110
110
  return false;
111
- return removeGprojDependency(gprojPath, handlerGuid);
111
+ try {
112
+ rmSync(handlerDir, { recursive: true, force: true });
113
+ logger.info(`Removed handler scripts from ${handlerDir}`);
114
+ // Clean up empty parent dirs
115
+ const wbGameDir = join(modDir, "Scripts", "WorkbenchGame");
116
+ if (existsSync(wbGameDir) && readdirSync(wbGameDir).length === 0) {
117
+ rmSync(wbGameDir);
118
+ }
119
+ return true;
120
+ }
121
+ catch (e) {
122
+ logger.warn(`Failed to clean up handler scripts: ${e}`);
123
+ return false;
124
+ }
112
125
  }
113
126
  toString() {
114
127
  return `WorkbenchClient(${this.host}:${this.port})`;
@@ -117,13 +130,23 @@ export class WorkbenchClient {
117
130
  // Private
118
131
  // ---------------------------------------------------------------------------
119
132
  async launchWorkbench(gprojPath) {
120
- // 1. Install handler scripts
121
- this.installHandlerScripts();
122
- // 2. Check if already running (maybe it came up between the failed call and now)
133
+ // 1. Check if already running (maybe it came up between the failed call and now)
123
134
  if (await this.ping()) {
124
135
  logger.info("Workbench is already running.");
125
136
  return;
126
137
  }
138
+ // 2. Resolve the target .gproj and inject handler scripts into that mod
139
+ const resolvedGproj = gprojPath || this.findFallbackGproj();
140
+ if (resolvedGproj) {
141
+ // Copy handler scripts directly into the target mod so they compile
142
+ // as part of the mod — no separate addon or dependency needed.
143
+ const modDir = dirname(resolvedGproj);
144
+ this.installHandlerScripts(modDir);
145
+ }
146
+ else {
147
+ // Fallback: install to default project path as a standalone addon
148
+ this.installHandlerScripts();
149
+ }
127
150
  // 3. Find executable
128
151
  const exePath = this.findWorkbenchExe();
129
152
  if (!exePath) {
@@ -132,12 +155,7 @@ export class WorkbenchClient {
132
155
  ` - ${join(this.config.workbenchPath, WORKBENCH_SUBDIR, WORKBENCH_EXE)}\n` +
133
156
  ` - ${join(this.config.workbenchPath, WORKBENCH_EXE)}`, "LAUNCH_FAILED");
134
157
  }
135
- // 4. Inject EnfusionMCP handler as dependency of target mod so NET API handlers compile
136
- const resolvedGproj = gprojPath || this.findFallbackGproj();
137
- if (resolvedGproj) {
138
- this.injectHandlerDependency(resolvedGproj);
139
- }
140
- // 5. Spawn with -gproj to skip the launcher
158
+ // 4. Spawn with -gproj to skip the launcher
141
159
  const args = [];
142
160
  if (resolvedGproj) {
143
161
  args.push("-gproj", resolvedGproj);
@@ -152,7 +170,7 @@ export class WorkbenchClient {
152
170
  cwd,
153
171
  });
154
172
  proc.unref();
155
- // 6. Wait for NET API
173
+ // 5. Wait for NET API
156
174
  const deadline = Date.now() + LAUNCH_TIMEOUT_MS;
157
175
  while (Date.now() < deadline) {
158
176
  if (await this.ping()) {
@@ -175,14 +193,24 @@ export class WorkbenchClient {
175
193
  }
176
194
  /**
177
195
  * Find a .gproj to pass via -gproj so Workbench skips the launcher.
178
- * Uses the EnfusionMCP handler addon (always installed before launch).
196
+ * Looks for any .gproj in the default project path.
179
197
  */
180
198
  findFallbackGproj() {
181
- const handlerGproj = join(this.config.projectPath, HANDLER_FOLDER, `${HANDLER_FOLDER}.gproj`);
182
- if (existsSync(handlerGproj)) {
183
- logger.info(`Using fallback gproj to skip launcher: ${handlerGproj}`);
184
- return handlerGproj;
199
+ try {
200
+ const addonsDir = this.config.projectPath;
201
+ if (!existsSync(addonsDir))
202
+ return null;
203
+ for (const entry of readdirSync(addonsDir, { withFileTypes: true })) {
204
+ if (!entry.isDirectory())
205
+ continue;
206
+ const gprojPath = join(addonsDir, entry.name, `${entry.name}.gproj`);
207
+ if (existsSync(gprojPath)) {
208
+ logger.info(`Using fallback gproj to skip launcher: ${gprojPath}`);
209
+ return gprojPath;
210
+ }
211
+ }
185
212
  }
213
+ catch { /* ignore */ }
186
214
  return null;
187
215
  }
188
216
  /**
@@ -210,38 +238,18 @@ export class WorkbenchClient {
210
238
  return null;
211
239
  }
212
240
  /**
213
- * Read the GUID from the EnfusionMCP handler addon's .gproj.
241
+ * Copy handler scripts into a mod directory so they compile as part of that mod.
242
+ * If no modDir given, installs to default project path (standalone, less useful).
214
243
  */
215
- getHandlerGuid() {
216
- const handlerGproj = join(this.config.projectPath, HANDLER_FOLDER, `${HANDLER_FOLDER}.gproj`);
217
- if (!existsSync(handlerGproj))
218
- return null;
219
- return readGprojGuid(handlerGproj);
220
- }
221
- /**
222
- * Add the EnfusionMCP handler addon as a dependency of the target mod's .gproj.
223
- * This makes Workbench compile the handler scripts when opening the target mod,
224
- * enabling all wb_* NET API tools.
225
- */
226
- injectHandlerDependency(targetGproj) {
227
- const handlerGuid = this.getHandlerGuid();
228
- if (!handlerGuid) {
229
- logger.warn("Cannot inject handler dependency — handler GUID not found.");
230
- return;
231
- }
232
- if (addGprojDependency(targetGproj, handlerGuid)) {
233
- logger.info(`Injected EnfusionMCP dependency (${handlerGuid}) into ${targetGproj}`);
234
- }
235
- }
236
- installHandlerScripts() {
244
+ installHandlerScripts(modDir) {
237
245
  const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..");
238
246
  const bundledDir = join(packageRoot, "mod", "Scripts", "WorkbenchGame", HANDLER_FOLDER);
239
247
  if (!existsSync(bundledDir)) {
240
248
  logger.warn("Bundled handler scripts not found in package.");
241
249
  return;
242
250
  }
243
- const targetAddon = join(this.config.projectPath, HANDLER_FOLDER);
244
- const targetScriptsDir = join(targetAddon, "Scripts", "WorkbenchGame", HANDLER_FOLDER);
251
+ const targetBase = modDir || join(this.config.projectPath, HANDLER_FOLDER);
252
+ const targetScriptsDir = join(targetBase, "Scripts", "WorkbenchGame", HANDLER_FOLDER);
245
253
  // Already installed?
246
254
  if (existsSync(join(targetScriptsDir, "EMCP_WB_Ping.c"))) {
247
255
  return;
@@ -252,14 +260,6 @@ export class WorkbenchClient {
252
260
  for (const file of files) {
253
261
  copyFileSync(join(bundledDir, file), join(targetScriptsDir, file));
254
262
  }
255
- // Create .gproj in proper Enfusion GameProject format
256
- const gprojPath = join(targetAddon, `${HANDLER_FOLDER}.gproj`);
257
- if (!existsSync(gprojPath)) {
258
- writeFileSync(gprojPath, generateGproj({
259
- name: HANDLER_FOLDER,
260
- title: "EnfusionMCP Handler Scripts",
261
- }), "utf-8");
262
- }
263
263
  logger.info(`Installed ${files.length} handler scripts.`);
264
264
  }
265
265
  /**
@@ -350,76 +350,4 @@ export class WorkbenchClient {
350
350
  });
351
351
  }
352
352
  }
353
- // ---------------------------------------------------------------------------
354
- // Module-level helpers for .gproj dependency management
355
- // ---------------------------------------------------------------------------
356
- /** Extract the GUID from a .gproj file via regex. */
357
- function readGprojGuid(gprojPath) {
358
- try {
359
- const content = readFileSync(gprojPath, "utf-8");
360
- const match = content.match(/^\s*GUID\s+"([A-Fa-f0-9]+)"/m);
361
- return match ? match[1] : null;
362
- }
363
- catch {
364
- return null;
365
- }
366
- }
367
- /** Add a dependency GUID to a .gproj's Dependencies block. Returns true if added. */
368
- function addGprojDependency(gprojPath, guid) {
369
- try {
370
- let content = readFileSync(gprojPath, "utf-8");
371
- // Already present?
372
- if (content.includes(`"${guid}"`))
373
- return false;
374
- // Find the Dependencies block and insert the GUID
375
- const depsMatch = content.match(/(Dependencies\s*\{)([\s\S]*?)(\})/);
376
- if (depsMatch) {
377
- const [fullMatch, open, body, close] = depsMatch;
378
- const newBody = body.trimEnd() + `\n "${guid}"\n `;
379
- content = content.replace(fullMatch, open + newBody + close);
380
- }
381
- else {
382
- // No Dependencies block — insert one before Configurations
383
- const configMatch = content.match(/(\s*Configurations\s*\{)/);
384
- if (configMatch) {
385
- const insertion = ` Dependencies {\n "${guid}"\n }\n`;
386
- content = content.replace(configMatch[1], insertion + configMatch[1]);
387
- }
388
- else {
389
- // Last resort: insert before closing brace
390
- const lastBrace = content.lastIndexOf("}");
391
- if (lastBrace === -1)
392
- return false;
393
- content =
394
- content.slice(0, lastBrace) +
395
- ` Dependencies {\n "${guid}"\n }\n` +
396
- content.slice(lastBrace);
397
- }
398
- }
399
- writeFileSync(gprojPath, content, "utf-8");
400
- return true;
401
- }
402
- catch {
403
- return false;
404
- }
405
- }
406
- /** Remove a dependency GUID from a .gproj's Dependencies block. Returns true if removed. */
407
- function removeGprojDependency(gprojPath, guid) {
408
- try {
409
- let content = readFileSync(gprojPath, "utf-8");
410
- if (!content.includes(`"${guid}"`))
411
- return false;
412
- // Remove the GUID line from the Dependencies block
413
- const guidLine = new RegExp(`\\s*"${guid}"\\s*\\n?`);
414
- content = content.replace(guidLine, "\n");
415
- // Clean up any double-newlines in Dependencies block
416
- content = content.replace(/(Dependencies\s*\{)\n\n+/g, "$1\n");
417
- writeFileSync(gprojPath, content, "utf-8");
418
- logger.info(`Removed EnfusionMCP dependency (${guid}) from ${gprojPath}`);
419
- return true;
420
- }
421
- catch {
422
- return false;
423
- }
424
- }
425
353
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/workbench/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/workbench/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enfusion-mcp",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "type": "module",
5
5
  "description": "MCP server for Arma Reforger / Enfusion engine modding — create mods from natural language",
6
6
  "bin": {