Pixel Dungeon

Pixel Dungeon

View Stats:
Sostin Feb 21, 2021 @ 6:08pm
[BUG] Shopaholic Achievement - Solutions?
We have any way to win the Shophalic achievement?

I bought all the bags but I can't get it, I saw that it's an old problem.
Edditing save files, maybe? Any Tip?

I intend to do 100% in this game on steam just like I did on mobile, but this achievement seems to be bugged but 0,5% os steam players have it, how they did it? Help please
Last edited by Sostin; Feb 21, 2021 @ 6:08pm
< >
Showing 1-15 of 18 comments
BlackLight78 May 14, 2021 @ 10:27pm 
Did you get it in the meantime? If yes, could you let us know how you obtained it?
Sostin May 19, 2021 @ 3:07pm 
Unfortunately, I don't found a way to obtain the achievement "legally", the achievment is bugged (I contacted with Watabou in twitter but he don't find the error, aparently the achievment is configured correctly in Steam).
The only way for now is using Steam Achievement Menager, unfortunately.
MikedeKokkie Oct 10, 2021 @ 3:18am 
Originally posted by Sostin:
Unfortunately, I don't found a way to obtain the achievement "legally", the achievment is bugged (I contacted with Watabou in twitter but he don't find the error, aparently the achievment is configured correctly in Steam).
The only way for now is using Steam Achievement Menager, unfortunately.

To any person striving for 100% average game completion on their profile, this is a slap in the face. It's not very kind of developers to leave unobtainable achievements in a game and it's against my principles to use SAM as it's a pandora's box I simply don't want to open.

Do you think there is any way we could pursuade Watabou into adding more checks for the achievement (for instance, when you grab the amulet or reach the surface and finish the game, the game can check again if you have all of them and grant you the badge if you do)?
Last edited by MikedeKokkie; Nov 20, 2021 @ 8:15am
Sostin Dec 1, 2021 @ 10:57am 
Originally posted by MikedeKokkie:
To any person striving for 100% average game completion on their profile, this is a slap in the face. It's not very kind of developers to leave unobtainable achievements in a game and it's against my principles to use SAM as it's a pandora's box I simply don't want to open.

Do you think there is any way we could pursuade Watabou into adding more checks for the achievement (for instance, when you grab the amulet or reach the surface and finish the game, the game can check again if you have all of them and grant you the badge if you do)?

I already talked to him on twitter about the problem and he already tried to solve it, in fact he was very available to try. It's sad, but for now we don't have a solution. Your solution of add other checks for the achievement would be great
MikedeKokkie Dec 1, 2021 @ 12:19pm 
Oh how great to hear you've been in contact with him! Any chance you could propose my solution as a workaround for now? It's better than nothing, right?
Sostin Dec 1, 2021 @ 2:42pm 
In fact I already give up hahaha :smile:
It's a good solution but I'm a little shy to propose anything again.
EndeavourAccuracy Apr 8, 2022 @ 12:25pm 
Originally posted by Sostin:
Unfortunately, I don't found a way to obtain the achievement "legally", the achievment is bugged (I contacted with Watabou in twitter but he don't find the error, aparently the achievment is configured correctly in Steam).
The only way for now is using Steam Achievement Menager, unfortunately.

The issue is that, back in 2015, when the (game and) achievements were added to Steam, the PC version hero/-ine didn't start with the key ring. See this related comment:
https://pixeldungeon.fandom.com/wiki/Key_ring?commentId=4400000000000038345
In other words, the achievement-check is to see if the key ring is obtained during gameplay, which, nowadays, it never is.
MikedeKokkie Apr 8, 2022 @ 12:51pm 
So now that we have the exact cause of the bug, a fix should be easy, and we have a workaround too. All that's left is to contact Watabou and try again, who wants to do the honors?
EndeavourAccuracy Apr 11, 2022 @ 5:20am 
Originally posted by MikedeKokkie:
So now that we have the exact cause of the bug, a fix should be easy, and we have a workaround too. All that's left is to contact Watabou and try again, who wants to do the honors?

I've sent him an email, now all we can do is wait.
Hamactus May 6, 2022 @ 1:44pm 
Originally posted by EndeavourAccuracy:
Originally posted by Sostin:
Unfortunately, I don't found a way to obtain the achievement "legally", the achievment is bugged (I contacted with Watabou in twitter but he don't find the error, aparently the achievment is configured correctly in Steam).
The only way for now is using Steam Achievement Menager, unfortunately.

The issue is that, back in 2015, when the (game and) achievements were added to Steam, the PC version hero/-ine didn't start with the key ring. See this related comment:
https://pixeldungeon.fandom.com/wiki/Key_ring?commentId=4400000000000038345
In other words, the achievement-check is to see if the key ring is obtained during gameplay, which, nowadays, it never is.

I don't really know anything about how exactly the game checks, if an item was "obtained", but won't throwing the key ring out of inventory and picking it back up solve the problem?
Last edited by Hamactus; May 6, 2022 @ 1:44pm
MikedeKokkie May 6, 2022 @ 5:04pm 
no, it was (and still is?) attached to the check of actually buying it from the shop
Hamactus May 7, 2022 @ 9:18am 
Originally posted by MikedeKokkie:
no, it was (and still is?) attached to the check of actually buying it from the shop

Oh, I see. That's a pity.
somethingSTRANGE Oct 20, 2023 @ 1:19am 
Here's a link to the Shopaholic Achievement Workaround guide. It contains the following information, as well as a few other details. Thanks for the guide suggestion, Sostin!

Please give it a 'like' if it works for you.





:tiwaz: I believe I've identified the actual bug in the code and found a workaround to unlock the Shopaholic achievement in-game by editing a saved data file.

I decompiled the source to see how the Shopaholic achievement unlocking worked, and it looks like the game calls the validateAllBagsBought function whenever any bag is collected (picked up from ground or purchased). That function first calls validateLocal to see if the collected bag is a "Seed Pouch", "Scroll Holder", or "Wand Holster". If so, it then calls validateAndDisplayAllGlobal to unlock the ALL_BAGS_BOUGHT badge if the internal/hidden "BAG_BOUGHT_SEED_POUCH", "BAG_BOUGHT_SCROLL_HOLDER", and "BAG_BOUGHT_WAND_HOLSTER" badges have been unlocked in the global badge list. That seems to be where the problem lies.

While I have confirmed that the internal "BAG_BOUGHT_SEED_POUCH", "BAG_BOUGHT_SCROLL_HOLDER", and "BAG_BOUGHT_WAND_HOLSTER" badges are awarded to the player when the associated items are collected, the badges are only stored in the current game session save file, not the global badge list stored in the badges.dat file. Since the test seems to ignore the local session badge list and only checks the global badge list, the ALL_BAGS_BOUGHT badge and associated Steam achievement will never be unlocked.

:warhammer: The workaround:

In a recent game, I dropped my "Seed Pouch" on the ground and exited the game. I then edited my global badges.dat file and added "BAG_BOUGHT_SEED_POUCH", "BAG_BOUGHT_SCROLL_HOLDER", and "BAG_BOUGHT_WAND_HOLSTER" to the list of unlocked badges. Once the changes were saved, I reloaded the game and simply picked up the Seed Pouch from the ground. The "Shopaholic" badge and Steam achievement successfully unlocked.

:lloyds: To reproduce:
  1. Locate your badge.dat file. The location is OS-specific. In Windows, it's at "C:\Users\<username>\Saved Games\badges.dat".
  2. Open the file in a text editor, such as Sublime Text.
  3. Copy its contents to a data decryptor (Fiddle[jsfiddle.net]).
  4. Edit the json "badges" array and add "BAG_BOUGHT_SEED_POUCH", "BAG_BOUGHT_SCROLL_HOLDER", and "BAG_BOUGHT_WAND_HOLSTER" to the end. Make sure each array element ends with a COMMA except for the last line. It needs to be in a valid JSON format, otherwise the file will fail to load in the game.
  5. Copy the modified text and re-encrypt it using the same fiddle used to decrypt the data.
  6. Copy the encrypted data over the contents of your badges.dat file and save it.
  7. Play the game. If you already own one of those three bags, the achievement may immediately unlock. If not, drop and pickup (or purchase) one to trigger the event.

:driedrose: I hope this helps. Enjoy!
Last edited by somethingSTRANGE; Oct 23, 2023 @ 3:38pm
Sostin Oct 20, 2023 @ 2:27am 
Thanks, somethingStrange. I will try later. Edit: Work it, thanks!
Last edited by Sostin; Oct 23, 2023 @ 12:59pm
MikedeKokkie Oct 20, 2023 @ 2:36am 
this is huge! thank you so much!!
< >
Showing 1-15 of 18 comments
Per page: 1530 50