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!
User avatar
Rubien84
What is cheating?
What is cheating?
Posts: 3
Joined: Sat Nov 18, 2017 4:02 pm
Reputation: 12

CrossCode

Post by Rubien84 »

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 the game's .json files directly, overusing Cheat Engine for the most part. Except for in the cases of infinite HP and SP. With CP being possible but somewhat hit or miss from my experience.

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:
  1. Change your search type to "double" and enter your current HP value.
  2. 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.
  3. Repeat a few times and it should whittle down the list to one address fast. If you have the correct process selected.
  4. Lock the address and set its value to "999" or whatever.
  5. 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.
Infinite CP(s) for the Elemental Circuit Skill Trees using Cheat Engine:

*** 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]
Infinite SP in Cheat Engine:
  • 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 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 the 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 code can easily be made readable and thereby editable.
  4. 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.
  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.
Notes:
  • 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).
UNEDITED 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"},  
 .........
 ......... 

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"
    },
  .........
  .........
Additional 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 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.
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 Sun Sep 23, 2018 7:19 pm, edited 22 times in total.

avikdas99
Noobzor
Noobzor
Posts: 11
Joined: Fri Mar 03, 2017 4:06 am
Reputation: 6

Re: CrossCode: Cheating it the less aggravating way.

Post by avikdas99 »

thanks

gicel
What is cheating?
What is cheating?
Posts: 3
Joined: Mon Jul 02, 2018 10:35 pm
Reputation: 0

CrossCode

Post by gicel »

Unsure if the CP one works just like that. I've been trying it for a while now, started with about 8 CP (searched as 16), gained 3 levels so 11 CP (searched as 22), spent some, still can't get it. Got HP and SP though, just not CP.

Cor Blimey
Cheater
Cheater
Posts: 30
Joined: Thu Jul 05, 2018 8:09 am
Reputation: 3

Re: CrossCode

Post by Cor Blimey »

Oog.

You're right, I had lots of trouble opening by window. Weird search returns.

I finally got my credits edited. Open by process, there's multiple processes. 4 bytes, and search for double the amount you actually see. Somehow it didn't work at first, but eventually did? Maybe fiddle with memory scan options, it definitely does weird things.

It's probably the bottom entry in the "crosscode-beta.exe" list.

And if you find 3 values while searching for double your credits, you probably have it. Change the single value, there should be a pair that are near each other, and higher in the memory than the single, that SHOULD do it.

I'd recommend starting at 9 million (well, 18 million internally) to minimize possible weird display errors.

Laice
Noobzor
Noobzor
Posts: 8
Joined: Sun Mar 12, 2017 11:45 am
Reputation: 0

Re: CrossCode

Post by Laice »

anyway to increasse the time limit in the monk quest?
nevermind found it.

User avatar
Rubien84
What is cheating?
What is cheating?
Posts: 3
Joined: Sat Nov 18, 2017 4:02 pm
Reputation: 12

Re: CrossCode

Post by Rubien84 »

Cor Blimey wrote:
Sat Sep 22, 2018 3:26 am
Oog.

You're right, I had lots of trouble opening by window. Weird search returns.

I finally got my credits edited. Open by process, there's multiple processes. 4 bytes, and search for double the amount you actually see. Somehow it didn't work at first, but eventually did? Maybe fiddle with memory scan options, it definitely does weird things.

It's probably the bottom entry in the "crosscode-beta.exe" list.

And if you find 3 values while searching for double your credits, you probably have it. Change the single value, there should be a pair that are near each other, and higher in the memory than the single, that SHOULD do it.

I'd recommend starting at 9 million (well, 18 million internally) to minimize possible weird display errors.
Thank you, Cor Blimey, for taking the time to add your method of getting additional credits using CE. I personally never added CE credits to my guide originally because while I did find the method you mention. I personally keep having issues with the game crashing anytime I changed my current credit value. Also, the weird results you mention also were a bit of concern. Plus, I personally also found it to be easier and more stable to change an enemy's .json file to cause the creature to drop an extra large sum of credits. Then kill a few of them in the game to get the desired effect.

With this being said, I did originally write this guide quite a few early access patches ago. So based on what you wrote, it does seem the crashing issue I was having might not be so much of a problem anymore. Making your approach a possibly more viable option.

mrod
What is cheating?
What is cheating?
Posts: 4
Joined: Mon Mar 05, 2018 9:07 am
Reputation: 0

Re: CrossCode

Post by mrod »

i am have trouble use your methods i am playing a gog version is that why?

gudarks
What is cheating?
What is cheating?
Posts: 1
Joined: Fri Sep 28, 2018 1:56 pm
Reputation: 0

Re: CrossCode

Post by gudarks »

Laice wrote:
Sun Sep 23, 2018 11:14 am
anyway to increasse the time limit in the monk quest?
nevermind found it.
What the name of the file? i can't find it =\

der_bayer36
Noobzor
Noobzor
Posts: 6
Joined: Fri Sep 28, 2018 2:56 pm
Reputation: 0

Re: CrossCode

Post by der_bayer36 »

How do I get unlimited amount of "Circuit Override" or any other Item?

Laice
Noobzor
Noobzor
Posts: 8
Joined: Sun Mar 12, 2017 11:45 am
Reputation: 0

Re: CrossCode

Post by Laice »

gudarks wrote:
Fri Sep 28, 2018 1:57 pm
Laice wrote:
Sun Sep 23, 2018 11:14 am
anyway to increasse the time limit in the monk quest?
nevermind found it.
What the name of the file? i can't find it =\
i already foudn it, its in bergen/special. just edit the jsons in one point it checks for the time in seconds just increase that number.

Killergoonie
Noobzor
Noobzor
Posts: 14
Joined: Mon Apr 17, 2017 1:03 am
Reputation: 1

Re: CrossCode

Post by Killergoonie »

I'm actually wondering but is there any way to change the drop rates on the plants. I don't mind farming enemies since that gives EXP but Plants i just don't want to deal with.

..::Executioner::..
What is cheating?
What is cheating?
Posts: 1
Joined: Wed Oct 10, 2018 4:16 pm
Reputation: 0

Re: CrossCode

Post by ..::Executioner::.. »

Rubien84 wrote:
Sat Nov 18, 2017 8:21 pm
...
Hey,
I was wondering if you would be able to help me slow the ball speed down during the final puzzle to make it easier. I can only make it half way through that puzzle because of my reaction time :( I'll include screenshots to show you where I am.

[Link]

I hope the SS's help

TimFun13
Expert Cheater
Expert Cheater
Posts: 1354
Joined: Fri Mar 03, 2017 12:31 am
Reputation: 6

Re: CrossCode

Post by TimFun13 »

..::Executioner::.. wrote:
Wed Oct 10, 2018 4:23 pm
...
I edited your post, but in the future please only quote what is relevant to your post, and don't quote whole posts that are that large.

Test Subject
Noobzor
Noobzor
Posts: 6
Joined: Fri Feb 16, 2018 5:10 am
Reputation: 0

Re: CrossCode

Post by Test Subject »

I need the higher chance of item drops. 1.0.0-10 rn pls.
I'm bored of farming myself 1 by 1.
Or some of item Spawner, that would be cool :ph34r: .

alaraz_teklaus
What is cheating?
What is cheating?
Posts: 1
Joined: Mon Dec 03, 2018 6:14 am
Reputation: 1

Re: CrossCode

Post by alaraz_teklaus »

Long time lurker here. Thought I'd join and contribute as I love this game.

Using CE on this game is very finicky and can cause crashes very easily. Editing the .json files is very easy and gets the job done.

For a few quick tips:
- Change the rank values of the itemDrops section to "" so the items will drop in any Rank, not just the one listed ie: "rank": ""
- Change drop "prob" to 1 for each item the mob can drop. (you can also add item codes here to any creature. Values are in another file)

- All the quest data is in the database.json. Here you can modify the rewards! Yes, that means you can give yourself CP!

For instance in the "rewards" section for whatever quest you want to modify, add this right after the exp reward:

Code: Select all

   "cp": {
            "amount": 25,
            "element": "ALL"
          },
This will give you 25 cp to add to the Base skill tree. I'm not sure if "ALL" will propagate to the outlying element trees.

But to get CP for those, you can do this:

Code: Select all

   "cp": {
            "amount": 25,
            "element": "ALL_ELEMENTS"
          },
Now for my favorite modificaiton. Changing the drop rates of those silly plants!!! :)

Open global-settings.json and do a find/replace in your favorite text editor. If you aren't comfortable using regex or searchs, it's easily done one at a time.....but it can be very tedious.

Find: "prob": 0.* (* being the wildcard depending on your editor and format you use)

Replace with: "prob": 0.3


Why 0.3 and not 1? Because in this file it will always stop at the first item the dice hit 'true'. If it's 100% on the first one in the list, the others will never drop. I even use 0.2 for some of my areas depending on how many possible drops.

IE: this is my Autumn-Ground-1

Code: Select all

        "Autumn-Ground-1": {
          "desType": "Autumn-Ground-1",
          "items": [
            {
              "id": "91",
              "prob": 0.2
            },
            {
              "id": "92",
              "prob": 0.2
            },
            {
              "id": "95",
              "prob": 0.2
            },
            {
                "id": "96",
                "prob": 0.2
              },
              {
                "id": "94",
                "prob": 0.2
              }
              

We can also make the drops even more forgiving by adding the rare drops to the common plants. The zones usually have 3 different types of settings for destructable plants. Let's call them 1, 2, and rare. 1 is the most common type of plant, 2 is uncommon, and special is rare. Common drops will come from 1, uncommon and common drops will come from 2, and rare drops from rare.


For instance these are Autumn's areas:

Autumn-Ground-1

Autumn-Ground-2

Autumn-Ground-rare


Copy the item information from Autumn-Ground-rare and paste it under the items for Autumn-Ground-1 and voila you will get rares from the common plant.


Also, you can change rarity designation, item stats in the item-database.json. I even added a few of my own items. Ragnarok and Aerith's Revenge just had to be in the game, ya know? :)

Post Reply

Who is online

Users browsing this forum: No registered users