Graveyard-Keeper-Savefile-Editor
This is a save editor for Graveyard Keeper.
The python version works on Windows, Linux and macOS. For Windows there is a .exe version available too.
It can load and save *.dat files. Additionally you can export the loaded save to a .json file, which has a similar structure to the original .json save files. (The difference is, that information about types of variables is saved in the file, meaning every value is wrapped in an object).
The Application uses a webbrowser as a GUI (by default Chrome in App Mode, but during development FireFox was tried too - f.e. Opera should work too, but watch out for your Opera version - see Issue #54).
I want to add I am not responsible if you break your save file, I try to mantain this editor in a way, in which it can't break save files (or not by mistake) but it is still possible that this editor produces a bugged save file (if you f.e. add an item in a quality in which the item doesn't exist.) That is why you always should backup your save files. (In the settings of the editor you can also set the number of backups the editor should create (which are zipped) - on saving the editor all backups are shifted by one, so if set it to 3 backups and save 4 times, your oldest backup is lost).
But I want to mention the last time someone asked for help due to a save broken by the save editor was in september 2018 and since then I also took additional measures.
This Editor supports both the DLC version and non DLC (because the DLC doesn't change how files are saved)
Currently Editable
- Money
- Red, green, blue technology points
- HP
- Energy
- Current Time
- Your inventory size
- Your inventory items
- Inventories of all (or at least most) storage units
- Your relationships with NPC's (only if you interacted with them before and have more than 0)
- Additionally utilities like:
- Removing all drops
- Setting the worker efficiency to the highest possible level
- Turning the graves into perfect graves
- Complete the entire tech tree (state is pre DLC)
- Fix if the donkey is stuck
- Reset the morgue body counter should it be broken
Screenshot
Installation
- Download this as zip and extract it to the folder where you want it to be
- Get Python (>=3.3)
- If you are using a macOS/Linux system where
python
is by default python 2.x, replacepython
withpython3
. Also instead of creating a .bat file, create a .sh file. Additionally according to users you might also need to installpython-tk
if it is not yet included in your distribution. - Install dependencies using
python -m pip install -r requirements.txt
. - Execute the file with
python main.py
(in the console with the folder where main.py resides as working directory - to simplify this just create arun.bat
in the directory with the same content) - Enjoy
OR
Download a frozen release for windows (so you don't need to install python).
Save File Locations
Linux / Ubuntu:
/home/$USER/.config/unity3d/Lazy Bear Games/Graveyard Keeper/
MacOS:
/Users/$USER/Library/Application Support/unity.LazyBearGames.GraveyardKeeper/
Windows:
C:\Users\%username%\AppData\LocalLow\Lazy Bear Games\Graveyard Keeper
Warning: The application supports variables in the path starting with 0.1.17. If you use an earlier version manually fill in your user name for the variables.
Usage
Considering the application has a GUI it should be self explanatory. If a name autocompletes to undefined, the item has no internal name or my localisation files are missing translations. If you know an item exists, but it doesn't appear in the autocompletion box, leave me a message, this means I forgot some items in my list with items. Same if an item doesn't have a preview image - if that happens please leave me a message with the internal id (written in parentheses) and a screenshot of the item in game (so I know which item in the spritesheet is the id)
If you want to manually edit save files, when you change values, watch out if you change the type of the variable. F.e. if you would change a value from 0 to 1, the type would change and you would need to manually change the type to the correct one. For information about the possible types, check types.py in the data folder.
Changelog
Check it here.
Thanks to
- Reddit user aMannus for supplying me a save to implement worker efficiency
- All contributers to this repository
Misc
If you want to know about some stuff which you could do if you export the savefile to json check this file here.
The application is not working?
Supply me a screenshot with the console output (or the copied text). If you are using the compiled windows version and a black window appears and then disappears it means the application crashes because of some error. To view the error code to be able to send it to me: In the folder where you have the .exe file, Shift + Rightclick in a free space and in the context menu there should be an option like "Open Command Prompt here" or "Open Powershell here", click that, begin writing "Graveyard" and then press tab to autocomplete and enter to execute - now you should start the application using that console window. This time the window won't close after execution, meaning you have time to make a screenshot of the error.
Notice
This repository contains content which I do not own. Notably all the image files in the /data/html/rsc folder. These are by Lazy Bear Games. And were (besides the items) extracted from the Wiki (for information on how I did it, check misc.py) Additionally jQuery and Materialize are also used. Their original licenses are still included. This application uses extracted strings like f.e. localisation files. These are also by Lazy Bear Games and might be incorrect. (Because of my horrible way of extracting them) If you find any bugs / mistakes, feel free to open issues, or if you know how to fix it yourself, feel free to create a pull request.
Building
For those interested, here is the command I use to generate the folder which I then zip and upload as release:
(I have this saved as build.bat in the same folder)
python -m eel main.py "./data/html" -n "Graveyard Keeper Savefile Editor" -i "./data/html/favicon.ico" --exclude PyQt5 --exclude win32com --exclude pydoc --exclude lib2to3 -y
copy "%cd%\data\hashes" "%cd%\dist\Graveyard Keeper Savefile Editor\data\hashes" /Y
copy "%cd%\data\locals.json" "%cd%\dist\Graveyard Keeper Savefile Editor\data\locals.json" /Y
copy "%cd%\data\data.json" "%cd%\dist\Graveyard Keeper Savefile Editor\data\data.json" /Y
copy "%cd%\data\version" "%cd%\dist\Graveyard Keeper Savefile Editor\data\version" /Y
copy "%cd%\data\itemversion" "%cd%\dist\Graveyard Keeper Savefile Editor\data\itemversion" /Y
pause