ForgottenArbiter / SeedSearch

A mod that searches through Slay the Spire seeds.
MIT License
47 stars 8 forks source link

SeedSearch

A mod that searches through Slay the Spire seeds.

Requirements

Note: Because it runs a headless version of Slay the Spire and has no access to graphics, SeedSearch is not designed for compatibility with all other mods, and has no mod requirements. Also, any mod can change the outcome of seeds, so you should not use any mods, including BaseMod, with SeedSearch when searching for seeds to use in unmodded gameplay. Still, some character mods, such as Thorton and Jorbs Mod, have been found to work (or at least not crash/hang) with SeedSearch.

Setup and Usage

To install the mod, download seedsearch.jar from the Releases page, or compile it yourself. Create a folder named "mods" in your Slay the Spire installation directory if it does not yet exist, and put seedsearch.jar in that folder. When you run the mod launcher, SeedSearch should now show up.

Run the mod once to search the first 100 seeds with some default settings. On the current patch of the game (v2.2), you should find one seed (54). A file called "searchConfig.json" should have been created in your current working directory. Edit that file to control the behavior of future searches. Note that the game will not launch. All output will be printed to the program's stdout.

Settings

These are the descriptions of the settings in searchConfig.json. Edit them as you like to control the outcome of the seed search.

Some settings take lists of relics, cards, or events. For these settings, either use the ID (found in the game's code and output of Seed Search) or the name in the game's currently selected language. Seed Search will warn you if an invalid name or ID is provided. For example, the following two settings for requiredEvents are both valid:

"requiredEvents": ["FaceTrader", "Beggar"],
"requiredEvents": ["Face Trader", "Old Beggar"],

Core search parameters

Navigation

These room weights are used to determine which path is taken through each map. The path with the lowest weight, obtained by adding the weights for each individual node on the path, is selected.

General decisions

Event decisions

All of these control which actions are taken at various events in the game.

Result filters

These options control the criteria for deciding which seeds are selected as valid results.

Output filters

These options control the information which is shown to the user when the program is executed.

Caveats

When searching through seeds, many assumptions must be made about your choices and game state. When you run a seed yourself, you may notice diverging behavior, especially later on in the run. This is expected. It can be caused by a large number of factors, including spending extra gold and being low on HP. Currently, many of those assumptions can be controlled through the config file.

Current Major Restrictions