Plants vs. Zombies: Game of the Year

Plants vs. Zombies: Game of the Year

Not enough ratings
How to get China Shop / Better Off Dead Achievement by cheating (save data editing)
By Alizard
This guide goes over how to edit checkpoint data for Vasebreaker Endless or i, Zombie Endless to have a current streak of 14 / 9 so you only have to beat one level to get the achievement
basically, this is the guide to follow if you really want the achievement but hate Vase Breaker / i, Zombie and like fiddling with games on a deeper level
   
Award
Favorite
Favorited
Unfavorite
Discovery / Introduction
While trying to get the China Shop achievement legitimately for around four hours straight after already trying on multiple days prior, I decided, I'd had enough and tried finding a different way to get it.

The first thing I thought of was abusing the checkpoint system in the game where when you exit a stage, it saves a checkpoint which you could then continue later.
My thought was that whichever file stored this checkpoint must also store the current streak of that checkpoint since you continue with the same streak after continuing a checkpoint.

So after scouting for which save data file contained the checkpoint for Vase Breaker endless and comparing two starting save data files of different streaks in a hex comparer, I found the byte which stores the current streak and devised a method to get the China Shop achievement by changing it in an existing save file.

This method also works for Better Off Dead with i, Zombie Endless.
What you will need
  • A save file which has Vase Breaker Endless (or i, Zombie Endless) unlocked (obviously)
  • A hex editor (I use HxD on Windows and Okteta on Linux personally but any is fine)
  • That's it
The Method
Get to a near-finished Game State
First things first, you have to get to the end of a level in Vase Breaker Endless (or i, Zombie Endless) without actually finishing it. For example, I got here:
_

Then you have to create a checkpoint by clicking on MENU on the top right and going MAIN MENU > LEAVE
for reference, here we will also get a notice telling us the game will be saved
_



Locate the Save Data

Next you will have to find the save data folder for the game.

If you have Steam Cloud Saves activated, it will be in
  • C:\Program Files (x86)\Steam\userdata\{your steam id}\3590\remote
or substitute C:\Program Files (x86)\Steam with your Steam install directory.

on Mac it's
  • ~/Library/Application Support/Steam/userdata/{your steam id}/3590/remote

and on Linux it's
  • ~/.local/share/Steam/userdata/{your steam id}/3590/remote

even with Cloud Saves off, the above folder will probably be used but under rare circumstances, the save data might be in
  • C:\ProgramData\Steam\PlantsVsZombies\userdata
(note: the ProgramData folder is usually hidden so you will have to turn on view hidden files)

on Linux with Proton, this would be in
  • ~/.local/share/Steam/steamapps/compatdata/3590/pfx/drive_c/ProgramData/Steam/PlantsVsZombies/userdata
or substitute ~/.local/share/Steam with the SteamLibrary folder the game is installed in

if you're on Mac and don't have Steam Cloud saves enabled for the game, look up where the folder is, I don't know

The actual file we need is game1_60.dat for Vase Breaker Endless or game1_70.dat for i, Zombie Endless, since that's the respective checkpoint data
my folder structure for reference:

note if you have more than one user registered in the game, there may also be e.g. a game2_60.dat file, one for each user who has a checkpoint in VBEndless / iZEndless.
To find out which user you are, you can go into the users.dat file in the same folder with your Hex Editor and look at the order of the names. The order of the names will correspond with which number represents you.
Here is my users.dat and the name I was using is in the first position so I know my number is 1:




Editing the Checkpoint

Now open the checkpoint in your Hex Editor and scroll all the way to the bottom:















We're looking for a specific byte which controls your current streak. Most of the time, it has one of a few specific byte sequences right before it but I might have missed some so here's how to find it yourself:

Finding the correct byte

If you have either the byte sequence 02 02 02 FF FF FF FF or 4D 42 7A FF FF FF FF or 00 00 00 FF FF FF FF near the end of your file, the byte immediately following that sequence is the streak byte and you can continue with the rest of the guide using that byte
here, three screenshots of the specific byte sequence underlined and the next byte (streak byte) circled:

If you don't have one of those specific byte sequences, the pattern in common is that they are really close to the end of the file, following a lot of null bytes (00) and are three bytes (4D 42 7A / 02 02 02 / 00 00 00) followed by FF FF FF FF
if you have something similar to that, try using the byte immediately following that with the rest of the guide
if it works, please write your byte sequence in the comments to help future users of this guide

If it doesn't work, back up your current file and continue to the second wave to compare the save files to find a byte sequence pair like FF FF FF FF 00 and FF FF FF FF 01 between them (you'll have to compare from bottom to top)
if you need more help, send me a friend request on steam and message me or email me at [email protected]




Assuming you found the byte:
Now change that byte to 0E which is hex for 14 (Vase Breaker) or 09 (i, Zombie) to set your streak to that number:














now save the file!




Getting the Achievement

Now you can go back to the game and start up Vase Breaker Endless / i, Zombie Endless again
(if you didn't close it in the meantime, the game could crash but it doesn't break anything so you can just restart the game)

Now your game should be the same as when you created the checkpoint but your current streak in the bottom right corner will be 14 (VB) / 9 (iZ):
_

Now you just have to let your run play out and you will get the achievement (hooray)
Send-Off
Thank you very much for reading / following this guide

I tried to go into as much detail as I thought you could need so this one is a bit long but I hope it's still helpful to some people.
If you have any suggestions on how to improve the guide I would implore you to comment about it and I'll change it if it makes sense.

If you liked the guide or it helped you in any way, consider rating it (or giving it an award if you're feeling freaky)

If you have any questions, post a comment and I will probably respond eventually
11 Comments
Degtyarev 21 hours ago 
I just did it today and it worked!!!!!
+REP!
Legalize nuclear bombs 22 Nov @ 9:50pm 
It ended up working, thanks GOAT. :spidermanpeter:
Legalize nuclear bombs 22 Nov @ 8:51pm 
Dude i tried the method and my game broke, now i cant access the game file in I, zombie Endless, please help me solve this problem, i sent you friend request
Sir Anull 9 Nov @ 8:34pm 
Thank you so much for this method
80 8E 73 FF FF FF FF sequence in the end of file for iZ also works
found it by experimental way
Alizard  [author] 5 Nov @ 12:56am 
for anyone who commented here and has subscribed, the guide is now updated with more information on how to find the byte to change
Toy Freddy Gaming 4 Jun @ 6:03pm 
cant find the byte sequence, any fix or should i just try and beat it legally :steamsad:
TimidBoy 30 May @ 10:14am 
This works to get Better Off Dead too, game1_70.dat is the one you need to edit for that.

If you're don't see the right sequence, try changing the first 00 after any set of FFs, save it, check if it worked, and if it didn't, revert the change and try a different set of FFs until it works.
chOOkity 21 May @ 1:09pm 
So I tried this guide and I too am facing the issue of not finding the byte sequence. Added you as a steam friend for more help
Keylocke 20 May @ 6:41am 
OR you could just play the game
Alizard  [author] 24 Mar @ 7:30pm 
Hello Wayney, I have time for approximately the next two hours if you want help now or this week after 6 PM CET, you can contact me through Steam DM