CrossCode

Post here (make sure thread doesn't exist first) any type of tutorials: text, images, videos or oriented discussions on specific games. No online-related discussions/posts OR warez!
Post Reply
User avatar
Rubien84
What is cheating?
What is cheating?
Posts: 2
Joined: Sat Nov 18, 2017 4:02 pm
Reputation: 4

CrossCode

Post by Rubien84 » Sat Nov 18, 2017 8:21 pm

For the benefit of anyone, who may be looking to hack/cheat CrossCode, now or in the future. A 16bit-era Zelda: Link to Past/Ys series like indie game. That can be aggravatingly tricky at times to find addresses for with Cheat Engine. It is actually far easier to modify it's .json files directly, overusing Cheat Engine for the most part. Except for in the cases of infinite HP, SP, CP from my experience.

Basically, this game is made in HTML5 using a modified version of the Impact Engine. While running 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. But at the same time does use easily assessable .json files, which are not really encrypted from tampering. So below I'll explain how to edit these .json files to adjust things like exp, money, item drop rates. As well as briefly go over how to get infinite HP, CP, and SP using cheat engine for anyone interested in that.

Infinite HP using Cheat Engine:
  1. Open cheat engine.
  2. Select the biggest process from the three the game generates. Normally the center one of three processes from my experience.
  3. Change your search type to "double" and enter your current HP value.
  4. Get hit and/or jump into the water and then search for your new current HP value.
  5. Repeat a few times and it should weed down to one address fast. If you have the correct process open.
  6. Lock the address and set its value to "999" or whatever.

  7. Note: When you take damage, your in-game displayed HP may briefly drop then appear to recover. It may also appear to stabilize at a value slightly less than whatever you set the locked value to be after taking damage, but 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 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.
Infinite CP using Cheat Engine:
  • CP is a 4-byte type variable.
  • You have to double, whatever the displayed value is for your searches. (Displayed Value * 2 = CE Searched Value)
  • For example: If the game 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 value, lock it. Then spend the points to buy whatever you want. The in-game displayed value, not the locked variable, may appear to decrease while spending points. You should be able to still buy whatever you want. As long as the locked value is higher than the skill/modifier's cost.
  • It's better to build up enough CP (around 5) to cover any required upgrade before locking.
  • Be careful changing this value directly, 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 doubled. (Desired Value * 2 = Value to be Locked)
Infinite SP in Cheat Engine:
  • SP is a Double type variable.
  • For each in-game displayed SP box, when full, they will equal a value of 1 per box in cheat engine searches.
  • When you use a special skill in the game. The variable drops to 0 for the first box then slowly increase/scales back to equal a whole value of 1.
  • I've found searching for the value by the "increased, decreased method" with the once-in-while search of 1, while the box is full. To be the fastest approach. Once you unlock more visual SP boxes in the game, adjust your search values. Example: 3 full SP boxes = 3, etc...
  • SP like HP does like to change addresses every once in awhile but otherwise is pretty stable far as crashes go.
To modify CrossCode's .json files for EXP, credit, item drop rates, etc...

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.
  1. Open the "hedgehog.json" file in notepad or preferably notepad++.
  2. You can normally find this .json and other enemies .json files in the "...\steam\steamapps\common\CrossCode\assets\data\enemies" folder or wherever your steam library files are stored.
  3. 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 can easily be made readable and thereby editable.
  4. Open your browser and go to the site: http://www.jsoneditoronline.org/. This is a free simple barebone browser-base .json file editor.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. If you haven't already, go ahead and make any desired changes to the code.
  10. Save your updated .json file.
  • Once saved you should be able to see the changes in the game next time you kill the adjusted monster or at least after changing areas.
  • 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,
  "params": {
    "hp": 286,
    "attack": 30,
    "defense": 31,
    "focus": 26,
    "statusInflict": [
      1.25,
      1.25,
      1.25,
      1.25
    ]
  },
  "credit": 35,
  "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": .12,
      "min": 1,
      "max": 1,
      "rank": ""
    },
    {
      "item": "1",
      "prob": .12,
      "min": 1,
      "max": 1,
      "rank": "B"
    }
  ],
Notes
  • 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 will. While favoring whichever item is listed higher in the code for some reason. There are probably other settings that affect the drop rates, but I've only experimented a little with them.
  • Another thing of concern is don't set the ( "min": "max": ) 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 the 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.
  • 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 playing 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 you have modified.
  • 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 detect 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. 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.
Hopefully, this little guide will be of use as I myself wasted a lot of hours fighting with Cheat Engine and this game. Only to realize there were far easier and simpler methods to get my desired results. Also, like to give Iyeru credit as it was a post by him that inspired me to look into modifying the game's .json files.
Last edited by Rubien84 on Tue Mar 13, 2018 8:18 pm, edited 8 times in total.

avikdas99
Noobzor
Noobzor
Posts: 7
Joined: Fri Mar 03, 2017 4:06 am
Reputation: 0

Re: CrossCode: Cheating it the less aggravating way.

Post by avikdas99 » Tue Dec 26, 2017 6:32 pm

thanks

Post Reply