ModSettingsMenu
Adds a mod configuration menu under the game's Settings menu. Used to display mod configuration entries.
About this mod Machine translation
Note: This description is a bilingual version in Chinese and English. The English content is located below the Chinese content. \
Note: This description is bilingual. The English section is provided below the Chinese section.
Mod Settings Menu (English)
Adds a mod configuration menu under the game's Settings menu. Used to display mod configuration entries.
Main Features
- Adds a Mod Settings button under Settings
- Shows mod names on the left and mod settings on the right
- Automatically shows standard config entries from loaded mods
- Adds mod hotkeys to the native Settings > Bindings page through ConfigDescription tags, without a separate keybind registration step
- Shows keybind entries in Mod Settings Menu as read-only hints, with compact binding text such as F8 or F8 / D1
- Supports single-key ConfigEntry hotkeys and three-slot ConfigEntry bindings for keyboard, mouse, and stored controller button slots
- Supports optional mod-side registration metadata, including version, author, description, sorting, hidden entries, built-in game icons, optional PNG icons, links, links, and update checks
Mod Author API
- Registering your mod with Mod Settings Menu is optional. If your mod uses normal BepInEx Config.Bind entries, Mod Settings Menu can detect and display those entries automatically.
- Only use the API when you want better presentation control, such as a custom display name, author, version, description, section names, entry names, entry descriptions, sorting, hidden entries, or an icon.
- You can use a hard dependency by referencing ModSettingsMenu.dll, or use a soft dependency and call the API through reflection so your mod can still load without Mod Settings Menu installed.
- For soft dependencies, the tag metadata can also be anonymous objects with matching property names, such as new { DisplayName = "Speed", Order = 10, SliderStep = 0.5 }.
- The older ConfigureSection and ConfigureEntry API remains supported for compatibility, but new integrations should prefer the simplified ConfigDescription tag workflow.
- You can also register metadata only. You do not need to call ConfigureEntry; standard Config.Bind entries will still be displayed automatically. If your mod has no config entries but you still want it listed for its description, link, link, or update status, set HideWhenEmpty to false.
- links use ThunderstoreTeam and ThunderstoreModName together. Both values must contain only ASCII letters, numbers, and underscores.
- ShowInMainMenu and ShowInGame control whether your mod appears in the mod settings menu opened from the main menu or the in-game top bar. Both default to true; omit them or pass null to keep the defaults. Set either to false to hide your mod from that menu, or both to false to hide it from both. Unregistered mods remain visible in both menus. These options do not affect the native Bindings page or hotkey behavior.
- Keybinds use the same zero-registration workflow. Add ModKeybindTags.Keybind(...) or ModSettingsTags.Keybind(...) to a BepInEx config entry and it will appear under the game's native Settings > Bindings page, grouped by mod name.
- Supported keybind config types: ConfigEntry for a simple keyboard key, and ConfigEntry using K:key,key,key;M:mouse,mouse,mouse;B:button,button,button. K means keyboard Keys, M means mouse MouseButtons, and B means gamepad/controller Buttons.
- The in-game Reset to Default button also resets mod keybinds back to each config entry's default value.
- ModKeybindValue provides a small helper API for reading keybind config values: FromEntry, Parse, Keys, MouseButtons, Buttons, ToSingleKey, ToConfigString, and ToDisplayString.
Optional hard dependency example:
using BepInEx;
using BepInEx.Configuration;
using BepInEx.NET.Common;
using Microsoft.Xna.Framework.Input;
using ModSettingsMenu.Api;
using System.IO;
[BepInDependency(ModSettingsMenu.PluginInfo.PLUGIN_GUID)]
public sealed class MyPlugin: BasePlugin
{
public override void Load()
{
/*
- Config.Bind(secti …
Install & use Install: follow the bundled instructions
- Unzip the archive from playbuff and read the bundled readme / instructions first.
- Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
- For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
- Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.
Install locations vary a lot between mods — the bundled readme is the most reliable guide.
Install these first, or the mod will not work: