(Last updated: June 6, 2019)
SteamWorld Quest

SteamWorld Quest is the latest (as of June 2019) SteamWorld game from Image & Form Games. This time around it's a turn-based JRPG-style deckbuilding game, which isn't exactly my cup of tea, even though the game is otherwise great, and I ended up cheating a bit so I could breeze through it a little more quickly.

Editing Savegames

Editing savegames is pretty straightforward. On Linux, they're stored in ~/.local/share/SteamWorld Quest/<numbers>/, with filenames like savegame_000.dat. They're not encrypted or even compressed, so you can nearly just just fire up a hex editor and have at it.

Checksum

The one small wrinkle is that at byte 5, there's a CRC32 checksum, which you need to update after editing, otherwise the game will assume the savegame is corrupt and won't load it. (Note that the game will load the savegame_000.dat.backup file if that happens, so you might just find yourself wondering why none of your changes showed up.) I'd updated a Python script I'd created while hacking on SteamWorld Heist savegames to update these checksums, so if running Python works for you, here it is: fix_swq_checksum.py.

Gold

To give yourself more money, just search for the hex value. For instance, my already-cheated savegame has 4,992,049 gold currently, which is 4C 2C 31 in hex - on PC this'd be stored in little-endian form, so I'd search for 31 2C 4C 00, and on my savegame it shows up immediately after a string reading save_point, at position 0x65:

Note: The exact position of the gold value, and the strings which appear around it, look like they can change fairly noticeably between savegames, so don't rely on any specific location or strings. My savegame happened to be at 0x65 and near save_point, but yours will probably be something different.

Crafting Components

Likewise, these are pretty simple - you can search for the hex values of the quantities you want to change, and you'll know you're in the right place when they occur immediately after strings reading spooky_basic, nature_basic, fire_basic, etc:

On that already-edited savefile, the decimal values you'll see in game are 993, 1002, 954, 953, and 988. (Remember that they're little-endian in the file.)

The advanced/special crafting components are stored the exact same way, except they're named spooky_special, nature_special, etc. They won't show up in the file until you acquire at least one of them in-game, though.

Editing Cards

Editing money and crafting components will certainly help in terms of items and having cards available, but if you want to really cheat, you'll want to edit the cards. This is quite straightforward, too. In the game's Bundle directory, there's a file called data01.impak. That file's just a zipfile, and one of the files inside there is Definitions/cards.xml. Simply unzip that file and make sure it goes to the Definitions directory (the only other file in there at time of writing is conversations.xml.z).

Once you've got the file Bundle/Definitions/cards.xml in place, the game will use that file instead of the one found in data01.impak. Just open the file in a text editor (or an XML editor if you're fancy, I guess) and edit whatever you want. There's plenty of documentation inside the file itself, most of which I haven't actually looked at myself. One attribute you may be interested in is BoostCost, which is what determines how much SP you need to activate the card.

That's It!

That's all I've bothered to look into so far - it looks like there's plenty of other definition files inside the main data zipfile, so you can presumably modify all sorts of things about the game just by modifying any of those files. If you find something that you think might be worth noting on this page, feel free to get ahold of me!

Changelog

June 6, 2019
  • Added info about the names of advanced crafting components
June 4, 2019
  • Initial post
  • Updated with info about roaming gold location