You are viewing a potentially older version of this package. View all versions.
holyfurries-ModSettings-0.2.0 icon

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.

Date uploaded a day ago
Version 0.2.0
Download link holyfurries-ModSettings-0.2.0.zip
Downloads 250
Dependency string holyfurries-ModSettings-0.2.0

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

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.

MIT license.