Basically, this game is made in HTML5 using a modified version of the Impact Engine. Which runs in a simulated web browser that loves to crash and freeze. As well as periodically it likes to changes its memory addresses in real time from time to time. But at the same time, the game uses easily assessable .json files, which are not encrypted from tampering. So below I'll explain how to edit these .json files to adjust things like exp, money, item drop rates gained from kills. As well as briefly go over how to get infinite HP, CP, and SP using cheat engine for anyone interested in that.
CHEAT ENGINE NOTE: The game generates and uses multiple processes. (During early access builds was three processes, but since the official launch appears to only be two.) So you'll have to experiment a little to figure out which of them is the correct one. Should be whichever is using the larger amount of memory. In my case, it appears to be the top one on the list since launch. (Early access builds was the middle process). So let say the "Finding HP" method, I outline below does not return any usable values. Try selecting the other process(es) to find the one that works.
Infinite HP using Cheat Engine:
- Change your search type to "double" and enter your current HP value.
- Get hit and/or jump into the water, pause, and then search for your new current HP value. Make sure your on the pause screen before searching. The game does auto-regenerate your HP periodically, particularly if you're not in combat. That could change the value your after, while you're on the cheat engine window.
- Repeat a few times and it should whittle down the list to one address fast. If you have the correct process selected.
- Lock the address and set its value to "999" or whatever.
- Note: When you take damage after locking, your in-game displayed HP may briefly drop then appear to recover. The HP display may also appear to stabilize at a value slightly less than whatever you choose to lock the value at after taking damage. Still, for the most part, you'll have infinite HP. With this being said, you can still die from game scripted events and if a monster manages to hit you in a single hit for higher than what your HP value is locked at. While I would caution against locking your HP value too high due to the game's love of freezing. I have used "9999", without issue but I wouldn't go higher than that.
*** UPDATE NOTE (9/23/18): As of the official launch (version 1.0.5) I have been able to successfully get the below method to work to find the CP values for the different elemental skill trees. That being said, I did have some issues with cheat engine not initially finding the address values while I was searching, but got it to work after reloading the game a few times. So it does appear to be rather hit or miss.
- Make sure you save your game before attempting to find the CP addresses. So you do not lose any CP points if this method fails. Allowing you to reload your save and try it again. As I mentioned above finding the CP memory address can be hit or miss at times for some unknown reason.
- Make sure you're on the correct game process. I recommend testing the Infinite HP method mentioned above as it quick and works consistently to verify you selected the right one.
- In the game, open the Circuits window and select whichever element tree you wish to lock the value of. Each element has its own independent variable, so make sure you're using the right value for your searches.
- Set CEngine to search for a 4-byte type variable and then enter the in-game CP value multiplied by 2 (Displayed Value * 2 = Value to Search) for the Element CP you're wanting to lock and hit scan.
- Spend some points in the element tree your working. Then enter the new displayed value multiplied by 2 and scan again. Repeat until your searches whittled the address list down to the address your after.
- For example: If the game's display is showing 8, you'll need to search for 16 in Cheat Engine. If you spend 1 cp, leaving the displayed value as 7. Your next search will be a 14.
- Once you find the desired address, lock it. Then spend the points to buy whatever you want. The "in-game" displayed value, not the cheat engine locked variable, may appear to decrease a few times, while initially spending points. Still, if everything is working the in-game value should stop decreasing after a few purchases. Allowing you to buy whatever skills you want. As long as the tree's skills are available to purchase. Some parts of the trees unlock as your progress in the game.
- It's better to build up enough CP (around 5 or more) to cover any required upgrade costs before locking.
- Be careful changing the locked value directly in cheat engine, as it is prone to cause game crashes. Although, if you do manually change the CP value in cheat engine, it needs to be entered as the Desired Value * 2 = Value to be Locked.[/s]
- SP is a Double type variable.
- For each in-game displayed SP box, when full/solid, they will equal a whole value of 1 in your cheat engine searches. So if you have one solid visual box of SP on the game HUD. The value you're looking for will be equal to 1. (2 Solid Boxes = 2, 3 = 3, etc...)
- So say you're at the start of the game and only have 1 SP box total and you use a special skill in the game. The address variable your hunting for will drop to equal "0.0" then start to increase/scale back up by decimal points until the value once again equals a whole number of 1. (solid square).
- Because of not being able to see the decimal scaling value in the game. I've found searching for the address easiest by initially searching for the whole value based on the numbers of boxes you have. Then use a skill, pause the game before the SP box is recharged, run a search using "Decrease Value", unpause the game and wait for the box to recharge to solid, then search the whole number again, repeat until you get the address your after. Then lock it while the SP is fully recharged,
- SP like HP does like to change addresses every once in a while but otherwise is pretty stable far as crashes go.
To edit Crosscode's .Json files using hedgehog's values as an example. The first enemies you encounter in Autumn's Rise, right after leaving the west gate of Rookie Harbor.
- Open the "hedgehog.json" file in notepad or preferably notepad++.
- You can normally find this .json and the other enemies .json files in the "...\steam\steamapps\common\CrossCode\assets\data\enemies" folder or wherever your steam library files are stored.
- When you first open the file up in notepad, you'll get a really long single string line of code all bunched together. No worries, this code can easily be made readable and thereby editable.
- Open your browser and go to the site: [Link]. This is a free simple bare-bone browser-base .json file editor. I have no personal affiliation with the site, it just one I found that makes unscrambling the code very quick and automatic.
- Now copy and paste all the code from the "hedgehog.json" file into the left text box of the editor, then hit the ">" button located just to the right. This will convert the code to an editable UI format in the adjacent right text box.
- If you so wish. You can use the right text box's UI to edit the code or instead edit it directly later on once you've returned the readable code back to the .json file.
- When you're ready to return the code back to your notepad. Press the "<" button for the editor to regenerate it back into the left box in a more editable/readable format.
- Copy and paste this updated code back into the hedgehog.json notepad file. Making sure to replace all the original code. You might want to create a backup of the original code before doing this.
- If you haven't already, go ahead and make any desired changes to the code.
- Save your updated .json file.
- In my experience, I didn't have to restart the game to see the changes take effect after saving. I believe the game references the .json every time you kill an enemy or at least when you change areas. I personally adjusted the enemies' files while the game was running without issue. Just be mindful that you don't botch the code syntax before saving. With this being said, you may still need to restart the game to see the effects. Depending on what you have modified.
- After you recreated the code using the json editor, you'll have something like the following. As you can see everything is clearly labeled for the most part. So making changes should be relatively self-explanatory. Just be careful to keep the same syntax structure. (Note: The following is only the first segment of the adjusted hedgehog's .json file presented for reference).
Code: Select all
{"level":4,"boostedLevel":55,"params":{"hp":286,"attack":30,"defense":31,"focus":26,"statusInflict":[1.25,1.25,1.25,1.25],"statusEffect":[1.5,1,1.5,1]},"credit":16,"exp":30,"maxSp":8,"enduranceScale":1,"healDropRate":0,"boss":false,"bossOrder":0,"padding":{"x":2,"y":2},"material":"ORGANIC","aiGroup":"hedgehog","aiLearnType":"REGULAR","itemDrops":[{"item":"81","prob":0.12,"min":1,"max":1,"rank":""},{"item":"1","prob":0.08,"min":1,"max":1,"rank":"B"},
.........
.........
EDITED EXAMPLE CODE
Code: Select all
{
"level": 4,
"boostedLevel": 55,
"params": {
"hp": 286,
"attack": 30,
"defense": 31,
"focus": 26,
"statusInflict": [
1.25,
1.25,
1.25,
1.25
],
"statusEffect": [
1.5,
1,
1.5,
1
]
},
"credit": 16,
"exp": 30,
"maxSp": 8,
"enduranceScale": 1,
"healDropRate": 0,
"boss": false,
"bossOrder": 0,
"padding": {
"x": 2,
"y": 2
},
"material": "ORGANIC",
"aiGroup": "hedgehog",
"aiLearnType": "REGULAR",
"itemDrops": [
{
"item": "81",
"prob": 0.12,
"min": 1,
"max": 1,
"rank": ""
},
{
"item": "1",
"prob": 0.08,
"min": 1,
"max": 1,
"rank": "B"
},
.........
.........
- Drops rates are based on percentages. So when adjusting the "prob" values, the game uses a scale of 0 to 1 (1*100 = 100%, 0.12*100=12%, 0.5*100=50% etc...). Although, even if you set the "prob" to 1. The game does not always drop an item each kill as one would expect. Yet, most of the time it should. While favoring whichever item is listed higher in the code for some reason. There are probably other settings that affect the drop rates running behind the scenes, but I've only experimented a little with drop rates.
- Another thing of concern is don't set the ( "min": "max": ) drop count per kill values to high or the game will crash. I have found it's relatively safe to go up to 10 (min/max); maybe slightly higher.
- The more items that drop on the screen at one time may briefly tank your FPS rate or even freeze the game. So you may need to adjust your modified drops rates based on what your personal computer's CPU can handle. Even know this game is 2D graphically, it can and will bog down your CPU. As the game seems to only be optimized to handle small amounts of drops at one time graphically.
- If you mistakenly mess something up in your experimenting or just want to reset all your changes back to the default values. The quickest and easiest method is to have Steam do a local files validation for the game. Steam will update any adjusted files and auto-replace them back to the default ones based on its current master for the game. It the same process steam uses to find game updates and run patches. Although, you might consider backing up your files before editing and replace them back as well.
- All edited files will be reset to their default versions after any steam updates for the game. So backup your changed files, if you want to quickly reset them by being able to drop them back in place after any game updates.