You are viewing a potentially older version of this package. View all versions.
Sparroh-ModSettingsMenu-2.1.1 icon

ModSettingsMenu

In-game mod config editor plus click-and-drag HUD reposition mode for compatible mods.

Date uploaded 2 days ago
Version 2.1.1
Download link Sparroh-ModSettingsMenu-2.1.1.zip
Downloads 93
Dependency string Sparroh-ModSettingsMenu-2.1.1

This mod requires the following mods to function

BepInEx-BepInExPack_Mycopunk-5.4.2403 icon
BepInEx-BepInExPack_Mycopunk

BepInEx pack for Mycopunk. Preconfigured and ready to use.

Preferred version: 5.4.2403
Sparroh-SparrohUILib-1.2.2 icon
Sparroh-SparrohUILib

Shared UI library for Sparroh Mycopunk mods. Provides themed widgets, HUD builders, windows, and resolution-aware layout.

Preferred version: 1.2.2

README

ModSettingsMenu

A BepInEx mod for MycoPunk that provides an in-game GUI for editing mod configuration files, plus a quality-of-life * HUD Reposition Mode* for click-and-drag layout of mod HUD elements.

Description

This mod lets players edit configuration settings for other installed mods directly in-game, without manually editing .cfg files. It parses BepInEx configuration files and presents them in an organized, themed GUI (via SparrohUILib).

It also includes HUD Reposition Mode so compatible mods can expose draggable HUD elements whose positions write back to each mod's AnchorX/AnchorY config.

Adapted from ToeKneeRED's MycoModList.

Features

  • In-game GUI for editing mod configuration files (SparrohUILib themed UI)

  • Default F10 keybind to toggle the config menu (rebindable in-game)

  • "Mod Config" button in the main menu when the menu is open

  • Support for boolean toggles, integer/float inputs, text strings, dropdown selections, and optional ranged float sliders (SparrohUILib)

  • Configuration entries organized by file sections

  • Changes write to the plugin's live ConfigEntry (so SettingChanged fires and mods can hot-reload) and save to .cfg files

  • Visual indicators for sandbox mods

  • Multi-mod support displaying all installed mods with configs

  • Sticky mod titles — while scrolling, the current mod's title pins to the top of the viewport

  • Sticky-aware row snap — wheel scroll snaps one content row at a time and aligns under the pinned title

  • Mod list toolbar — search by name/GUID, sort (A–Z, Z–A, load order, sandbox first, has-config first), hide mods without config, and All/Sandbox/Client-side filter chips

  • Collapsible toolbar filters — +/- beside the search bar hides sort/filter/options rows (search stays visible); state persisted

  • Collapse / expand — click mod titles (or the sticky pinned header) to fold settings; Expand/Collapse all; optional group-by-author (GUID prefix)

  • HUD Reposition Mode (default F9) — click and drag registered HUD elements; positions write back to each mod's AnchorX/AnchorY config

Dependencies

  • MycoPunk (base game)
  • BepInEx — version 5.4.2403 or compatible
  • SparrohUILib — shared themed UI (1.1.6+ required)
  • HarmonyLib (included via BepInEx)

Installation

  1. Install BepInEx for MycoPunk
  2. Download the mod from Thunderstore, or place the .dll in <MycoPunk Directory>/BepInEx/plugins/
  3. Launch the game — the mod loads automatically through BepInEx

Usage

  • Press F10 (or your configured key) to open the mod configuration GUI
  • Alternatively, open the main menu and click the "Mod Config" button
  • Use the toolbar to search, sort, filter, and collapse mods as needed
  • Select a mod from the list to view and edit its configuration options
  • Changes are applied and saved when modified

HUD Reposition Mode

  • Press F9 (or your configured key), or click Reposition HUDs in the main menu / Mod Config title bar
  • Drag highlighted HUD elements to the desired position
  • Coordinates (0–1 anchors) update live and are saved when you release the mouse
  • Press Esc or the toggle key again to exit

Compatible HUD mods register themselves via the API. Unregistered mods that expose *AnchorX / *AnchorY config pairs may still be auto-detected when their HUD objects exist under the reticle.

Configuration

The mod itself has configurable settings (BepInEx config entry names):

Keybinds

  • Toggle Config GUI — key to open the config menu (default: F10)
  • Toggle Hud Reposition — key to enter HUD reposition mode (default: F9)

UI

  • Mod Sort Mode — list order: Alphabetical (default), AlphabeticalDesc, LoadOrder, SandboxFirst, HasConfigFirst
  • Hide Mods Without Config — hide mods with no matching .cfg (default: true)
  • Mod List FilterAll (default), Sandbox, or ClientSide
  • Group Mods By Author — group list by GUID author prefix (default: false)
  • Collapsed Mods — comma-separated mod keys that are collapsed (empty = all expanded)
  • Toolbar Filters Collapsed — hide toolbar filter/sort/options rows; search stays visible (default: false)
  • Use Float Sliders — when enabled, float settings with a defined min/max range render as SparrohUILib sliders instead of text fields (default: false)

Keybinds can be rebound in-game by clicking the input field in the Mod Config GUI. Sort, hide-empty, filter chips, grouping, and collapse state also update from the toolbar.

For mod authors — HudRepositionAPI

Register your HUD after creating its RectTransform, and unregister on destroy:

// Soft dependency (recommended) — copy HudRepositionClient.cs.example into your project
HudRepositionClient.Register(
    id: "your.mod.guid",
    displayName: "My HUD",
    rect: containerRect,
    anchorX: myAnchorX,   // ConfigEntry<float> 0-1
    anchorY: myAnchorY);

// On destroy / when HUD is destroyed:
HudRepositionClient.Unregister("your.mod.guid");

Or call HudRepositionAPI directly if you reference ModSettingsMenu.dll.

Convention:

  • Section: [HUD Positioning]
  • Keys: {Name}AnchorX / {Name}AnchorY as floats in 0–1 (anchorMin = anchorMax)
  • Parent under the player reticle (or any screen-space canvas)
  • Listen to SettingChanged on the config entries to apply anchors live

Help

  • Mod not loading? Ensure BepInEx is installed and the .dll is in the correct plugins folder
  • Configs not showing? The mod only displays mods that have .cfg files in the BepInEx config directory (unless " Hide Mods Without Config" is off)
  • Keybind not working? Check for conflicts with other mods or rebind it in the GUI
  • GUI not appearing? Verify the game is running and try toggling with the menu button
  • Dropdowns unusable / no caret in fields? Update SparrohUILib to 1.1.6+
  • HUD not draggable? Ensure the HUD is visible (in-mission), registered via the API, or has matching AnchorX/Y config keys

Authors

  • Sparroh

License

This project is licensed under the MIT License — see the LICENSE file for details.

CHANGELOG

Changelog

2.1.1

Fixes

  • Wheel scroll skips entries — large mod config blocks no longer jump past every setting to the next mod; snap targets now walk nested layout rows (titles, section headers, entries) instead of only top-level content children

2.1.0

Features

  • Float sliders — optional UI for float settings that declare a min/max range (AcceptableValueRange / BepInEx " Acceptable value range" comments). Uses SparrohUILib UISlider. Off by default via Use Float Sliders; live value while dragging, save on mouse-up

Refactor

  • Extracted ConfigManager, MenuPatches, HudRepositionAutoDetect, StickyModTitleController, ItemStepScrollHandler, ClickVsDragToggle, SelectToEditInput

2.0.4

Fixes

  • Editable field focus — selecting a text/number setting now shows a blinking caret so it is obvious the field is ready to type (requires SparrohUILib 1.1.6+)

2.0.3

Fixes

  • Dropdown menus unusable — option lists no longer draw behind later rows or get clipped by the scroll mask ( requires SparrohUILib 1.1.5+; lists reparent to the window canvas while open)

2.0.2

Features

  • Collapsible toolbar filters — +/- button to the right of the search bar hides sort, filter chips, and options rows while keeping search visible, freeing vertical space for settings; preference persisted as Toolbar Filters Collapsed

2.0.1

Fixes

  • Config toggles/inputs now write the plugin's live ConfigEntry (via Chainloader) so SettingChanged fires and mods hot-reload immediately — previously MSM only wrote a detached string ConfigFile, so in-memory settings never updated until restart

2.0.0

Features

  • Sticky mod titles — while scrolling the config list, the current mod's title pins to the top of the viewport until the next mod pushes it off (so you always know which mod you're editing)
  • Sticky-aware row snap — wheel scroll snaps one full content row at a time (any height) and aligns under the pinned title so rows don't rest half-clipped
  • Mod list toolbar — fixed bar above the scroll list with search, sort, hide-empty, and filter chips
  • Search mods — filter the list by mod name or GUID as you type (clears each time the menu opens)
  • Sort modes — A–Z, Z–A, load order, sandbox first, has-config first (persisted in config)
  • Hide empty — optionally hide mods with no matching .cfg (default on; persisted)
  • Filter chips — All / Sandbox / Client-side (single-select; persisted)
  • Collapse / expand mods — click a mod title (+/−) to fold its settings; default all expanded; state persisted
  • Sticky title collapse — click the pinned sticky header to collapse/expand the active mod (same as the in-list title)
  • Expand / Collapse all — toolbar button toggles every visible mod section
  • Group by author — optional grouping by GUID prefix (e.g. sparroh.*); off by default

Changes

  • SparrohUILib GUI — config menu rebuilt with UIWindow, themed widgets, TMP text, and the Mycopunk teal/slate palette (was still using hand-rolled legacy Unity UI)
  • Readability — darker surfaces under all text (PanelBg / EntryBg / InputBg); larger bold titles, section headers, and labels
  • Layout polish — narrower window (~520px), title shortened to "Mod Configs", wider value/editor controls per row; opening Mod Config (F10) exits HUD Reposition mode

Fixes

  • Scroll wheel — each wheel notch now advances the config list by one item (was nearly unusable at 0.1 sensitivity)
  • Accidental edits — toggles only flip on a clean click (not drag-pan); text fields require an explicit click to start editing and save on end-edit; scrolling or drag-panning clears focus and closes dropdowns
  • Cursor lost with menu open — closing ModSettingsMenu while the in-game Menu is open no longer locks/hides the cursor; FreeCursor now stacks with PlayerInput.UnlockCursor / LockCursor

1.2.0 (2026-07-10)

Features

  • HUD Reposition Mode — click-and-drag HUD elements instead of typing X/Y anchors
  • Default F9 keybind to toggle reposition mode (rebindable in-game)
  • "Reposition HUDs" button in the main menu and Mod Config title bar
  • Public HudRepositionAPI for other mods to register draggable HUD elements
  • Optional auto-detect of *AnchorX / *AnchorY config pairs under the reticle
  • Live coordinate labels while dragging; positions saved to BepInEx configs on release

Technical

  • Soft-dependency friendly registration API (HudRepositionAPI.Register / Unregister)
  • Example soft-dependency client helper: HudRepositionClient.cs.example

1.1.1 (2026-01-09)

Changes

  • Button adjustments
  • Lost this update; it never made it to GitHub

1.1.0 (2025-12-24)

Features

  • Support for dropdown selections for configuration entries with predefined acceptable values

1.0.0 (2025-08-19)

Features

  • In-game GUI for editing mod configuration files
  • Default F10 keybind to toggle config menu (rebindable in-game)
  • "Mod Config" button in main menu when menu is open
  • Support for editing boolean toggles, integer/float inputs, and text strings
  • Organized display by config file sections
  • Automatic saving of changes to .cfg files
  • Sandbox mod indicators in the GUI
  • Multi-mod support showing all installed mods with configs
  • Adapted from ToeKneeRED's MycoModList

Technical

  • Built with BepInEx framework and HarmonyLib
  • Parses standard BepInEx .cfg configuration files
  • GUI created as Unity overlay compatible with MycoPunk
  • Key rebinding functionality with real-time feedback
  • Initial mod template setup (thunderstore.toml, LICENSE, CHANGELOG)