BMG Tools

Settings System

Runtime system · Save, load, and rebinding · Used in Compactory 2

The Settings System is the largest module in BMG Tools. It includes ScriptableObject setting definitions, a scalable singleton manager with save and load, UI setting components, and a full Input System rebind workflow.

How It Works

Each setting is defined as a ScriptableObject by the developer and is registered in a registry. The BaseSettingsManager singleton uses this registry to handle changes, resets, and save and load. Save and load is done via ISaveAndLoad, which allows users to define their own way of saving and loading the settings. Setting components, like Button and FloatSlider, each take a setting definition and passes change signals to or receives resets signals from the BaseSettingsManager.

Core types

Future Plans

In the future, I plan to implement built-in setting behaviors that automatically apply changes to the Unity engine. This might include window mode, resolution, quality setting, and more.