- Notifications
You must be signed in to change notification settings - Fork 0
Home
Script Merger for The Witcher 3. When two mods edit the same script file, only one of them wins — this tool merges their changes instead, so both keep working.
It scans your mods folder, finds .ws/.xml files (and files inside .bundle packages)
that more than one mod modifies, and performs a three-way merge against the vanilla file.
Merging is in-process; no external merge tool is required for script conflicts.
This is a maintained fork of AnotherSymbiote/WitcherScriptMerger, modernized to .NET 10 with a new merge engine, a headless CLI, an MCP server mode, and a companion Vortex extension.
| You want to… | Use |
|---|---|
| Click buttons, see conflicts in a tree | The GUI — run WitcherScriptMerger.exe with no arguments |
| Merge from a script or a scheduled task | The CLI — WitcherScriptMerger.Headless merge |
| Stay inside Vortex | The companion extension — adds a Resolve Script Conflicts button |
| Drive it from a tool or an AI agent | MCP server mode — ... mcp speaks JSON-RPC over stdio |
The GUI and CLI live in the same Windows executable. The Headless build is CLI + MCP only, runs on Linux as well as Windows, and is what the Vortex extension downloads and drives.
- Installation — getting the tool, and the Vortex extension
- Resolving Script Conflicts — the actual workflow
- Troubleshooting — symptom-first; start here when something breaks
- Known Limitations — what this tool does not do, and why
Most conflicts merge automatically. When a whole-file merge can't resolve, the tool doesn't give up and doesn't guess:
- Function-level fallback — the file is split into individual functions and each one is resolved independently. Two mods editing different functions in the same file is the common case, and it merges cleanly.
- Whole-function tiebreak — when both mods genuinely edited the same function differently, the more-changed-from-vanilla version wins, and the choice is recorded.
- Conflict markers — if even that can't decide, a git-style conflict file is written
to a
DiffPlexConflictsfolder and opened for you to resolve by hand. Nothing wrong is ever written to your mods folder.
Every non-mechanical decision — every tiebreak, every edit that survived a competing deletion — is reported. If a mod's change disappears, the audit trail says which decision removed it and why.
Please include the merge's own output (the function-level: lines especially), your game
version, and roughly how many mods you have. Troubleshooting covers the
failures we already know about, several of which look like tool bugs but aren't.