Terraria 1.4 [Steam] [UPDATED]

Upload your cheat tables here (No requests)
claptonrul3z
Novice Cheater
Novice Cheater
Posts: 18
Joined: Fri May 22, 2020 6:02 pm
Reputation: 5

Terraria 1.4 [Steam] [UPDATED]

Post by claptonrul3z »

well my full brightness doesnt work anymore, i think the values changed

[URL unfurl="true"]http://prntscr.com/sui7km[/URL]

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1
Last edited by claptonrul3z on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

Archerodees
Expert Cheater
Expert Cheater
Posts: 79
Joined: Tue Apr 09, 2019 1:17 am
Reputation: 7

Terraria 1.4 [Steam] [UPDATED]

Post by Archerodees »

I never knew how much I'd miss the force effects options until you don't have them anymore lol. The No Knockback, and others, was essential if you haven't got that far for the accessory yet. Everything else works though, as well as the script for working social slots posted a few back.



Any eta on force effects? But many many thanks for the updates okami.

NinjaBlazin
Expert Cheater
Expert Cheater
Posts: 74
Joined: Sun Oct 15, 2017 12:25 am
Reputation: 4

Terraria 1.4 [Steam] [UPDATED]

Post by NinjaBlazin »

Is there a GoG version?

FOWARDROTARY
Noobzor
Noobzor
Posts: 6
Joined: Wed May 20, 2020 11:43 am
Reputation: 0

Terraria 1.4 [Steam] [UPDATED]

Post by FOWARDROTARY »

[QUOTE="NinjaBlazin, post: 138470, member: 9376"]

Is there a GoG version?

[/QUOTE]

I do believe it works with the GoG versions, haven't tried it tho, you can test it out

32greywolf
What is cheating?
What is cheating?
Posts: 1
Joined: Sun Jun 07, 2020 11:42 am
Reputation: 0

Terraria 1.4 [Steam] [UPDATED]

Post by 32greywolf »

In regards to functional social slots, I did see that on page 32 there was code for the functional social slots posted with a warning that the author only had an AMD CPU. Can confirm that the code still works with the updated table if that helps.



Update: I have an Intel CPU and it works with it.
Last edited by 32greywolf on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

wooteevar
Novice Cheater
Novice Cheater
Posts: 16
Joined: Sun Aug 19, 2018 1:51 am
Reputation: 1

Terraria 1.4 [Steam] [UPDATED]

Post by wooteevar »

[QUOTE="beguiler, post: 135696, member: 1350"]

Yeah the code I wrote is for AMD, but to make sure it's an intel/amd difference, first start Terraria then wait till the main menu is on the screen, then start CE and attach it to Terraria. From there try to run the script again. If you attach earlier than that I have run into issues of CE not finding it. You should be able to enable the script at the main menu. Then verify that it works and getting the data after loading your character.



If that doesn't work then there is probably a difference in the offset. So press memory view on the main CE window, there in the top part with all the code, right click and select go to address. In the box type "Terraria.Player::Update" (without quotes) and that will bring you to the beginning of the function. Now right click and go to address and type in "Terraria.Player::Update+F31E". That alignment will probably be wrong so scroll up till the code updates and kind of refreshes itself. From there scroll up or down to a line that is close to +F31E and find the line that matches the bytes:

[CODE]Terraria.Player::Update+F31E - 8B 80 90030000 - mov eax,[eax+00000390]

^__This will be different[/CODE]

Once you find that you can just change the code from

assert(Terraria.Player::Update+F31E" .... to assert(Terraria.Player::Update+XXXX .... where XXXX is the offset you found.

[/QUOTE]



I've been trying to understand this as best I can to update the TML table for the latest version but I can't seem to wrap my head around everything past "Terraria.Player::Update+F31E". This feels like the key to updating the older tables for the newer version at least from what I can read?

beguiler
Expert Cheater
Expert Cheater
Posts: 102
Joined: Sun Mar 19, 2017 1:31 pm
Reputation: 70

Terraria 1.4 [Steam] [UPDATED]

Post by beguiler »

wooteevar, post: 138636, member: 21189 wrote:
I've been trying to understand this as best I can to update the TML table for the latest version but I can't seem to wrap my head around everything past "Terraria.Player::Update+F31E". This feels like the key to updating the older tables for the newer version at least from what I can read?
Let me try to clear it up (I hope ;) ). Since you know that +F31E is for say Intel, then for AMD in this case that offset is wrong. Why it is wrong is as follows. Lets say the bytecode (that is the center column) for AMD is off by +2 bytes (this is only an example I made up). When you goto that address instead of going to 8b 80 90030000 (on an intel) it would be 2 bytes off so CE is disassembling and displaying 90 03 00 00 ... So the code being displayed is wrong. If you start looking for it at that moment then you won't find it because the displayed code is wrong. So before you start looking for it you have to make CE realign what it is displaying.



Nice thing about CE is that the disassembler will properly refresh and align the disassembly automatically if you just scroll up or down till the screen refreshes. So by scrolling up or down a page the code you see will correct itself. That is when you can manually scroll around and try to find the code by eye. If the difference is just an offset because of it running on AMD vs Intel you should find it in roughly the same area with this method. (note this can also work for GoG vs steam builds)



Updating older tables will probably be harder than this especially after sweeping changes that have happened to terraria in an update called journey's end :). You will probably have to find where they moved code especially if they joined, split or rewrote functions.
Last edited by beguiler on Wed Jul 01, 2020 1:09 am, edited 1 time in total.

Lethaius
Noobzor
Noobzor
Posts: 10
Joined: Sun Jul 29, 2018 11:33 pm
Reputation: 1

Terraria 1.4 [Steam] [UPDATED]

Post by Lethaius »

would it be possible to add a setting that triggers weather effects like sandstorms?

wooteevar
Novice Cheater
Novice Cheater
Posts: 16
Joined: Sun Aug 19, 2018 1:51 am
Reputation: 1

Terraria 1.4 [Steam] [UPDATED]

Post by wooteevar »

[QUOTE="beguiler, post: 138687, member: 1350"]

Let me try to clear it up (I hope ;) ). Since you know that +F31E is for say Intel, then for AMD in this case that offset is wrong. Why it is wrong is as follows. Lets say the bytecode (that is the center column) for AMD is off by +2 bytes (this is only an example I made up). When you goto that address instead of going to 8b 80 90030000 (on an intel) it would be 2 bytes off so CE is disassembling and displaying 90 03 00 00 ... So the code being displayed is wrong. If you start looking for it at that moment then you won't find it because the displayed code is wrong. So before you start looking for it you have to make CE realign what it is displaying.



Nice thing about CE is that the disassembler will properly refresh and align the disassembly automatically if you just scroll up or down till the screen refreshes. So by scrolling up or down a page the code you see will correct itself. That is when you can manually scroll around and try to find the code by eye. If the difference is just an offset because of it running on AMD vs Intel you should find it in roughly the same area with this method. (note this can also work for GoG vs steam builds)



Updating older tables will probably be harder than this especially after sweeping changes that have happened to terraria in an update called journey's end :). You will probably have to find where they moved code especially if they joined, split or rewrote functions.

[/QUOTE]



Your explanation is very helpful towards my understanding of what to do and is appreciated. So if I understand correctly all I would have to do is find the Terraria.Player::Update area and make CE refresh it by scrolling to get the new address in the memory viewer?



TModLoader is still on 1.3.5.3 with TModLoader being itself on version 11.7.3 or 11.7.4 right now and there haven't been any table updates for it that work yet. The last one Okami_x posted was for 11.6.2 and still has no collision and no death working but nothing else; likely because his scripts are for intel and I've got AMD, the updated version doesn't help anything in that regard.



It's probably not as complicated as I'm making it out to be but I'm totally new to this. Thanks again for your help!
Last edited by wooteevar on Mon Jun 08, 2020 1:34 am, edited 1 time in total.

beguiler
Expert Cheater
Expert Cheater
Posts: 102
Joined: Sun Mar 19, 2017 1:31 pm
Reputation: 70

Terraria 1.4 [Steam] [UPDATED]

Post by beguiler »

wooteevar, post: 138702, member: 21189 wrote:
Your explanation is very helpful towards my understanding of what to do and is appreciated. So if I understand correctly all I would have to do is find the Terraria.Player::Update area and make CE refresh it by scrolling to get the new address?
Yes. If you go to Terraria.Player::Update that will be the very beginning of the function and that will be aligned fine. The injection point for the example given was Terraria.Player::Update+F31E so that is quite far from the beginning of the function (think of the beginning function as Terraria.Player::Update+0000). So to get to it you have to scroll down to approximately +F31E from the top. That will take some time to scroll down to that location, so I was explaining a faster way to get there. Just goto Terraria.Player::Update+F31E that will put you close but it will be wrong because that offset doesn't align with the assembly code that was disassembled. So to correct it scroll up a bit CE will refresh, the code in the window will change as CE will realign the the disassembled code displayed, then from there look around and try and find the code you are looking for.



Practical Example:

Set Run Speed for 1.0.4.5 intel

Code: Select all

okami-x's code is looking for:

define(runAccel,Terraria.Player::Update+572E)

define(runAccelAddr,D9 98 38 04 00 00)



On my copy GoG AMD version:

I goto "Terraria.Player::Update+572E" and I get this



Terraria.Player::Update+572E - 04 00                 - add al,00

Terraria.Player::Update+5730 - 00 8B 8D68F6FF        - add [ebx-00099773],cl

Terraria.Player::Update+5736 - FF                    - db -01



That is wrong +572E isn't aligned properly. So I scroll up a bit and CE realigns and I get:



Terraria.Player::Update+571F - 8B 85 68F6FFFF        - mov eax,[ebp-00000998]

Terraria.Player::Update+5725 - D8 88 2C040000        - fmul dword ptr [eax+0000042C]

Terraria.Player::Update+572B - D9 98 2C040000        - fstp dword ptr [eax+0000042C]



I am looking for D9 98 38 04 but I don't see it. Here steam and GoG differ and so does

Intel/AMD probably. But I am close with +572B, so that is probably what I want.



To fix the code for my copy I'd have to the change the code above to:

define(runAccel,Terraria.Player::Update+572B)

define(runAccelAddr,D9 98 2C 04 00 00)
Last edited by beguiler on Wed Jul 01, 2020 1:09 am, edited 1 time in total.

wooteevar
Novice Cheater
Novice Cheater
Posts: 16
Joined: Sun Aug 19, 2018 1:51 am
Reputation: 1

Terraria 1.4 [Steam] [UPDATED]

Post by wooteevar »

Wow okay that's a really good breakdown. I'm gonna try my best to process that and understand the meanings of the stuff on the right and how it targeted to the new addresses. I'm on the game right now trying to understand it as you responded. Thank you!



*Edit 1*

The little red arrows indicate where a code has moved to? Looking at Craft Anything for example:

[code]

define(recipe2, Terraria.Recipe::FindRecipes+7E)

define(recipe3, Terraria.Recipe::FindRecipes+8F)

[/code]



Terraria.Recipe::FindRecipes+7E shows arrows going to +61 instead of +7E so would that simply mean I would have to change that target in the script from 7E to 61 at that address?



*Edit 2*

[code]

define(recipe3, Terraria.Recipe::FindRecipes+8F)

33 D2

[/code]

This address appears closest to +80 also pointing to 33 D2; that should be +80 for the recipe3 definition?



*Edit 3*

I'm able to change the script enough to get it to actually fill in the box but it's still targeting what I assume are the incorrect addresses from 11.6.2 that I now need to update for 11.7.4.



*Edit 4*

It's not what I thought it was but I'm using what I've figured out and I think I'm getting closer hopefully.



*Edit 5*

Decided to try something a little closer to where I should be. I saw user [USER=21400]@Amcom[/USER] contributed an 11.6.2 table for AMD.

[code]

define(recipe3, Terraria.Recipe::FindRecipes+91)

[/code]

This address does not have a target of 7E 3F like the script originally calls for.

I think I might also need to be doing something else for the recipe arrays referencing mov ecx,edx and the like but it might be above what I know right now. I'm still working at it though.



*Edit 6*

No I think I need more help to really figure this out. I can get the scripts to complete but there's more that I don't understand. I can edit and correct and point to better values but I seem to struggle with identifying new values in updated versions. Like why does the opcode reference a different thing in green?

In the 11.6.2 TML table for crafting anything FindRecipes+91 now has 0F8E 41020000 as the bytes and FindRecipes+2D8 in the opcode.

When I change the bytes for (recipe3, 7e 3f) to (recipe3, 0F 8E 41 02 00 00) the script then completes as it's finding the right bytes but the code obviously doesn't work.

Lower in the code for recipe3 it has jmp Terraria.Recipe:FindRecipes+CD; do I then need to change this to the +2D8 it referenced in the above opcode?
Last edited by wooteevar on Mon Jun 08, 2020 3:09 am, edited 7 times in total.

User avatar
Dorodomorodo
Cheater
Cheater
Posts: 31
Joined: Thu Jun 15, 2017 3:26 pm
Reputation: 4

Terraria 1.4 [Steam] [UPDATED]

Post by Dorodomorodo »

[QUOTE="Rudo, post: 6978, member: 2048"]

Hello guys, I recently got some free time to work on some new features for the cheat table. The updated version 2.0 of the table has been uploaded (download link in the first post)



New features included:

- [S]Disable Mob Damage: Mobs are not able to hit you at all, they can only follow you around.[/S]

- [S]Defense Rating Modify Set your defense rating here, the default defense rating I used is 100, but you can it to your desire[/S]

- [S]Allow Stacked Accessories: as the name said.[/S]

- [B]Functional Social Slots: social slots will be functional and will give you all their benefits.[/B]

- [S]Extra Move Speed: this one is just an extra feature. I always have problem with new character as they move around so slowly and you kinda forced to find the hermes boots so this script will help you move around the map faster.

I also added some more variables to the player array: max health, max mana, ect.[/S]



Have fun.

[/QUOTE]



Can this be added to the table?
Last edited by Dorodomorodo on Thu Jan 01, 1970 12:00 am, edited 1 time in total.

User avatar
Kurina
Cheater
Cheater
Posts: 32
Joined: Mon Jun 26, 2017 2:30 am
Reputation: 40

Terraria 1.4 [Steam] [UPDATED]

Post by Kurina »

Dorodomorodo, post: 138729, member: 6549 wrote:
Can this be added to the table?


With "this" you mean Functional Social Slots?

If yes, there's already a table with it

I'll post it anyway, and a new script that will be very helpfull, so, to merge both tables, just open both and then copy/paste the scrips into the table you want to keep



Funcinal Social Slots and Allow Non-Vanity Accessories into Social Slots ( Like old times c,c )
Attachments
Social Slots + Vanity Slots.CT
(2.16 KiB) Downloaded 44 times

Logitech23
What is cheating?
What is cheating?
Posts: 1
Joined: Mon Jun 08, 2020 11:39 am
Reputation: 0

Terraria 1.4 [Steam] [UPDATED]

Post by Logitech23 »

Please post fullbright for version 1.4.0.5

beguiler
Expert Cheater
Expert Cheater
Posts: 102
Joined: Sun Mar 19, 2017 1:31 pm
Reputation: 70

Terraria 1.4 [Steam] [UPDATED]

Post by beguiler »

wooteevar, post: 138719, member: 21189 wrote:

I think your main issue is you are kind of just plugging in without trying to understand the underlying code. I am not sure what old table you are using or the version of the game you are running so I will do this "craft anything" from okami-x's table 1.4.0.5 Intel (steam). I am running 1.4.0.4 AMD GoG so there will be differences (just lazy to patch it to the latest).

The most important thing for you are the assert bytes. Those are what the script checks to see if the code it wants to replace is present. The define parts are the location it expects that data to be.

In this particular case some of the offsets do match while others will be different. I first notice the offsets are pretty close the the beginning of the function, so all that I said before about aligning is really not necessary. Now just goto Terraria.Recipe::FindRecipes with no offset. Then scroll down manually to the first one +8D and get :

Code: Select all

Terraria.Recipe::FindRecipes+87 - 0F83 B50C0000         - jae Terraria.Recipe::FindRecipes+D42

Terraria.Recipe::FindRecipes+8D - 33 C9                 - xor ecx,ecx

Terraria.Recipe::FindRecipes+8F - 89 4C 90 08           - mov [eax+edx*4+08],ecx

That is exactly what I needed recipe1 is looking for 33 C9 at location +8D so I don't need to change a thing here. So we move to the next one so it is looking for +9C so I scroll down some more and I get this:

Code: Select all

Terraria.Recipe::FindRecipes+96 - 3B 15 1C094706        - cmp edx,[0647091C]

Terraria.Recipe::FindRecipes+9C - 7C E1                 - jl Terraria.Recipe::FindRecipes+7F

Terraria.Recipe::FindRecipes+9E - 33 D2                 - xor edx,edx

Terraria.Recipe::FindRecipes+A0 - 89 15 1C0E4706        - mov [06470E1C],edx

I am looking for 33 D2 at +9C but it's not there. But it appears right below it at +9E so I have to change the define to be Terraria.Recipe::FindRecipes+9E to fix it. That takes care of recipe2. So next recipe3 is somewhere around +B0 so I scroll down some more and I get:

Code: Select all

Terraria.Recipe::FindRecipes+AB - 83 B8 90000000 00     - cmp dword ptr [eax+00000090],00

Terraria.Recipe::FindRecipes+B2 - 0F8E 7E000000         - jng Terraria.Recipe::FindRecipes+136

Terraria.Recipe::FindRecipes+B8 - A1 AC5CDB04           - mov eax,[04DB5CAC]

Terraria.Recipe::FindRecipes+BD - 83 B8 A4000000 00     - cmp dword ptr [eax+000000A4],00

So +B0 doesn't exist. So I have to change the define here. I look for the code it's looking for in the assert 0F 8E 7E 00 00 00 and I find it at +B2. That means I change the define to Terraria.Recipe::FindRecipes+B2 and if you assume we are done you are wrong, we are not. Now you have to go through the actual changes for each recipe especially for offsets, function calls, and jumps.



recipe1 - only changes a xor to a move between registers so that's fine.

recipe2 - just nops the xor of 2 registers so that's fine

recipe3 - changes a jump not greater than to a jump to another area of find recipes so we have to find and check that part of the code. This can be difficult to do since we have no assert clues to help us. okami-x's code wants to go to +12F but that doesn't exist for me. I get this:

Code: Select all

Terraria.Recipe::FindRecipes+129 - 85 C0                 - test eax,eax

Terraria.Recipe::FindRecipes+12B - 0F94 C0               - sete al

Terraria.Recipe::FindRecipes+12E - 0FB6 C0               - movzx eax,al

Terraria.Recipe::FindRecipes+131 - 89 45 90              - mov [ebp-70],eax

So where do we need to go? To really get the answer we should really figure out what is going on but in this particular case we can make an educated guess. Recipe2 was +2 bytes away from where we needed to go. Similarly Recipe3 wanted +B0 but we found it at +B2 so it seems as if what we want is usually about +2 bytes away. Does that exist in this case? Yes it does. 12F + 2 (hex addition) = 131. So does +131 exist it does. So giving that a try we change:

Code: Select all

recipe3:

jmp Terraria.Recipe::FindRecipes+12F

To:

Code: Select all

recipe3:

jmp Terraria.Recipe::FindRecipes+131
You also have to double check the disable code and make sure they match the assert bytes. This is critical to do if you had to change the assert bytes due to a memory location change or a jump offset change. We didn't in this case so we are done.
Last edited by beguiler on Wed Jul 01, 2020 1:10 am, edited 3 times in total.

Post Reply

Who is online

Users browsing this forum: admantx, anewsmsng, briari2, chrisreddot3, kvm1kaze, Majestic-12 [Bot]