Here's my other contribution, a bare bones item editor:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>88370</ID>
<Description>"Item Editor (Sell Item In Shop To Populate)"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : ScarletNexus-Win64-Shipping.exe
Version:
Date : 2021-07-02
Author : zachw
This script does blah blah blah
}
[ENABLE]
aobscanmodule(ITEM_SCAN,ScarletNexus-Win64-Shipping.exe,45 89 65 08 45 3B E7) // should be unique
alloc(newmem,$1000,ITEM_SCAN)
globalalloc(ITEMSCAN,4)
label(code)
label(return)
newmem:
push rax
lea rax,[r13+08]
mov [ITEMSCAN],rax
pop rax
code:
mov [r13+08],r12d
cmp r12d,r15d
jmp return
ITEM_SCAN:
jmp newmem
nop 2
return:
registersymbol(ITEM_SCAN)
[DISABLE]
ITEM_SCAN:
db 45 89 65 08 45 3B E7
unregistersymbol(ITEM_SCAN)
dealloc(newmem)
dealloc(ITEMSCAN)
{
// ORIGINAL CODE - INJECTION POINT: ScarletNexus-Win64-Shipping.exe+F74437
ScarletNexus-Win64-Shipping.exe+F7441F: EB 9F - jmp ScarletNexus-Win64-Shipping.exe+F743C0
ScarletNexus-Win64-Shipping.exe+F74421: 41 03 CF - add ecx,r15d
ScarletNexus-Win64-Shipping.exe+F74424: 3B C1 - cmp eax,ecx
ScarletNexus-Win64-Shipping.exe+F74426: 7D 07 - jnl ScarletNexus-Win64-Shipping.exe+F7442F
ScarletNexus-Win64-Shipping.exe+F74428: 8B F8 - mov edi,eax
ScarletNexus-Win64-Shipping.exe+F7442A: 41 2B FF - sub edi,r15d
ScarletNexus-Win64-Shipping.exe+F7442D: EB 04 - jmp infItems
ScarletNexus-Win64-Shipping.exe+F7442F: 85 C9 - test ecx,ecx
ScarletNexus-Win64-Shipping.exe+F74431: 78 63 - js ScarletNexus-Win64-Shipping.exe+F74496
infItems: 45 8D 24 3F - lea r12d,[r15+rdi]
// ---------- INJECTING HERE ----------
ScarletNexus-Win64-Shipping.exe+F74437: 45 89 65 08 - mov [r13+08],r12d
// ---------- DONE INJECTING ----------
ScarletNexus-Win64-Shipping.exe+F7443B: 45 3B E7 - cmp r12d,r15d
ScarletNexus-Win64-Shipping.exe+F7443E: 7E 0E - jle ScarletNexus-Win64-Shipping.exe+F7444E
ScarletNexus-Win64-Shipping.exe+F74440: 33 D2 - xor edx,edx
ScarletNexus-Win64-Shipping.exe+F74442: 49 8B CE - mov rcx,r14
ScarletNexus-Win64-Shipping.exe+F74445: E8 F6 A8 00 00 - call ScarletNexus-Win64-Shipping.exe+F7ED40
ScarletNexus-Win64-Shipping.exe+F7444A: 41 89 45 0C - mov [r13+0C],eax
ScarletNexus-Win64-Shipping.exe+F7444E: 44 8B 6C 24 20 - mov r13d,[rsp+20]
ScarletNexus-Win64-Shipping.exe+F74453: 48 8B 54 24 38 - mov rdx,[rsp+38]
ScarletNexus-Win64-Shipping.exe+F74458: 49 8B CE - mov rcx,r14
ScarletNexus-Win64-Shipping.exe+F7445B: E8 80 B7 01 00 - call ScarletNexus-Win64-Shipping.exe+F8FBE0
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>88371</ID>
<Description>"ID"</Description>
<LastState Value="89 29 BE" RealAddress="1B6068928F0"/>
<ShowAsHex>1</ShowAsHex>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Array of byte</VariableType>
<ByteLength>3</ByteLength>
<Address>ITEMSCAN</Address>
<Offsets>
<Offset>-8</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>88372</ID>
<Description>"Quantity"</Description>
<LastState Value="98" RealAddress="1B6068928F8"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>ITEMSCAN</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
To change the item to something else, change the first two digits in the item ID. EX: A2 29 BE -> 95 29 BE.
This was the only way I could figure out how to do it unfortunately. For people who have 100% saves, feel free to fill out the IDs.