Grim Dawn + All DLC's

Upload your cheat tables here (No requests)
bubblybroccoli
What is cheating?
What is cheating?
Posts: 3
Joined: Sun Oct 22, 2023 4:17 pm
Reputation: 0

Re: Grim Dawn + All DLC's

Post by bubblybroccoli »

Man, it's such a shame the Grim Dawn Trained Hard ceased development years ago, I never once found in any other trainer or cheat table with the option to increase enemy spawns/elites/heroes/nemesis without having to download a mod that effectively makes me choose a moded map instead of the base game and makes me have a separate character. Is it possible to add that function to these tables? The author of the tool never released his code and fell off the face of the earth.

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

R3V0L
Cheater
Cheater
Posts: 33
Joined: Sun May 12, 2019 8:26 pm
Reputation: 39

Re: Grim Dawn + All DLC's

Post by R3V0L »

Scheimann wrote:
Mon Jul 17, 2023 4:29 am
R3V0L wrote:
Mon Jun 27, 2022 11:36 pm
eyghon wrote:
Sat Jun 18, 2022 12:28 am


Hi is possible to get an update for 1.1.9.5, please?

PS: Base works fine, DOM masteries part doesn't work
Updated for main game 1.1.9.7
DoM 1.40a
Reign of terror 0.7.2.0
Can you update this for 1.1.9.8 base, RoT 0.7.3.1 and DoM 1.4.0b please?
Updated for
Base game 1.1.9.8
DoM 1.40b
Reign of Terror 0.7.3.1
Attachments
grim dawn.CT
(376.75 KiB) Downloaded 702 times

Trevaine
Noobzor
Noobzor
Posts: 10
Joined: Tue Jun 22, 2021 7:51 am
Reputation: 9

Re: Grim Dawn + All DLC's

Post by Trevaine »

Game got updated to 1.2 and it's a big one so everything on the table broke

R3V0L
Cheater
Cheater
Posts: 33
Joined: Sun May 12, 2019 8:26 pm
Reputation: 39

Re: Grim Dawn + All DLC's

Post by R3V0L »

Trevaine wrote:
Thu Nov 16, 2023 7:23 pm
Game got updated to 1.2 and it's a big one so everything on the table broke
Yes, just checked it, unfortunately, I have no idea how to fix all of this. All scripts are referenced to specific addresses in game.dll and Grim Dawn.exe, and obviously, it all changed with the update.

So if someone can help with fixing this table, I think we all will be very grateful)))
Attachments
grim dawn.CT
(376.75 KiB) Downloaded 627 times

User avatar
Chindopopito
Expert Cheater
Expert Cheater
Posts: 89
Joined: Wed Apr 26, 2023 4:40 pm
Reputation: 30

Re: Grim Dawn + All DLC's

Post by Chindopopito »

R3V0L wrote:
Thu Nov 16, 2023 11:07 pm
Trevaine wrote:
Thu Nov 16, 2023 7:23 pm
Game got updated to 1.2 and it's a big one so everything on the table broke
Yes, just checked it, unfortunately, I have no idea how to fix all of this. All scripts are referenced to specific addresses in game.dll and Grim Dawn.exe, and obviously, it all changed with the update.

So if someone can help with fixing this table, I think we all will be very grateful)))
The table is still usable and helpful, though. The big update broke some scripts/pointers I use:

HP/MP/Cooldown
Nothing Works
Craft
Free Crafting (combined) [StinVec]
Timer/Speed
Freeze Buff Timers (if above 15 seconds remaining)
Points
Haven't check all of these options, but XP Multiplier and this works.
Money/Items
Set Stack size to max stacksize
9,999,999 Mouse Hover Money
Get Max (50) Item Stack (split/merge the item to have max item value) WARNING> Activating this and merging items to the stack will delete them.
Reduce equipment requirement
Fations
Haven't checked all. Faction - Both Instant revered/Nemesis (when encountered) still works
Shattered Realm: Instant Clear Floor
Player Info (attack something to populate)

So pretty much they changed the location where the char info goes or made it dynamic which can make it more difficult to fix (I guess), buffs now activate themselves so that's probably why the freeze buff Timers broke. You can still use GDStash to give your char all the iron you need, add as many components, augments, etc.

Like I said, the table still useful, if you want invincibility you still can use the Invincibility (activates built-in "game.Invincible" cheat) but I don't know if this cheat screws achievement unlocking, though.

Let's see if someone is interested in fixing your table :)

User avatar
StinVec
Table Makers
Table Makers
Posts: 135
Joined: Sun Jun 25, 2017 7:02 am
Reputation: 209

Re: Grim Dawn + All DLC's

Post by StinVec »

Regarding my cheat option contributions:

[SNIP]

EDIT: I've managed to get dual 1.1.9.8 and 1.2.0.0 installations so I can work on table updates, but strictly play on 1.1.9.8.

I've quickly updated several of the cheat options, but need to step away. I'll finish updating what others I am able to and post the updated options in a little while.

(Having an issue with the Inf Mana option as the current max mana value in the code (12 C0) seems to have changed and I can't figure out what those bytes should be just yet. Earlier tables had it as 12 BC, but it changed to 12 C0 a while ago, but can't find what it is now.)

_____

UPDATED:

Sorry, still short on time and access for now. I'll paste some updated cheat option codes below. I'll add in new comments if and when I am able to update others.

Select all the code for an option and copy it.
Then paste it (CTRL+V) into your cheat table to add the updated option.

EDIT: Re-pasted the codes in case they didn't paste properly last time.
Enable Harder Difficulties (enable then create new character) 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>136211</ID>
      <Description>"Enable Harder Difficulties"</Description>
      <Options moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 C0 42 00 00
//changed C0 42 to 18 47

[ENABLE]

aobscanmodule(enableDifficulty,Game.dll,8B 81 18 47 00 00) // should be unique
alloc(newmem,$1000,enableDifficulty)

label(code)
label(return)

newmem:
mov [rcx+00004718],2
code:
  mov eax,[rcx+00004718]
  jmp return

enableDifficulty:
  jmp newmem
  nop
return:
registersymbol(enableDifficulty)

[DISABLE]

enableDifficulty:
  db 8B 81 18 47 00 00

unregistersymbol(enableDifficulty)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::GetGreatestDifficultyCompleted

GGame.GAME::Player::SetGreatestDifficultyCompleted+6 - C3                    - ret
Game.GAME::Player::SetGreatestDifficultyCompleted+7 - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+8 - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+9 - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+A - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+B - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+C - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+D - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+E - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+F - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Player::GetGreatestDifficultyCompleted   - 8B 81 18470000        - mov eax,[rcx+00004718]
// ---------- DONE INJECTING  ----------
Game.GAME::Player::GetGreatestDifficultyCompleted+6 - 33 C9                 - xor ecx,ecx
Game.GAME::Player::GetGreatestDifficultyCompleted+8 - 83 F8 03              - cmp eax,03
Game.GAME::Player::GetGreatestDifficultyCompleted+B - 0F44 C1               - cmove eax,ecx
Game.GAME::Player::GetGreatestDifficultyCompleted+E - C3                    - ret
Game.GAME::Player::GetGreatestDifficultyCompleted+F - CC                    - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted- 89 91 20470000        - mov [rcx+00004720],edx
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+6- C3                    - ret
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+7- CC                    - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+8- CC                    - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+9- CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>136222</ID>
          <Description>"&gt;&gt;&gt; NOTES: Usage"</Description>
          <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <Color>80FFFF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>136223</ID>
              <Description>"Enable &gt; select/switch to character"</Description>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Invincibility (activates built-in "game.Invincible" cheat) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>136310</ID>
      <Description>"Invincible ('isInvincible' function activation, but in "cheat" format)"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: Steam v1.2.0.0 (x64)
//
//1.1.9.8 pattern was 0F B6 83 2C 1A 00 00 48 83 C4 20 5B C3
//changed 2C 1A to 9C 1D

{
Game.GAME::Player::IsInvincible+23 - 0FB6 83 9C1D0000      - movzx eax,byte ptr [rbx+00001D9C]
Game.GAME::Player::IsInvincible+2A - 48 83 C4 20           - add rsp,20
Game.GAME::Player::IsInvincible+2E - 5B                    - pop rbx
Game.GAME::Player::IsInvincible+2F - C3                    - ret
}

{$lua}
if syntaxcheck then return end
cheat_name = "game.Invincible"
[ENABLE]
local pattern = "0F B6 83 9C 1D 00 00 48 83 C4 20 5B C3"
local replace = "90 90 90 90 90 90 90 ?? ?? ?? ?? ?? ??"
-- edit the name of the cheat
-- edit the pattern to search
-- edit the replacement bytes
-- use ?? to ignore the bytes
-- do not edit the code below
local scans = AOBScan(pattern)
if scans == nil then
  showMessage("Unable to find pattern:\n"..pattern)
else
  local saved = {}
  local length = (#replace + 1) / 3
  for i = 0, scans.Count - 1 do
    local backup = readBytes(scans[i], length, true)
    local bytes = {}
    for hex in string.gmatch(replace, "%S+") do
      local size = #bytes + 1
      if hex == "??" then
        bytes[size] = backup[size]
      else
        bytes[size] = tonumber(hex, 16)
      end
    end
    saved[i] = backup
    writeBytes(scans[i], bytes)
  end
  _G[cheat_name] = {
    ["scans"] = scans,
    ["saved"] = saved
  }
end
[DISABLE]
local vars = _G[cheat_name]
if vars ~= nil then
  local scans = vars.scans
  local saved = vars.saved
  for i = 0, scans.Count - 1 do
    writeBytes(scans[i], saved[i])
  end
  scans.Destroy()
  vars.scans = nil
  vars.saved = nil
  vars = nil
  _G[cheat_name] = nil
end

{$asm}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Free Crafting (Zero quantity needed) 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>87881</ID>
      <Description>"Free Crafting (Zero quantity needed)"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 94 0B 00 00
//changed 94 to D4
//changed 9C to DC
//changed A0 to E0
//changed A4 to E4
//changed A8 to E8
//changed AC to EC

[ENABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 D4 0B 00 00
//mov eax,[rcx+00000BD4]

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 EC 0B 00 00

//Grim Dawn 1.2.0.0 Updated - Re-wrote
//1.1.9.8 was 4C 8B 81 98 0E 00 00
//changed 98 to D8
//"Game.dll"+26E434 to Game.GAME::ItemArtifactFormula::GetCreationCost+4
//SCRAP
aobscanregion(FreeCraftSlotIron,Game.GAME::ItemArtifactFormula::GetCreationCost,Game.GAME::ItemArtifactFormula::GetCreationCost+5F,4C8B81) // should be unique
alloc(newmem,$1000,FreeCraftSlotIron)

label(code)
label(return)
newmem:
//  mov r8,[rcx+000002D8]
  mov r8,0
  jmp return

code:
  mov r8,[rcx+00000ED8]
  jmp return

FreeCraftSlotIron:
  jmp newmem
  nop 2

return:
registersymbol(FreeCraftSlotIron)




[DISABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
  db 8B 81 D4 0B 00 00

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
  db 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
  db 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
  db 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
  db 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
  db 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
  db 8B 81 EC 0B 00 00

//SCRAP
FreeCraftSlotIron:
  db 4C 8B 81 D8 0E 00 00
unregistersymbol(FreeCraftSlotIron)
dealloc(newmem)
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Max Item Stack (98) (split/merge item to max out stack) 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>136310</ID>
      <Description>"Max Item Stack (98) (split/merge item to max out stack)"</Description>
      <Options moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: v1.1.1.1

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 89 8F 5C 07 00 00
//changed 5C to 74

define(address,Game.GAME::Item::IncrementStack+3F)
define(bytes,89 8F 74 07 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Item::IncrementStack+3F)

label(code)
label(return)

newmem:
  mov ecx,#98
//mov ecx,[rdi+00000760]  //0x760 - maxItemValue { 100 }

code:
  mov [rdi+00000774],ecx  //0x75C - currentItemValue
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]
address:
  db bytes
  // mov [rdi+00000774],ecx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Item::IncrementStack+3F
Game.GAME::Item::IncrementStack+1E - 48 8B F9              - mov rdi,rcx
Game.GAME::Item::IncrementStack+21 - FF 90 C8050000        - call qword ptr [rax+000005C8]
Game.GAME::Item::IncrementStack+27 - 8B 8F 74070000        - mov ecx,[rdi+00000774]
Game.GAME::Item::IncrementStack+2D - 03 CB                 - add ecx,ebx
Game.GAME::Item::IncrementStack+2F - 3B C8                 - cmp ecx,eax
Game.GAME::Item::IncrementStack+31 - 76 0C                 - jna Game.GAME::Item::IncrementStack+3F
Game.GAME::Item::IncrementStack+33 - 2B C8                 - sub ecx,eax
Game.GAME::Item::IncrementStack+35 - 89 0E                 - mov [rsi],ecx
// ---------- INJECTING HERE ----------
Game.GAME::Item::IncrementStack+37 - 89 87 74070000        - mov [rdi+00000774],eax
// ---------- DONE INJECTING  ----------
Game.GAME::Item::IncrementStack+3D - EB 06                 - jmp Game.GAME::Item::IncrementStack+45
Game.GAME::Item::IncrementStack+3F - 89 8F 74070000        - mov [rdi+00000774],ecx
Game.GAME::Item::IncrementStack+45 - 8B 87 74070000        - mov eax,[rdi+00000774]
Game.GAME::Item::IncrementStack+4B - 48 8B 5C 24 30        - mov rbx,[rsp+30]
Game.GAME::Item::IncrementStack+50 - 48 8B 74 24 38        - mov rsi,[rsp+38]
Game.GAME::Item::IncrementStack+55 - 89 87 F4050000        - mov [rdi+000005F4],eax
Game.GAME::Item::IncrementStack+5B - B0 01                 - mov al,01
Game.GAME::Item::IncrementStack+5D - 48 83 C4 20           - add rsp,20
Game.GAME::Item::IncrementStack+61 - 5F                    - pop rdi
Game.GAME::Item::IncrementStack+62 - C3                    - ret
Game.GAME::Item::IncrementStack+63 - CC                    - int 3
Game.GAME::Item::IncrementStack+64 - CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Max Item Stack (98) - I set it to make a stack 98 to prevent each item picked up from creating a new stack. If 99 or more, a new stack is created each time you loot a component. 98 is max to keep all same items looted from making new stacks each time. Set 98 to whatever you want.
9,999,999 Money 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>28</ID>
      <Description>"9,999,999 Money / Iron bits"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: 1.2.0.0 Updated
//1.1.9.8 was 8B 81 2C 13 00 00
//changed 2C 13 to 84 15

define(address,Game.GAME::Character::GetCurrentMoney)
define(bytes,8B 81 84 15 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$100,Game.GAME::Character::GetCurrentMoney)
alloc(getCurrentMoney_ptr,8)
registersymbol(getCurrentMoney_ptr)

label(code)
label(return)

newmem:
  mov [getCurrentMoney_ptr],rcx
  mov [rcx+00001584],#9999999

code:
  mov eax,[rcx+00001584]
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]
address:
  db bytes
  // mov eax,[rcx+00001584]

unregistersymbol(getCurrentMoney_ptr)
dealloc(getCurrentMoney_ptr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetCurrentMoney

Game.GAME::Character::GetWeaponScale+8 - C3                    - ret
Game.GAME::Character::GetWeaponScale+9 - CC                    - int 3
Game.GAME::Character::GetWeaponScale+A - CC                    - int 3
Game.GAME::Character::GetWeaponScale+B - CC                    - int 3
Game.GAME::Character::GetWeaponScale+C - CC                    - int 3
Game.GAME::Character::GetWeaponScale+D - CC                    - int 3
Game.GAME::Character::GetWeaponScale+E - CC                    - int 3
Game.GAME::Character::GetWeaponScale+F - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetCurrentMoney  - 8B 81 84150000        - mov eax,[rcx+00001584]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetCurrentMoney+6- C3                    - ret
Game.GAME::Character::GetCurrentMoney+7- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+8- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+9- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+A- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+B- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+C- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+D- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+E- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+F- CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>70</ID>
          <Description>"Money / Iron Bits - Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[getCurrentMoney_ptr]+1584</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Freeze Buff Timers (if above 15 seconds remaining) 1.2.0.3 x64 (RE-WRITTEN)
Get updated version here: viewtopic.php?p=327578#p327578
No Skill Cooldown 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1178</ID>
      <Description>"No Skill Cooldown"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Skill::StartCooldown+9F
//changed +9F,76 to +DF,76 (the last address in the whole GAME::Skill::StartCooldown section for the range of the scan)

[ENABLE]
//Game.GAME::Skill::StartCooldown+9F
aobscanregion(noSkillCooldown,Game.GAME::Skill::StartCooldown,Game.GAME::Skill::StartCooldown+DF,76)

noSkillCooldown:
  db 77
//77 1D
//ja Game.GAME::Skill::StartCooldown+9F
registersymbol(noSkillCooldown)

[DISABLE]
noSkillCooldown:
  db 76
//76 1D
//jna Game.GAME::Skill::StartCooldown+9F
unregistersymbol(noSkillCooldown)

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
EDIT: Removed "Super Attack Speed " update - Updated the code bytes, but more was changed with it and it was only raising speed to the default 200% max, not altering it to 1000%. More needs to be done on it to work like it should.

_____

Regarding Inf Mana, it is still giving me a problem.

"movss xmm1,[rbx+000012C0]" - 0x12C0 seems to be related to a character data table address as it is also used in the old "Infinite Health" option to set your current health to be your max health. It seems like it is loading values from "Game.GAME::CharacterBio::Update" or somewhere, but I can't find how this value was found to then locate it in 1.1.9.8 and then see what that value changed to in 1.2.0.0.

The 1.2 address for current mana changed to F3 0F 10 81 EC 0D 00 00 (A4 changed to EC). While you are able to make your current mana much higher than your max mana, your max mana determines the mana bar size. Setting your current mana to be higher than your max will cause the blue mana background to extend beyond the bar out to the left across the screen.

Need to find a way to copy the max mana value to your current mana, but max mana is determined by several values added together. Need to find what that [rbx+000012C0] character data reference was to in 1.1.9.8 and then see what it changed to in 1.2.0.0.

EDIT:
I'm understanding that 12C0 with the Inf Mana better and how that was gotten and used in the old tables, but it doesn't matter anymore since the game code is changed in 1.2 with how it calculates max mana limit and that isn't useful anymore. Need to find another way to get current mana to match max mana now.
Last edited by StinVec on Sat Dec 16, 2023 9:03 pm, edited 5 times in total.

User avatar
Chindopopito
Expert Cheater
Expert Cheater
Posts: 89
Joined: Wed Apr 26, 2023 4:40 pm
Reputation: 30

Re: Grim Dawn + All DLC's

Post by Chindopopito »

StinVec wrote:
Fri Nov 17, 2023 6:25 pm
UPDATED:

Sorry, still short on time and access for now. I'll paste some updated cheat option codes below. I'll add in new comments if and when I am able to update others.

Select all the code for an option and copy it.
Then paste it (CTRL+V) into your cheat table to add the updated option.

Enable Harder Difficulties (enable then create new character) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>103</ID>
 <Description>"Enable Harder Difficulties (enable then create new character) 1.2.0.0 x64"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 C0 42 00 00
//changed C0 42 to 18 47

[ENABLE]

aobscanmodule(enableDifficulty,Game.dll,8B 81 18 47 00 00) // should be unique
alloc(newmem,$1000,enableDifficulty)

label(code)
label(return)

newmem:
mov [rcx+00004718],2
code:
 mov eax,[rcx+00004718]
 jmp return

enableDifficulty:
 jmp newmem
 nop
return:
registersymbol(enableDifficulty)

[DISABLE]

enableDifficulty:
 db 8B 81 18 47 00 00

unregistersymbol(enableDifficulty)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::GetGreatestDifficultyCompleted

GGame.GAME::Player::SetGreatestDifficultyCompleted+6 - C3 - ret
Game.GAME::Player::SetGreatestDifficultyCompleted+7 - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+8 - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+9 - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+A - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+B - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+C - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+D - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+E - CC - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+F - CC - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Player::GetGreatestDifficultyCompleted - 8B 81 18470000 - mov eax,[rcx+00004718]
// ---------- DONE INJECTING ----------
Game.GAME::Player::GetGreatestDifficultyCompleted+6 - 33 C9 - xor ecx,ecx
Game.GAME::Player::GetGreatestDifficultyCompleted+8 - 83 F8 03 - cmp eax,03
Game.GAME::Player::GetGreatestDifficultyCompleted+B - 0F44 C1 - cmove eax,ecx
Game.GAME::Player::GetGreatestDifficultyCompleted+E - C3 - ret
Game.GAME::Player::GetGreatestDifficultyCompleted+F - CC - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted- 89 91 20470000 - mov [rcx+00004720],edx
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+6- C3 - ret
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+7- CC - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+8- CC - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+9- CC - int 3
}
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Enable Harder Difficulties - I didn't test it, just updated the address.
Invincibility (activates built-in "game.Invincible" cheat) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>87848</ID>
 <Description>"Invincibility (activates built-in "game.Invincible" cheat) 1.2.0.0 x64"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: Steam v1.2.0.0 (x64)
//
//1.1.9.8 pattern was 0F B6 83 2C 1A 00 00 48 83 C4 20 5B C3
//changed 2C 1A to 9C 1D

{
Game.GAME::Player::IsInvincible+23 - 0FB6 83 9C1D0000 - movzx eax,byte ptr [rbx+00001D9C]
Game.GAME::Player::IsInvincible+2A - 48 83 C4 20 - add rsp,20
Game.GAME::Player::IsInvincible+2E - 5B - pop rbx
Game.GAME::Player::IsInvincible+2F - C3 - ret
}

{$lua}
if syntaxcheck then return end
cheat_name = "game.Invincible"
[ENABLE]
local pattern = "0F B6 83 9C 1D 00 00 48 83 C4 20 5B C3"
local replace = "90 90 90 90 90 90 90 ?? ?? ?? ?? ?? ??"
-- edit the name of the cheat
-- edit the pattern to search
-- edit the replacement bytes
-- use ?? to ignore the bytes
-- do not edit the code below
local scans = AOBScan(pattern)
if scans == nil then
 showMessage("Unable to find pattern:\n"..pattern)
else
 local saved = {}
 local length = (#replace + 1) / 3
 for i = 0, scans.Count - 1 do
 local backup = readBytes(scans[i], length, true)
 local bytes = {}
 for hex in string.gmatch(replace, "%S+") do
 local size = #bytes + 1
 if hex == "??" then
 bytes[size] = backup[size]
 else
 bytes[size] = tonumber(hex, 16)
 end
 end
 saved[i] = backup
 writeBytes(scans[i], bytes)
 end
 _G[cheat_name] = {
 ["scans"] = scans,
 ["saved"] = saved
 }
end
[DISABLE]
local vars = _G[cheat_name]
if vars ~= nil then
 local scans = vars.scans
 local saved = vars.saved
 for i = 0, scans.Count - 1 do
 writeBytes(scans[i], saved[i])
 end
 scans.Destroy()
 vars.scans = nil
 vars.saved = nil
 vars = nil
 _G[cheat_name] = nil
end

{$asm}
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Free Crafting (Zero quantity needed) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>87881</ID>
 <Description>"Free Crafting (Zero quantity needed) 1.2.0.0 x64"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 94 0B 00 00
//changed 94 to D4
//changed 9C to DC
//changed A0 to E0
//changed A4 to E4
//changed A8 to E8
//changed AC to EC

[ENABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 D4 0B 00 00
//mov eax,[rcx+00000BD4]

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 EC 0B 00 00

//Grim Dawn 1.2.0.0 Updated - Re-wrote
//1.1.9.8 was 4C 8B 81 98 0E 00 00
//changed 98 to D8
//"Game.dll"+26E434 to Game.GAME::ItemArtifactFormula::GetCreationCost+4
//SCRAP
aobscanregion(FreeCraftSlotIron,Game.GAME::ItemArtifactFormula::GetCreationCost,Game.GAME::ItemArtifactFormula::GetCreationCost+5F,4C8B81) // should be unique
alloc(newmem,$1000,FreeCraftSlotIron)

label(code)
label(return)
newmem:
// mov r8,[rcx+000002D8]
 mov r8,0
 jmp return

code:
 mov r8,[rcx+00000ED8]
 jmp return

FreeCraftSlotIron:
 jmp newmem
 nop 2

return:
registersymbol(FreeCraftSlotIron)




[DISABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
 db 8B 81 D4 0B 00 00

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
 db 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
 db 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
 db 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
 db 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
 db 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
 db 8B 81 EC 0B 00 00

//SCRAP
FreeCraftSlotIron:
 db 4C 8B 81 D8 0E 00 00
unregistersymbol(FreeCraftSlotIron)
dealloc(newmem)
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Max Item Stack (98) (split/merge item to max out stack) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>65</ID>
 <Description>"Max Item Stack (98) (split/merge item to max out stack) 1.2.0.0 x64"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: v1.1.1.1

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 89 8F 5C 07 00 00
//changed 5C to 74

define(address,Game.GAME::Item::IncrementStack+3F)
define(bytes,89 8F 74 07 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Item::IncrementStack+3F)

label(code)
label(return)

newmem:
 mov ecx,#98
//mov ecx,[rdi+00000760] //0x760 - maxItemValue { 100 }

code:
 mov [rdi+00000774],ecx //0x75C - currentItemValue
 jmp return

address:
 jmp newmem
 nop
return:

[DISABLE]
address:
 db bytes
 // mov [rdi+00000774],ecx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Item::IncrementStack+3F
Game.GAME::Item::IncrementStack+1E - 48 8B F9 - mov rdi,rcx
Game.GAME::Item::IncrementStack+21 - FF 90 C8050000 - call qword ptr [rax+000005C8]
Game.GAME::Item::IncrementStack+27 - 8B 8F 74070000 - mov ecx,[rdi+00000774]
Game.GAME::Item::IncrementStack+2D - 03 CB - add ecx,ebx
Game.GAME::Item::IncrementStack+2F - 3B C8 - cmp ecx,eax
Game.GAME::Item::IncrementStack+31 - 76 0C - jna Game.GAME::Item::IncrementStack+3F
Game.GAME::Item::IncrementStack+33 - 2B C8 - sub ecx,eax
Game.GAME::Item::IncrementStack+35 - 89 0E - mov [rsi],ecx
// ---------- INJECTING HERE ----------
Game.GAME::Item::IncrementStack+37 - 89 87 74070000 - mov [rdi+00000774],eax
// ---------- DONE INJECTING ----------
Game.GAME::Item::IncrementStack+3D - EB 06 - jmp Game.GAME::Item::IncrementStack+45
Game.GAME::Item::IncrementStack+3F - 89 8F 74070000 - mov [rdi+00000774],ecx
Game.GAME::Item::IncrementStack+45 - 8B 87 74070000 - mov eax,[rdi+00000774]
Game.GAME::Item::IncrementStack+4B - 48 8B 5C 24 30 - mov rbx,[rsp+30]
Game.GAME::Item::IncrementStack+50 - 48 8B 74 24 38 - mov rsi,[rsp+38]
Game.GAME::Item::IncrementStack+55 - 89 87 F4050000 - mov [rdi+000005F4],eax
Game.GAME::Item::IncrementStack+5B - B0 01 - mov al,01
Game.GAME::Item::IncrementStack+5D - 48 83 C4 20 - add rsp,20
Game.GAME::Item::IncrementStack+61 - 5F - pop rdi
Game.GAME::Item::IncrementStack+62 - C3 - ret
Game.GAME::Item::IncrementStack+63 - CC - int 3
Game.GAME::Item::IncrementStack+64 - CC - int 3
}
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Max Item Stack (98) - I set it to make a stack 98 to prevent each item picked up from creating a new stack. If 99 or more, a new stack is created each time you loot a component. 98 is max to keep all same items looted from making new stacks each time. Set 98 to whatever you want.
9,999,999 Money 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>28</ID>
 <Description>"9,999,999 Money 1.2.0.0 x64"</Description>
 <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: 1.2.0.0 Updated
//1.1.9.8 was 8B 81 2C 13 00 00
//changed 2C 13 to 84 15

define(address,Game.GAME::Character::GetCurrentMoney)
define(bytes,8B 81 84 15 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$100,Game.GAME::Character::GetCurrentMoney)
alloc(getCurrentMoney_ptr,8)
registersymbol(getCurrentMoney_ptr)

label(code)
label(return)

newmem:
 mov [getCurrentMoney_ptr],rcx
 mov [rcx+00001584],#9999999

code:
 mov eax,[rcx+00001584]
 jmp return

address:
 jmp newmem
 nop
return:

[DISABLE]
address:
 db bytes
 // mov eax,[rcx+00001584]

unregistersymbol(getCurrentMoney_ptr)
dealloc(getCurrentMoney_ptr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetCurrentMoney

Game.GAME::Character::GetWeaponScale+8 - C3 - ret
Game.GAME::Character::GetWeaponScale+9 - CC - int 3
Game.GAME::Character::GetWeaponScale+A - CC - int 3
Game.GAME::Character::GetWeaponScale+B - CC - int 3
Game.GAME::Character::GetWeaponScale+C - CC - int 3
Game.GAME::Character::GetWeaponScale+D - CC - int 3
Game.GAME::Character::GetWeaponScale+E - CC - int 3
Game.GAME::Character::GetWeaponScale+F - CC - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetCurrentMoney - 8B 81 84150000 - mov eax,[rcx+00001584]
// ---------- DONE INJECTING ----------
Game.GAME::Character::GetCurrentMoney+6- C3 - ret
Game.GAME::Character::GetCurrentMoney+7- CC - int 3
Game.GAME::Character::GetCurrentMoney+8- CC - int 3
Game.GAME::Character::GetCurrentMoney+9- CC - int 3
Game.GAME::Character::GetCurrentMoney+A- CC - int 3
Game.GAME::Character::GetCurrentMoney+B- CC - int 3
Game.GAME::Character::GetCurrentMoney+C- CC - int 3
Game.GAME::Character::GetCurrentMoney+D- CC - int 3
Game.GAME::Character::GetCurrentMoney+E- CC - int 3
Game.GAME::Character::GetCurrentMoney+F- CC - int 3
}
</AssemblerScript>
 <CheatEntries>
 <CheatEntry>
 <ID>70</ID>
 <Description>"currentMoney 1.2.0.0"</Description>
 <ShowAsSigned>0</ShowAsSigned>
 <VariableType>4 Bytes</VariableType>
 <Address>[getCurrentMoney_ptr]+1584</Address>
 </CheatEntry>
 </CheatEntries>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Freeze Buff Timers (if above 15 seconds remaining) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>87885</ID>
 <Description>"Freeze Buff Timers (if above 15 seconds remaining) 1.2.0.0"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>// Grim Dawn v1.2.0.0 (x64)
// Affects buffs on enemies as well and a few enemies cast invulnerbale buffs on themselves.
// The option only freezes buffs if 15 seconds or more remains on the timer as the invulnerbale buff
// enemies cast on themselves only lasts for 5 seconds.
// If you encounter an enemy that has an invulnerable buff that lasts longer, increase the #15000 below (15 seconds)
// with a higher value (like #25000 to only freeze buffs with 25 seconds or more remaining)

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 29 BB 34 05 00 00 83 BB
//changed 34 to 04

[ENABLE]
aobscanmodule(infBuff,Game.dll,29 BB 04 05 00 00 83 BB)
alloc(newmem,$1000,infBuff)
label(code)
label(return)

newmem:
 cmp [rbx+00000504],#15000
 jl code
 sub [rbx+00000504],0
 jmp return

code:
 sub [rbx+00000504],edi
 jmp return

infBuff:
 jmp newmem
 nop

return:
registersymbol(infBuff)

[DISABLE]

infBuff:
 db 29 BB 04 05 00 00

unregistersymbol(infBuff)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::SkillSecondary_BuffSelfDuration::Update+4B

Game.GAME::SkillSecondary_BuffSelfDuration::Update+24 - 75 0E - jne Game.GAME::SkillSecondary_BuffSelfDuration::Update+34
Game.GAME::SkillSecondary_BuffSelfDuration::Update+26 - 48 8B 0D 1B705000 - mov rcx,[Game.GAME::gGameEngine]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+2D - 48 81 C1 785A0300 - add rcx,00035A78
Game.GAME::SkillSecondary_BuffSelfDuration::Update+34 - 48 8B 01 - mov rax,[rcx]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+37 - FF 50 08 - call qword ptr [rax+08]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+3A - 48 8B C8 - mov rcx,rax
Game.GAME::SkillSecondary_BuffSelfDuration::Update+3D - 48 85 C0 - test rax,rax
Game.GAME::SkillSecondary_BuffSelfDuration::Update+40 - 74 47 - je Game.GAME::SkillSecondary_BuffSelfDuration::Update+89
Game.GAME::SkillSecondary_BuffSelfDuration::Update+42 - 80 BB 00050000 00 - cmp byte ptr [rbx+00000500],00
Game.GAME::SkillSecondary_BuffSelfDuration::Update+49 - 74 3E - je Game.GAME::SkillSecondary_BuffSelfDuration::Update+89
// ---------- INJECTING HERE ----------
Game.GAME::SkillSecondary_BuffSelfDuration::Update+4B - 29 BB 04050000 - sub [rbx+00000504],edi
// ---------- DONE INJECTING ----------
Game.GAME::SkillSecondary_BuffSelfDuration::Update+51 - 83 BB 04050000 00 - cmp dword ptr [rbx+00000504],00
Game.GAME::SkillSecondary_BuffSelfDuration::Update+58 - 7F 2F - jg Game.GAME::SkillSecondary_BuffSelfDuration::Update+89
Game.GAME::SkillSecondary_BuffSelfDuration::Update+5A - C6 83 00050000 00 - mov byte ptr [rbx+00000500],00
Game.GAME::SkillSecondary_BuffSelfDuration::Update+61 - 4C 8D 44 24 30 - lea r8,[rsp+30]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+66 - 48 8B 00 - mov rax,[rax]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+69 - 48 8B D3 - mov rdx,rbx
Game.GAME::SkillSecondary_BuffSelfDuration::Update+6C - C7 44 24 30 00000000 - mov [rsp+30],00000000
Game.GAME::SkillSecondary_BuffSelfDuration::Update+74 - 66 C7 44 24 34 0000 - mov word ptr [rsp+34],0000
Game.GAME::SkillSecondary_BuffSelfDuration::Update+7B - FF 50 30 - call qword ptr [rax+30]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+7E - 48 8B D6 - mov rdx,rsi
}
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Freeze Buff Timers - I tend to set mine to 5900 (for 5.9 seconds) so it catches most shorter player buffs that 15 seconds and above might miss. That one common enemy and that one boss in shattered realm that cast invulnerable on themselves is about 5 or 5.5 seconds I think. If you set this too low, those two enemies can't be killed while the option is active with that low value.
No Skill Cooldown 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>1178</ID>
 <Description>"No Skill Cooldown 1.2.0.0 x64"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Skill::StartCooldown+9F
//changed +9F,76 to +DF,76 (the last address in the whole GAME::Skill::StartCooldown section for the range of the scan)

[ENABLE]
//Game.GAME::Skill::StartCooldown+9F
aobscanregion(noSkillCooldown,Game.GAME::Skill::StartCooldown,Game.GAME::Skill::StartCooldown+DF,76)

noSkillCooldown:
 db 77
//77 1D
//ja Game.GAME::Skill::StartCooldown+9F
registersymbol(noSkillCooldown)

[DISABLE]
noSkillCooldown:
 db 76
//76 1D
//jna Game.GAME::Skill::StartCooldown+9F
unregistersymbol(noSkillCooldown)

</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Monsters Can't Move 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>1213</ID>
 <Description>"Monsters Can't Move 1.2.0.0 x64"</Description>
 <LastState Activated="1"/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::ControllerMonster::CanMove+EF
//changed +EF to +8F (the last address in the whole Game.GAME::ControllerMonster::CanMove section for the range of the scan)

[ENABLE]
//Game.GAME::ControllerMonster::CanMove+55
aobscanregion(stopMonsterMove,Game.GAME::ControllerMonster::CanMove,Game.GAME::ControllerMonster::CanMove+8F,75xxB8)

stopMonsterMove:
 db 74
//74 10
//je Game.GAME::ControllerMonster::CanMove+55
registersymbol(stopMonsterMove)

[DISABLE]
stopMonsterMove:
 db 75
//75 10
//jne Game.GAME::ControllerMonster::CanMove+55
unregistersymbol(stopMonsterMove)
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
Super Attack Speed 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
 <CheatEntries>
 <CheatEntry>
 <ID>1174</ID>
 <Description>"Super Attack Speed 1.2.0.0 x64"</Description>
 <LastState/>
 <Color>FFFFFF</Color>
 <VariableType>Auto Assembler Script</VariableType>
 <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Player::CapAttackSpeed+9F
//changed +9F to +AF (the last address in the whole Game.GAME::ControllerMonster::CanMove section for the range of the scan)
//0000471C changed to 00004720
//00004718 changed to 0000471C

[ENABLE]
//Game.GAME::Player::CapAttackSpeed+E
aobscanregion(superAttackSpeed,Game.GAME::Player::CapAttackSpeed,Game.GAME::Player::CapAttackSpeed+AF,F30F10)
alloc(newmem,$1000,superAttackSpeed)

label(code)
label(return)

newmem:
 mov [rcx+00004720],(float)1000
 movss xmm6,[rcx+00004720] //0x4720 - maxDefaultAttackSpeed { 200 }
 jmp return

code:
 movss xmm6,[rcx+0000471C] //0x471C - currentDefaultAttackSpeed { 20 }
 jmp return

superAttackSpeed:
 jmp newmem
 nop 3
return:
registersymbol(superAttackSpeed)

[DISABLE]
superAttackSpeed:
 db F3 0F 10 B1 1C 47 00 00

unregistersymbol(superAttackSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::CapAttackSpeed+E

Game.GAME::Player::CapSpellCastSpeed+AA - CC - int 3
Game.GAME::Player::CapSpellCastSpeed+AB - CC - int 3
Game.GAME::Player::CapSpellCastSpeed+AC - CC - int 3
Game.GAME::Player::CapSpellCastSpeed+AD - CC - int 3
Game.GAME::Player::CapSpellCastSpeed+AE - CC - int 3
Game.GAME::Player::CapSpellCastSpeed+AF - CC - int 3
Game.GAME::Player::CapAttackSpeed - 40 53 - push rbx
Game.GAME::Player::CapAttackSpeed+2 - 48 83 EC 50 - sub rsp,50
Game.GAME::Player::CapAttackSpeed+6 - 0F29 74 24 40 - movaps [rsp+40],xmm6
Game.GAME::Player::CapAttackSpeed+B - 0F57 C0 - xorps xmm0,xmm0
// ---------- INJECTING HERE ----------
Game.GAME::Player::CapAttackSpeed+E - F3 0F10 B1 1C470000 - movss xmm6,[rcx+0000471C]
// ---------- DONE INJECTING ----------
Game.GAME::Player::CapAttackSpeed+16 - 48 8B D9 - mov rbx,rcx
Game.GAME::Player::CapAttackSpeed+19 - 0F2F F0 - comiss xmm6,xmm0
Game.GAME::Player::CapAttackSpeed+1C - 44 0F29 44 24 20 - movaps [rsp+20],xmm8
Game.GAME::Player::CapAttackSpeed+22 - 44 0F28 C1 - movaps xmm8,xmm1
Game.GAME::Player::CapAttackSpeed+26 - 76 6B - jna Game.GAME::Player::CapAttackSpeed+93
Game.GAME::Player::CapAttackSpeed+28 - 0F29 7C 24 30 - movaps [rsp+30],xmm7
Game.GAME::Player::CapAttackSpeed+2D - F3 0F10 B9 744B0000 - movss xmm7,[rcx+00004B74]
Game.GAME::Player::CapAttackSpeed+35 - 0F2F F8 - comiss xmm7,xmm0
Game.GAME::Player::CapAttackSpeed+38 - 76 53 - jna Game.GAME::Player::CapAttackSpeed+8D
Game.GAME::Player::CapAttackSpeed+3A - 48 81 C1 80110000 - add rcx,00001180
}
</AssemblerScript>
 </CheatEntry>
 </CheatEntries>
</CheatTable>
_____

Regarding Inf Mana, it is still giving me a problem.

"movss xmm1,[rbx+000012C0]" - 0x12C0 seems to be related to a character data table address as it is also used in the old "Infinite Health" option to set your current health to be your max health. It seems like it is loading values from "Game.GAME::CharacterBio::Update" or somewhere, but I can't find how this value was found to then locate it in 1.1.9.8 and then see what that value changed to in 1.2.0.0.

The 1.2 address for current mana changed to F3 0F 10 81 EC 0D 00 00 (A4 changed to EC). While you are able to make your current mana much higher than your max mana, your max mana determines the mana bar size. Setting your current mana to be higher than your max will cause the blue mana background to extend beyond the bar out to the left across the screen.

Need to find a way to copy the max mana value to your current mana, but max mana is determined by several values added together. Need to find what that [rbx+000012C0] character data reference was to in 1.1.9.8 and then see what it changed to in 1.2.0.0.
Thanks for the update! :)

dawggboi
What is cheating?
What is cheating?
Posts: 1
Joined: Mon Nov 20, 2023 11:11 pm
Reputation: 0

Re: Grim Dawn + All DLC's

Post by dawggboi »

StinVec wrote:
Fri Nov 17, 2023 6:25 pm
Regarding my cheat option contributions:

[SNIP]

EDIT: I've managed to get dual 1.1.9.8 and 1.2.0.0 installations so I can work on table updates, but strictly play on 1.1.9.8.

I've quickly updated several of the cheat options, but need to step away. I'll finish updating what others I am able to and post the updated options in a little while.

(Having an issue with the Inf Mana option as the current max mana value in the code (12 C0) seems to have changed and I can't figure out what those bytes should be just yet. Earlier tables had it as 12 BC, but it changed to 12 C0 a while ago, but can't find what it is now.)

_____

UPDATED:

Sorry, still short on time and access for now. I'll paste some updated cheat option codes below. I'll add in new comments if and when I am able to update others.

Select all the code for an option and copy it.
Then paste it (CTRL+V) into your cheat table to add the updated option.

Enable Harder Difficulties (enable then create new character) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>103</ID>
      <Description>"Enable Harder Difficulties (enable then create new character) 1.2.0.0 x64"</Description>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 C0 42 00 00
//changed C0 42 to 18 47

[ENABLE]

aobscanmodule(enableDifficulty,Game.dll,8B 81 18 47 00 00) // should be unique
alloc(newmem,$1000,enableDifficulty)

label(code)
label(return)

newmem:
mov [rcx+00004718],2
code:
  mov eax,[rcx+00004718]
  jmp return

enableDifficulty:
  jmp newmem
  nop
return:
registersymbol(enableDifficulty)

[DISABLE]

enableDifficulty:
  db 8B 81 18 47 00 00

unregistersymbol(enableDifficulty)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::GetGreatestDifficultyCompleted

GGame.GAME::Player::SetGreatestDifficultyCompleted+6 - C3                    - ret
Game.GAME::Player::SetGreatestDifficultyCompleted+7 - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+8 - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+9 - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+A - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+B - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+C - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+D - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+E - CC                    - int 3
Game.GAME::Player::SetGreatestDifficultyCompleted+F - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Player::GetGreatestDifficultyCompleted   - 8B 81 18470000        - mov eax,[rcx+00004718]
// ---------- DONE INJECTING  ----------
Game.GAME::Player::GetGreatestDifficultyCompleted+6 - 33 C9                 - xor ecx,ecx
Game.GAME::Player::GetGreatestDifficultyCompleted+8 - 83 F8 03              - cmp eax,03
Game.GAME::Player::GetGreatestDifficultyCompleted+B - 0F44 C1               - cmove eax,ecx
Game.GAME::Player::GetGreatestDifficultyCompleted+E - C3                    - ret
Game.GAME::Player::GetGreatestDifficultyCompleted+F - CC                    - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted- 89 91 20470000        - mov [rcx+00004720],edx
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+6- C3                    - ret
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+7- CC                    - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+8- CC                    - int 3
Game.GAME::Player::SetGreatestSurvivalDifficultyCompleted+9- CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Invincibility (activates built-in "game.Invincible" cheat) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>87848</ID>
      <Description>"Invincibility (activates built-in "game.Invincible" cheat) 1.2.0.0 x64"</Description>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: Steam v1.2.0.0 (x64)
//
//1.1.9.8 pattern was 0F B6 83 2C 1A 00 00 48 83 C4 20 5B C3
//changed 2C 1A to 9C 1D

{
Game.GAME::Player::IsInvincible+23 - 0FB6 83 9C1D0000      - movzx eax,byte ptr [rbx+00001D9C]
Game.GAME::Player::IsInvincible+2A - 48 83 C4 20           - add rsp,20
Game.GAME::Player::IsInvincible+2E - 5B                    - pop rbx
Game.GAME::Player::IsInvincible+2F - C3                    - ret
}

{$lua}
if syntaxcheck then return end
cheat_name = "game.Invincible"
[ENABLE]
local pattern = "0F B6 83 9C 1D 00 00 48 83 C4 20 5B C3"
local replace = "90 90 90 90 90 90 90 ?? ?? ?? ?? ?? ??"
-- edit the name of the cheat
-- edit the pattern to search
-- edit the replacement bytes
-- use ?? to ignore the bytes
-- do not edit the code below
local scans = AOBScan(pattern)
if scans == nil then
  showMessage("Unable to find pattern:\n"..pattern)
else
  local saved = {}
  local length = (#replace + 1) / 3
  for i = 0, scans.Count - 1 do
    local backup = readBytes(scans[i], length, true)
    local bytes = {}
    for hex in string.gmatch(replace, "%S+") do
      local size = #bytes + 1
      if hex == "??" then
        bytes[size] = backup[size]
      else
        bytes[size] = tonumber(hex, 16)
      end
    end
    saved[i] = backup
    writeBytes(scans[i], bytes)
  end
  _G[cheat_name] = {
    ["scans"] = scans,
    ["saved"] = saved
  }
end
[DISABLE]
local vars = _G[cheat_name]
if vars ~= nil then
  local scans = vars.scans
  local saved = vars.saved
  for i = 0, scans.Count - 1 do
    writeBytes(scans[i], saved[i])
  end
  scans.Destroy()
  vars.scans = nil
  vars.saved = nil
  vars = nil
  _G[cheat_name] = nil
end

{$asm}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Free Crafting (Zero quantity needed) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>87881</ID>
      <Description>"Free Crafting (Zero quantity needed) 1.2.0.0 x64"</Description>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 94 0B 00 00
//changed 94 to D4
//changed 9C to DC
//changed A0 to E0
//changed A4 to E4
//changed A8 to E8
//changed AC to EC

[ENABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 D4 0B 00 00
//mov eax,[rcx+00000BD4]

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
  db B8 00 00 00 00 90
//   8B 81 EC 0B 00 00

//Grim Dawn 1.2.0.0 Updated - Re-wrote
//1.1.9.8 was 4C 8B 81 98 0E 00 00
//changed 98 to D8
//"Game.dll"+26E434 to Game.GAME::ItemArtifactFormula::GetCreationCost+4
//SCRAP
aobscanregion(FreeCraftSlotIron,Game.GAME::ItemArtifactFormula::GetCreationCost,Game.GAME::ItemArtifactFormula::GetCreationCost+5F,4C8B81) // should be unique
alloc(newmem,$1000,FreeCraftSlotIron)

label(code)
label(return)
newmem:
//  mov r8,[rcx+000002D8]
  mov r8,0
  jmp return

code:
  mov r8,[rcx+00000ED8]
  jmp return

FreeCraftSlotIron:
  jmp newmem
  nop 2

return:
registersymbol(FreeCraftSlotIron)




[DISABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
  db 8B 81 D4 0B 00 00

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
  db 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
  db 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
  db 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
  db 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
  db 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
  db 8B 81 EC 0B 00 00

//SCRAP
FreeCraftSlotIron:
  db 4C 8B 81 D8 0E 00 00
unregistersymbol(FreeCraftSlotIron)
dealloc(newmem)
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Max Item Stack (98) (split/merge item to max out stack) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>65</ID>
      <Description>"Max Item Stack (98) (split/merge item to max out stack) 1.2.0.0 x64"</Description>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: v1.1.1.1

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 89 8F 5C 07 00 00
//changed 5C to 74

define(address,Game.GAME::Item::IncrementStack+3F)
define(bytes,89 8F 74 07 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Item::IncrementStack+3F)

label(code)
label(return)

newmem:
  mov ecx,#98
//mov ecx,[rdi+00000760]  //0x760 - maxItemValue { 100 }

code:
  mov [rdi+00000774],ecx  //0x75C - currentItemValue
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]
address:
  db bytes
  // mov [rdi+00000774],ecx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Item::IncrementStack+3F
Game.GAME::Item::IncrementStack+1E - 48 8B F9              - mov rdi,rcx
Game.GAME::Item::IncrementStack+21 - FF 90 C8050000        - call qword ptr [rax+000005C8]
Game.GAME::Item::IncrementStack+27 - 8B 8F 74070000        - mov ecx,[rdi+00000774]
Game.GAME::Item::IncrementStack+2D - 03 CB                 - add ecx,ebx
Game.GAME::Item::IncrementStack+2F - 3B C8                 - cmp ecx,eax
Game.GAME::Item::IncrementStack+31 - 76 0C                 - jna Game.GAME::Item::IncrementStack+3F
Game.GAME::Item::IncrementStack+33 - 2B C8                 - sub ecx,eax
Game.GAME::Item::IncrementStack+35 - 89 0E                 - mov [rsi],ecx
// ---------- INJECTING HERE ----------
Game.GAME::Item::IncrementStack+37 - 89 87 74070000        - mov [rdi+00000774],eax
// ---------- DONE INJECTING  ----------
Game.GAME::Item::IncrementStack+3D - EB 06                 - jmp Game.GAME::Item::IncrementStack+45
Game.GAME::Item::IncrementStack+3F - 89 8F 74070000        - mov [rdi+00000774],ecx
Game.GAME::Item::IncrementStack+45 - 8B 87 74070000        - mov eax,[rdi+00000774]
Game.GAME::Item::IncrementStack+4B - 48 8B 5C 24 30        - mov rbx,[rsp+30]
Game.GAME::Item::IncrementStack+50 - 48 8B 74 24 38        - mov rsi,[rsp+38]
Game.GAME::Item::IncrementStack+55 - 89 87 F4050000        - mov [rdi+000005F4],eax
Game.GAME::Item::IncrementStack+5B - B0 01                 - mov al,01
Game.GAME::Item::IncrementStack+5D - 48 83 C4 20           - add rsp,20
Game.GAME::Item::IncrementStack+61 - 5F                    - pop rdi
Game.GAME::Item::IncrementStack+62 - C3                    - ret
Game.GAME::Item::IncrementStack+63 - CC                    - int 3
Game.GAME::Item::IncrementStack+64 - CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Max Item Stack (98) - I set it to make a stack 98 to prevent each item picked up from creating a new stack. If 99 or more, a new stack is created each time you loot a component. 98 is max to keep all same items looted from making new stacks each time. Set 98 to whatever you want.
9,999,999 Money 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>28</ID>
      <Description>"9,999,999 Money 1.2.0.0 x64"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Game: Grim Dawn + All DLC's
//Version: 1.2.0.0 Updated
//1.1.9.8 was 8B 81 2C 13 00 00
//changed 2C 13 to 84 15

define(address,Game.GAME::Character::GetCurrentMoney)
define(bytes,8B 81 84 15 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$100,Game.GAME::Character::GetCurrentMoney)
alloc(getCurrentMoney_ptr,8)
registersymbol(getCurrentMoney_ptr)

label(code)
label(return)

newmem:
  mov [getCurrentMoney_ptr],rcx
  mov [rcx+00001584],#9999999

code:
  mov eax,[rcx+00001584]
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]
address:
  db bytes
  // mov eax,[rcx+00001584]

unregistersymbol(getCurrentMoney_ptr)
dealloc(getCurrentMoney_ptr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetCurrentMoney

Game.GAME::Character::GetWeaponScale+8 - C3                    - ret
Game.GAME::Character::GetWeaponScale+9 - CC                    - int 3
Game.GAME::Character::GetWeaponScale+A - CC                    - int 3
Game.GAME::Character::GetWeaponScale+B - CC                    - int 3
Game.GAME::Character::GetWeaponScale+C - CC                    - int 3
Game.GAME::Character::GetWeaponScale+D - CC                    - int 3
Game.GAME::Character::GetWeaponScale+E - CC                    - int 3
Game.GAME::Character::GetWeaponScale+F - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetCurrentMoney  - 8B 81 84150000        - mov eax,[rcx+00001584]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetCurrentMoney+6- C3                    - ret
Game.GAME::Character::GetCurrentMoney+7- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+8- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+9- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+A- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+B- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+C- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+D- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+E- CC                    - int 3
Game.GAME::Character::GetCurrentMoney+F- CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>70</ID>
          <Description>"currentMoney 1.2.0.0"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>[getCurrentMoney_ptr]+1584</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Freeze Buff Timers (if above 15 seconds remaining) 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>87885</ID>
      <Description>"Freeze Buff Timers (if above 15 seconds remaining) 1.2.0.0"</Description>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>// Grim Dawn v1.2.0.0 (x64)
// Affects buffs on enemies as well and a few enemies cast invulnerbale buffs on themselves.
// The option only freezes buffs if 15 seconds or more remains on the timer as the invulnerbale buff
// enemies cast on themselves only lasts for 5 seconds.
// If you encounter an enemy that has an invulnerable buff that lasts longer, increase the #15000 below (15 seconds)
// with a higher value (like #25000 to only freeze buffs with 25 seconds or more remaining)

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 29 BB 34 05 00 00 83 BB
//changed 34 to 04

[ENABLE]
aobscanmodule(infBuff,Game.dll,29 BB 04 05 00 00 83 BB)
alloc(newmem,$1000,infBuff)
label(code)
label(return)

newmem:
  cmp [rbx+00000504],#15000
  jl code
  sub [rbx+00000504],0
  jmp return

code:
  sub [rbx+00000504],edi
  jmp return

infBuff:
  jmp newmem
  nop

return:
registersymbol(infBuff)

[DISABLE]

infBuff:
  db 29 BB 04 05 00 00

unregistersymbol(infBuff)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::SkillSecondary_BuffSelfDuration::Update+4B

Game.GAME::SkillSecondary_BuffSelfDuration::Update+24 - 75 0E                 - jne Game.GAME::SkillSecondary_BuffSelfDuration::Update+34
Game.GAME::SkillSecondary_BuffSelfDuration::Update+26 - 48 8B 0D 1B705000     - mov rcx,[Game.GAME::gGameEngine]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+2D - 48 81 C1 785A0300     - add rcx,00035A78
Game.GAME::SkillSecondary_BuffSelfDuration::Update+34 - 48 8B 01              - mov rax,[rcx]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+37 - FF 50 08              - call qword ptr [rax+08]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+3A - 48 8B C8              - mov rcx,rax
Game.GAME::SkillSecondary_BuffSelfDuration::Update+3D - 48 85 C0              - test rax,rax
Game.GAME::SkillSecondary_BuffSelfDuration::Update+40 - 74 47                 - je Game.GAME::SkillSecondary_BuffSelfDuration::Update+89
Game.GAME::SkillSecondary_BuffSelfDuration::Update+42 - 80 BB 00050000 00     - cmp byte ptr [rbx+00000500],00
Game.GAME::SkillSecondary_BuffSelfDuration::Update+49 - 74 3E                 - je Game.GAME::SkillSecondary_BuffSelfDuration::Update+89
// ---------- INJECTING HERE ----------
Game.GAME::SkillSecondary_BuffSelfDuration::Update+4B - 29 BB 04050000        - sub [rbx+00000504],edi
// ---------- DONE INJECTING  ----------
Game.GAME::SkillSecondary_BuffSelfDuration::Update+51 - 83 BB 04050000 00     - cmp dword ptr [rbx+00000504],00
Game.GAME::SkillSecondary_BuffSelfDuration::Update+58 - 7F 2F                 - jg Game.GAME::SkillSecondary_BuffSelfDuration::Update+89
Game.GAME::SkillSecondary_BuffSelfDuration::Update+5A - C6 83 00050000 00     - mov byte ptr [rbx+00000500],00
Game.GAME::SkillSecondary_BuffSelfDuration::Update+61 - 4C 8D 44 24 30        - lea r8,[rsp+30]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+66 - 48 8B 00              - mov rax,[rax]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+69 - 48 8B D3              - mov rdx,rbx
Game.GAME::SkillSecondary_BuffSelfDuration::Update+6C - C7 44 24 30 00000000  - mov [rsp+30],00000000
Game.GAME::SkillSecondary_BuffSelfDuration::Update+74 - 66 C7 44 24 34 0000   - mov word ptr [rsp+34],0000
Game.GAME::SkillSecondary_BuffSelfDuration::Update+7B - FF 50 30              - call qword ptr [rax+30]
Game.GAME::SkillSecondary_BuffSelfDuration::Update+7E - 48 8B D6              - mov rdx,rsi
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Freeze Buff Timers - I tend to set mine to 5900 (for 5.9 seconds) so it catches most shorter player buffs that 15 seconds and above might miss. That one common enemy and that one boss in shattered realm that cast invulnerable on themselves is about 5 or 5.5 seconds I think. If you set this too low, those two enemies can't be killed while the option is active with that low value.
No Skill Cooldown 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1178</ID>
      <Description>"No Skill Cooldown 1.2.0.0 x64"</Description>
      <LastState/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Skill::StartCooldown+9F
//changed +9F,76 to +DF,76 (the last address in the whole GAME::Skill::StartCooldown section for the range of the scan)

[ENABLE]
//Game.GAME::Skill::StartCooldown+9F
aobscanregion(noSkillCooldown,Game.GAME::Skill::StartCooldown,Game.GAME::Skill::StartCooldown+DF,76)

noSkillCooldown:
  db 77
//77 1D
//ja Game.GAME::Skill::StartCooldown+9F
registersymbol(noSkillCooldown)

[DISABLE]
noSkillCooldown:
  db 76
//76 1D
//jna Game.GAME::Skill::StartCooldown+9F
unregistersymbol(noSkillCooldown)

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Monsters Can't Move 1.2.0.0 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1213</ID>
      <Description>"Monsters Can't Move 1.2.0.0 x64"</Description>
      <LastState Activated="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::ControllerMonster::CanMove+EF
//changed +EF to +8F (the last address in the whole Game.GAME::ControllerMonster::CanMove section for the range of the scan)

[ENABLE]
//Game.GAME::ControllerMonster::CanMove+55
aobscanregion(stopMonsterMove,Game.GAME::ControllerMonster::CanMove,Game.GAME::ControllerMonster::CanMove+8F,75xxB8)

stopMonsterMove:
  db 74
//74 10
//je Game.GAME::ControllerMonster::CanMove+55
registersymbol(stopMonsterMove)

[DISABLE]
stopMonsterMove:
  db 75
//75 10
//jne Game.GAME::ControllerMonster::CanMove+55
unregistersymbol(stopMonsterMove)
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
EDIT: Removed "Super Attack Speed " update - Updated the code bytes, but more was changed with it and it was only raising speed to the default 200% max, not altering it to 1000%. More needs to be done on it to work like it should.

_____

Regarding Inf Mana, it is still giving me a problem.

"movss xmm1,[rbx+000012C0]" - 0x12C0 seems to be related to a character data table address as it is also used in the old "Infinite Health" option to set your current health to be your max health. It seems like it is loading values from "Game.GAME::CharacterBio::Update" or somewhere, but I can't find how this value was found to then locate it in 1.1.9.8 and then see what that value changed to in 1.2.0.0.

The 1.2 address for current mana changed to F3 0F 10 81 EC 0D 00 00 (A4 changed to EC). While you are able to make your current mana much higher than your max mana, your max mana determines the mana bar size. Setting your current mana to be higher than your max will cause the blue mana background to extend beyond the bar out to the left across the screen.

Need to find a way to copy the max mana value to your current mana, but max mana is determined by several values added together. Need to find what that [rbx+000012C0] character data reference was to in 1.1.9.8 and then see what it changed to in 1.2.0.0.

EDIT:
I'm understanding that 12C0 with the Inf Mana better and how that was gotten and used in the old tables, but it doesn't matter anymore since the game code is changed in 1.2 with how it calculates max mana limit and that isn't useful anymore. Need to find another way to get current mana to match max mana now.
I am trying to update the scripts but not sure if i am doing it right....i right click on for example invincibility and click change script and then paste the new code....it says not all code is injectable and i click yes but nothing happens...any guidance?

Scheimann
Expert Cheater
Expert Cheater
Posts: 107
Joined: Sun Jul 21, 2019 4:27 am
Reputation: 25

Re: Grim Dawn + All DLC's

Post by Scheimann »

dawggboi wrote:
Mon Nov 20, 2023 11:14 pm
I am trying to update the scripts but not sure if i am doing it right....i right click on for example invincibility and click change script and then paste the new code....it says not all code is injectable and i click yes but nothing happens...any guidance?
You're doing it the wrong way

There are two ways to make this work. One is to follow what he said about copying everything and hitting CTRL+V in a clean area of your table.

To do it the way you want, updating what's already there, you only need to copy the code and not all the containers. Ex:
Updated Code for Free Crafting Combined

Code: Select all

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 94 0B 00 00
//changed 94 to D4
//changed 9C to DC
//changed A0 to E0
//changed A4 to E4
//changed A8 to E8
//changed AC to EC

[ENABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 D4 0B 00 00
//mov eax,[rcx+00000BD4]

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 EC 0B 00 00

//Grim Dawn 1.2.0.0 Updated - Re-wrote
//1.1.9.8 was 4C 8B 81 98 0E 00 00
//changed 98 to D8
//"Game.dll"+26E434 to Game.GAME::ItemArtifactFormula::GetCreationCost+4
//SCRAP
aobscanregion(FreeCraftSlotIron,Game.GAME::ItemArtifactFormula::GetCreationCost,Game.GAME::ItemArtifactFormula::GetCreationCost+5F,4C8B81) // should be unique
alloc(newmem,$1000,FreeCraftSlotIron)

label(code)
label(return)
newmem:
// mov r8,[rcx+000002D8]
 mov r8,0
 jmp return

code:
 mov r8,[rcx+00000ED8]
 jmp return

FreeCraftSlotIron:
 jmp newmem
 nop 2

return:
registersymbol(FreeCraftSlotIron)




[DISABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
 db 8B 81 D4 0B 00 00

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
 db 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
 db 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
 db 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
 db 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
 db 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
 db 8B 81 EC 0B 00 00

//SCRAP
FreeCraftSlotIron:
 db 4C 8B 81 D8 0E 00 00
unregistersymbol(FreeCraftSlotIron)
dealloc(newmem)

User avatar
Chindopopito
Expert Cheater
Expert Cheater
Posts: 89
Joined: Wed Apr 26, 2023 4:40 pm
Reputation: 30

Re: Grim Dawn + All DLC's

Post by Chindopopito »

Scheimann wrote:
Tue Nov 21, 2023 11:35 am
dawggboi wrote:
Mon Nov 20, 2023 11:14 pm
I am trying to update the scripts but not sure if i am doing it right....i right click on for example invincibility and click change script and then paste the new code....it says not all code is injectable and i click yes but nothing happens...any guidance?
You're doing it the wrong way

There are two ways to make this work. One is to follow what he said about copying everything and hitting CTRL+V in a clean area of your table.

To do it the way you want, updating what's already there, you only need to copy the code and not all the containers. Ex:
Updated Code for Free Crafting Combined

Code: Select all

//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was 8B 81 94 0B 00 00
//changed 94 to D4
//changed 9C to DC
//changed A0 to E0
//changed A4 to E4
//changed A8 to E8
//changed AC to EC

[ENABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 D4 0B 00 00
//mov eax,[rcx+00000BD4]

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
 db B8 00 00 00 00 90
// 8B 81 EC 0B 00 00

//Grim Dawn 1.2.0.0 Updated - Re-wrote
//1.1.9.8 was 4C 8B 81 98 0E 00 00
//changed 98 to D8
//"Game.dll"+26E434 to Game.GAME::ItemArtifactFormula::GetCreationCost+4
//SCRAP
aobscanregion(FreeCraftSlotIron,Game.GAME::ItemArtifactFormula::GetCreationCost,Game.GAME::ItemArtifactFormula::GetCreationCost+5F,4C8B81) // should be unique
alloc(newmem,$1000,FreeCraftSlotIron)

label(code)
label(return)
newmem:
// mov r8,[rcx+000002D8]
 mov r8,0
 jmp return

code:
 mov r8,[rcx+00000ED8]
 jmp return

FreeCraftSlotIron:
 jmp newmem
 nop 2

return:
registersymbol(FreeCraftSlotIron)




[DISABLE]
//MAIN Slot
Game.GAME::ItemArtifactFormula::GetReagentBaseQuantityForFormula:
 db 8B 81 D4 0B 00 00

//SLOT 1 Upper Left
Game.GAME::ItemArtifactFormula::GetReagent1QuantityForFormula:
 db 8B 81 D8 0B 00 00

//SLOT 2 Upper Right
Game.GAME::ItemArtifactFormula::GetReagent2QuantityForFormula:
 db 8B 81 DC 0B 00 00

//SLOT 3 Middle Left
Game.GAME::ItemArtifactFormula::GetReagent3QuantityForFormula:
 db 8B 81 E0 0B 00 00

//SLOT 4 Middle Right
Game.GAME::ItemArtifactFormula::GetReagent4QuantityForFormula:
 db 8B 81 E4 0B 00 00

//SLOT 5 Bottom Left
Game.GAME::ItemArtifactFormula::GetReagent5QuantityForFormula:
 db 8B 81 E8 0B 00 00

//SLOT 6 Bottom Right
Game.GAME::ItemArtifactFormula::GetReagent6QuantityForFormula:
 db 8B 81 EC 0B 00 00

//SCRAP
FreeCraftSlotIron:
 db 4C 8B 81 D8 0E 00 00
unregistersymbol(FreeCraftSlotIron)
dealloc(newmem)
^ This.
What I do is just copy what's inside each updated code, Ctrl+F and search for the script ID then replace the code. Everything working great so far.

User avatar
StinVec
Table Makers
Table Makers
Posts: 135
Joined: Sun Jun 25, 2017 7:02 am
Reputation: 209

Re: Grim Dawn + All DLC's

Post by StinVec »

EDIT: Re-pasted all codes in case they did not paste properly last time.

1.2.0.3 x64 - Infinite Mana (re-wrote and functions normal again)
1.2.0.3 x64 - Super Spell Cast Speed
1.2.0.3 x64 - Super Attack Speed
1.2.0.3 x64 - Super Run Speed
1.2.0.3 x64 - Set Pet Limit to 20 for all Pets
1.2.0.3 x64 - Infinite Skill Points (999 locked) (re-wrote)
1.2.0.3 x64 - Infinite Devotion Points (999 locked) (re-wrote)
1.2.0.3 x64 - Infinite Attribute Points (999 locked)
1.2.0.3 x64 - Player Info Pointers (attack something to briefly populate) (updated)

Copy all of the code in the spoiler and paste it (CTRL+V) into your cheat table to add each option to your table.
Infinite Mana 1.2.0.3 x64 (re-wrote and functions normal again)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>134990</ID>
      <Description>"Infinite Mana"</Description>
      <Options moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated - Re-wrote

define(address,Game.GAME::CharacterBio::Update+50E)
define(bytes,F3 0F 11 4F 3C)

[ENABLE]
assert(address,bytes)
alloc(newmem,$100,Game.GAME::CharacterBio::Update+50E)

label(code)
label(return)

newmem:
  movss [rdi+3C],xmm4
  jmp return

code:
  movss [rdi+3C],xmm1
  jmp return

address:
  jmp newmem

return:

[DISABLE]
address:
  db bytes

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetCurrentMana

Game.GAME::CharacterBio::Update+4E2 - 0F28 D0               - movaps xmm2,xmm0
Game.GAME::CharacterBio::Update+4E5 - F3 0F58 4F 3C         - addss xmm1,[rdi+3C]
Game.GAME::CharacterBio::Update+4EA - F3 0F10 47 44         - movss xmm0,[rdi+44]
Game.GAME::CharacterBio::Update+4EF - F3 0F5C C2            - subss xmm0,xmm2
Game.GAME::CharacterBio::Update+4F3 - F3 0F58 CB            - addss xmm1,xmm3
Game.GAME::CharacterBio::Update+4F7 - F3 41 0F5F C0         - maxss xmm0,xmm8
Game.GAME::CharacterBio::Update+4FC - F3 0F5C CA            - subss xmm1,xmm2
Game.GAME::CharacterBio::Update+500 - F3 0F11 47 44         - movss [rdi+44],xmm0
Game.GAME::CharacterBio::Update+505 - F3 41 0F5F C8         - maxss xmm1,xmm8
Game.GAME::CharacterBio::Update+50A - F3 0F5D CC            - minss xmm1,xmm4
// ---------- INJECTING HERE ----------
Game.GAME::CharacterBio::Update+50E - F3 0F11 4F 3C         - movss [rdi+3C],xmm1
// ---------- DONE INJECTING  ----------
Game.GAME::CharacterBio::Update+513 - EB 56                 - jmp Game.GAME::CharacterBio::Update+56B
Game.GAME::CharacterBio::Update+515 - BA 04000000           - mov edx,00000004
Game.GAME::CharacterBio::Update+51A - C6 87 A9070000 00     - mov byte ptr [rdi+000007A9],00
Game.GAME::CharacterBio::Update+521 - 48 8D 8F 98000000     - lea rcx,[rdi+00000098]
Game.GAME::CharacterBio::Update+528 - E8 B3CF0100           - call Game.GAME::CharAttributeAccumulator::GetValue
Game.GAME::CharacterBio::Update+52D - 0F57 C9               - xorps xmm1,xmm1
Game.GAME::CharacterBio::Update+530 - 48 8D 8F 98000000     - lea rcx,[rdi+00000098]
Game.GAME::CharacterBio::Update+537 - F3 0F5A C8            - cvtss2sd xmm1,xmm0
Game.GAME::CharacterBio::Update+53B - 33 F6                 - xor esi,esi
Game.GAME::CharacterBio::Update+53D - 48 89 77 28           - mov [rdi+28],rsi
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>136081</ID>
          <Description>"Alternate (can use both)"</Description>
          <Options moManualExpandCollapse="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1" moAllowManualCollapseAndExpand="1"/>
          <Color>FFFF80</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>136046</ID>
              <Description>"Infinite Mana (mana bar locked to 250), reserve is ignored"</Description>
              <Color>FFFFFF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>//Grim Dawn 1.2.0.2 Updated
//1.1.9.8 was F3 0F 10 81 A4 0D 00 00
//changed A4 to EC

define(address,Game.GAME::Character::GetCurrentMana)
define(bytes,F3 0F 10 81 EC 0D 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$100,Game.GAME::Character::GetCurrentMana)

label(code)
label(return)

newmem:
  cmp rbx,0 //enemies have common value 0x0
  je code
//  movss xmm1,[rbx+000012C0]  //1.1.9.8 maxMana 000012C0
//  movss [rcx+00000DEC],xmm1  //1.2.0.2 temp disabled
//  movss xmm0,[rcx+00000DEC]  //1.2.0.2 temp disabled
  mov [rcx+00000DEC],(float)250  //1.2.0.2 temp added
  movss xmm0,[rcx+00000DEC]
  jmp return

code:
  movss xmm0,[rcx+00000DEC]
  jmp return

address:
  jmp newmem
  nop
  nop
  nop
return:

[DISABLE]
address:
  db bytes
  // movss xmm0,[rcx+00000DEC]

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetCurrentMana

Game.GAME::Character::ContributeMiscConversionAttributes+E6 - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+E7 - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+E8 - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+E9 - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+EA - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+EB - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+EC - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+ED - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+EE - CC                    - int 3
Game.GAME::Character::ContributeMiscConversionAttributes+EF - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetCurrentMana                        - F3 0F10 81 EC0D0000   - movss xmm0,[rcx+00000DEC]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetCurrentMana+8                      - 0F57 C9               - xorps xmm1,xmm1
Game.GAME::Character::GetCurrentMana+B                      - F3 0F5F C1            - maxss xmm0,xmm1
Game.GAME::Character::GetCurrentMana+F                      - C3                    - ret
Game.GAME::Character::SetCurrentMana                        - 40 53                 - push rbx
Game.GAME::Character::SetCurrentMana+2                      - 48 83 EC 30           - sub rsp,30
Game.GAME::Character::SetCurrentMana+6                      - 48 8B D9              - mov rbx,rcx
Game.GAME::Character::SetCurrentMana+9                      - 0F29 74 24 20         - movaps [rsp+20],xmm6
Game.GAME::Character::SetCurrentMana+E                      - 48 81 C1 480E0000     - add rcx,00000E48
Game.GAME::Character::SetCurrentMana+15                     - BA 05000000           - mov edx,00000005
Game.GAME::Character::SetCurrentMana+1A                     - 0F28 F1               - movaps xmm6,xmm1
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Super Spell Cast Speed 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1175</ID>
      <Description>"Super Spell Cast Speed"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was GAME::Player::CapSpellCastSpeed+9F
//changed +9F to +AF (the last address in the whole GAME::Player::CapSpellCastSpeed section for the range of the scan)
//00004714 changed to 00004B6C
//00004710 changed to 00004B68

[ENABLE]
//GAME::Player::CapSpellCastSpeed+E
aobscanregion(superSpellCastSpeed,GAME::Player::CapSpellCastSpeed,GAME::Player::CapSpellCastSpeed+AF,F30F10)
alloc(newmem,$1000,superSpellCastSpeed)

label(code)
label(return)

newmem:
  mov [rcx+00004B6C],(float)1000  //maxSpellCastSpeed
  movss xmm6,[rcx+00004B6C]
  jmp return

code:
  movss xmm6,[rcx+00004B68]  //currentSpellCastSpeed
  jmp return

superSpellCastSpeed:
  jmp newmem
  nop 3
return:
registersymbol(superSpellCastSpeed)

[DISABLE]
superSpellCastSpeed:
  db F3 0F 10 B1 68 4B 00 00

unregistersymbol(superSpellCastSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::CapSpellCastSpeed+E

Game.GAME::Player::CapRunSpeed+AA - CC                    - int 3
Game.GAME::Player::CapRunSpeed+AB - CC                    - int 3
Game.GAME::Player::CapRunSpeed+AC - CC                    - int 3
Game.GAME::Player::CapRunSpeed+AD - CC                    - int 3
Game.GAME::Player::CapRunSpeed+AE - CC                    - int 3
Game.GAME::Player::CapRunSpeed+AF - CC                    - int 3
Game.GAME::Player::CapSpellCastSpeed- 40 53                 - push rbx
Game.GAME::Player::CapSpellCastSpeed+2- 48 83 EC 50           - sub rsp,50
Game.GAME::Player::CapSpellCastSpeed+6- 0F29 74 24 40         - movaps [rsp+40],xmm6
Game.GAME::Player::CapSpellCastSpeed+B- 0F57 C0               - xorps xmm0,xmm0
// ---------- INJECTING HERE ----------
Game.GAME::Player::CapSpellCastSpeed+E- F3 0F10 B1 684B0000   - movss xmm6,[rcx+00004B68]
// ---------- DONE INJECTING  ----------
Game.GAME::Player::CapSpellCastSpeed+16- 48 8B D9              - mov rbx,rcx
Game.GAME::Player::CapSpellCastSpeed+19- 0F2F F0               - comiss xmm6,xmm0
Game.GAME::Player::CapSpellCastSpeed+1C- 44 0F29 44 24 20      - movaps [rsp+20],xmm8
Game.GAME::Player::CapSpellCastSpeed+22- 44 0F28 C1            - movaps xmm8,xmm1
Game.GAME::Player::CapSpellCastSpeed+26- 76 6B                 - jna Game.GAME::Player::CapSpellCastSpeed+93
Game.GAME::Player::CapSpellCastSpeed+28- 0F29 7C 24 30         - movaps [rsp+30],xmm7
Game.GAME::Player::CapSpellCastSpeed+2D- F3 0F10 B9 6C4B0000   - movss xmm7,[rcx+00004B6C]
Game.GAME::Player::CapSpellCastSpeed+35- 0F2F F8               - comiss xmm7,xmm0
Game.GAME::Player::CapSpellCastSpeed+38- 76 53                 - jna Game.GAME::Player::CapSpellCastSpeed+8D
Game.GAME::Player::CapSpellCastSpeed+3A- 48 81 C1 80110000     - add rcx,00001180
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Super Attack Speed 1.2.0.2 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1174</ID>
      <Description>"Super Attack Speed"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Player::CapAttackSpeed+9F
//changed +9F to +AF (the last address in the whole Game.GAME::Player::CapAttackSpeed section for the range of the scan)
//0000471C changed to 00004B74
//00004718 changed to 00004B70

[ENABLE]
//Game.GAME::Player::CapAttackSpeed+E
aobscanregion(superAttackSpeed,Game.GAME::Player::CapAttackSpeed,Game.GAME::Player::CapAttackSpeed+AF,F30F10)
alloc(newmem,$1000,superAttackSpeed)

label(code)
label(return)

newmem:
  mov [rcx+00004B74],(float)1000
  movss xmm6,[rcx+00004B74]  //0x4B74 - maxDefaultAttackSpeed { 200 }
  jmp return

code:
  movss xmm6,[rcx+00004B70] //0x4B70 - currentDefaultAttackSpeed { 20 }
  jmp return

superAttackSpeed:
  jmp newmem
  nop 3
return:
registersymbol(superAttackSpeed)

[DISABLE]
superAttackSpeed:
  db F3 0F 10 B1 70 4B 00 00

unregistersymbol(superAttackSpeed)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::CapAttackSpeed+E
Game.GAME::Player::CapSpellCastSpeed+AA - CC                    - int 3
Game.GAME::Player::CapSpellCastSpeed+AB - CC                    - int 3
Game.GAME::Player::CapSpellCastSpeed+AC - CC                    - int 3
Game.GAME::Player::CapSpellCastSpeed+AD - CC                    - int 3
Game.GAME::Player::CapSpellCastSpeed+AE - CC                    - int 3
Game.GAME::Player::CapSpellCastSpeed+AF - CC                    - int 3
Game.GAME::Player::CapAttackSpeed       - 40 53                 - push rbx
Game.GAME::Player::CapAttackSpeed+2     - 48 83 EC 50           - sub rsp,50
Game.GAME::Player::CapAttackSpeed+6     - 0F29 74 24 40         - movaps [rsp+40],xmm6
Game.GAME::Player::CapAttackSpeed+B     - 0F57 C0               - xorps xmm0,xmm0
// ---------- INJECTING HERE ----------
Game.GAME::Player::CapAttackSpeed+E     - F3 0F10 B1 704B0000   - movss xmm6,[rcx+00004B70]
// ---------- DONE INJECTING  ----------
Game.GAME::Player::CapAttackSpeed+16    - 48 8B D9              - mov rbx,rcx
Game.GAME::Player::CapAttackSpeed+19    - 0F2F F0               - comiss xmm6,xmm0
Game.GAME::Player::CapAttackSpeed+1C    - 44 0F29 44 24 20      - movaps [rsp+20],xmm8
Game.GAME::Player::CapAttackSpeed+22    - 44 0F28 C1            - movaps xmm8,xmm1
Game.GAME::Player::CapAttackSpeed+26    - 76 6B                 - jna Game.GAME::Player::CapAttackSpeed+93
Game.GAME::Player::CapAttackSpeed+28    - 0F29 7C 24 30         - movaps [rsp+30],xmm7
Game.GAME::Player::CapAttackSpeed+2D    - F3 0F10 B9 744B0000   - movss xmm7,[rcx+00004B74]
Game.GAME::Player::CapAttackSpeed+35    - 0F2F F8               - comiss xmm7,xmm0
Game.GAME::Player::CapAttackSpeed+38    - 76 53                 - jna Game.GAME::Player::CapAttackSpeed+8D
Game.GAME::Player::CapAttackSpeed+3A    - 48 81 C1 80110000     - add rcx,00001180
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Super Run Speed 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1176</ID>
      <Description>"Super Run Speed (Hotkeys: N=135, M=250)"</Description>
      <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Player::CapRunSpeed+9F
//changed +9F to +AF (the last address in the whole Game.GAME::Player::CapRunSpeed section for the range of the scan)
//0000470C changed to 00004B60
//00004708 changed to 00004B64

[ENABLE]
//Game.GAME::Player::CapRunSpeed+E
aobscanregion(superRunSpeed,Game.GAME::Player::CapRunSpeed,Game.GAME::Player::CapRunSpeed+AF,F30F10)
alloc(newmem,$1000,superRunSpeed)

alloc(runSpeed_ptr,8)
registersymbol(runSpeed_ptr)

label(code)
label(return)

newmem:
  mov [runSpeed_ptr],rcx
  mov [rcx+00004B64],(float)1000  //0x4B64 - maxSpeed

code:
  movss xmm6,[rcx+00004B60]      //0x4B60 - currentSpeed
  jmp return

superRunSpeed:
  jmp newmem
  nop 3
return:
registersymbol(superRunSpeed)

[DISABLE]
superRunSpeed:
  db F3 0F 10 B1 60 4B 00 00

unregistersymbol(superRunSpeed)
unregistersymbol(runSpeed_ptr)
dealloc(runSpeed_ptr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::CapRunSpeed+E
Game.GAME::Player::GetReflectCap+A - CC                    - int 3
Game.GAME::Player::GetReflectCap+B - CC                    - int 3
Game.GAME::Player::GetReflectCap+C - CC                    - int 3
Game.GAME::Player::GetReflectCap+D - CC                    - int 3
Game.GAME::Player::GetReflectCap+E - CC                    - int 3
Game.GAME::Player::GetReflectCap+F - CC                    - int 3
Game.GAME::Player::CapRunSpeed     - 40 53                 - push rbx
Game.GAME::Player::CapRunSpeed+2   - 48 83 EC 50           - sub rsp,50
Game.GAME::Player::CapRunSpeed+6   - 0F29 74 24 40         - movaps [rsp+40],xmm6
Game.GAME::Player::CapRunSpeed+B   - 0F57 C0               - xorps xmm0,xmm0
// ---------- INJECTING HERE ----------
Game.GAME::Player::CapRunSpeed+E   - F3 0F10 B1 604B0000   - movss xmm6,[rcx+00004B60]
// ---------- DONE INJECTING  ----------
Game.GAME::Player::CapRunSpeed+16  - 48 8B D9              - mov rbx,rcx
Game.GAME::Player::CapRunSpeed+19  - 0F2F F0               - comiss xmm6,xmm0
Game.GAME::Player::CapRunSpeed+1C  - 44 0F29 44 24 20      - movaps [rsp+20],xmm8
Game.GAME::Player::CapRunSpeed+22  - 44 0F28 C1            - movaps xmm8,xmm1
Game.GAME::Player::CapRunSpeed+26  - 76 6B                 - jna Game.GAME::Player::CapRunSpeed+93
Game.GAME::Player::CapRunSpeed+28  - 0F29 7C 24 30         - movaps [rsp+30],xmm7
Game.GAME::Player::CapRunSpeed+2D  - F3 0F10 B9 644B0000   - movss xmm7,[rcx+00004B64]
Game.GAME::Player::CapRunSpeed+35  - 0F2F F8               - comiss xmm7,xmm0
Game.GAME::Player::CapRunSpeed+38  - 76 53                 - jna Game.GAME::Player::CapRunSpeed+8D
Game.GAME::Player::CapRunSpeed+3A  - 48 81 C1 80110000     - add rcx,00001180
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1177</ID>
          <Description>"Run Speed - Current"</Description>
          <DropDownList ReadOnly="1" DisplayValueAsItem="1">20:Default
135:Max Speed
250:Super Speed
500:Super Speed x2
750:Super Speed x3
1000:Super Speed x4
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Float</VariableType>
          <Address>[runSpeed_ptr]+4B60</Address>
          <Hotkeys>
            <Hotkey>
              <Action>Set Value</Action>
              <Keys>
                <Key>77</Key>
              </Keys>
              <Value>250</Value>
              <ID>0</ID>
            </Hotkey>
            <Hotkey>
              <Action>Set Value</Action>
              <Keys>
                <Key>78</Key>
              </Keys>
              <Value>135</Value>
              <ID>1</ID>
            </Hotkey>
            <Hotkey>
              <Action>Set Value</Action>
              <Keys>
                <Key>66</Key>
              </Keys>
              <Value>20</Value>
              <ID>2</ID>
            </Hotkey>
          </Hotkeys>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Set Pet Limit to 20 for all Pets 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>136310</ID>
      <Description>"Set Pet Limit to 20 for all Pets"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was Game.GAME::Skill::GetPetLimit+BC
//BC changed to BE
//1.1.9.8 was FF 8B C3 4C 8D 9C 24 E0 00 00 00
//E0 change to F0

[ENABLE]
//Game.GAME::Skill::GetPetLimit+BE
aobscanmodule(PETPOP,Game.dll,FF 8B C3 4C 8D 9C 24 F0 00 00 00) // should be unique
alloc(newmem,$1000,PETPOP)

label(code)
label(return)

newmem:
mov rbx,#20
mov rax,#20
code:
  lea r11,[rsp+000000F0]
  jmp return

PETPOP+03:
  jmp newmem
  nop 3
return:
registersymbol(PETPOP)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
PETPOP+03:
  db 4C 8D 9C 24 F0 00 00 00

unregistersymbol(PETPOP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Skill::GetPetLimit+BE

Game.GAME::Skill::GetPetLimit+97 - 74 23                 - je Game.GAME::Skill::GetPetLimit+BC
Game.GAME::Skill::GetPetLimit+99 - 48 8B 55 B7           - mov rdx,[rbp-49]
Game.GAME::Skill::GetPetLimit+9D - E8 0EDDC7FF           - call Game.GAME::ItemEquipment::GetRTTIClassInfo+10
Game.GAME::Skill::GetPetLimit+A2 - 48 8B 55 BF           - mov rdx,[rbp-41]
Game.GAME::Skill::GetPetLimit+A6 - 48 8B 4D AF           - mov rcx,[rbp-51]
Game.GAME::Skill::GetPetLimit+AA - 48 2B D1              - sub rdx,rcx
Game.GAME::Skill::GetPetLimit+AD - 48 C1 FA 05           - sar rdx,05
Game.GAME::Skill::GetPetLimit+B1 - 41 B8 20000000        - mov r8d,00000020
Game.GAME::Skill::GetPetLimit+B7 - E8 C486C6FF           - call Game.GAME::AuraContainer::~AuraContainer+50
Game.GAME::Skill::GetPetLimit+BC - 8B C3                 - mov eax,ebx
// ---------- INJECTING HERE ----------
Game.GAME::Skill::GetPetLimit+BE - 4C 8D 9C 24 F0000000  - lea r11,[rsp+000000F0]
// ---------- DONE INJECTING  ----------
Game.GAME::Skill::GetPetLimit+C6 - 49 8B 5B 10           - mov rbx,[r11+10]
Game.GAME::Skill::GetPetLimit+CA - 49 8B 7B 18           - mov rdi,[r11+18]
Game.GAME::Skill::GetPetLimit+CE - 49 8B E3              - mov rsp,r11
Game.GAME::Skill::GetPetLimit+D1 - 5D                    - pop rbp
Game.GAME::Skill::GetPetLimit+D2 - C3                    - ret
Game.GAME::Skill::GetPetLimit+D3 - CC                    - int 3
Game.GAME::Skill::GetPetLimit+D4 - CC                    - int 3
Game.GAME::Skill::GetPetLimit+D5 - CC                    - int 3
Game.GAME::Skill::GetPetLimit+D6 - CC                    - int 3
Game.GAME::Skill::GetPetLimit+D7 - CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Infinite Skill Points (999 locked) 1.2.0.3 x64 (re-wrote)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>134933</ID>
      <Description>"Infinite Skill Points (999 locked)"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.2 Re-wrote

[ENABLE]
//Game.GAME::Character::GetSkillPoints
aobscanregion(infSkillPoints,Game.GAME::Character::GetSkillPoints,Game.GAME::Character::GetSkillPoints+F,8B)
alloc(newmem,$1000,infSkillPoints)

label(code)
label(return)

newmem:
  mov eax,#999
  jmp return

code:
  mov eax,[rcx+0000162C]
  jmp return

infSkillPoints:
  jmp newmem
  nop
return:
registersymbol(infSkillPoints)

[DISABLE]
infSkillPoints:
  db 8B 81 2C 16 00 00

unregistersymbol(infSkillPoints)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetSkillPoints

Game.GAME::Character::ResetModifierPoints+4C: CC                    - int 3
Game.GAME::Character::ResetModifierPoints+4D: CC                    - int 3
Game.GAME::Character::ResetModifierPoints+4E: CC                    - int 3
Game.GAME::Character::ResetModifierPoints+4F: CC                    - int 3
Game.GAME::Character::HasModifierPointsInUse: 48 81 C1 B0 0D 00 00  - add rcx,00000DB0
Game.GAME::Character::HasModifierPointsInUse+7: E9 E4 7E 02 00        - jmp Game.GAME::CharacterBio::HasModifierPointsInUse
Game.GAME::Character::HasModifierPointsInUse+C: CC                    - int 3
Game.GAME::Character::HasModifierPointsInUse+D: CC                    - int 3
Game.GAME::Character::HasModifierPointsInUse+E: CC                    - int 3
Game.GAME::Character::HasModifierPointsInUse+F: CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetSkillPoints: 8B 81 2C 16 00 00     - mov eax,[rcx+0000162C]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetSkillPoints+6: C3                    - ret
Game.GAME::Character::GetSkillPoints+7: CC                    - int 3
Game.GAME::Character::GetSkillPoints+8: CC                    - int 3
Game.GAME::Character::GetSkillPoints+9: CC                    - int 3
Game.GAME::Character::GetSkillPoints+A: CC                    - int 3
Game.GAME::Character::GetSkillPoints+B: CC                    - int 3
Game.GAME::Character::GetSkillPoints+C: CC                    - int 3
Game.GAME::Character::GetSkillPoints+D: CC                    - int 3
Game.GAME::Character::GetSkillPoints+E: CC                    - int 3
Game.GAME::Character::GetSkillPoints+F: CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Infinite Devotion Points (999 locked) 1.2.0.3 x64 (re-wrote)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>134934</ID>
      <Description>"Infinite Devotion Points (999 locked)"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.2 Re-wrote

[ENABLE]
aobscanregion(infDevotionPoints,Game.GAME::Character::GetDevotionPoints,Game.GAME::Character::GetDevotionPoints+F,8B)
alloc(newmem,$1000,infDevotionPoints)

label(code)
label(return)

newmem:
  mov eax,#999
  jmp return

code:
  mov eax,[rcx+00001630]
  jmp return

infDevotionPoints:
  jmp newmem
  nop
return:
registersymbol(infDevotionPoints)

[DISABLE]
infDevotionPoints:
  db 8B 81 30 16 00 00

unregistersymbol(infDevotionPoints)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetDevotionPoints

Game.GAME::Character::GetModifierPoints+6: C3                 - ret
Game.GAME::Character::GetModifierPoints+7: CC                 - int 3
Game.GAME::Character::GetModifierPoints+8: CC                 - int 3
Game.GAME::Character::GetModifierPoints+9: CC                 - int 3
Game.GAME::Character::GetModifierPoints+A: CC                 - int 3
Game.GAME::Character::GetModifierPoints+B: CC                 - int 3
Game.GAME::Character::GetModifierPoints+C: CC                 - int 3
Game.GAME::Character::GetModifierPoints+D: CC                 - int 3
Game.GAME::Character::GetModifierPoints+E: CC                 - int 3
Game.GAME::Character::GetModifierPoints+F: CC                 - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetDevotionPoints: 8B 81 30 16 00 00  - mov eax,[rcx+00001630]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetDevotionPoints+6: C3                 - ret
Game.GAME::Character::GetDevotionPoints+7: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+8: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+9: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+A: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+B: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+C: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+D: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+E: CC                 - int 3
Game.GAME::Character::GetDevotionPoints+F: CC                 - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Infinite Attribute Points (999 locked) 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>134936</ID>
      <Description>"Infinite Attribute Points (999 locked)"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.2 Re-wrote

[ENABLE]
aobscanregion(infAttributePoints,Game.GAME::Character::GetModifierPoints,Game.GAME::Character::GetModifierPoints+F,8B)
alloc(newmem,$1000,infAttributePoints)

label(code)
label(return)

newmem:
  mov eax,#999
  jmp return

code:
  mov eax,[rcx+00001628]
  jmp return

infAttributePoints:
  jmp newmem
  nop
return:
registersymbol(infAttributePoints)

[DISABLE]
infAttributePoints:
  db 8B 81 28 16 00 00

unregistersymbol(infAttributePoints)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Character::GetModifierPoints

Game.GAME::Character::GetNextLevelExperience: 48 81 C1 A8 15 00 00  - add rcx,000015A8
Game.GAME::Character::GetNextLevelExperience+7: E9 C4 B0 19 00        - jmp Game.GAME::Item::SetIgnoreItemSkillCache+AB0
Game.GAME::Character::GetNextLevelExperience+C: CC                    - int 3
Game.GAME::Character::GetNextLevelExperience+D: CC                    - int 3
Game.GAME::Character::GetNextLevelExperience+E: CC                    - int 3
Game.GAME::Character::GetNextLevelExperience+F: CC                    - int 3
Game.GAME::Character::IsMaxLevel: 8B 81 1C 16 00 00     - mov eax,[rcx+0000161C]
Game.GAME::Character::IsMaxLevel+6: 39 81 20 16 00 00     - cmp [rcx+00001620],eax
Game.GAME::Character::IsMaxLevel+C: 0F 93 C0              - setae al
Game.GAME::Character::IsMaxLevel+F: C3                    - ret
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetModifierPoints: 8B 81 28 16 00 00     - mov eax,[rcx+00001628]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetModifierPoints+6: C3                    - ret
Game.GAME::Character::GetModifierPoints+7: CC                    - int 3
Game.GAME::Character::GetModifierPoints+8: CC                    - int 3
Game.GAME::Character::GetModifierPoints+9: CC                    - int 3
Game.GAME::Character::GetModifierPoints+A: CC                    - int 3
Game.GAME::Character::GetModifierPoints+B: CC                    - int 3
Game.GAME::Character::GetModifierPoints+C: CC                    - int 3
Game.GAME::Character::GetModifierPoints+D: CC                    - int 3
Game.GAME::Character::GetModifierPoints+E: CC                    - int 3
Game.GAME::Character::GetModifierPoints+F: CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Player Info Pointers (attack something to briefly populate) 1.2.0.3 x64 (UPDATED)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>134891</ID>
      <Description>"Player Info Pointers (attack something to briefly populate)"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.0 Updated
//1.1.9.8 was F3 0F 10 93 5C 05 00 00
//changed 93 5C 05 to 97 6C 07 for Game.dll process.

//Game.GAME::CharacterBio::Update+294
[ENABLE]
aobscanmodule(PLAYERINFO,Game.dll,F3 0F 10 97 6C 07 00 00) // should be unique
alloc(newmem,$1000,PLAYERINFO)
label(player_ptr)
label(code)
label(return)

newmem:
mov [player_ptr],rbx
code:
  movss xmm2,[rbx+0000076C]
  jmp return

player_ptr:
dq 0

PLAYERINFO:
  jmp newmem
  nop 3
return:
registersymbol(player_ptr)
registersymbol(PLAYERINFO)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
PLAYERINFO:
  db F3 0F 10 97 6C 07 00 00
unregistersymbol(player_ptr)
unregistersymbol(PLAYERINFO)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::CharacterBio::Update+294

Game.GAME::CharacterBio::Update+458: 45 0F 5B ED Game.GAME::CharacterBio::Update+264 - 45 0F5B DB            - cvtdq2ps xmm11,xmm11
Game.GAME::CharacterBio::Update+268 - 41 0F28 C3            - movaps xmm0,xmm11
Game.GAME::CharacterBio::Update+26C - F3 0F59 05 40F95B00   - mulss xmm0,[Game.GAME::WeaponArmor_Offhand::`vftable'+EBC]
Game.GAME::CharacterBio::Update+274 - 44 0F5A D0            - cvtps2pd xmm10,xmm0
Game.GAME::CharacterBio::Update+278 - 0F84 BB000000         - je Game.GAME::CharacterBio::Update+339
Game.GAME::CharacterBio::Update+27E - 44 0F2E 47 2C         - ucomiss xmm8,[rdi+2C]
Game.GAME::CharacterBio::Update+283 - 0F85 B0000000         - jne Game.GAME::CharacterBio::Update+339
Game.GAME::CharacterBio::Update+289 - F3 0F10 4F 38         - movss xmm1,[rdi+38]
Game.GAME::CharacterBio::Update+28E - 41 0F2F C8            - comiss xmm1,xmm8
Game.GAME::CharacterBio::Update+292 - 76 53                 - jna Game.GAME::CharacterBio::Update+2E7
// ---------- INJECTING HERE ----------
Game.GAME::CharacterBio::Update+294 - F3 0F10 97 6C070000   - movss xmm2,[rdi+0000076C]
// ---------- DONE INJECTING  ----------
Game.GAME::CharacterBio::Update+29C - 0F5A C2               - cvtps2pd xmm0,xmm2
Game.GAME::CharacterBio::Update+29F - 66 0F2F 47 20         - comisd xmm0,[rdi+20]
Game.GAME::CharacterBio::Update+2A4 - 76 41                 - jna Game.GAME::CharacterBio::Update+2E7
Game.GAME::CharacterBio::Update+2A6 - F3 0F10 47 30         - movss xmm0,[rdi+30]
Game.GAME::CharacterBio::Update+2AB - 0F28 D9               - movaps xmm3,xmm1
Game.GAME::CharacterBio::Update+2AE - F3 0F59 05 1EF95B00   - mulss xmm0,[Game.GAME::WeaponArmor_Offhand::`vftable'+EDC]
Game.GAME::CharacterBio::Update+2B6 - F3 0F59 C2            - mulss xmm0,xmm2
Game.GAME::CharacterBio::Update+2BA - 0F5A C0               - cvtps2pd xmm0,xmm0
Game.GAME::CharacterBio::Update+2BD - F2 41 0F59 C2         - mulsd xmm0,xmm10
Game.GAME::CharacterBio::Update+2C2 - 66 0F5A F0            - cvtpd2ps xmm6,xmm0
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>136001</ID>
          <Description>"Flag - Invincible (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1D9C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>136002</ID>
          <Description>"Flag - Invincible Alt (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1D9E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>136003</ID>
          <Description>"Flag - Infinite Mana (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1D9F</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134949</ID>
          <Description>"HP Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Double</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>DD0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134948</ID>
          <Description>"Mana Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>DEC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134893</ID>
          <Description>"Money / Iron Bits"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1584</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134894</ID>
          <Description>"XP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1624</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>136026</ID>
          <Description>"Physique - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>_playerBase</Address>
          <Offsets>
            <Offset>1184</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>136027</ID>
          <Description>"Cunning - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>_playerBase</Address>
          <Offsets>
            <Offset>1188</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>136028</ID>
          <Description>"Spirit - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>_playerBase</Address>
          <Offsets>
            <Offset>118C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134895</ID>
          <Description>"Attribute Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1628</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134896</ID>
          <Description>"Skill Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>162C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134897</ID>
          <Description>"Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1630</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134898</ID>
          <Description>"Total Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1634</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134899</ID>
          <Description>"Max Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
          <Offsets>
            <Offset>1638</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>134910</ID>
          <Description>"+Factions+ (sorted by pointer offset, not alphabetical or status)"</Description>
          <Options moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <Color>0080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>134937</ID>
              <Description>"Friendly Max Revered = 25000"</Description>
              <Color>80FF80</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134938</ID>
              <Description>"Enemy Max Nemesis = -20000"</Description>
              <Color>8080FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134911</ID>
              <Description>"Devil's Crossing"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18B4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134912</ID>
              <Description>"Aetherials"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18B8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134913</ID>
              <Description>"Chthonians"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18BC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134914</ID>
              <Description>"Cronley's Gang"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18C0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134915</ID>
              <Description>"Beasts"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18C4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134916</ID>
              <Description>"Rovers"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18C8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134917</ID>
              <Description>"Neutral Faction (Hidden &amp; Locked)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18CC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134918</ID>
              <Description>"Homestead"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18D0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134919</ID>
              <Description>"Free Men of Corrigan Mine (Hidden &amp; Locked)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18D4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134920</ID>
              <Description>"The Outcast"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18D8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134921</ID>
              <Description>"Order of Death's Vigil"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18DC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134922</ID>
              <Description>"Arkovian Undead"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134923</ID>
              <Description>"Black Legion"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18E4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134924</ID>
              <Description>"Kymon's Chosen"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18E8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134925</ID>
              <Description>"Coven of Ugdenbog"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18EC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134926</ID>
              <Description>"Barrowholm"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18F0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134927</ID>
              <Description>"Malmouth Resistance"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18F4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134928</ID>
              <Description>"Aetherial Vanguard"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18F8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134929</ID>
              <Description>"Cult of Bysmiel"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>18FC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134930</ID>
              <Description>"Cult of Dreeg"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>1900</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134931</ID>
              <Description>"Cult of Solael"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>1904</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>134932</ID>
              <Description>"Eldritch Horrors"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>player_ptr</Address>
              <Offsets>
                <Offset>1908</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Last edited by StinVec on Sat Dec 16, 2023 9:09 pm, edited 12 times in total.

grimmboi
What is cheating?
What is cheating?
Posts: 2
Joined: Wed Nov 22, 2023 10:28 pm
Reputation: 1

Re: Grim Dawn + All DLC's

Post by grimmboi »

thanks for the updates mate. I am trying to get the invincible option to work but it doesnt....i paste the code in the empty space in the table...enable it and it says unable to find patter...

only thing that has worked for me so far is the no skill cooldown...is it just me?

User avatar
StinVec
Table Makers
Table Makers
Posts: 135
Joined: Sun Jun 25, 2017 7:02 am
Reputation: 209

Re: Grim Dawn + All DLC's

Post by StinVec »

@grimmboi You and everyone are very welcome! I'm glad to try to help out.

Are you certain you are running and are trying to activate the options on the x64 version of the game and not the 32bit?

If so, I haven't done any work on 32bit options for this 1.2 update and likely will not. I don't really understand why anyone would choose 32bit over 64bit or why there even is a 32bit version that can be played. If you or others could enlighten me on why 32bit would even be used and if most people are using that over the 64bit for a certain reason, maybe I'll try to do 32bit updates for those options.

If you are using x64, are you certain you are updated to at least 1.2.0.0 or the current 1.2.0.2.h2 version?

_____NOTE also:
I am still adding to the above post as long as it doesn't hit the post character limit.
Just added Set Pet Limit to 20 for all Pets 1.2.0.2 to it.

Scheimann
Expert Cheater
Expert Cheater
Posts: 107
Joined: Sun Jul 21, 2019 4:27 am
Reputation: 25

Re: Grim Dawn + All DLC's

Post by Scheimann »

StinVec wrote:
Wed Nov 22, 2023 11:17 pm
Can you check the freeze buff script? For me its seem to be not working...

User avatar
StinVec
Table Makers
Table Makers
Posts: 135
Joined: Sun Jun 25, 2017 7:02 am
Reputation: 209

Re: Grim Dawn + All DLC's

Post by StinVec »

Scheimann wrote:
Wed Nov 22, 2023 11:54 pm
StinVec wrote:
Wed Nov 22, 2023 11:17 pm
Can you check the freeze buff script? For me its seem to be not working...
Hey, thanks for noting that! It did change more than just the address. I corrected it and activated a 30 second potion and its timer properly ceased to decrease. If you notice any more problems with it, please let me know!

Here is the updated code for that option (updated the option in the previous post as well):
EDIT: Get updated version here: viewtopic.php?p=327578#p327578
Last edited by StinVec on Sat Dec 16, 2023 9:10 pm, edited 1 time in total.

Post Reply

Who is online

Users browsing this forum: admantx, Elievex, Google [Bot], heir, Juudaii, Majestic-12 [Bot], Nexx33, Prydain, thanator1412, wawy, WhoAmI, YandexBot