Playable character mod for Slay the Spire 2: Majin Buu from Dragon Ball Z. Buu uses three combat stances—Regular (Good Buu), Majin (Evil Buu), and Super (Super Buu)—a Ki secondary resource, and a full set of cards, relics, and powers. Visuals and UI assets live under Godot resources in Buu/; gameplay logic is C# under BuuCode/. English strings are in Buu/localization/eng/.
| Mod ID | Buu |
| Manifest | Buu.json |
| Depends on | BaseLib-StS2 — required sibling mod BaseLib |
| Game | Slay the Spire 2 on Steam |
| Live catalog | harsh2204.github.io/STS2-Buu |
To play
- Owned copy of Slay the Spire 2 with mod support enabled.
- BaseLib-StS2 installed under the game’s
mods/BaseLib/folder:BaseLib.dll,BaseLib.pck, andBaseLib.jsonas in the upstream release layout.
To build this repository
- .NET 9 SDK.
- Game install path available so MSBuild can resolve
sts2.dll,0Harmony.dll, andSmartFormat.dllfrom the platform-specificdata_sts2_*directory inside the game folder. Paths are configured inBuu.csproj. - Optional: Godot 4.5.1 or the Megadot editor build that matches Slay the Spire 2, if you want automated export of
Buu.pck. The.csprojwarns that a.pckproduced with a newer editor than the game uses may not load; keep the editor version aligned with STS2.
- Install BaseLib-StS2 first so the game has
mods/BaseLib/withBaseLib.dll,BaseLib.pck, andBaseLib.json(see the upstream release layout). - Download the latest
Buu-mod-*.zipfrom GitHub Releases. - Extract the zip. You should get a
Buufolder containingBuu.dll,Buu.json, and (whenhas_pckis true in the manifest)Buu.pck. - Place that
Buufolder inside the game’smodsdirectory—next toBaseLib—e.g.Slay the Spire 2/mods/Buu/. - Launch Slay the Spire 2, enable mods, and pick Buu from the character roster once dependencies load.
- Install BaseLib as described in the BaseLib-StS2 README.
- Copy this mod into
Slay the Spire 2/mods/, in a folder named to match the project output (for exampleBuuMod/). The game needsBuu.dllandBuu.jsonin the same directory. If the manifest setshas_pckto true, includeBuu.pckas well. - Launch the game, enable mods, and select Buu from the character roster once dependencies load.
If you use a different mods directory name, keep Buu.json beside Buu.dll so the loader can bind the assembly to the manifest.
- Clone the repository and open
Buu.sln, or rundotnet buildfrom the solution directory. - Edit
Buu.csprojsoSteamLibraryPath,Sts2Path,ModsPath,Sts2DataDir, and optionallyGodotPathmatch your machine. On Windows the file includes an exampleGodotPath; Linux and macOS blocks use conventional Steam layout defaults. - Build the solution. NuGet supplies Alchyr.Sts2.BaseLib and Alchyr.Sts2.ModAnalyzers. The post-build steps copy
Buu.dllandBuu.jsoninto your configuredmodsfolder, refreshmods/BaseLib/from the BaseLib package, and whenGodotPathpoints to a valid executable, run a headless export soBuu.pcklands next to the DLL.
When the game crashes, shows a black screen, or mods fail to load, check the engine log written by Slay the Spire 2 (Godot / MegaDot).
| OS | Log directory |
|---|---|
| Windows | %APPDATA%\SlayTheSpire2\logs\ (e.g. C:\Users\<you>\AppData\Roaming\SlayTheSpire2\logs\) |
| macOS | ~/Library/Application Support/SlayTheSpire2/logs/ |
| Linux | ~/.local/share/SlayTheSpire2/logs/ (if your distro uses XDG data home elsewhere, check that tree for SlayTheSpire2/logs/) |
The active session is usually in godot.log; older runs may appear as godot<timestamp>.log. Search for ERROR, SCRIPT ERROR, your mod id (Buu), or BaseLib to narrow down load and combat issues.
The STS2 Buu catalog is a static site that lists cards (with portraits and upgrade toggles), relics, stances, and powers. It is hosted on GitHub Pages.
- Production: pushes that touch
Buu/,BuuCode/,docs/, or the Pages workflow trigger.github/workflows/pages.yml, which runsdocs/build_data.pyand uploads thedocs/tree as the site artifact. - Local preview: from the repository root run
python docs/serve_local.py. The script regenerates catalog data and serves over HTTP so the browser can fetchdata.json. Pass--no-browserto skip opening a tab. Openingdocs/index.htmldirectly from disk will fail because browsers block that fetch.
| Path | Purpose |
|---|---|
BuuCode/ |
C# gameplay code: character definition, card and relic models, stance powers, commands, Harmony patches, and custom nodes. |
Buu/ |
Godot side: scenes/, Spine-driven animation/, images/ for portraits and UI, and localization/ JSON consumed by the game. |
docs/ |
Source for the public catalog: index.html, styles, scripts, build_data.py, and serve_local.py. Generated assets such as data.json are produced by the build script or CI. |
image_gen/ |
Prompts, size notes, and generated or hand-sliced art pipelines that feed into Buu/images/. |
This mod is a non-commercial fan work. Dragon Ball names and imagery belong to their respective owners. Slay the Spire 2 is the property of MegaCrit. This project is not affiliated with or endorsed by those rights holders.
The following projects and tools made Buu possible. Thanks to everyone who maintains them.
Slay the Spire 2 modding
- Alchyr / BaseLib-StS2 — shared mod library, UI hooks, and multiplayer-oriented helpers. Consumed via NuGet as Alchyr.Sts2.BaseLib.
- Alchyr / ModTemplate-StS2 —
dotnet new alchyrsts2charmodtemplate: Godot pack export, C# mod layout, manifest, and BaseLib wiring. - BaseLib Wiki — documentation for BaseLib-based STS2 mods.
- lamali292 / WatcherMod — early STS2 character mod; useful reference for stance-heavy characters and BaseLib plus Godot packaging.
Engine and runtime shipped with the game
- Godot Engine — STS2 content pipeline; this mod targets Godot 4.5 via
Godot.NET.Sdkin the project file. - Harmony by Andreas Pardeike — runtime IL patching; the game supplies
0Harmony.dllnext tosts2.dll. - SmartFormat.NET — template formatting used with the game’s localization; referenced from the same data directory as Harmony.
Game data research
- Spire Codex — browsable database and API over parsed Slay the Spire 2 data.
- ptrlrd / spire-codex — open-source extraction, decompilation, parsers, and tooling behind that project.
- ILSpy — decompilation of
sts2.dllfor reading game APIs and models. - GDRE Tools — Godot
.pckrecovery and asset extraction.
Animation
- Spine and spine-runtimes — skeletal animation stack used by STS2; Buu’s animation assets under
Buu/animation/follow that pipeline.
Documentation site
- GitHub Actions and GitHub Pages — CI build for the catalog and deployment to
harsh2204.github.io.
Harsh Gupta — author field and semantic version are recorded in Buu.json.