Feature requests and improvements for ModsMenu
Background
Some players have found that when enabling multiple mods at once (especially mods with complex dependencies), the current ModsMenu feels inconvenient and not very intuitive.
I was considering making a “Mod Launcher Mod” to enhance ModsMenu, but when I tried to implement it, I ran into several issues.
Desired Features
- Batch mod toggling
- e.g. enabling a mod also auto-enables its dependencies
- enable/disable by groups or categories
- Custom mod names / aliases
- especially helpful for non-English speakers
- Favorites / tags system
- Mod group presets
- similar to Slay the Spire Mod Launcher
Issues Encountered
ModsMenudoes not expose whether a selected (or specified) mod is currently enabledModsMenulacks a clean method to toggle mods- it could be forced with
MC_MENU_INPUT_ACTION, but that feels clunky
- it could be forced with
ModsMenureorders enabled mods to the top, breaking the mapping between mods andSelectedElement
Summary
- The main blocker is: how to directly read/control mod states within ModsMenu
Request
I hope Repentogon can provide APIs to query and set the enabled state of mods. Of course, it would be even more appreciated if these optimizations could be integrated directly into the ModsMenu, or if additional interfaces were added (for example, allowing mods to mark their dependencies, or specify names in different languages).
Letting mods enable mods is not a feature that I personally feel is sane to have, so the exposure of the Mod's menu is intentionally vague in that regard. You can still tell if a mod is enabled or not by looking at its enabled state in the xmldata for the mod in question....but, yea, I dont think mods should have the ability to enable other mods.
Now, about rgon further improving the ingame mods menu....I cant speak for everyone, but I wouldnt hold my breath. I was planning on that but dropped it because I feel the ingame mods menu is just fundamentally flawed, specially when a restart is needed when enabling/disabling mods.