MenuCleaner
Cleans up the mess in the menus left by having multiple mods installed.
Screenshots 4 screenshots
About this mod Author’s original text
ZEPHYR'S MENU CLEANER
ABOUT
QoL MOD focused on cleaning up and adding data-driven ways to sort and organize buttons added by other mods. This is currently limited to the Difficulty Selection, Chapter Selection, Title and Save Slot Selection screens, but will later on allow the creation and customization of layers and levels.
FEATURES
CLEANS UP THE MESS LEFT BY HAVING LOTS OF MODS INSTALLED AT ONCE
I've noticed that some mods don't take the time to make their additions to the main menu look pretty and organized, so every added button now gets sorted into a list with a scroll bar!
PREVENTS THE ACCUMULATION OF NEW BUTTONS FROM ENDING UP OFF SCREEN
When installing larger modpacks, buttons on the Chapter Select screen may end up past the borders of the game window. This mod adds a scroll bar to fix that issue, while allowing mod creators to sort them however they want!
[OPTIONAL] IGNORE UNRELEASED CONTENT FOR IN-GAME RANKING
You can tell the game to ignore unreleased levels when giving chapters a rank. By extension, it also lets you have a rank on the difficulty itself once every level has been played at least once for that difficulty.
"HOW DO I USE THIS FOR MY OWN MOD?"
Easy solution:
Contact me directly via discord! (zephyroff)
I'm open to working with you to add support for your mod natively
Slightly less easy solution:
(I'll make a wiki page for this eventually)
It's really easy to add your own config files to your mod, as you don't need to add this mod as a dependency.
All you need to do is create json files in the same directory as your mod's.dll!
JSON FORMAT
Your file's name needs to follow the format [name].[screen].json.
- [name]: name of your file, can be anything you want
- [screen]: tag used to tell the game which screen is being sorted. Can be either "difficulties", "chapters" or "saveslots"
For example, "example.difficulties.json" would modify the difficulty selection screen, while "example2.chapters.json" would modify the chapter selection screen and "example3.saveslots.json" would modify the save slot selection screen.
From there, the format is always the same:
(You can find this template in the mod files)
HOW DOES IT WORK?
LOADING
The mod looks in the directory of every loaded mod for JSON files with the naming scheme detailed above, and combines all of them into one big shared list. This allows anyone to simply add a JSON (with the right format) to their mod files to add support for this mod.
The JSON files added by other mods only need to contain the content that they want to sort, and don't need to include every single option.
SORTING
In game, the mod checks every active button in the respective menus.
For each existing button, the mod tries to match the name of those buttons with the entries in JSON files (not case sensitive). If it does, it will be sorted accordingly, otherwise that button is put at the bottom of the list.
The mod also checks if its name contains (not case sensitive) one of the entries as a failsafe.
For example, if a JSON contains the entry "test" and a button is named "TEST DIFFICULTY", it will still be sorted accordingly.
In the case of duplicate entries, the mod will simply sort it according to the mod that was loaded last. Entries from this mod will always be overriden, rather than being dependant on loading order.
If you have any further questions, feel free to contact me directly!
PRE-SUPPORTED MODS
- DIFFICULTY SELECTION
- Billion Difficulty
- Savage Difficulty
- Bananas Difficulty
- ULTRAPAIN: Refueled
- CHAPTER SELECT
- Billion Nemesis
- ULTRAROGUE
- MAIN MENU
- ULTRASKINS_GC
- TitleScreenQuickAccess
- StrayMode
- ULTRASTATS
- SAVES MENU
- StrayMode
- Masquerade Divinity
Any mod that isn't listed here will be placed at the bottom of their respective menus (unless support is added on their end).
CONTACTS
Any bugs to fix or feature requests? Hit me up on DISCORD!
Username: zephyroff\
Server:
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: