Useful Cheat Engine Scripts / Templates
Posted: Sat May 02, 2020 2:00 am
This is more for myself, but feel free to use these to your liking. I've been using those methods in many games.
FIND ADDRESS with CMP and JNE (Compare registers - needed when instruction accesses / writes more than 1 address)
FIND ADDRESS (Multiple registers using LEA)
can be used in games where address you looking for, is a combination of 2 registers instead of 1 register + 1 offset
FIND ADDRESS
SPEED BOOST / TELEPORT Lua Script
enter into lua script + execute
you can create multiple hotkeys using this method, look up the VK (virtual keyboard) codes on google to replace hotkeys. Make sure to enter correct address and offset.
_speedz = your custom address which you must first allocate and create.
TIMER to UPDATE VALUES - such as instant filling Nitros in racing game when it falls under certain amount
enter into lua script + execute.
_nos = your custom address, defined in the cheat table.
AoB SWAP (swaps HEX strings with another HEX string - replaces all, can take long time)
enter as script
FIND ADDRESS with CMP and JNE (Compare registers - needed when instruction accesses / writes more than 1 address)
Code: Select all
cmp R11,800 // Looks up value of R11 register and checks if it's 800 or not.
jne originalcode // if R11 is not 800 then skip this
mov rax,_money
mov [rax],rdx
originalcode:
mov eax,[rdx+28] // where RDX+28 holds the address that holds the value of money (or whatever you need)
mov [rcx],00000001
jmp return
Code: Select all
push rbx
lea rbx,[r10+rax] // reads value of r10 + rax and outputs as 1
mov [_speedz],rbx
pop rbx
movups [r10+rax],xmm0
jmp return
FIND ADDRESS
Code: Select all
push rbx
mov rbx,_customaddress //this is your custom address
mov [rbx],rax
pop rbx
movss xmm0,[rax+000002C4] // rax + 2C4 is the address you are looking for
jmp return
SPEED BOOST / TELEPORT Lua Script
enter into lua script + execute
Code: Select all
function SpeedHack1()
boost = 1.2
if (readBytes('[_speedz]') ~= nil) then
writeFloat ('[_speedz]+0', readFloat('[_speedz]+0')*boost)
writeFloat ('[_speedz]+8', readFloat('[_speedz]+8')*boost)
end
end
createHotkey(SpeedHack1, VK_UP)
function SpeedHack2()
boost = 0.5
if (readBytes('[_speedz]') ~= nil) then
writeFloat ('[_speedz]+0', readFloat('[_speedz]+0')*boost)
writeFloat ('[_speedz]+8', readFloat('[_speedz]+8')*boost)
end
end
createHotkey(SpeedHack2, VK_DOWN)
function SpeedHack3()
boost = 2.0
if (readBytes('[_speedz]') ~= nil) then
writeFloat ('[_speedz]+0', readFloat('[_speedz]+0')*boost)
writeFloat ('[_speedz]+8', readFloat('[_speedz]+8')*boost)
end
end
createHotkey(SpeedHack3, VK_RSHIFT)
_speedz = your custom address which you must first allocate and create.
TIMER to UPDATE VALUES - such as instant filling Nitros in racing game when it falls under certain amount
enter into lua script + execute.
Code: Select all
function doCheck(sender)
if freeze or (readFloat('[_nos]+41C')<=0.9) then
writeFloat('[_nos]+41C', 1);
end
end
freeze=false
t=createTimer(nil)
timer_onTimer(t, doCheck)
timer_setInterval(t, 50)
AoB SWAP (swaps HEX strings with another HEX string - replaces all, can take long time)
enter as script
Code: Select all
[ENABLE]
LuaCall(Aobswap("01 02 03 04","0A 0B 0C 0D"))
[DISABLE]
LuaCall(Aobswap("0A 0B 0C 0D","01 02 03 04"))