BaseMod is a modding API for Slay The Spire that lets modders more easily add in Custom Characters and hook into game events. It also provides a Developer console so you can manipulate your hand, deck, hp, relics, etc... while playing for testing (or just for fun).
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features without permission from or credit to me
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou are allowed to use the assets in this file without permission or crediting me
Asset use permission in mods/files that are being soldYou are allowed to use the assets in this file in mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou must get permission to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
#### v1.1.3 #####
* Initial support for each mod badge being tied to its own settings panel
#### v1.1.4 #####
* Add `gold` command
* Add `energy` command
* Remove bundled font and use one from the base game instead
#### v1.1.5 ####
* Add `energy inf` command
* Add `PostEnergyRechargeSubscriber` interface and related code
#### v1.2.0 ####
* Add `PostDrawSubscriber` interface and related code
* Add `CustomRelic` extension of AbstractRelic
* Add support for loading custom RelicStrings
* Fix a bug that prevented the character `D` from being input into the console
* Rename `card` command to `hand`
* Add `hand r all` command
* Add `deck` command
* Add `draw` command
* Add `float BaseMod.pathDensityMultiplier` property which can be used to modify map generation
#### v1.2.1 ####
* Add `PreStartGameSubscriber` interface and related code
#### v1.2.2 ####
* Add `AbstractDungeon` cleanup to diff, nothing changed yet.
* Add `relic list` command
* Fix crash when attempting to `deck add` an invalid card id
* Add upgrade support to `deck add` and `hand add`
* Add `PreMonsterTurnSubscriber` interface and related code
#### v1.2.3 ####
* Add `PostCampfireSubscriber` interface and related code
* Add proper support for `IntangiblePower` to be applied to players
#### v1.3.0 ####
* Update to support `[EARLY_ACCESS_013]`
#### v1.3.1 ####
* Fix bug that prevented the `deck r` command from working
#### v1.3.1a ####
* Pull in changes from `[EARLY_ACCESS_013]` hotfix 2
#### v1.3.2 ####
* A lot of behind the scenes work on settings pages.
* MODDERS: You shouldn't try to build complex settings pages right now, its probably going to get significantly cleaned up and reworked to be more simple soon.
#### v1.3.3 ####
* Fix non-id parameters on commands being cases sensitive
* Change backspace behavior on console
* Fix scaling for new settings panel elements introduced in v1.3.2
#### v1.3.4 ####
* Add `StartActSubscriber` interface and related code
* Add `PostDungeonInitializeSubscriber` interface and related code
* Add `StartGameSubscriber` interface and related code
* Fix bug that would prevent `publishPreStartGame()` from occuring in some cases
* Cleanup part 1
* Add IDEA project files
* Remove `_build.bat` since this can be automated in IDEA
#### v1.3.5 ####
* Add support for CustomRelic outline images
#### v1.3.6 ####
* Prevent Girya from stacking above 3 if `receivePostCampfire()` returns false
#### v1.4.0 ####
* Update to support `[EARLY_ACCESS_014]`
* Mostly switch to using SpirePatch for inserting hooks
* Speed up `kill all` command
#### v1.4.1 ####
* Add `kill self` command
#### v1.4.2 ####
* Add support for adding custom localization strings of any type
* Code cleanup
#### v1.5.0 ####
* Update to support `[EARLY_ACCESS_015]`
#### v1.5.1 (daviscook477) ####
* Code cleanup + bugfixes
* Add hooks for modifying the player's initial deck and initial relics
* Add hooks for changing the relics and potions sold by the shop
* Add methods for abstracting the manipulation of RelicLibrary
* Initial support for custom cards
#### v1.6.3 ####
This is a fast forward to v1.6.3 of daviscook477's fork with a few additional changes
* Update to support weekly patch 12 (daviscook477)
* Add hooks for adding custom player characters and the corresponding hooks for adding a new colors for custom cards (daviscook477)
* More code cleanup (daviscook477)
* Even more code cleanup
#### v1.6.4 ####
* Move changelog out of README
* Fix bug that caused `PublishPostDraw` to fire multiple times
* Fix bug that caused exhausted pile hotkey to work while console was visible
* Switch `AbstractCampfireOption` to use an instrument patch rather than overwriting base file
* Switch `CancelButton` to use an instrument patch rather than overwriting base file
* Switch `DiscardPilePanel` to use an instrument patch rather than overwriting base file
* Switch `DrawPilePanel` to use an instrument patch rather than overwriting base file
* Switch `EndTurnButton` to use an instrument patch rather than overwriting base file
* Switch `MapGenerator` to use an instrument patch rather than overwriting base file
* Switch `MonsterGroup` to use an instrument patch rather than overwriting base file
* Switch `TopPanel` to use an instrument patch rather than overwriting base file
#### v1.6.5 ####
* Switch `IntangiblePower` to use an instrument patch rather than overwriting base file
* Rewrite `IntangiblePower` changes to make it not mess up intents
* Remove diff, _diff.bat, _patch.bat since they are no longer needed
#### v1.6.6 ####
* Switch versioning system over to the one used in https://github.com/daviscook477/BaseMod/releases since he was using a different one
* Hook for exhausting a card
* Hook for finishing a battle
* Add support for Card Unlocks for custom characters
* Hook for using a card
#### v1.7.0 ####
* Add support for Saves for custom characters
* Fix some bugs with card unlock support
#### v1.7.1 ####
* Update to support weekly patch (week 13)
#### v1.7.2 ####
* Support viewing custom cards in the card library (kioeeht)
#### v1.7.3 ####
* Fix slowdown when viewing upgrades in the card library
#### v1.7.4 ####
* Add support for inspect view or custom cards. This requires including a larger texture next to every card texture where if the original card was `my_card.png` you now need `my_card_p.png` too in order to support inspect view
* NOTE: this introduced a breaking change to the API in `addColor` that will require you to update your mods
#### v1.7.5 ####
* Add support to the dev console for checking events with `event [ID]`
#### v1.8.0 ####
* Custom potion support (Haashii)
* All new wiki
#### v1.9.0 ####
* Custom animations for characters (monster support to come soon!)
* Add support for custom energy orbs (Blank The Evil)
* Add support to the dev console for applying powers with `power [ID] [amount]`
#### v1.9.1 ####
* Custom animations no longer run after their associated model is destroyed
* Hook for modifying base damage on cards like Perfected Strike or Heavy Blade
#### v1.9.3 ####
* Reorganize the image locations for the test mod
#### v1.9.4 ####
* Add support for Custom Keywords to BaseMod with the editKeywords callback that ensures adding keywords is timed properly
#### v1.9.5 ####
* Add a hook for when powers are modified
#### v1.9.6 ####
* Can now set up character specific relics for characters other than the ironclad and silent
#### v2.0.0 ####
* Dev console has been completely revamped
* Holding down keys triggers multiple keypresses
* The console remembers previous commands so use the up and down arrows to select between previously typed commands
* The console is multiline now in order to display the last few commands and their outputs
* Help text is displayed for commands if they are mistyped
* More commands! `hp` and `maxhp` allow you to change your current HP and current max HP
#### v2.0.1 ####
* Hotfix reverting multiple keypresses on holding down keys because it broke a bunch of things
#### v2.1.0 ####
* New UI features for Modders
#### v2.1.1 ####
* Hotfix to prevent wasting GPU cycles when there are no custom characters to render
#### v2.1.2 ####
* Update to week 15 patch
#### v2.1.3 ####
* Hotfix to fix the console on the week 15 patch
#### v2.2.0 ####
* Add text box support for mod settings with `BaseMod.openTextPanel`
* Merge pull request by BlankTheEvil to fix `CustomCardWithRender` appearing incorrectly in the CardLibrary screen
#### v2.3.0 ####
* Support ModTheSpire v2.5.0 and now save the console hotkey
* Indicate that BaseMod is built specifically for the week 15 patch
* The ModPanel UI backend has been made better and more extensible. A few methods have been deprecated but there are no breakign changes.
* Added ToggleButton - idea and some code courtesy of twanvl (https://github.com/twanvl)
* Added a LabeledToggleButton which is a ToggleButton with a text label
BaseMod is designed as a tool for modders to use to ease the process of developing mods for Slay The Spire. It allows for mods to `subscribe` to many events that trigger in game and respond to them like when a card is draw, when a card is exhausted, when energy recharges, when the game is initialized, when a dungeon is initialized, when the shop is setup, and quite a few more. It also provides the means to add new cards, characters, relics, keywords, and potions without needing to worry about how the game handles load order and many other problems.
BaseMod also provides a Developer console that allows for easy testing of mods (or just messing around with game mechanics and builds). The list of commands available can be found at (https://github.com/daviscook477/BaseMod/wiki/Console) or in the console itself with the `help` command.
If you're a modder be sure to check out the source code on Github (https://github.com/daviscook477/BaseMod) to see everything BaseMod has to offer. Issues and problems should be reported in the Github Issue tracker for BaseMod.