holyfurries-ModSettings icon

ModSettings

Adds a Mods tab to the game's settings screen. Other mods register switches, sliders, dropdowns and keybind controls backed by MelonPreferences. IL2CPP.

Last updated 2 days ago
Total downloads 4833
Total rating 0 
Categories
Dependency string holyfurries-ModSettings-0.3.1
Dependants 5 other packages depend on this package

This mod requires the following mods to function

LavaGang-MelonLoader-0.7.3 icon
LavaGang-MelonLoader

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

Preferred version: 0.7.3

README

Mod Settings

Holy Furries Studio · Thunderstore · Source

Adds a Mods tab to Schedule I's settings screen in the main menu and pause menu. Participating mods appear under their own headings with native switches, sliders, dropdowns, and keybind controls. Changes are saved to UserData/MelonPreferences.cfg.

Mod options use consistent columns and compact row spacing. Slider values sit beside their tracks. Built-in settings panels keep their original layout.

Install

IL2CPP only. Requires MelonLoader 0.7.3.

Install with a Thunderstore mod manager, or copy ModSettings.dll from the release ZIP's Mods/ folder into the game's Mods/ folder. Options appear when other installed mods register them.

For mod authors

Reference ModSettings.dll, add holyfurries-ModSettings-0.3.0 to your Thunderstore dependencies, and register existing MelonPreferences entries in OnInitializeMelon:

using MelonLoader;
using ModSettings;
using UnityEngine;

MelonPreferences_Category preferences = MelonPreferences.CreateCategory("MyMod");
MelonPreferences_Entry<bool> enabled = preferences.CreateEntry("enabled", true);
MelonPreferences_Entry<int> count = preferences.CreateEntry("count", 5);
MelonPreferences_Entry<float> size = preferences.CreateEntry("size", 1f);
MelonPreferences_Entry<Corner> corner = preferences.CreateEntry("corner", Corner.TopRight);
MelonPreferences_Entry<KeyCode> shortcut = preferences.CreateEntry("shortcut", KeyCode.F7);

Settings.toggle("My Mod", "Show overlay", enabled);
Settings.slider("My Mod", "Item count", count, minimum: 0, maximum: 16);
Settings.slider("My Mod", "Overlay size", size, minimum: 0.5f, maximum: 3f);
Settings.dropdown("My Mod", "Overlay corner", corner);
Settings.keybind("My Mod", "Toggle overlay", shortcut);
Settings.button("My Mod", "Preview overlay", "Preview", show_preview);

Read entry.Value or subscribe to entry.OnEntryValueChanged to apply changes. Programmatic changes refresh controls in both menus. Integer entries use whole steps. Float entries retain fractions unless whole_numbers: true is specified. Dropdowns use enum names with spaces, such as Top Center.

Click a keybind control and press a keyboard, mouse, or controller button. Backspace disables the shortcut by saving KeyCode.None. Escape cancels. Closing the menu, losing focus, or waiting ten seconds also cancels. Escape and Backspace are reserved during capture. Mods must skip disabled shortcuts when reading input.

Register at most 128 settings across all mods. Mod names allow 32 characters and labels allow 48. Integer slider bounds must be within ±16,777,216 so every value can be represented exactly by the game's float-based slider.

If the tab cannot be built, check the warning in MelonLoader/Latest.log and edit the config file directly.

Development

See BUILDING.md for builds, tests, packaging, and in-game checks.

Code: MIT. Icon: studio asset terms.