ARCHIVED: I no longer have any interest in working on this. You are welcome to fork and continue development.
Online save editor for the game Shattered Pixel Dungeon, a roguelike dungeon crawler with pixel graphics.
You can find it at https://infinixi.us/spud/!
- Windows -
AppData/Roaming/.shatteredpixel/Shattered Pixel Dungeon
- Windows XP -
Application Data/.shatteredpixel/Shattered Pixel Dungeon/
- Mac -
Library/Application Support/Shattered Pixel Dungeon/
- Linux -
.shatteredpixel/shattered-pixel-dungeon/
Inventory editing is a bit convoluted at the moment. After importing a save, scroll down to the Inventory section and you'll see a list of items.
The first box is the ID of the item, not the name. For example, if you wanted a Wand of Lighting, set it to wands.WandOfLightning
. If you wanted a Battle Axe, set it to weapon.melee.BattleAxe
. A potion of healing would be potions.PotionOfHealing
, so on and so forth. You can view all the items in the game here.
The second box is the quantity of the item, and the third is the level.
iOS is naturally a very locked down operating system so unless you're jailbroken, good luck. If you are jailbroken, I'm sure you could find a way to get access to app data through a file manager of some sort.
I don't own any iOS devices so take this with a grain of salt.
Unfortunately, you are going to need root access to access the game's directory. You can find many root tutorials online for every device, model, or version possible. Unless you're really desperate, I wouldn't recommend rooting your device for the sole purpose of editing your save as you run the risk of bricking your phone or voiding your warranty.
Once you've got a rooted phone, download yourself a file explorer that supports root access, and head to data/data/com.shatteredpixel.shatteredpixeldungeon
and look for a game.dat file.
Another idea I had would be to mod the game's APK itself to allow you to export the save files, but I'm not experienced in Android development and don't even know if this would be possible. If it is possible I think it's be really cool for someone to make that one day or even for the developer to implement it themselves!
You could also try ADB to access the game's directory without root using adb shell
or adb backup
, but I'm not sure if this works.
First off, make sure it's in the proper directory (in the same folder as the depth.dat files).
If that doesn't work, then it's most likely a permissions issue. For me, setting the game.dat file's permissions to this worked:
- Owner -
u0_a958 (10958) Shattered Pixel Dungeon
- Group -
u0_a958 (10958) Shattered Pixel Dungeon
- Mode -
rw------- (0600)
(Or set Owner to Read and Write and everything else to none) - SELinux Context -
u:object_r:app_data_file:s0:c190,c259,c512,c768
Unfortunately, it's a bit complicated. Challenges are stored in a "bitmask". Here's a list of all challenges along with their numerical id:
- On Diet - 1
- Faith is my Armor - 2
- Pharmacophobia - 4
- Barren Land - 8
- Swarm Intelligence - 16
- Into Darkness - 32
- Forbidden Runes - 64
- Hostile Champions - 128
- Badder Bosses - 256
Essentially, if you wanted to enable Swarm Intelligence and Forbidden Runes, you would want to add 16 and 64 to get 80. If you only wanted Into Darkness, you would set the challenge to 32. If you wanted to enable every challenge, you would use 511, so on and so forth.
Even I don't know how to extract challenge data from a bitmask, but I do plan on implementing a much easier way to modify challenges in the future when I figure out how they work.
The only reason this is even possible is thanks to the geniuses who work on browserify and more specifically browserify-zlib.
Essentially, use Node.js' zlib module (from browserify-zlib) and use gzip
and gunzip
to mimic the game reading and writing save files. Then just throw the JSON from the unzipped save into a couple of HTML inputs and boom.
Please note that nobody except you is responsible for any harm you cause to your save or device, and you should backup your saves before using this tool anyway.