
ModSettings
Adds a Mods tab to the game's settings screen. Other mods register switches, sliders and dropdowns backed by their MelonPreferences with one call each. IL2CPP.Mod Settings
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, and dropdowns. Changes are saved to UserData/MelonPreferences.cfg.
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.2.0 to your
Thunderstore dependencies, and register existing MelonPreferences entries in
OnInitializeMelon:
using MelonLoader;
using ModSettings;
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);
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);
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.
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.