Ok I found the prestige xp address. Just search with "Value: Float" ingame. Prestige XP is the green crystal while blue crystal are the soulstones. Trying to find Prestige XP multiplier but no luck yet.
Edit: So I tried to add a xp multiplier for the prestige xp but it crashes whenever I kill an enemy.
Code: Select all
{ Game : Soulstone Survivors.exe
Version:
Date : 2022-11-10
This script does blah blah blah
}
define(address,"GameAssembly.dll"+242F60)
define(bytes,F3 0F 11 40 28)
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
assert(address,bytes)
alloc(newmem,$1000,"GameAssembly.dll"+242F60)
label(code)
label(return)
label(xpmul)
registerSymbol(xpmul)
newmem:
code:
mulss xmm0,[xpmul]
movss [rax+28],xmm0
xpmul:
dd (float)2
jmp return
address:
jmp newmem
return:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
address:
db bytes
// movss [rax+28],xmm0
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+242F60
GameAssembly.dll+242F33: 0F 84 6B 04 00 00 - je GameAssembly.dll+2433A4
GameAssembly.dll+242F39: 48 8B 80 70 02 00 00 - mov rax,[rax+00000270]
GameAssembly.dll+242F40: 48 85 C0 - test rax,rax
GameAssembly.dll+242F43: 0F 84 5B 04 00 00 - je GameAssembly.dll+2433A4
GameAssembly.dll+242F49: 48 8B 40 18 - mov rax,[rax+18]
GameAssembly.dll+242F4D: 48 85 C0 - test rax,rax
GameAssembly.dll+242F50: 0F 84 4E 04 00 00 - je GameAssembly.dll+2433A4
GameAssembly.dll+242F56: 0F 28 C6 - movaps xmm0,xmm6
GameAssembly.dll+242F59: FF C3 - inc ebx
GameAssembly.dll+242F5B: F3 0F 58 40 28 - addss xmm0,[rax+28]
// ---------- INJECTING HERE ----------
GameAssembly.dll+242F60: F3 0F 11 40 28 - movss [rax+28],xmm0
// ---------- DONE INJECTING ----------
GameAssembly.dll+242F65: E9 46 FF FF FF - jmp GameAssembly.dll+242EB0
GameAssembly.dll+242F6A: 48 8B 0D 07 80 20 01 - mov rcx,[GameAssembly.dll+144AF78]
GameAssembly.dll+242F71: 49 8B 55 20 - mov rdx,[r13+20]
GameAssembly.dll+242F75: 48 85 D2 - test rdx,rdx
GameAssembly.dll+242F78: 0F 84 5C 02 00 00 - je GameAssembly.dll+2431DA
GameAssembly.dll+242F7E: 44 39 7A 10 - cmp [rdx+10],r15d
GameAssembly.dll+242F82: 0F 8E FA 00 00 00 - jng GameAssembly.dll+243082
GameAssembly.dll+242F88: 45 84 F6 - test r14l,r14l
GameAssembly.dll+242F8B: 75 7B - jne GameAssembly.dll+243008
GameAssembly.dll+242F8D: F6 81 33 01 00 00 04 - test byte ptr [rcx+00000133],04
}
Can someone tell me what I did wrong? Still new to this stuff.
Edit2: It appears xmm6 stores the value of the prestige xp modifier which can be changed by adding more curses. Now I got to figure out how to change xmm6.
Edit3: Managed to change the XP multiplier.
Code: Select all
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"GameAssembly.dll"+242F56)
label(returnhere)
label(originalcode)
label(exit)
alloc(xpmulti,4,"GameAssembly.dll"+242F56)
xpmulti:
dd (float)2
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
movss xmm6,[xpmulti]
originalcode:
movaps xmm0,xmm6
inc ebx
exit:
jmp returnhere
"GameAssembly.dll"+242F56:
jmp newmem
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
dealloc(xpmulti)
"GameAssembly.dll"+242F56:
movaps xmm0,xmm6
inc ebx
//Alt: db 0F 28 C6 FF C3
Is there a better way to change the xp multiplier?
I added the .ct which includes both Prestige XP & XP Multiplier. To change the XP multiplier just open the script and edit "dd (float)2", so in this example we would have a 2x multiplier (or 200%). Edit4: Added a group header with adjustable values so no need to edit the script anymore.