Mod dependency resolver. Load order, conflict detection, dependency graph. Browser or Wails. Kahn sort, profiles, JSON import.
  • JavaScript 98.5%
  • HTML 0.8%
  • CSS 0.6%
Go to file
ibotzhub a89c4d55d9 docs: correct ModSmith clone URL, LICENSE link, run.sh; tighten gitignore
- README: repo URL; ModSmith.git + cd ModSmith; http://localhost:5173
- README: Kahn's algorithm wording; ESLint/Vite casing; schema and Wails backticks
- README: link MIT to LICENSE; run.sh note after npm install
- .gitignore: .env.* and !.env.example
- run.sh: npm run dev from repo root
2026-05-13 03:02:53 -07:00
public Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
src Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
.eslintrc.cjs Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
.gitignore docs: correct ModSmith clone URL, LICENSE link, run.sh; tighten gitignore 2026-05-13 03:02:53 -07:00
index.html Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
LICENSE Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
package-lock.json Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
package.json Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00
README.md docs: correct ModSmith clone URL, LICENSE link, run.sh; tighten gitignore 2026-05-13 03:02:53 -07:00
run.sh docs: correct ModSmith clone URL, LICENSE link, run.sh; tighten gitignore 2026-05-13 03:02:53 -07:00
vite.config.js Initial commit: ModSmith mod dependency resolver 2026-03-06 10:03:45 -08:00

ModSmith

https://github.com/ibotzhub/ModSmith

Mod dependency resolver: load order, conflicts, and a dependency graph for game mods (Skyrim and similar). Runs in the browser or as a Wails desktop app.

what you get

Kahn's algorithm (topological sort) so load order is correct. Conflict detection so you know when two mods fight (disable one and move on). Visual graph of what requires what. Profiles so you can save and load mod lists by name (localStorage in browser, or a Go backend in Wails). Import and export JSON. Live warnings for missing deps and cycles.

quick start

git clone https://github.com/ibotzhub/ModSmith.git
cd ModSmith
npm install
npm run dev

Then open http://localhost:5173. Use Sample to load example mods, RESOLVE, then switch to results for the list or the graph.

Or: chmod +x run.sh && ./run.sh (same as npm run dev; run npm install first).

scripts

npm run dev for the Vite server. npm run build for production. npm run preview to test the build. npm run lint for ESLint.

mod schema

Each mod is an object: id, name, version, author (optional), requires (array of mod ids), conflicts (array), tags (UI, Gameplay, whatever). Paste a JSON array in the Import tab, or in Wails use Open File.

Wails

This repo is frontend only. To get native file dialogs and profiles on disk you need a Wails project with a Go backend that exposes ResolveMods, LoadModFile, SaveLoadOrder, ExportJSON, GetProfiles, SaveProfile, DeleteProfile. Point the Wails frontend at this app or copy src/ in. The UI looks for window.go.main.App and uses the backend when it is there; otherwise it uses localStorage and the in-browser resolver.

project structure

ModSmith: index.html, package.json, vite.config.js, src/ (main.jsx, App.jsx, index.css), public/. Typical Vite + React layout.

license

MIT