ModsMenu
Adds a Mods tab to Options with the settings of your installed mods: toggles, sliders, dropdowns and text fields built from each mod's config, in the game's own style. A library: mods opt in with one attribute.
By helvetica
| Last updated | 9 hours ago |
| Total downloads | 0 |
| Total rating | 0 |
| Categories | Libraries |
| Dependency string | helvetica-ModsMenu-0.3.2 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305StolenRealmModding-StolenRealmModAPI
Community modding API for Stolen Realm - fluent builders for skills, enemies, quests, UI, combat events, and persistent data
Preferred version: 0.2.0README
Mods Menu
Adds a Mods tab to Stolen Realm's Options window (Esc → Options, after Twitch) with the settings of your installed mods.
- Each mod gets a card with its name and version. Click the card to open it.
- Settings use clones of the game's own Options controls: toggles, sliders, dropdowns and text fields.
- Changes save to the mod's config file right away, and mods that support it react without a restart.
Mods Menu is a library. On its own it only shows its own card. Mods that support it appear automatically, and Show All Plugins also lists any other BepInEx mod that has settings.
Settings
| Setting | Default | |
|---|---|---|
| Show All Plugins | off | Also list installed mods that didn't opt in but have settings |
| Log UI Layout | off | Write the Options window's layout to the BepInEx log once per launch (for mod developers) |
The file is BepInEx\config\com.helvetica.modsmenu.cfg.
For mod developers
No code. Add a soft dependency to your plugin class. Your mod still loads when Mods Menu isn't installed:
[BepInDependency("com.helvetica.modsmenu", BepInDependency.DependencyFlags.SoftDependency)]
Every Config.Bind entry then appears on your mod's card, grouped by config section:
| Setting type | Control |
|---|---|
bool |
toggle |
| enum | dropdown |
float/int with AcceptableValueRange |
slider + value |
any type with AcceptableValueList |
dropdown |
other simple types (string, unbounded numbers…) |
text field (invalid input reverts) |
Labels come from the key (ShowOwnName → "Show Own Name"). The description is a dim line under the control.
A change saves the .cfg at once and raises SettingChanged, so your mod can react live.
Order. Mods are listed A-Z, Mods Menu last. Inside a card, groups and settings follow the order of your
Config.Bind calls, not the .cfg file's (BepInEx sorts sections alphabetically in the file).
Custom controls. Reference ModsMenu.dll with Private="false" so it isn't copied next to your mod. Put the
calls in a separate class and only call it when Mods Menu is installed, so your mod still loads without it:
// OnModLoaded / Awake:
if (Chainloader.PluginInfos.ContainsKey("com.helvetica.modsmenu")) MenuCard.Register();
static class MenuCard
{
internal static void Register() => ModsMenuApi.AddSection(MyPlugin.Guid, ui =>
{
ui.AddButton("Reset colors", ResetColors, "Restore the default palette");
ui.AddLabel("Anything else goes here.");
});
}
SectionBuilder offers AddHeader, AddSubheader, AddLabel, AddToggle, AddSlider, AddDropdown,
AddInput, AddButton, AddConfigEntry and AddConfigFile. The callback runs each time your card opens, after
your config settings.