A settings and options menu system for Unity 2022.3+. Audio, display, graphics, control rebinding and accessibility, generated from one screen — and saving through WagSave the moment it is installed.
Every game needs one. None of them are interesting to build.
Audio buses, resolution and window mode, quality tiers, control rebinding, and accessibility — subtitles, colour-blind modes, screen shake, text size. Each is a setting asset and an applier; nothing is hard-wired.
Tick the categories, pick a UI framework and a store, watch the preview, press Generate. A profile, its settings, the mixer and the menu land in your project. Re-run it any time; it keeps what you added by hand.
A UI Toolkit menu with a theme file, and a uGUI prefab with TextMeshPro. Same registry, same Apply / Revert / Reset, same search, same dirty-tracking. Restyle either without touching code.
Interactive rebinds, conflict detection and reset, on the Input System — in an assembly Unity only compiles when the package is present. No Input System, no rebinding, and everything else still works.
Stands alone on PlayerPrefs. Install WagSave and settings become versioned, migratable, encrypted and cloud-synced with nothing to change — the integration compiles only when WagSave is there.
Summary, Setup, Settings Profile, Debugger and Help pages, each with its docs beside it, in six languages. Add a setting from a dialog; watch pending values in Play mode.
Run setup, press Play, and the menu is there — no code. When you do want a value, WagSettings.Get reads it, Set stages it, and Apply commits the batch. Appliers turn each value into the Unity effect for you.
// Read a setting anywhere using WaggleBum.WagSettings; float master = WagSettings.Get<float>("audio.master"); // Change one - pending until Apply, so Revert still works WagSettings.Set("display.fullscreen", false); WagSettings.Apply(); // Your own setting: one asset, one line to read it int difficulty = WagSettings.Get<int>("gameplay.difficulty");


WagSettings persists through WagSave when it is installed: versioned settings that survive updates, multiple profiles, encryption, and cloud sync across devices. Neither needs the other; both are better with it.
For any dev, any team size.
Source access & royalty-free distribution.
Unity 2022.3 and above — including Unity 2023 and Unity 6. Versions before 2022 LTS are not supported.
No. WagSettings stands alone on PlayerPrefs. Install WagSave and it upgrades itself to versioned, encrypted, cloud-synced persistence with nothing to change; the integration is in an assembly Unity only compiles when WagSave is present.
Only for control rebinding. Without it, the Controls category is simply unavailable and everything else works. Setup tells you which is which, and points you at the Package Manager if you want it.
Either. Setup generates a UI Toolkit menu with a theme file you can restyle, or a uGUI prefab with TextMeshPro. Both sit over the same model, so Apply / Revert / Reset, search and dirty-tracking work the same in each.
On the Settings Profile page, press Add Setting: pick a kind, type a key, set a default. The asset is made and added to the profile, and it is in the menu the next time you press Play. Read it with WagSettings.Get<T>("category.name"). Code only comes in when the value has to do something — an applier is a few lines.
Yes. The editor, its page docs and these docs are in English, Spanish, Japanese, Korean, Simplified and Traditional Chinese, and the shipped menu can show the same six to players. Your own labels merge over the packaged ones.
Yes. Buy once, own it forever. We think subscriptions for dev tools are silly.