Re: Last Epoch
Posted: Wed Feb 28, 2024 8:16 pm
"Max Affix Rolls for others" Doesn't it work for everyone or is it just my problem?
Community Cheat Tables of Cheat Engine
https://fearlessrevolution.com/
Great job. Looking forward for more of your tables .
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>567</ID>
<Description>"Max Affix Rolls for Others"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Last Epoch.exe
Version:
Date : 2024-02-28
Author : SanitKa
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJMAXAFFX,GameAssembly.dll,80 3D 8F 6B C4 04 00) // should be unique
INJMAXAFFX:
// movzx ebx,r9b
xor ebx,ebx
dec bl
cmp byte ptr [GameAssembly.dll+5B3C94A],00
registersymbol(INJMAXAFFX)
[DISABLE]
INJMAXAFFX:
db 80 3D 8F 6B C4 04 00 41 0F B6 D9
unregistersymbol(*)
{
ItemAffix..ctor
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+EF5DB4
GameAssembly.dll+EF5D9B: CC - int 3
GameAssembly.dll+EF5D9C: CC - int 3
GameAssembly.dll+EF5D9D: CC - int 3
GameAssembly.dll+EF5D9E: CC - int 3
GameAssembly.dll+EF5D9F: CC - int 3
ItemAffix..ctor: 48 89 5C 24 10 - mov [rsp+10],rbx
GameAssembly.dll+EF5DA5: 48 89 6C 24 18 - mov [rsp+18],rbp
GameAssembly.dll+EF5DAA: 48 89 74 24 20 - mov [rsp+20],rsi
GameAssembly.dll+EF5DAF: 57 - push rdi
GameAssembly.dll+EF5DB0: 48 83 EC 30 - sub rsp,30
// ---------- INJECTING HERE ----------
GameAssembly.dll+EF5DB4: 80 3D 8F 6B C4 04 00 - cmp byte ptr [GameAssembly.dll+5B3C94A],00
// ---------- DONE INJECTING ----------
GameAssembly.dll+EF5DBB: 41 0F B6 D9 - movzx ebx,r9b
GameAssembly.dll+EF5DBF: 41 0F B6 F0 - movzx esi,r8b
GameAssembly.dll+EF5DC3: 0F B7 EA - movzx ebp,dx
GameAssembly.dll+EF5DC6: 48 8B F9 - mov rdi,rcx
GameAssembly.dll+EF5DC9: 75 12 - jne GameAssembly.dll+EF5DDD
GameAssembly.dll+EF5DCB: 8B 0D 63 65 66 03 - mov ecx,[GameAssembly.dll+455C334]
GameAssembly.dll+EF5DD1: E8 4A C1 60 FF - call GameAssembly.dll+501F20
GameAssembly.dll+EF5DD6: C6 05 6D 6B C4 04 01 - mov byte ptr [GameAssembly.dll+5B3C94A],01
GameAssembly.dll+EF5DDD: 33 D2 - xor edx,edx
GameAssembly.dll+EF5DDF: 48 8B CF - mov rcx,rdi
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Thank you very much, your code worked for me.sanitka wrote: ↑Wed Feb 28, 2024 10:47 pmGreat job. Looking forward for more of your tables .
As for affixes, it seems that hooked method is used randomly .
For curious ones, here is my take on Affixes:
Hooked: ItemAffix (constructor)
btw to know more about affixes, check Save Editor and verify in game what changed to understand the values .
Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>567</ID> <Description>"Max Affix Rolls for Others"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : Last Epoch.exe Version: Date : 2024-02-28 Author : SanitKa This script does blah blah blah } [ENABLE] aobscanmodule(INJMAXAFFX,GameAssembly.dll,80 3D 8F 6B C4 04 00) // should be unique INJMAXAFFX: // movzx ebx,r9b xor ebx,ebx dec bl cmp byte ptr [GameAssembly.dll+5B3C94A],00 registersymbol(INJMAXAFFX) [DISABLE] INJMAXAFFX: db 80 3D 8F 6B C4 04 00 41 0F B6 D9 unregistersymbol(*) { ItemAffix..ctor // ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+EF5DB4 GameAssembly.dll+EF5D9B: CC - int 3 GameAssembly.dll+EF5D9C: CC - int 3 GameAssembly.dll+EF5D9D: CC - int 3 GameAssembly.dll+EF5D9E: CC - int 3 GameAssembly.dll+EF5D9F: CC - int 3 ItemAffix..ctor: 48 89 5C 24 10 - mov [rsp+10],rbx GameAssembly.dll+EF5DA5: 48 89 6C 24 18 - mov [rsp+18],rbp GameAssembly.dll+EF5DAA: 48 89 74 24 20 - mov [rsp+20],rsi GameAssembly.dll+EF5DAF: 57 - push rdi GameAssembly.dll+EF5DB0: 48 83 EC 30 - sub rsp,30 // ---------- INJECTING HERE ---------- GameAssembly.dll+EF5DB4: 80 3D 8F 6B C4 04 00 - cmp byte ptr [GameAssembly.dll+5B3C94A],00 // ---------- DONE INJECTING ---------- GameAssembly.dll+EF5DBB: 41 0F B6 D9 - movzx ebx,r9b GameAssembly.dll+EF5DBF: 41 0F B6 F0 - movzx esi,r8b GameAssembly.dll+EF5DC3: 0F B7 EA - movzx ebp,dx GameAssembly.dll+EF5DC6: 48 8B F9 - mov rdi,rcx GameAssembly.dll+EF5DC9: 75 12 - jne GameAssembly.dll+EF5DDD GameAssembly.dll+EF5DCB: 8B 0D 63 65 66 03 - mov ecx,[GameAssembly.dll+455C334] GameAssembly.dll+EF5DD1: E8 4A C1 60 FF - call GameAssembly.dll+501F20 GameAssembly.dll+EF5DD6: C6 05 6D 6B C4 04 01 - mov byte ptr [GameAssembly.dll+5B3C94A],01 GameAssembly.dll+EF5DDD: 33 D2 - xor edx,edx GameAssembly.dll+EF5DDF: 48 8B CF - mov rcx,rdi } </AssemblerScript> </CheatEntry> </CheatEntries> </CheatTable>
think i used
Code: Select all
ItemData.RebuildID
0.9l
snapshot:Hey, I had a look at your table you had made for 0.9, great work, would you mind me using the scripts there as a reference and updating a couple thing? The scripts I've looked through seem to mostly work in 1.0, and it would save me the hassle of trial and error.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>568</ID>
<Description>"Max Unique, Sets and Implicit Rolls"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Last Epoch.exe
Version:
Date : 2024-02-29
Author : SanitKa
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJMAXROLL1,GameAssembly.dll,E8 D6 08 67 FE) // should be unique
aobscanmodule(INJMAXROLL2,GameAssembly.dll,E8 16 08 67 FE) // should be unique
INJMAXROLL1:
// call Fun.randomByte
xor eax,eax
dec al
nop
registersymbol(INJMAXROLL1)
INJMAXROLL2:
// call Fun.randomByte
xor eax,eax
dec al
nop
registersymbol(INJMAXROLL2)
[DISABLE]
INJMAXROLL1:
db E8 D6 08 67 FE
INJMAXROLL2:
db E8 16 08 67 FE
unregistersymbol(INJMAXROLL1)
unregistersymbol(INJMAXROLL2)
{
ItemData.randomiseImplicitRolls
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+23C7215
GameAssembly.dll+23C71ED: 0F 1F 00 - nop dword ptr [rax]
GameAssembly.dll+23C71F0: 3B 50 18 - cmp edx,[rax+18]
GameAssembly.dll+23C71F3: 7D 48 - jnl GameAssembly.dll+23C723D
GameAssembly.dll+23C71F5: 48 8B 0D E4 2B AA 03 - mov rcx,[GameAssembly.dll+5E69DE0]
GameAssembly.dll+23C71FC: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+23C7203: 74 0E - je GameAssembly.dll+23C7213
GameAssembly.dll+23C7205: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+23C720C: 75 05 - jne GameAssembly.dll+23C7213
GameAssembly.dll+23C720E: E8 9D 09 0C FE - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+23C7213: 33 C9 - xor ecx,ecx
// ---------- INJECTING HERE ----------
GameAssembly.dll+23C7215: E8 D6 08 67 FE - call Fun.randomByte
// ---------- DONE INJECTING ----------
GameAssembly.dll+23C721A: 48 85 FF - test rdi,rdi
GameAssembly.dll+23C721D: 74 2E - je GameAssembly.dll+23C724D
GameAssembly.dll+23C721F: 3B 5F 18 - cmp ebx,[rdi+18]
GameAssembly.dll+23C7222: 73 2F - jae GameAssembly.dll+23C7253
GameAssembly.dll+23C7224: 48 63 CB - movsxd rcx,ebx
GameAssembly.dll+23C7227: FF C3 - inc ebx
GameAssembly.dll+23C7229: 8B D3 - mov edx,ebx
GameAssembly.dll+23C722B: 88 44 39 20 - mov [rcx+rdi+20],al
GameAssembly.dll+23C722F: 48 8B 46 28 - mov rax,[rsi+28]
GameAssembly.dll+23C7233: 48 8B F8 - mov rdi,rax
}
{
ItemData.randomiseUniqueRolls
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+23C72D5
GameAssembly.dll+23C72AD: 0F 1F 00 - nop dword ptr [rax]
GameAssembly.dll+23C72B0: 3B 50 18 - cmp edx,[rax+18]
GameAssembly.dll+23C72B3: 7D 48 - jnl GameAssembly.dll+23C72FD
GameAssembly.dll+23C72B5: 48 8B 0D 24 2B AA 03 - mov rcx,[GameAssembly.dll+5E69DE0]
GameAssembly.dll+23C72BC: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+23C72C3: 74 0E - je GameAssembly.dll+23C72D3
GameAssembly.dll+23C72C5: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+23C72CC: 75 05 - jne GameAssembly.dll+23C72D3
GameAssembly.dll+23C72CE: E8 DD 08 0C FE - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+23C72D3: 33 C9 - xor ecx,ecx
// ---------- INJECTING HERE ----------
GameAssembly.dll+23C72D5: E8 16 08 67 FE - call Fun.randomByte
// ---------- DONE INJECTING ----------
GameAssembly.dll+23C72DA: 48 85 FF - test rdi,rdi
GameAssembly.dll+23C72DD: 74 2E - je GameAssembly.dll+23C730D
GameAssembly.dll+23C72DF: 3B 5F 18 - cmp ebx,[rdi+18]
GameAssembly.dll+23C72E2: 73 2F - jae GameAssembly.dll+23C7313
GameAssembly.dll+23C72E4: 48 63 CB - movsxd rcx,ebx
GameAssembly.dll+23C72E7: FF C3 - inc ebx
GameAssembly.dll+23C72E9: 8B D3 - mov edx,ebx
GameAssembly.dll+23C72EB: E9 10 8D BF FD - jmp 7FFB800B0000
GameAssembly.dll+23C72F0: 0F 1F 00 - nop dword ptr [rax]
GameAssembly.dll+23C72F3: 48 8B F8 - mov rdi,rax
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Thank you, it works.sanitka wrote: ↑Thu Feb 29, 2024 5:55 pmCode: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>568</ID> <Description>"Max Unique, Sets and Implicit Rolls"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>{ Game : Last Epoch.exe Version: Date : 2024-02-29 Author : SanitKa This script does blah blah blah } [ENABLE] aobscanmodule(INJMAXROLL1,GameAssembly.dll,E8 D6 08 67 FE) // should be unique aobscanmodule(INJMAXROLL2,GameAssembly.dll,E8 16 08 67 FE) // should be unique INJMAXROLL1: // call Fun.randomByte xor eax,eax dec al nop registersymbol(INJMAXROLL1) INJMAXROLL2: // call Fun.randomByte xor eax,eax dec al nop registersymbol(INJMAXROLL2) [DISABLE] INJMAXROLL1: db E8 D6 08 67 FE INJMAXROLL2: db E8 16 08 67 FE unregistersymbol(INJMAXROLL1) unregistersymbol(INJMAXROLL2) { ItemData.randomiseImplicitRolls // ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+23C7215 GameAssembly.dll+23C71ED: 0F 1F 00 - nop dword ptr [rax] GameAssembly.dll+23C71F0: 3B 50 18 - cmp edx,[rax+18] GameAssembly.dll+23C71F3: 7D 48 - jnl GameAssembly.dll+23C723D GameAssembly.dll+23C71F5: 48 8B 0D E4 2B AA 03 - mov rcx,[GameAssembly.dll+5E69DE0] GameAssembly.dll+23C71FC: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02 GameAssembly.dll+23C7203: 74 0E - je GameAssembly.dll+23C7213 GameAssembly.dll+23C7205: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00 GameAssembly.dll+23C720C: 75 05 - jne GameAssembly.dll+23C7213 GameAssembly.dll+23C720E: E8 9D 09 0C FE - call GameAssembly.il2cpp_runtime_class_init GameAssembly.dll+23C7213: 33 C9 - xor ecx,ecx // ---------- INJECTING HERE ---------- GameAssembly.dll+23C7215: E8 D6 08 67 FE - call Fun.randomByte // ---------- DONE INJECTING ---------- GameAssembly.dll+23C721A: 48 85 FF - test rdi,rdi GameAssembly.dll+23C721D: 74 2E - je GameAssembly.dll+23C724D GameAssembly.dll+23C721F: 3B 5F 18 - cmp ebx,[rdi+18] GameAssembly.dll+23C7222: 73 2F - jae GameAssembly.dll+23C7253 GameAssembly.dll+23C7224: 48 63 CB - movsxd rcx,ebx GameAssembly.dll+23C7227: FF C3 - inc ebx GameAssembly.dll+23C7229: 8B D3 - mov edx,ebx GameAssembly.dll+23C722B: 88 44 39 20 - mov [rcx+rdi+20],al GameAssembly.dll+23C722F: 48 8B 46 28 - mov rax,[rsi+28] GameAssembly.dll+23C7233: 48 8B F8 - mov rdi,rax } { ItemData.randomiseUniqueRolls // ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+23C72D5 GameAssembly.dll+23C72AD: 0F 1F 00 - nop dword ptr [rax] GameAssembly.dll+23C72B0: 3B 50 18 - cmp edx,[rax+18] GameAssembly.dll+23C72B3: 7D 48 - jnl GameAssembly.dll+23C72FD GameAssembly.dll+23C72B5: 48 8B 0D 24 2B AA 03 - mov rcx,[GameAssembly.dll+5E69DE0] GameAssembly.dll+23C72BC: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02 GameAssembly.dll+23C72C3: 74 0E - je GameAssembly.dll+23C72D3 GameAssembly.dll+23C72C5: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00 GameAssembly.dll+23C72CC: 75 05 - jne GameAssembly.dll+23C72D3 GameAssembly.dll+23C72CE: E8 DD 08 0C FE - call GameAssembly.il2cpp_runtime_class_init GameAssembly.dll+23C72D3: 33 C9 - xor ecx,ecx // ---------- INJECTING HERE ---------- GameAssembly.dll+23C72D5: E8 16 08 67 FE - call Fun.randomByte // ---------- DONE INJECTING ---------- GameAssembly.dll+23C72DA: 48 85 FF - test rdi,rdi GameAssembly.dll+23C72DD: 74 2E - je GameAssembly.dll+23C730D GameAssembly.dll+23C72DF: 3B 5F 18 - cmp ebx,[rdi+18] GameAssembly.dll+23C72E2: 73 2F - jae GameAssembly.dll+23C7313 GameAssembly.dll+23C72E4: 48 63 CB - movsxd rcx,ebx GameAssembly.dll+23C72E7: FF C3 - inc ebx GameAssembly.dll+23C72E9: 8B D3 - mov edx,ebx GameAssembly.dll+23C72EB: E9 10 8D BF FD - jmp 7FFB800B0000 GameAssembly.dll+23C72F0: 0F 1F 00 - nop dword ptr [rax] GameAssembly.dll+23C72F3: 48 8B F8 - mov rdi,rax } </AssemblerScript> </CheatEntry> </CheatEntries> </CheatTable>
First thanks to all peeps for making this table for 1.0.chronix_ wrote: ↑Thu Feb 29, 2024 9:50 pmCould anyone create or share a script to add Legendary Potential to uniques items/drops (in inventory) like we had with the previous viewtopic.php?t=14585?
And to enable drops with all T7 mods as well if possible.
eg. "Max Item Tier" options & "Max forge and legendary potential for items that are in your inventory")
Greatly appreciated.
I updated it for 1.1, won't update again until I play again, but all but 2 options worked, and none of them would have made you crash