I created my own table with some pretty basic values for y'all to take advantage of. I also added in the dissected structure of PlayerData (for which I provided the address in the table), which is where most of the actually useful malleable values are taken from. I encourage you to look into that structure and manipulate values yourself, should you be looking for more than has been offered already.
May you please be able to update your table? TY
How to use this cheat table?
Install Cheat Engine
Double-click the .CT file in order to open it.
Click the PC icon in Cheat Engine in order to select the game process.
Keep the list.
Activate the trainer options by checking boxes or setting values from 0 to 1
I created my own table with some pretty basic values for y'all to take advantage of. I also added in the dissected structure of PlayerData (for which I provided the address in the table), which is where most of the actually useful malleable values are taken from. I encourage you to look into that structure and manipulate values yourself, should you be looking for more than has been offered already.
I've been looking for a table for this game for hours, but I finally decided to create one myself, sorry if the table is messy and short, it's my first ever table but it does the job.
Not everything is included, so hopefully I'll update it later today.
(Souls may not work, I've only got it working twice then game crashed and I edited the table and it stopped working, maybe someone else could find a fix).
edit: I added a few more cheats to the table
- Worm Larva
- Worms
- Milk
- Residue
- Cows
- Master
- Exquisite
- Mystic
- Obsidian
I created my own table with some pretty basic values for y'all to take advantage of. I also added in the dissected structure of PlayerData (for which I provided the address in the table), which is where most of the actually useful malleable values are taken from. I encourage you to look into that structure and manipulate values yourself, should you be looking for more than has been offered already.
How did you get the dissected structure for PlayerData?
A major update is coming for this game very soon, so it would be nice to know how you did it.
I hope the people who downloaded my table have not said anything because it worked fine for them.
It sadly does not work for AMD. Some of it does, but there is a lot to be desired.
If you let me know how you did it, I can see about creating it for AMD.
I hope the people who downloaded my table have not said anything because it worked fine for them.
It sadly does not work for AMD. Some of it does, but there is a lot to be desired.
If you let me know how you did it, I can see about creating it for AMD.
Just as I thought, it does not work for AMD, huh....
You need to activate mono features and use the dissect mono feature to get the structure for player data.
You can then find the base address for the instance of that structure and use the pointer scanner.
It is easier to do if you have a C#/.Net decompiler like ILSpy and know how to read code.
You can look at the file called Assembly-CSharp.dll at the directory Farmer Against Potatoes Idle\Farmer Against Potatoes Idle_Data\Managed for the details of the structure.
And oh great, the update today broke some of the table again. Damn it.
Fixed my table for Intel.
Edit: Fixed it again. So many updates~
I hope the people who downloaded my table have not said anything because it worked fine for them.
It sadly does not work for AMD. Some of it does, but there is a lot to be desired.
If you let me know how you did it, I can see about creating it for AMD.
You need to activate mono features and use the dissect mono feature to get the structure for player data.
You can then find the base address for the instance of that structure and use the pointer scanner.
I don't explain an ELI5, but this is the first time I'm attempting to build a table like this, so I have some questions.
I did my search in mono and found that Player Stats has the base address of 14a1b300. When I plug that into the Pointer Scan, I can see that the offset should 310, but it doesn't seem to work like other fields do. Is there just some fields that aren't possible to freeze?
I did my search in mono and found that Player Stats has the base address of 14a1b300. When I plug that into the Pointer Scan, I can see that the offset should 310, but it doesn't seem to work like other fields do. Is there just some fields that aren't possible to freeze?
First, recognize that dissect mono often does not provide accurate adresses. What it will allow you to do is dissect the structure of PlayerData (right click PlayerData then dissect structure). From there, you can find some other value that is actually easy to find, such as number of potatoes. Once you find the address for potatoes, you can subtract the offset for CurrentPotatoes (or whatever it happens to be) in your dissected structure to find the address of PlayerData.
Once you have the address for PlayerData you can do some pointer scanning (of course, you should be ensuring you have multiple pointermaps so that your pointer scan will yield useful information). Alternatively, you could just repeat the process I explained above if you don't care enough to pointer scan.
There seems to be quite a bit of interest regarding how to actually find values, so I'll better explain the relevant details.
As all other Unity games, once you have dissected Mono, the only things of any consequence are located in the Assembly-CSharp library. PlayerData can likewise be found there, and then you can simply dissect its structure. I explained in the post above how to go about finding the actual address for PlayerData to plug in to that structure, so I won't go over it again. Once you have that accomplished, most of the game is opened up to you. If you have mono features enabled, Cheat Engine should be able to dissect most other structures within PlayerData by itself (ie. PetCollection or any other structures hidden behind pointers). I do find it important to inform you, however, that Cheat Engine has some issues with dissecting structures such as RefineMaterials: it will enumerate the elements of the array "items_" as pointers to doubles, rather than doubles themselves, which is inaccurate. So, exercise your critical thinking skills.
Thank you for the excellent breakdown! It helped a lot in finding some other addresses that I was looking for, like Wreck Points and Reincarnation Points.