SpongeMods-SpongesModMenu icon

SpongesModMenu

One in-game menu, on one key, holding the settings for every Sponge mod you have installed.

Last updated a day ago
Total downloads 722
Total rating 0 
Categories
Dependency string SpongeMods-SpongesModMenu-1.0.0
Dependants 6 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305
SpongeMods-SpongeCore-1.0.0 icon
SpongeMods-SpongeCore

Shared plumbing for Sponge's mods. Install it only if another mod asks for it.

Preferred version: 1.0.0
SpongeMods-SpongesUILib-1.0.0 icon
SpongeMods-SpongesUILib

Shared UI toolkit for Sponge's mods. Install it only if another mod asks for it.

Preferred version: 1.0.0

README

Sponge's Mod Menu

One menu, on one key, holding the settings for every Sponge mod you have installed.

What it does

Press F5 in game. A panel opens with a tab for each mod, and each tab is that mod's settings: switches, sliders you can also type a number into, text fields and buttons. Changes take effect immediately and are written to that mod's own configuration file, so they are still there next time you play.

While the menu is open your cursor is free and your character stands still. It stays that way if you alt-tab out and back, which is the part that is usually broken. Press F5 again to close it.

The menu does not fight the game. Opening the pause menu or the journal closes it, rather than leaving two screens arguing over the mouse. And it will not open before a world is loaded, because there is nothing yet for the settings to apply to.

Tabs

Tabs run along the top and are clicked. A mod may have more than one if it has enough to say.

Install enough mods and the tabs stop fitting. When that happens you get arrows at each end that step one tab at a time, a bar underneath you can drag, and the mouse wheel. Whichever way you change tab, the rail scrolls to keep the one you are on in view.

Host and guest

Some settings belong to the world rather than to you — how big fish can get, how many items a slot holds. Those are the host's, because the host runs the world.

If you are not the host, you are not shown them at all rather than shown them greyed out. A control you cannot press and cannot explain is worse than one that was never there. The line at the bottom of the menu tells you which of the two you are.

When you want it

You have more than one Sponge mod and would rather press one key than five, or you want to change a setting without alt-tabbing out to edit a text file.

Keys

Key What it does
F5 Open or close the menu

Inside the menu: click anything. also change tab, the wheel scrolls, and clicking a number lets you type it — Enter keeps what you typed, Esc throws it away.

The key is rebindable in the config.

For mod authors

A mod registers its own rows. This package never mentions any mod by name, and mods depend on it rather than the other way round.

SpongeMenu.Tab(Plugin.Id, "Fisherman's Tally", order: 20)
          .Heading("Fish size")
          .Toggle("Wider size range", Plugin.WiderRange)
          .Number("Spread", Plugin.SizeSpread)
          .Press("Bench", "Place here", Bench.PlaceAtPlayer)
          .OnlyHost();

A slider takes its limits from the range already declared where the setting was bound, so there is no second copy of them to disagree. OnlyHost() applies to the row just added.

Tabs are keyed by your plugin's GUID, so asking for the same title twice gives you the same tab back and you can add to it from wherever suits.

Multiplayer

The menu itself is entirely local — it sends nothing. What the settings inside it do is up to the mod that owns them.

Requires

Sponge's Core and Sponge's UI Library. Your mod manager installs them for you.

License

See LICENSE in the package.