Inquisition also took quite a while to get anything more than reshades, presets, config files, and color edits. I would assume it would be the case for Veilguard as well.
It will take a while. Frosty must be updated for dragon age, but there's a chance we'll never have any mods, even after a few years later, Frosty doesn't fully work with NFS Unbound for example.
Is it possible to find a pointer for like attack speed, or animation speed?
(I'm talking about main character animation speed, not game speedhack)
oh its possible I'm sure it's just a matter of time, or more likely of getting the people who are experienced at sussing theses vales out to find them. unfortunately most people don't care about options such as those as compared to say, infinite health and unlocking everything, the typical fare. I enjoy the more nuanced less outrageous advantages that don't make the game nearly pointless like jump distance, movement speed, animation edits, character creator values(like the body proportion sliders so you can go past the max allowed and minimum values). It will probably be quite some time before we see these.
I have been looking for the CC Slider values myself but the sheer amount of addresses this game uses makes things extremely tedious and time consuming.
I haven't had any luck yet.
I just happened to go back to my editor to play around and noticed that it was not accurate for weapons/armor. it seems that they are separate code so I just combined the old editor and my item editor so its just one script and will update with correct pointer.
I just happened to go back to my editor to play around and noticed that it was not accurate for weapons/armor. it seems that they are separate code so I just combined the old editor and my item editor so its just one script and will update with correct pointer.
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>571</ID>
<Description>"Last Item Equipped Pointer (Any Item)"</Description>
<Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
// Last equipped has 2 references. 1 for armor/weapons and another for accessories
// I am lazy so bundled the original one from Zanzer with mine for accessories
alloc(lastEquippedPtr, 8)
registersymbol(lastEquippedPtr)
// Start: Last equipped accessory
aobscanmodule(lastEquipped_Acc,$process,48 8B 13 48 8B CB 48 89 5C 24 20 FF)
alloc(newmem_Acc,$100,lastEquipped_Acc)
label(lastEquippedBkp_Acc)
label(return_Acc)
newmem_Acc:
push rax
mov rax,lastEquippedPtr
mov [rax],rbx
pop rax
lastEquippedBkp_Acc:
readmem(lastEquipped_Acc,14)
jmp return_Acc
lastEquipped_Acc:
jmp far newmem_Acc
return_Acc:
registersymbol(lastEquipped_Acc)
registersymbol(lastEquippedBkp_Acc)
// End: Last equipped accessory
// Start: Last equipped armor/weapon
aobscanmodule(lastEquipped_Gear,$process,FF 90 ?? ?? 00 00 48 8B ?? ?? ?? 48 89 ?? ?? 48 3B)
alloc(newmem_Gear,$100)
label(lastEquippedBkp_Gear)
label(return_Gear)
newmem_Gear:
push rax
mov rax,lastEquippedPtr
mov [rax],rcx
pop rax
lastEquippedBkp_Gear:
readmem(lastEquipped_Gear,15)
jmp return_Gear
lastEquipped_Gear:
jmp far newmem_Gear
nop
return_Gear:
registersymbol(lastEquipped_Gear)
registersymbol(lastEquippedBkp_Gear)
// End: Last equipped armor/weapon
[DISABLE]
// Start: Last equipped accessory
lastEquipped_Acc:
readmem(lastEquippedBkp_Acc,14)
unregistersymbol(lastEquippedBkp_Acc)
unregistersymbol(lastEquipped_Acc)
dealloc(newmem_Acc)
// End: Last equipped accessory
// Start: Last equipped armor/weapon
lastEquipped_Gear:
readmem(lastEquippedBkp_Gear,15)
unregistersymbol(lastEquipped_Gear)
unregistersymbol(lastEquippedBkp_Gear)
dealloc(newmem_Gear)
// End: Last equipped armor/weapon
dealloc(lastEquippedPtr)
unregistersymbol(lastEquippedPtr)
// Ref for last equipped accessory here
{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+1E5E9FA
Dragon Age The Veilguard.exe+13F049A - 48 8B 10 - mov rdx,[rax]
Dragon Age The Veilguard.exe+13F049D - 48 8B C8 - mov rcx,rax
Dragon Age The Veilguard.exe+13F04A0 - FF 52 10 - call qword ptr [rdx+10]
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+13F04A3 - 48 8B 13 - mov rdx,[rbx]
Dragon Age The Veilguard.exe+13F04A6 - 48 8B CB - mov rcx,rbx
Dragon Age The Veilguard.exe+13F04A9 - 48 89 5C 24 20 - mov [rsp+20],rbx
Dragon Age The Veilguard.exe+13F04AE - FF 52 10 - call qword ptr [rdx+10]
// ---------- DONE INJECTING ----------
Dragon Age The Veilguard.exe+13F04B1 - 44 8B CE - mov r9d,esi
Dragon Age The Veilguard.exe+13F04B4 - 48 8D 54 24 20 - lea rdx,[rsp+20]
Dragon Age The Veilguard.exe+13F04B9 - 4C 8B C5 - mov r8,rbp
}
// Ref for last equipped weapon/armor here
{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+24F4460
Dragon Age The Veilguard.exe+24F4436: FF 92 C8 00 00 00 - call qword ptr [rdx+000000C8]
Dragon Age The Veilguard.exe+24F443C: 48 8B 4C 24 30 - mov rcx,[rsp+30]
Dragon Age The Veilguard.exe+24F4441: 48 3B F8 - cmp rdi,rax
Dragon Age The Veilguard.exe+24F4444: 75 17 - jne "Dragon Age The Veilguard.exe"+24F445D
Dragon Age The Veilguard.exe+24F4446: 48 8B 5C 24 38 - mov rbx,[rsp+38]
Dragon Age The Veilguard.exe+24F444B: 48 85 C9 - test rcx,rcx
Dragon Age The Veilguard.exe+24F444E: 0F 84 B8 02 00 00 - je "Dragon Age The Veilguard.exe"+24F470C
Dragon Age The Veilguard.exe+24F4454: 48 85 DB - test rbx,rbx
Dragon Age The Veilguard.exe+24F4457: 0F 85 F2 02 00 00 - jne "Dragon Age The Veilguard.exe"+24F474F
Dragon Age The Veilguard.exe+24F445D: 48 8B 01 - mov rax,[rcx]
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+24F4460: FF 90 98 00 00 00 - call qword ptr [rax+00000098]
Dragon Age The Veilguard.exe+24F4466: 48 8B 54 24 70 - mov rdx,[rsp+70]
Dragon Age The Veilguard.exe+24F446B: 48 89 45 88 - mov [rbp-78],rax
// ---------- DONE INJECTING ----------
Dragon Age The Veilguard.exe+24F446F: 48 3B 54 24 78 - cmp rdx,[rsp+78]
Dragon Age The Veilguard.exe+24F4474: 73 16 - jae "Dragon Age The Veilguard.exe"+24F448C
Dragon Age The Veilguard.exe+24F4476: 48 8B CA - mov rcx,rdx
Dragon Age The Veilguard.exe+24F4479: 48 83 C2 78 - add rdx,78
Dragon Age The Veilguard.exe+24F447D: 48 89 54 24 70 - mov [rsp+70],rdx
Dragon Age The Veilguard.exe+24F4482: E8 59 64 C7 01 - call "Dragon Age The Veilguard.exe"+416A8E0
Dragon Age The Veilguard.exe+24F4487: E9 5D 01 00 00 - jmp "Dragon Age The Veilguard.exe"+24F45E9
Dragon Age The Veilguard.exe+24F448C: 48 8D 8D 90 00 00 00 - lea rcx,[rbp+00000090]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>572</ID>
<Description>"Re-Equip Item to See Changes"</Description>
<Options moDeactivateChildrenAsWell="1"/>
<ShowAsSigned>0</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>lastEquippedPtr</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>573</ID>
<Description>"Name (do not change)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>256</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+90</Address>
<Offsets>
<Offset>0</Offset>
<Offset>38</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>574</ID>
<Description>"Level"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+38</Address>
</CheatEntry>
<CheatEntry>
<ID>575</ID>
<Description>"Rarity"</Description>
<DropDownList DisplayValueAsItem="1">1:Common
2:Uncommon
3:Rare
4:Epic
5:Legendary
6:Unique (Do not set)
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+40</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Thanks for the update, just a headsup, it still doesn't work with short bows, my short bow is upgraded because i "bruteforced" with a few AoBs but i still can't read short bows properly. Other gear i have zero issues.
Anyone know a cheat of script to allow you to walk through walls?
I have one chest left to 100% the game and it’s locked behind a wall in Minrathous because I chose Treviso and the room I need to get to is no longer accessible :/
A mix of all above plus :
* Easy level up player
* Easy level up companions
* Infinite health
* One hit kills
v2 :
* Fast fill Ultimate ability
Thanks so much for the table! But I'm wondering if I'm doing something wrong - I can't get the max relationships to work. The bonds of my companions have increased several times while the cheat is active and it still doesn't max out. Do I have to be at a certain point in the story, or am I activating it wrong perhaps? Any help would be appreciated!
I just happened to go back to my editor to play around and noticed that it was not accurate for weapons/armor. it seems that they are separate code so I just combined the old editor and my item editor so its just one script and will update with correct pointer.
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>571</ID>
<Description>"Last Item Equipped Pointer (Any Item)"</Description>
<Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
// Last equipped has 2 references. 1 for armor/weapons and another for accessories
// I am lazy so bundled the original one from Zanzer with mine for accessories
alloc(lastEquippedPtr, 8)
registersymbol(lastEquippedPtr)
// Start: Last equipped accessory
aobscanmodule(lastEquipped_Acc,$process,48 8B 13 48 8B CB 48 89 5C 24 20 FF)
alloc(newmem_Acc,$100,lastEquipped_Acc)
label(lastEquippedBkp_Acc)
label(return_Acc)
newmem_Acc:
push rax
mov rax,lastEquippedPtr
mov [rax],rbx
pop rax
lastEquippedBkp_Acc:
readmem(lastEquipped_Acc,14)
jmp return_Acc
lastEquipped_Acc:
jmp far newmem_Acc
return_Acc:
registersymbol(lastEquipped_Acc)
registersymbol(lastEquippedBkp_Acc)
// End: Last equipped accessory
// Start: Last equipped armor/weapon
aobscanmodule(lastEquipped_Gear,$process,FF 90 ?? ?? 00 00 48 8B ?? ?? ?? 48 89 ?? ?? 48 3B)
alloc(newmem_Gear,$100)
label(lastEquippedBkp_Gear)
label(return_Gear)
newmem_Gear:
push rax
mov rax,lastEquippedPtr
mov [rax],rcx
pop rax
lastEquippedBkp_Gear:
readmem(lastEquipped_Gear,15)
jmp return_Gear
lastEquipped_Gear:
jmp far newmem_Gear
nop
return_Gear:
registersymbol(lastEquipped_Gear)
registersymbol(lastEquippedBkp_Gear)
// End: Last equipped armor/weapon
[DISABLE]
// Start: Last equipped accessory
lastEquipped_Acc:
readmem(lastEquippedBkp_Acc,14)
unregistersymbol(lastEquippedBkp_Acc)
unregistersymbol(lastEquipped_Acc)
dealloc(newmem_Acc)
// End: Last equipped accessory
// Start: Last equipped armor/weapon
lastEquipped_Gear:
readmem(lastEquippedBkp_Gear,15)
unregistersymbol(lastEquipped_Gear)
unregistersymbol(lastEquippedBkp_Gear)
dealloc(newmem_Gear)
// End: Last equipped armor/weapon
dealloc(lastEquippedPtr)
unregistersymbol(lastEquippedPtr)
// Ref for last equipped accessory here
{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+1E5E9FA
Dragon Age The Veilguard.exe+13F049A - 48 8B 10 - mov rdx,[rax]
Dragon Age The Veilguard.exe+13F049D - 48 8B C8 - mov rcx,rax
Dragon Age The Veilguard.exe+13F04A0 - FF 52 10 - call qword ptr [rdx+10]
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+13F04A3 - 48 8B 13 - mov rdx,[rbx]
Dragon Age The Veilguard.exe+13F04A6 - 48 8B CB - mov rcx,rbx
Dragon Age The Veilguard.exe+13F04A9 - 48 89 5C 24 20 - mov [rsp+20],rbx
Dragon Age The Veilguard.exe+13F04AE - FF 52 10 - call qword ptr [rdx+10]
// ---------- DONE INJECTING ----------
Dragon Age The Veilguard.exe+13F04B1 - 44 8B CE - mov r9d,esi
Dragon Age The Veilguard.exe+13F04B4 - 48 8D 54 24 20 - lea rdx,[rsp+20]
Dragon Age The Veilguard.exe+13F04B9 - 4C 8B C5 - mov r8,rbp
}
// Ref for last equipped weapon/armor here
{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+24F4460
Dragon Age The Veilguard.exe+24F4436: FF 92 C8 00 00 00 - call qword ptr [rdx+000000C8]
Dragon Age The Veilguard.exe+24F443C: 48 8B 4C 24 30 - mov rcx,[rsp+30]
Dragon Age The Veilguard.exe+24F4441: 48 3B F8 - cmp rdi,rax
Dragon Age The Veilguard.exe+24F4444: 75 17 - jne "Dragon Age The Veilguard.exe"+24F445D
Dragon Age The Veilguard.exe+24F4446: 48 8B 5C 24 38 - mov rbx,[rsp+38]
Dragon Age The Veilguard.exe+24F444B: 48 85 C9 - test rcx,rcx
Dragon Age The Veilguard.exe+24F444E: 0F 84 B8 02 00 00 - je "Dragon Age The Veilguard.exe"+24F470C
Dragon Age The Veilguard.exe+24F4454: 48 85 DB - test rbx,rbx
Dragon Age The Veilguard.exe+24F4457: 0F 85 F2 02 00 00 - jne "Dragon Age The Veilguard.exe"+24F474F
Dragon Age The Veilguard.exe+24F445D: 48 8B 01 - mov rax,[rcx]
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+24F4460: FF 90 98 00 00 00 - call qword ptr [rax+00000098]
Dragon Age The Veilguard.exe+24F4466: 48 8B 54 24 70 - mov rdx,[rsp+70]
Dragon Age The Veilguard.exe+24F446B: 48 89 45 88 - mov [rbp-78],rax
// ---------- DONE INJECTING ----------
Dragon Age The Veilguard.exe+24F446F: 48 3B 54 24 78 - cmp rdx,[rsp+78]
Dragon Age The Veilguard.exe+24F4474: 73 16 - jae "Dragon Age The Veilguard.exe"+24F448C
Dragon Age The Veilguard.exe+24F4476: 48 8B CA - mov rcx,rdx
Dragon Age The Veilguard.exe+24F4479: 48 83 C2 78 - add rdx,78
Dragon Age The Veilguard.exe+24F447D: 48 89 54 24 70 - mov [rsp+70],rdx
Dragon Age The Veilguard.exe+24F4482: E8 59 64 C7 01 - call "Dragon Age The Veilguard.exe"+416A8E0
Dragon Age The Veilguard.exe+24F4487: E9 5D 01 00 00 - jmp "Dragon Age The Veilguard.exe"+24F45E9
Dragon Age The Veilguard.exe+24F448C: 48 8D 8D 90 00 00 00 - lea rcx,[rbp+00000090]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>572</ID>
<Description>"Re-Equip Item to See Changes"</Description>
<Options moDeactivateChildrenAsWell="1"/>
<ShowAsSigned>0</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>lastEquippedPtr</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>573</ID>
<Description>"Name (do not change)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>256</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+90</Address>
<Offsets>
<Offset>0</Offset>
<Offset>38</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>574</ID>
<Description>"Level"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+38</Address>
</CheatEntry>
<CheatEntry>
<ID>575</ID>
<Description>"Rarity"</Description>
<DropDownList DisplayValueAsItem="1">1:Common
2:Uncommon
3:Rare
4:Epic
5:Legendary
6:Unique (Do not set)
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+40</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Thanks for the update, just a headsup, it still doesn't work with short bows, my short bow is upgraded because i "bruteforced" with a few AoBs but i still can't read short bows properly. Other gear i have zero issues.
Same with shields in general. Sometimes the item just doesn't get connected to the table. So sadly it does not work with any item.