ModMayor (working title) is a mod manager for Stardew Valley. The way Stardew works with mods is that there’s SMAPI project that works as the technical manager that injects the mods into the game as long as they are folders in right directory and are named correctly.
Issues
Managing those mods as a user is bit painful though. SMAPI loads all mods that are not in hidden folders (folders which names start with .
) and there’s no correlation or record between save games and mods used in those so managing sets of mods while switching between different playthroughs.
Also, if you return to the game after an even short break, it’s likely a bunch of your mods are outdated and going through which ones from the SMAPI logging and finding out where to update them from is cumbersome.
Development notes
I’m building ModMayor as an Electron project so I can build cross-platform desktop apps. I considered other similar tools like Tauri, Flutter and Flet but decided to go with Electron as I’m most comfortable with building UIs with HTML and CSS and good enough with Javascript to build what I need.
My main goals for the first version are:
- List all mods in the mod folder
- Easy UX for enabling/disabling mod
- Easy UX for grouping mods and turning entire groups on/off (for example per save file or all Expanded mod related mods)
- Show current and latest versions to see which mods are outdated
- One-click update of mods from their mod pages
- Localisation so people can contribute and localise it to their own languages
Current status
Latest screenshot:
Current status is that all other features than localisation is implemented and works but the UI is not very polished and the code requires cleaning up.
In addition, the app shows if any of the required dependencies are missing but does not yet provide any way to automatically get them or list which ones are missing. At least the latter is on the roadmap though.
What is missing is a way to configure settings. Currently it only works on default mod folders but those configurations I will add before releasing the first demo.
Updating mods
Most of the mods are hosted in NexusMods which causes quite a bit of issues as to get access to their basic API requires them to accept access for the app and to gain programmatic access to updates requires some kind of paid tier which I’m not able to pay.
For the demo/development version I’m doing a bit of web scraping to get the versions and open up the correct mod page in their site when user clicks Update and then user can drag-and-drop the ZIP file into the app and it updates it. It’s enough to experiment and demo the app on my own but I can’t publish that portion if I don’t gain access to the API.
Mods (like UI Info Suite 2) that are hosted in GitHub and use its Releases feature to distribute the mod work through the API and the one-click updater works like a charm.
None of my mods are hosted in other services so currently these two are the only supported ones but I’m always open to adding support for new platforms.