Mr.Mine Cheats
Save Editing
How are saves stored
Your saves are stored in a base64 format, a typical save code looks like the following:
TXpZek16TXhOekU0ZkRNd2ZEY3hOamMyZkRjMk5UWXhNVGs0TVRZMU1qRXdOak01ZkRWOE1UUjhNVFY4TVRKOE1UQjhNVEF4ZkRVMk56SjhORFEzTW53ME1UZ3hmREV5TkRWOE1UY3dmREI4TUh3d2ZEQjhNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNSHd3ZkRRMk5Yd3hNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNSHd3ZkRFaE9TRXRNU0V0TVNFdE1TRXRNU0V0TVNFdE1TRXRNWHd5SVRZaE1UQWhMVEVoTFRFaExURWhMVEVoTFRFaExURjhNeUV4TVNFM0lTMHhJUzB4SVMweElTMHhJUzB4SVMweGZEUWhPQ0V0TVNFdE1TRXRNU0V0TVNFdE1TRXRNU0V0TVh3dE1TRXRNU0V0TVNFdE1TRXRNU0V0TVNFdE1TRXRNU0V0TVh3eGZERjhNWHd4ZkRGOE1Yd3hmREY4TVh3eGZERjhNWHd4ZkRGOE1Yd3hmREY4TUh3eGZERjhNWHd4ZkRGOE1Id3hmREI4TVh3d2ZERjhNSHd4ZkRCOE1Id3dmREV5TURNd2ZESWhNaUV5SVRJaE1DRXdJVEFoTUNFd0lUSWhNQ0V3SVRBaE1DRXdJVEFoTUNFd0lUQWhNQ0V3SVRBaE1DRXdJVEFoTUNFd0lUQWhNQ0V3SVRBaE1DRXdJVEFoTUNFd0lUQWhNQ0V3SVRBaE1DRXdJVEFoTUNFd2ZEQjhNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNSHd3ZkRFd2ZEQWhNQ0V3SVRBaE1DRXdJVEFoTUNFd0lUQjhNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNSHd3ZkRCOE1Id3dmREI4TUh3d2ZEQjhNVFl3TVRnNU9EQTRNSHd3ZkRGOE1Id3dJVE1oTWpBd01DRXhJVEFoTUNFd2ZIeDhmSHg4Zkh4OGZIeDhmSHg4TUh3d2ZEQjhNVEI4TFRFaExURWhMVEVoTFRFaExURWhMVEVoTFRFaExURWhMVEVoTFRFaExURWhMVEVoTFRFaExURWhMVEVoTFRFaExURWhMVEVoTFRFaExURjhmSHg4Zkh4OGZIeDhmSHc9
We can ignore the name part (Guide), as we only need the right section of the code for our purpose. This code obviously not legible, so for our sake we can decode it by using an online decoder or any method which can decode from base64 -> utf-8, I personally use Python’s base64 library.
After decoding the save code once we get the following result:
MzYzMzMxNzE4fDMwfDcxNjc2fDc2NTYxMTk4MTY1MjEwNjM5fDV8MTR8MTV8MTJ8MTB8MTAxfDU2NzJ8NDQ3Mnw0MTgxfDEyNDV8MTcwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDQ2NXwxMHwwfDB8MHwwfDB8MHwwfDB8MHwwfDEhOSEtMSEtMSEtMSEtMSEtMSEtMSEtMXwyITYhMTAhLTEhLTEhLTEhLTEhLTEhLTF8MyExMSE3IS0xIS0xIS0xIS0xIS0xIS0xfDQhOCEtMSEtMSEtMSEtMSEtMSEtMSEtMXwtMSEtMSEtMSEtMSEtMSEtMSEtMSEtMSEtMXwxfDF8MXwxfDF8MXwxfDF8MXwxfDF8MXwxfDF8MXwxfDF8MHwxfDF8MXwxfDF8MHwxfDB8MXwwfDF8MHwxfDB8MHwwfDEyMDMwfDIhMiEyITIhMCEwITAhMCEwITIhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwITAhMCEwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDEwfDAhMCEwITAhMCEwITAhMCEwITB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MHwwfDB8MTYwMTg5ODA4MHwwfDF8MHwwITMhMjAwMCExITAhMCEwfHx8fHx8fHx8fHx8fHx8MHwwfDB8MTB8LTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTEhLTF8fHx8fHx8fHx8fHw
Okay, this is still illegible. If we look at the source code of the game we figure out why:
The save code is actually encoded twice, so in theory, if we run our previous result through the decoder again we should get our decoded save:
363331718|30|71676|76561198165210639|5|14|15|12|10|101|5672|4472|4181|1245|170|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|465|10|0|0|0|0|0|0|0|0|0|0|1!9!-1!-1!-1!-1!-1!-1!-1|2!6!10!-1!-1!-1!-1!-1!-1|3!11!7!-1!-1!-1!-1!-1!-1|4!8!-1!-1!-1!-1!-1!-1!-1|-1!-1!-1!-1!-1!-1!-1!-1!-1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|0|1|1|1|1|1|0|1|0|1|0|1|0|1|0|0|0|12030|2!2!2!2!0!0!0!0!0!2!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0!0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|10|0!0!0!0!0!0!0!0!0!0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1601898080|0|1|0|0!3!2000!1!0!0!0|||||||||||||||0|0|0|10|-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1!-1||||||||||||
Great, now we have numbers, but what do they mean Mason. If we look at the source code we get our answers:
money = Math.floor(saves[chosen][0]);
depth = parseInt(saves[chosen][1]);
dexp = parseInt(saves[chosen][2]);
UID = saves[chosen][3];
drill[0] = parseInt(saves[chosen][4]);
drill[1] = parseInt(saves[chosen][5]);
drill[2] = parseInt(saves[chosen][6]);
drill[3] = parseInt(saves[chosen][7]);
hireamt = parseInt(saves[chosen][8]);
if(hireamt > 10){hireamt = 10;}
oldversion = saves[chosen][9];
…
Let’s break this down:
- Money is the first element in our save code, if we refer to the code we can deduct that our money is at $363331718
- Depth is the second element, and just like money, our depth can be seen as 30
- dexp is our experience
- UID is the steamID64 of the account which created the save, if you’re curious you can use SteamID I/O to find out the steam account of the creator