- JavaScript 98.6%
- HTML 0.8%
- CSS 0.6%
|
|
||
|---|---|---|
| public | ||
| src | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| vite.config.js | ||
ModSmith
mod dependency resolver. load order, conflicts, and a dependency graph for game mods (skyrim and that whole scene). runs in the browser or as a Wails desktop app
what you get
Kahn 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://git.hexed.systems/lifelessai/modsmith
cd modsmith
npm install
npm run dev
localhost:5173. hit Sample to load example mods, hit RESOLVE, switch to results for the list or the graph
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 its there, otherwise localStorage and the in browser resolver
project structure
modsmith: index.html, package.json, vite.config.js, src (main.jsx, App.jsx, index.css), public. the usual vite react layout
license
MIT