This guide is mainly about how to Edit Saves, Sell/Buy Prices, Fix Broken Achievements and Update UI Images, let’s check it out.
I am not going to tell you how to play your game, if you want to play it the “right” way and grind through level-by-level then you do you
This guide is for those who want to fast-forward their game progress or simply explore what the game has to offer before committing countless hours to the grind
I personally would recommend avoiding the modifications in this guide if you wish to experience the gameplay as the developers intended.
Your saves are stored in a base64 format, a typical save code looks like the following:
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:
Great, now we have numbers, but what do they mean Mason. If we look at the source code we get our answers:
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
If we look in game, we can confirm this at the title screen:
The order of the materials in the save file is as follows:
- Drill 1
- Drill 2
- Drill 3
- Drill 4
- Old Version
- Black Opal
- Red Diamond
- Blue Obsidian
The first material begins at separation ( | ) #10 (money starting at 0). If you’re interested in the full list of the save code here you go
How to edit saves
To edit the save, you can simply modify these values. Say for example we want our dollars to be at $700,000, we refer back to our save code and simply replace the first value with our desired one. Same applies for the depth, for our instance we’ll change it to 5
Once we are done editing our file, we have to convert it back by encoding it twice using base64 encryption. We can use the same website we used to decode, to encode our new modified save.
The first pass gives us the first encoded result, we have to repeat the process to encode this result further:
The second pass gives us our desired result:
Now all we have to do is add a name to the start of our code, and import it into the game. The final code would look like the following:
To load a save simply navigate to the load button in the main menu, and paste your new code into the field provided. Then press “Import Game And Close”
If everything worked successfully, we should see our desired result as save file with $700,000 and a depth of 5:
Start by navigating to the following file, which is located in the root directory of the game. This can be opened by: Right Clicking the game in your library ➡ Properties ➡ Browse Local Files ➡ win-unpacked
This is essentially the source code for the game, I recommend opening this with notepad++ or an equivalent application to easily navigate it.
Your sell prices are stored in an array called minerals which can be found on by searching var minerals =
In this area you can alter the sell price of any of the minerals, for our example we will modify the coal sell price to $10,000
Once you’ve modified the code, simply save and reload your game – your changes should be visible right away! Note, that you can always go back and reverse this change once you’re happy with your amount of dollars.
The array titled dlvlcost holds the costs of hire, simply by changing it to 0’s you obtain free hire costs.
If for some reason you don’t want to alter hire costs, you can change the function titled upgradehire(x) to the following:
The array titled upgradeEquipCosts holds the oil/money/time costs of upgrades and can be modified by simply changing the desired values and reloading the game.
The array titled oilRigUpgradeCosts holds, you guessed it, oil rig upgrade costs. Change this to 0’s if you wish to have free upgrade costs:
Why do achievements break?
Timed AchievementsThis game has two two timed achievements
- Play for 2hrs
- Play for 24hrs
These achievements work by checking the playtime variable of the user’s save at two different times: 7200 and 86400 which is hours converted to minutes; 2hrs & 24hrs respectively.
This code works fine, however, the issue lies in how time is added to the playtime variable:
Every 30 seconds, the game checks if the user has completed any quests. The issue here is the following line of code: playtime+=30
Every 30 seconds, the game adds 30 minutes to the playtime, which as a result causes all players to earn the timed rewards far ahead of schedule.
A simple solution is to change the function to grand playtime += 0.3 which grants 30 seconds as opposed to 30 minutes – which I assume is the intended functionality 🙂