Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


How to detect address change on a table record using AA scri

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
E_R_A#@910
How do I cheat?
Reputation: 0

Joined: 07 Aug 2026
Posts: 2

PostPosted: Sat Aug 08, 2026 12:07 am    Post subject: How to detect address change on a table record using AA scri Reply with quote

Sorry for the newbie question, and for duplicate topic if there is already one.

I want to ask, how can i detect an address change on a table record using purely AA script if its possible ?

Let's say, i have an table record called Skill Points.

I binded its address using AA script and register for global use using registersymbol, then i defined a table record below this AA script with its address set to the label specified by registersymbol in the aforementioned AA script.

Then, at some point the address at Skill Points changes, either automatically or manually ( its address is dynamic by the way. )

I want to have the AA script immediately refresh and re-register the address whenever the address at Skill Points changes, so that the table record(s) below the AA script immediately reflect the address change on Skill Points.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 475

Joined: 09 May 2003
Posts: 25985
Location: The netherlands

PostPosted: Sat Aug 08, 2026 3:12 am    Post subject: Reply with quote

pointers sound like what you're referring to. Those change when the address changes

So use the AA script to allocate a pointer and register that symbol, and then use the hook to write the current address to that address.

then in your table you can refer to the registered address as the pointer. E.g tick pointer and fill in the name of the registered symbol. When the value changes, it updated the pointer

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
ParkourPenguin
I post too much
Reputation: 155

Joined: 06 Jul 2014
Posts: 4775

PostPosted: Sat Aug 08, 2026 12:13 pm    Post subject: Reply with quote

Are you copying the value itself or the address of the value?
If the instruction `mov [rsi+3C],eax` writes to the address you want, you should copy `rsi` into some 8-byte memory space that the script allocated, not eax. Add a new memory record to the cheat table, check the "pointer" checkbox, base address at the bottom is the name of the registered symbol (no square brackets around it), and the only offset is the offset the game uses to access the address you want (e.g. 3C in the previous example).

If that doesn't work, then maybe the game doesn't execute the injection point that often.

The assembly code you inject doesn't run on its own when you enable the script. That code gets executed when the game was suppose to execute the original code at the injection point. e.g. if the injection point is run when you press a button, you'll have to press that button to run your injected code when the script is enabled.

If you want your code to run more often, find a different injection point that's run more often. "Find out what instructions access this address" will give you more options to choose from- pick one that seems to run often and doesn't access other addresses (such instructions are often annoying to filter- see step 10 of the tutorial).

You don't even have to inject at the address you want. Any address in the same structure will do- just use the offset you want in the memory record. A pointer to the structure could also work- the pointer doesn't have to be static since you're using code injection to get it. Just be aware that the pointer might not be valid all the time.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
E_R_A#@910
How do I cheat?
Reputation: 0

Joined: 07 Aug 2026
Posts: 2

PostPosted: Sat Aug 08, 2026 4:02 pm    Post subject: Reply with quote

[quote="Dark Byte"] So use the AA script to allocate a pointer and register that symbol, and then use the hook to write the current address to that address. [/quote]

About that, can you guide on where to look in this forum ?

-------------------------------------------------------------------

[quote="ParkourPenguin"] Are you copying the value itself or the address of the value?
If the instruction `mov [rsi+3C],eax` writes to the address you want, you should copy `rsi` into some 8-byte memory space that the script allocated, not eax. Add a new memory record to the cheat table, check the "pointer" checkbox, base address at the bottom is the name of the registered symbol (no square brackets around it), and the only offset is the offset the game uses to access the address you want (e.g. 3C in the previous example).

If that doesn't work, then maybe the game doesn't execute the injection point that often.

The assembly code you inject doesn't run on its own when you enable the script. That code gets executed when the game was suppose to execute the original code at the injection point. e.g. if the injection point is run when you press a button, you'll have to press that button to run your injected code when the script is enabled.

If you want your code to run more often, find a different injection point that's run more often. "Find out what instructions access this address" will give you more options to choose from- pick one that seems to run often and doesn't access other addresses (such instructions are often annoying to filter- see step 10 of the tutorial).

You don't even have to inject at the address you want. Any address in the same structure will do- just use the offset you want in the memory record. A pointer to the structure could also work- the pointer doesn't have to be static since you're using code injection to get it. Just be aware that the pointer might not be valid all the time. [/quote]

Only the address as base using AA script, then table record(s) below the AA script is used for changing values.

I've attached the picture about what i'm talking about in this post.

The Addresses used as base ( highlighted in green on picture ) are changing whenever the game restarts.



Clipboard_08-09-2026_01.jpg
 Description:
 Filesize:  227.44 KB
 Viewed:  403 Time(s)

Clipboard_08-09-2026_01.jpg


Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites