Better Mod Menu extends the Slay the Spire 2 mod screen with profiles, custom groups, saved ordering, personal mod notes, local backups, CSV exports, and log viewing.
- Fixes the base menu's mod list overflow issue.
- Create, rename, delete, and switch between mod profiles.
- Organize mods into custom groups and toggle them together.
- Save a preferred mod order for the next launch.
- Add a personal alias and notes to any mod, then find them with the normal mod search.
- Back up Better Mod Menu profile data and the current enabled-mod settings, with Steam Workshop links when available.
- Export the installed mod list as an Excel-friendly CSV with versions, enabled state, group names, aliases, notes, and Steam Workshop links when available.
- View full Better Mod Menu log output from the mod screen with warnings and errors highlighted, level filters, plus a shortcut to open the log folder.
- Color mod names from the supported Steam Workshop tags, and adjust tag or per-mod colors from the in-game
Styleeditor. - Reopen the first-launch tutorial from the in-game
Helpbutton.
- Slay the Spire 2
0.107.1or newer
- Download the latest
BetterModMenu_v*.zipfrom releases. - Extract
BetterModMenu.dllandBetterModMenu.jsoninto your Slay the Spire 2modsfolder. - Launch the game and open Slay the Spire 2's built-in
Moddingscreen. Better Mod Menu'sProfile,Group,Backup,CSV,Logs,Style, andHelpcontrols appear there.
Better Mod Menu does not add a separate title-screen button. Open the base game's Modding screen, then use the Better Mod Menu controls added to that screen.
Profilechooses a saved mod setup. Switching profiles turns mods on or off to match that setup.Newcopies the mods that are enabled right now into a new profile.Rename/Editchanges the selected profile name.Deldeletes the selected profile, but it does not uninstall mods.Portable Modesaves Better Mod Menu data beside the mod files. Leave it off for the normal game save folder; turn it on when you want the same setup to travel with a copied game or mod folder.Backupsaves copies of profiles, groups, and the game's current enabled-mod settings. Mods installed from Steam Workshop include their Workshop links in the settings backup.Loadshows available Better Mod Menu profile and group backups, newest first, and restores the one you choose. Installed mod files are not changed.CSVcreates a spreadsheet-friendly installed-mod list with names, versions, enabled state, group names, and Steam Workshop links when available.Logsopens the full discovered Better Mod Menu log with warnings and errors highlighted. The log viewer can show or hide debug, info, warning, error, and unclassified lines. ItsOpen Folderbutton opens the folder containing that log through the operating system file manager.Styleopens the compact mod-name color editor. Use it to turn name styling on or off, keep or disable default tag colors, set a supported Steam Workshop tag color, or set a one-mod color override by mod id or displayed name.Helpreopens the tutorial popup.GroupplusAddcreates a custom group label. Use each mod row's group picker to put mods in that group.- Group headers can collapse the section, move or rename the group, delete only the group label, or enable/disable every mod in the group.
- Select a mod and use
Alias / Notesin its detail panel to record a personal name, compatibility reminder, or setup note. This metadata is searchable and included in backups and CSV exports; it does not rename or modify the installed mod. - Steam Workshop mods with recognized tags get colored names automatically. Local mods and untagged Workshop mods keep the normal name unless configured with
Styleor in save data.
- The displayed list runs from top to bottom. Load order changes are saved for the next launch.
- STS2 may still reorder dependency chains during startup.
- On SteamOS, Bazzite, CachyOS, and similar Linux setups,
Open Folderuses common desktop file openers such asxdg-open,gio, and KDE openers. It is most reliable in Desktop Mode; Gaming Mode or minimal window-manager sessions may not show a file manager.
- Portable Mode stores
mod_profiles.json,mod_profiles.jsonc, ormod_profiles.json5beside the mod files. - Otherwise, the file is stored under
mod_data/BetterModMenu/. - Personal aliases and notes are stored in this profile file by mod id, so they survive uninstalling and reinstalling that mod.
- Cloud-capable builds can mirror backups and CSV exports to a synced directory when
CloudBackupsis enabled in the profile save:
"CloudBackups": {
"Enabled": true,
"Directory": "C:\\Users\\you\\OneDrive\\BetterModMenu",
"MirrorProfileBackups": true,
"MirrorModSettingsBackups": true,
"MirrorModListExports": true
}In cloud-capable builds, the in-game Cloud action sets or clears the synced mirror folder.
Before joining a multiplayer game, every player should use the same Slay the Spire 2 version and match each gameplay mod's id, version, enabled state, and top-to-bottom order. Restart the game after changing the list. Better Mod Menu makes the order and exported CSV easier to compare, but it does not override dependency ordering, synchronize files between players, or make different mod versions compatible.
Mod name styles are saved in the same profile file. The in-game Style editor covers common color editing for supported Steam Workshop tags and per-mod overrides. The canonical Steam Workshop tags are exactly: <none selected>, Acts, Ancients, Audio, Cards, Characters, Cosmetics, Events, Expansion, Extensions, Humor, Modifiers, Monsters, Potions, QoL, Relics, Rooms, Tools & APIs, Utility, and Misc. ModFormats targets a specific mod id or displayed mod name and wins before tag formatting, which is useful for favorite-mod easter eggs. Then DisabledTags removes supported tags, TagFormats overrides the remaining supported tag formats, and the effective TagPriority picks which matching tag wins. Custom normalized priority entries are tried first, then the default priority order is used as fallback, including when UseDefaultTagFormats is false. Common mechanical aliases normalize to canonical tags, such as Quality of Life to QoL, Tools and APIs to Tools & APIs, singular forms like Card to Cards, and Miscellaneous to Misc. Unsupported tag names are ignored. Values can be any Godot RichTextLabel BBCode template that includes {name}, or a bare hex color.
Set Enabled to false to keep the vanilla text and skip Workshop tag lookups.
"ModNameStyles": {
"Enabled": true,
"UseDefaultTagFormats": true,
"TagFormats": {
"QoL": "[color=#80f0b0]{name}[/color]",
"Characters": "[color=#ff7ad9][b]{name}[/b][/color]"
},
"TagPriority": [
"QoL",
"Tools & APIs",
"Utility"
],
"DisabledTags": [
"Misc",
"<none selected>"
],
"ModFormats": {
"Favorite.Mod": "[rainbow freq=0.8 sat=0.9 val=1.0]{name}[/rainbow]"
}
}Requires Godot 4, .NET 9, and access to sts2.dll.
dotnet build BetterModMenu.csproj -p:Sts2DllPath="C:\path\to\sts2.dll"To package the mod during build:
dotnet build BetterModMenu.csproj -p:Sts2DllPath="C:\path\to\sts2.dll" -p:PackageModOnBuild=truePackaged archives are written to artifacts/.
To refresh a Steam Workshop uploader workspace during build:
dotnet build BetterModMenu.csproj -p:Sts2DllPath="C:\path\to\sts2.dll" -p:ModUploaderWorkshopDir="E:\dev\STS2 mod\ModUploader-win-x64\workshop\BetterModMenu"This copies the built BetterModMenu.dll and BetterModMenu.json into the
workspace content folder, leaving workshop.json, preview images, screenshots,
and mod_id.txt in place. ModUploaderWorkshopDir must point to the workshop
root that contains workshop.json, not the content folder itself. You can
also set MOD_UPLOADER_WORKSHOP_DIR instead of passing the build property every
time.
To build, refresh the ModUploader workspace content, and upload to Steam Workshop from this repo without changing into the ModUploader directory:
dotnet build BetterModMenu.csproj -t:UploadSteamWorkshop -p:Sts2DllPath="C:\path\to\sts2.dll"By default, UploadSteamWorkshop looks for the uploader beside this repo at
..\ModUploader-win-x64\ModUploader.exe and uses
..\ModUploader-win-x64\workshop\BetterModMenu. Override those paths with:
dotnet build BetterModMenu.csproj -t:UploadSteamWorkshop -p:Sts2DllPath="C:\path\to\sts2.dll" -p:ModUploaderRoot="E:\dev\STS2 mod\ModUploader-win-x64" -p:ModUploaderWorkshopDir="E:\dev\STS2 mod\ModUploader-win-x64\workshop\BetterModMenu"UploadSteamWorkshop is explicit-only; ordinary dotnet build commands do not
upload to Steam. Use the Windows dotnet command from PowerShell or Windows
Terminal for real uploads; WSL path handoff to ModUploader.exe is not verified.
The upload target fails if the workspace content folder contains files other
than BetterModMenu.dll and BetterModMenu.json, so stale files are not
published by accident.
Cloud-capable builds are opt-in and produce a separate _cloud archive:
dotnet build BetterModMenu.csproj -p:Sts2DllPath="C:\path\to\sts2.dll" -p:PackageModOnBuild=true -p:IncludeCloudFeatures=trueMIT. See LICENSE.