Skip to content

harsh2204/STS2-Buu

Repository files navigation

Buu

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

Requirements

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, and BaseLib.json as in the upstream release layout.

To build this repository

  • .NET 9 SDK.
  • Game install path available so MSBuild can resolve sts2.dll, 0Harmony.dll, and SmartFormat.dll from the platform-specific data_sts2_* directory inside the game folder. Paths are configured in Buu.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 .csproj warns that a .pck produced with a newer editor than the game uses may not load; keep the editor version aligned with STS2.

Installation

Quick install (release zip)

  1. Install BaseLib-StS2 first so the game has mods/BaseLib/ with BaseLib.dll, BaseLib.pck, and BaseLib.json (see the upstream release layout).
  2. Download the latest Buu-mod-*.zip from GitHub Releases.
  3. Extract the zip. You should get a Buu folder containing Buu.dll, Buu.json, and (when has_pck is true in the manifest) Buu.pck.
  4. Place that Buu folder inside the game’s mods directory—next to BaseLib—e.g. Slay the Spire 2/mods/Buu/.
  5. Launch Slay the Spire 2, enable mods, and pick Buu from the character roster once dependencies load.

From source (or custom folder layout)

  1. Install BaseLib as described in the BaseLib-StS2 README.
  2. Copy this mod into Slay the Spire 2/mods/, in a folder named to match the project output (for example BuuMod/). The game needs Buu.dll and Buu.json in the same directory. If the manifest sets has_pck to true, include Buu.pck as well.
  3. 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.


Building from source

  1. Clone the repository and open Buu.sln, or run dotnet build from the solution directory.
  2. Edit Buu.csproj so SteamLibraryPath, Sts2Path, ModsPath, Sts2DataDir, and optionally GodotPath match your machine. On Windows the file includes an example GodotPath; Linux and macOS blocks use conventional Steam layout defaults.
  3. Build the solution. NuGet supplies Alchyr.Sts2.BaseLib and Alchyr.Sts2.ModAnalyzers. The post-build steps copy Buu.dll and Buu.json into your configured mods folder, refresh mods/BaseLib/ from the BaseLib package, and when GodotPath points to a valid executable, run a headless export so Buu.pck lands next to the DLL.

Debugging (game logs)

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.


Catalog website

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 runs docs/build_data.py and uploads the docs/ 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 fetch data.json. Pass --no-browser to skip opening a tab. Opening docs/index.html directly from disk will fail because browsers block that fetch.

Project structure

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/.

Fan work and intellectual property

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.


Credits

The following projects and tools made Buu possible. Thanks to everyone who maintains them.

Slay the Spire 2 modding

Engine and runtime shipped with the game

  • Godot Engine — STS2 content pipeline; this mod targets Godot 4.5 via Godot.NET.Sdk in the project file.
  • Harmony by Andreas Pardeike — runtime IL patching; the game supplies 0Harmony.dll next to sts2.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.dll for reading game APIs and models.
  • GDRE Tools — Godot .pck recovery 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


Author

Harsh Gupta — author field and semantic version are recorded in Buu.json.

About

A slay the spire 2 character mod that adds Buu from Dragon Ball Z into the game

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages