SaveUtils is a simple library and command line tool for interacting with Shadows of Doubt save files.
The Python code can be used as a library. The SaveFile
class is the main class that should be used.
This class can be used to read and parse save files, and have a number of methods to interact with the data in an object-oriented way.
The cheat tools might be useful as examples, or as helper methods.
The primary use of this project is to provide command line tools to interact with save files.
Although this can be useful for modding (or for cheating), the primary use is currently the character migration tool.
To use these, open a command prompt (console) in the tool's folder, and run the tool with the -h
flag to see the help.
Examples and explanations are provided below.
There currently are two "cheat" tools available:
- Money cheats
- Health cheats
Adding, removing, setting, and printing of money is supported.
Examples:
- Add 100 money to the player's money:
cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" money -a 100
- Set the player's money to 10000:
cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" money -s 10000
Adding, removing, setting, and printing of health is supported.
Examples:
- Add 0.1 health to the player's health:
cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" health -a 0.1
- Set the player's health to 1:
cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" health -s 1
Arguably the most useful tool in this program is the character migration tool.
It allows you to migrate your character from one save file to another, keeping your stats, money, health, inventory, upgrades, and more.
There is a generic migration command, and a "new game plus" version.
The generic migration tool allows you to migrate your character from one save file to another in the exact same state.
(Currently, some stats such as thirst, hunger, temperature, etc... are not migrated, since this could be immersion breaking for some players if they use this to simulate a longer-term move from one city to another. This can be easily changed if people request it.)
Example:
- Migrate the character from
My Save File.sod
toMy New Save File.sod
:cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" migrate -o "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My New Save File.sod"
New game plus is a special type of migration that allows you to migrate your character from one save file to another, but with some small differences:
- There are travel expenses worth 20k money, which you need to be able to pay before being able to migrate.
- Your apartment(s) will be sold for 2k each, to help pay for the travel expenses. (I plan on eventually using the actual purchase value, but could not immediately find this in the save data - if it even is available)
- The travel expenses will be subtracted from your money.
This system should make it a bit more realistic, and also make it a bit more challenging to migrate.
Example:
- New game plus migrate the character from
My Save File.sod
toMy New Save File.sod
:cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" migrate -n -o "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My New Save File.sod"
The size analysis tool allows you to see the size of the save file, and the size of the different sections of the save file.
Save files are JSON files, so each key-value pair is analysed individually.
This allows us to very easily see which sections of the save file take up the most space.
Example:
- Analyse the size of
My Save File.sod
:cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" sizeanalysis
- Analyse the size of
My Save File.sod
, and save an HTML report toreport.html
:cli.exe -i "C:\Users\max\AppData\LocalLow\ColePowered Games\Shadows of Doubt\Save\My Save File.sod" sizeanalysis -r
Contributions are welcome, and can be made by opening a pull request.
You can contact me on Discord at Max#0007
.
This project is licensed under the GNU GPLv3 License - see the LICENSE file for details.