- JavaScript 98.5%
- HTML 0.8%
- CSS 0.6%
- 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 |
||
|---|---|---|
| public | ||
| src | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| run.sh | ||
| vite.config.js | ||
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.