Grim Dawn + All DLC's

Upload your cheat tables here (No requests)
rafaelrennow
Cheater
Cheater
Posts: 31
Joined: Thu Oct 19, 2017 1:31 pm
Reputation: 6

Re: Grim Dawn + All DLC's

Post by rafaelrennow »

Ok, so for the sake of @StinVec I'm gonna upload the original table + updates so far. I didn't test everything, I have no fucking clue how to fix anything that's broken for you and NOBODY owes you anything, so don't DEMAND things from people who are only helping the community here. If you do, you're a shitty piece of rotten crap just ruining everyone's experience here and it really saddens me how annoying this can be to the point of making table creators just give up their appreciated work.

And no, I won't guarantee I'll be doing this on future updates. Just learn how to CTRC+C, CTRL+V, shut the fuck up or ask POLITELY for help. I'm not anti noob because there are always those who don't know shit about something, but at least have some consideration and don't act like you're the most important thing in the world. You are not.

BTW, thanks a lot @StinVec. Although these people stand out, there are a lot of people who appreciate what you're doing here.

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
Attachments
Grim.Dawn+All.DLC's.v1.1.7.0 (x64).CT
Put it deep inside your ass
(97.26 KiB) Downloaded 736 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 »

rafaelrennow wrote:
Sun Nov 26, 2023 4:33 am
Ok, so for the sake of @StinVec I'm gonna upload the original table + updates so far. I didn't test everything, I have no fucking clue how to fix anything that's broken for you and NOBODY owes you anything, so don't DEMAND things from people who are only helping the community here. If you do, you're a shitty piece of rotten crap just ruining everyone's experience here and it really saddens me how annoying this can be to the point of making table creators just give up their appreciated work.

And no, I won't guarantee I'll be doing this on future updates. Just learn how to CTRC+C, CTRL+V, shut the fuck up or ask POLITELY for help. I'm not anti noob because there are always those who don't know shit about something, but at least have some consideration and don't act like you're the most important thing in the world. You are not.

BTW, thanks a lot @StinVec. Although these people stand out, there are a lot of people who appreciate what you're doing here.
Well said, entitled users should be instantly banned. I can't stand disrespectful users that can't follow simple instructions, or those that are warned about using cheat tables in online games. They get banned in a game, and then they come to call table creators names over and over again because they got banned.

Thanks for the table, by the way.

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

Re: Grim Dawn + All DLC's

Post by R3V0L »

StinVec wrote:
Fri Nov 24, 2023 1:42 am
@Chindopopito
You're welcome! Thank you for noting your appreciation for my trying to help out and also for noting that the updated options are all working properly so far for you.

_____
@grimmboi
I'm glad to know there's not still a problem with getting them to work right and they are working for you now.

_____
@R3V0L
You're welcome!

Regarding Masteries
I don't know what you mean about adding Masteries. Do you mean creating an option that shows your currently selected masteries and a way for you to be able to change them? I don't know if that is possible or even where to begin to try to make that option, but I'll start looking into it as I get time.

Regarding the faction options (instant revered/instant nemesis/both)
These options are all working properly for me without any updating needed. Are they not working for you?

If you are meaning the "Factions" section of the "Player Info Pointers" option from that other table of combined various options, here is that Player Info Pointers section partially updated.

This partially-updated option only contains updated playerbase address, Money, XP, Attribute Points, Skill Points, Devotion Points, Total Devotion points, Max Devotion Points, and also the Faction section updated with the factions color-coded (red for enemy factions, green for friendly factions, yellow for neutral factions):
Player Info Pointers (attack something to briefly populate) 1.2.0.2 x64 (partially 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"/>
      <LastState/>
      <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>134892</ID>
          <Description>"Player Base"</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>player_ptr</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134893</ID>
          <Description>"Money"</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>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>
          <LastState Value="" RealAddress="00000000"/>
          <Color>FFFFFF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>134937</ID>
              <Description>"Friendly Max Revered = 25000"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>80FF80</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134938</ID>
              <Description>"Enemy Max Nemesis = -20000"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <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 Vanguagrd"</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>
_____
I've added this partial option update to my 2nd post of 1.2.0.0+ updates: And also linking my 1st post of some other 1.2.0.0+ updates:
Thanks for adding Player Info Pointers, factions editing works great.
As for editing Masteries, i'm uploading old table that had options to edit masteries (in "x32 (NOT WORKING)" - "Get Character")
maybe it can help.
Here's that script for 1.1.9.8 x32
Get Character
{ Game : grim dawn.exe
Version:
Date : 2018-01-20
Author : Marcus101RR

Get Base Address of Character
}

define(address,Game.GAME::Character::GetExperiencePoints)
define(bytes,8B 81 7C 0E 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000)
alloc(pBase,8)

label(code)
label(return)

registersymbol(pBase)

newmem:

code:
mov [pBase],ecx
mov eax,[ecx+00000E7C]
jmp return

address:
jmp newmem
nop
return:

[DISABLE]

address:
db bytes
// mov eax,[ecx+00000E04]

dealloc(newmem)
dealloc(pBase)
unregistersymbol(pBase)
{
// ORIGINAL CODE - INJECTION POINT: "Game.dll"+37970

"Game.dll"+37950: 55 - push ebp
"Game.dll"+37951: 8B EC - mov ebp,esp
"Game.dll"+37953: F3 0F 10 45 0C - movss xmm0,[ebp+0C]
"Game.dll"+37958: 51 - push ecx
"Game.dll"+37959: F3 0F 11 04 24 - movss [esp],xmm0
"Game.dll"+3795E: 81 C1 CC 08 00 00 - add ecx,000008CC
"Game.dll"+37964: FF 75 08 - push [ebp+08]
"Game.dll"+37967: E8 C4 87 02 00 - call Game.dll+60130
"Game.dll"+3796C: 5D - pop ebp
"Game.dll"+3796D: C2 08 00 - ret 0008
// ---------- INJECTING HERE ----------
"Game.dll"+37970: 8B 81 00 0E 00 00 - mov eax,[ecx+00000E00]
// ---------- DONE INJECTING ----------
"Game.dll"+37976: C3 - ret
"Game.dll"+37977: CC - int 3
"Game.dll"+37978: CC - int 3
"Game.dll"+37979: CC - int 3
"Game.dll"+3797A: CC - int 3
"Game.dll"+3797B: CC - int 3
"Game.dll"+3797C: CC - int 3
"Game.dll"+3797D: CC - int 3
"Game.dll"+3797E: CC - int 3
"Game.dll"+3797F: CC - int 3
}
Also i added all your updated scripts to that table, if you don't mind))
Attachments
grim dawn.CT
(696.73 KiB) Downloaded 801 times

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: I thank you all for your thoughts and expressions of appreciation and your understanding of feeling the way I do with regards to the entitled. I appreciate each of you. While I could say I was just having a stressful day and that I regret my words, I wasn't, and I don't. I just really can't stand laziness and entitled behavior, and it is reassuring to see that others feel the same way.

_____
@R3V0L
I don't mind at all. That was nice of you (and of @rafaelrennow) to do. I hope others will keep in mind that, unless that table is also updated to include additional posted options, any further updated options posted by me or others would still need to copied and pasted into that table to add or replace them.

Thanks for pointing out that the x32 portion included options related to masteries! I was only working to update x64 options and didn't think to look in the x32 portion and thinking they were the same options, just for x32. I had forgotten all about seeing those options related to masteries in the x32 section of that or another table a while ago.

I will work on switching those mastery options over to x64 and updating them.

_____

I had also taken some time to partially update the Player Info Option posted by Artykalamata. It also goes off of the "GetExperiencePoints" like the Get Character code you just posted and it uses direct addresses instead of "CharacterBio::Update" and using pointers. This one doesn't require attacking something to populate the list like the other Player Info Pointers I partially updated and it autopopulates.

It includes:
  • HP Current
  • Mana Current
  • Money / Iron bits
  • XP
  • Attribute Points Available
  • Skill Points Available
  • Devotion Points Available
  • Total Devotion Points
  • Max Devotion Points
  • ++Factions++
EDIT: Re-pasted code in case it didn't paste properly last time.
(Code is a complete option - copy the code and paste it [CTRL+V] in your table to add the option)
Find Player Base (populates after a few seconds) 1.2.0.3 x64 (UPDATED)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>87827</ID>
      <Description>"Find Player Base (populates after a few seconds)"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Grim Dawn.exe
  Version: v1.2.0.2.h2 (x64) Updated by StinVec
  Date   : 2023-11-24
  Original Author : Artykalamata
}

define(address,Game.GAME::Character::GetExperiencePoints)
define(bytes,8B 81 24 16 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Character::GetExperiencePoints)
globalalloc(_playerBase, 0x8, Game.GAME::Character::GetExperiencePoints)

label(code)
label(return)

newmem:

code:
  mov eax,[rcx+00001624]
  mov [_playerBase], rcx
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]

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

dealloc(newmem)
dealloc(_playerBase)

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

Game.GAME::Character::IncrementBaseAttribute+66 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+67 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+68 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+69 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6A - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6B - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6C - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6D - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6E - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6F - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetExperiencePoints       - 8B 81 24160000        - mov eax,[rcx+00001624]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetExperiencePoints+6     - C3                    - ret
Game.GAME::Character::GetExperiencePoints+7     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+8     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+9     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+A     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+B     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+C     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+D     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+E     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+F     - CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>136116</ID>
          <Description>"Flag - Invincible (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>[_playerBase]+1D9C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136118</ID>
          <Description>"Flag - Invincible Alt (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>[_playerBase]+1D9E</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136000</ID>
          <Description>"Flag - Infinite Mana (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>[_playerBase]+1D9F</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87814</ID>
          <Description>"HP Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Double</VariableType>
          <Address>[_playerBase]+DD0</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87817</ID>
          <Description>"Mana Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+DEC</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87816</ID>
          <Description>"Money / Iron bits"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1584</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136020</ID>
          <Description>"XP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1624</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136029</ID>
          <Description>"Physique - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+1184</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136030</ID>
          <Description>"Cunning - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+1188</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136031</ID>
          <Description>"Spirit - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+118C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87815</ID>
          <Description>"Attribute Points Available"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1628</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134950</ID>
          <Description>"Skill Points Available"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+162C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134953</ID>
          <Description>"Devotion Points Available"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1630</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134952</ID>
          <Description>"Total Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1634</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134951</ID>
          <Description>"Max Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1638</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134955</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>134956</ID>
              <Description>"Friendly Max Revered = 25000"</Description>
              <Color>80FF80</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134957</ID>
              <Description>"Enemy Max Nemesis = -20000"</Description>
              <Color>8080FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134958</ID>
              <Description>"Devil's Crossing"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18B4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134959</ID>
              <Description>"Aetherials"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18B8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134960</ID>
              <Description>"Chthonians"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18BC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134961</ID>
              <Description>"Cronley's Gang"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18C0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134962</ID>
              <Description>"Beasts"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18C4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134963</ID>
              <Description>"Rovers"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18C8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134964</ID>
              <Description>"Neutral Faction (Hidden &amp; Locked)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18CC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134965</ID>
              <Description>"Homestead"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18D0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134966</ID>
              <Description>"Free Men of Corrigan Mine (Hidden &amp; Locked)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18D4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134967</ID>
              <Description>"The Outcast"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18D8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134968</ID>
              <Description>"Order of Death's Vigil"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18DC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134969</ID>
              <Description>"Arkovian Undead"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18E0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134970</ID>
              <Description>"Black Legion"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18E4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134971</ID>
              <Description>"Kymon's Chosen"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18E8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134972</ID>
              <Description>"Coven of Ugdenbog"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18EC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134973</ID>
              <Description>"Barrowholm"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18F0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134974</ID>
              <Description>"Malmouth Resistance"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18F4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134975</ID>
              <Description>"Aetherial Vanguard"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18F8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134976</ID>
              <Description>"Cult of Bysmiel"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18FC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134977</ID>
              <Description>"Cult of Dreeg"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+1900</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134978</ID>
              <Description>"Cult of Solael"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+1904</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134979</ID>
              <Description>"Eldritch Horrors"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+1908</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Last edited by StinVec on Sat Dec 16, 2023 8:54 pm, edited 4 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 »

I'll make time today to check all the updated code from @StinVec, and update the table with the options that still work with the 1.2 version. For whatever reason, some updated code gets override by old code or old scripts IDs, meaning that unless you use the script ID from the old table the code from StinVec won't work. When I finish checking them all, I'll upload the 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 »

EDIT: Re-pasted code in case it didn't paste properly last time.

@R3V0L

I've done work with the mastery changing.

It is easy to find the current addresses in memory for the masteries and to change points invested in them.

However, finding offsets for the mastery addresses and using the same base address from "Character::GetExperiencePoints" as the other pointers is not going well. I can't find a decent and static base address that works well and consistently. Even tried from "Skill::GetCurrentLevel", "Skill::GetSkillLevel" and others (including gigs of pointer scan results).

After trying a lot of different ways, I have opted to just remake the option in a different way for now. I will keep working on trying to get that other way with each mastery in a list to work, but this is working perfectly for me and doesn't need additional pointers for MOD masteries. Whatever the mastery is on the current mastery tab can be altered whether it is vanilla or mod.

This option uses "Skill::GetMasteryLevel" and allows you to alter the points invested into your currently-selected Mastery tab so that you can max it out to 50 or zero it out and then choose a different mastery.

(EDIT: Keep in mind, altering the amount of points in the mastery does not need, consume or refund skill points. Altering the points in the mastery only makes skills in the mastery accessible. To trigger the bonuses that putting points into a mastery normally does, you would need to add points into the mastery the normal way of clicking the + button to add a skill point into the mastery.)

I hope this version of the option to alter masteries works well for your needs, at least for the time being.

(For those unfamiliar, this code adds a complete cheat option - just copy the code and then paste it (CTRL+V) into your cheat table to add the option.)
Mastery Control v2 - 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>135310</ID>
      <Description>"Mastery Control v2"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.2

define(address,Game.GAME::Skill::GetMasteryLevel+4F)
define(bytes,8B 83 C8 00 00 00 48 83)
//

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Skill::GetMasteryLevel+4F)
globalalloc(_masteryBase, 0x8, Game.GAME::Skill::GetMasteryLevel+4F)

label(code)
label(return)

newmem:
  mov eax,[rbx+000000C8]
  mov [_masteryBase],rbx
  jmp return

code:
  mov eax,[rbx+000000C8]
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]

address:
  db bytes
  // 8B 83 C8 00 00 00

dealloc(newmem)
dealloc(_masteryBase)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Skill::GetMasteryLevel+4F

Game.GAME::Skill::GetMasteryLevel+33: 48 3B C2           - cmp rax,rdx
Game.GAME::Skill::GetMasteryLevel+36: 74 17              - je Game.GAME::Skill::GetMasteryLevel+4F
Game.GAME::Skill::GetMasteryLevel+38: 48 8B 48 10        - mov rcx,[rax+10]
Game.GAME::Skill::GetMasteryLevel+3C: 48 85 C9           - test rcx,rcx
Game.GAME::Skill::GetMasteryLevel+3F: 74 1A              - je Game.GAME::Skill::GetMasteryLevel+5B
Game.GAME::Skill::GetMasteryLevel+41: 48 3B CA           - cmp rcx,rdx
Game.GAME::Skill::GetMasteryLevel+44: 74 09              - je Game.GAME::Skill::GetMasteryLevel+4F
Game.GAME::Skill::GetMasteryLevel+46: E8 65 29 0D 00     - call Game.GAME::WeaponArmor_Offhand::GetLeftHandType+2D70
Game.GAME::Skill::GetMasteryLevel+4B: 84 C0              - test al,al
Game.GAME::Skill::GetMasteryLevel+4D: 74 0C              - je Game.GAME::Skill::GetMasteryLevel+5B
// ---------- INJECTING HERE ----------
Game.GAME::Skill::GetMasteryLevel+4F: 8B 83 C8 00 00 00  - mov eax,[rbx+000000C8]
// ---------- DONE INJECTING  ----------
Game.GAME::Skill::GetMasteryLevel+55: 48 83 C4 20        - add rsp,20
Game.GAME::Skill::GetMasteryLevel+59: 5B                 - pop rbx
Game.GAME::Skill::GetMasteryLevel+5A: C3                 - ret
Game.GAME::Skill::GetMasteryLevel+5B: 33 C0              - xor eax,eax
Game.GAME::Skill::GetMasteryLevel+5D: 48 83 C4 20        - add rsp,20
Game.GAME::Skill::GetMasteryLevel+61: 5B                 - pop rbx
Game.GAME::Skill::GetMasteryLevel+62: C3                 - ret
Game.GAME::Skill::GetMasteryLevel+63: CC                 - int 3
Game.GAME::Skill::GetMasteryLevel+64: CC                 - int 3
Game.GAME::Skill::GetMasteryLevel+65: CC                 - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>135987</ID>
          <Description>"Points In Active Mastery Tab"</Description>
          <Options moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>00FF80</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_masteryBase]+C8</Address>
          <Hotkeys>
            <Hotkey>
              <Action>Set Value</Action>
              <Keys>
                <Key>121</Key>
              </Keys>
              <Value>50</Value>
              <ID>0</ID>
              <ActivateSound>Activate</ActivateSound>
            </Hotkey>
            <Hotkey>
              <Action>Set Value</Action>
              <Keys>
                <Key>120</Key>
              </Keys>
              <Value>0</Value>
              <ID>1</ID>
              <ActivateSound>Deactivate</ActivateSound>
            </Hotkey>
          </Hotkeys>
          <CheatEntries>
            <CheatEntry>
              <ID>136124</ID>
              <Description>"&gt;&gt;&gt; NOTES: Usage"</Description>
              <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>135989</ID>
                  <Description>"USE: Open Masteries/Skills, let populate, alter points for active Mastery tab"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>135991</ID>
                  <Description>"Hotkeys: F10 = Max Mastery | F9 = Unlearn Mastery"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>136013</ID>
                  <Description>"&gt; Does not use or refund skill points"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>136054</ID>
                  <Description>"&gt; Does not trigger bonuses (add points normally using +)"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>135990</ID>
                  <Description>"&gt; Skills with points in them remain active after deactivating mastery"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>135986</ID>
                  <Description>"&gt; 50 = Max Points In Mastery (no benefit to going higher)"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
                <CheatEntry>
                  <ID>135988</ID>
                  <Description>"&gt; 0 = Deactivate Mastery (Undo Class button available)"</Description>
                  <Color>80FFFF</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
  • USE: Open Masteries/Skills window, let populate (few seconds delay), alter points for active Mastery tab
  • > Increasing points in a mastery does not need or consume any points; decreasing does not refund any points either
  • > Skills with points allocated into them will remain active after deactivating mastery
  • > 50 = Max Points In Mastery (no benefit to going higher)
  • > 0 = Deactivate Mastery (Undo Class button available)
Another benefit to the option always altering the active mastery tab is that hotkeys can be set to change the value of the option to 50 and to 0. This allows someone to max out or zero out the current mastery tab with a button push while in-game without needing to ALT+TAB between cheat engine and the game to change the values in different masteries.

(If doing hotkeys, remember that it takes a few seconds for the option to update to the active mastery tab. Be sure to wait a few seconds after switching to a mastery tab to allow the option to update to the new mastery address before hitting your hotkey or it might still be on the previous mastery tab.)
Last edited by StinVec on Sat Dec 16, 2023 8:53 pm, edited 6 times in total.

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 »

dogetothemoon wrote:
Sat Nov 25, 2023 9:07 pm
I would be great if I can change my mastery without drop of my learned skills in the mastery I drop. GD stash was changed and return me all my skill points invested. But I want to be a real necromancer with dawn of mastery mod. Any tips anyone?
I just posted a Mastery Control option in my comment prior to this one. It allows you to change the number of points put into the mastery of the currently-selected mastery tab. So you can max out a mastery (50) or zero it out (0) and then hit the Undo Class button to switch to another mastery.

Any points put into skills on a mastery will remain active even if you set points into the mastery to zero and then 'Undo Class'. This will allow you to multi-master all masteries.

I believe the only effect which two masteries you have active has on anything is about what stats get generated on loot as many items have stats on them tailored to modifying skills from your active masteries. So if you want loot with attributes for a certain skill in a mastery, have that mastery as one of your active mastery tabs. If you want loot for a different mastery, change over to that mastery being one of your active mastery tabs.

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 code in case they did not paste properly last time.

Also adding an alternate Invincible option that modifies the same "Player::IsInvincible" game function as that other invincible cheat, but as a normal option instead of that asm cheat code format.

This function is used by the game when you are in a cut scene or other time where the game takes control from you, so it forces you to be invincible so you don't die during the cut scene. This option just sets the value for it to 1 when it is enabled so you are always invincible.

This one still only affects the player, but I'm also working on updating that "God Mode x64 (pets and all allies)" option - I just haven't been able to find the new address for the friend/foe check yet.
_____
(For those unfamiliar, this code adds a complete cheat option - just copy the code and then paste it (CTRL+V) into your cheat table to add the option.)
Invincible (Player Only) 1.2.0.3 x64 (RE-WRITTEN)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>136068</ID>
      <Description>"Invincible (Player Only) (Enables 'isInvincible' function)"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.3

define(address,Game.GAME::Player::IsInvincible+23)
define(bytes,0F B6 83 9C 1D 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Player::IsInvincible+23)

label(code)
label(return)

newmem:
  cmp [rbx+1D9C],0                  //Checks if the invincible flag is already on
  jne code                          //If the flag is already on (1), go to normal code
  mov eax,1                         //If the flag was off, set the actual invincible function to being on (1) and ignore the flag
  jmp return

code:
  movzx eax,byte ptr [rbx+00001D9C] //Moves the value of the flag (0 off, or 1 on) to eax (the actual invincible function)
  jmp return

address:
  jmp newmem
  nop 2
return:

[DISABLE]
address:
  db bytes
  // 0F B6 83 9C 1D 00 00

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Player::IsInvincible+23

Game.GAME::Player::IsInvincible: 40 53                    - push rbx
Game.GAME::Player::IsInvincible+2: 48 83 EC 20              - sub rsp,20
Game.GAME::Player::IsInvincible+6: 48 8B D9                 - mov rbx,rcx
Game.GAME::Player::IsInvincible+9: FF 15 E9 60 1E 00        - call qword ptr [Game.dll+4EE128]
Game.GAME::Player::IsInvincible+F: 48 8B 0D 62 B2 5B 00     - mov rcx,[Game.GAME::gGameEngine]
Game.GAME::Player::IsInvincible+16: 8B D0                    - mov edx,eax
Game.GAME::Player::IsInvincible+18: E8 43 F1 F3 FF           - call Game.GAME::GameEngine::IsPlayingVideo
Game.GAME::Player::IsInvincible+1D: 84 C0                    - test al,al
Game.GAME::Player::IsInvincible+1F: B0 01                    - mov al,01
Game.GAME::Player::IsInvincible+21: 75 07                    - jne Game.GAME::Player::IsInvincible+2A
// ---------- INJECTING HERE ----------
Game.GAME::Player::IsInvincible+23: 0F B6 83 9C 1D 00 00     - movzx eax,byte ptr [rbx+00001D9C]
// ---------- DONE INJECTING  ----------
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
Game.GAME::Player::CanMoveTo: 40 53                    - push rbx
Game.GAME::Player::CanMoveTo+2: 48 83 EC 50              - sub rsp,50
Game.GAME::Player::CanMoveTo+6: F3 0F 10 89 38 47 00 00  - movss xmm1,[rcx+00004738]
Game.GAME::Player::CanMoveTo+E: 0F 57 DB                 - xorps xmm3,xmm3
Game.GAME::Player::CanMoveTo+11: F3 0F 10 05 E7 04 33 00  - movss xmm0,[Game.GAME::WeaponArmor_Offhand::`vftable'+10A8]
Game.GAME::Player::CanMoveTo+19: 33 DB                    - xor ebx,ebx
Game.GAME::Player::CanMoveTo+1B: 48 8B 89 90 0C 00 00     - mov rcx,[rcx+00000C90]
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
_____
Found the updated offsets for the Invincible/God/Infinite Mana flags for the Player Info Pointers section.
Invincible and God flags both seem to do the same thing of making you invincible. Suppose enable one, the other or both.

Updating both the "Attack to populate" and the "Autopopulate" Player Info Pointers versions with these three flags added.
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>
Find Player Base (populates after a few seconds) 1.2.0.3 x64 (UPDATED)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>87827</ID>
      <Description>"Find Player Base (populates after a few seconds)"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Grim Dawn.exe
  Version: v1.2.0.2.h2 (x64) Updated by StinVec
  Date   : 2023-11-24
  Original Author : Artykalamata
}

define(address,Game.GAME::Character::GetExperiencePoints)
define(bytes,8B 81 24 16 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Character::GetExperiencePoints)
globalalloc(_playerBase, 0x8, Game.GAME::Character::GetExperiencePoints)

label(code)
label(return)

newmem:

code:
  mov eax,[rcx+00001624]
  mov [_playerBase], rcx
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]

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

dealloc(newmem)
dealloc(_playerBase)

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

Game.GAME::Character::IncrementBaseAttribute+66 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+67 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+68 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+69 - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6A - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6B - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6C - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6D - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6E - CC                    - int 3
Game.GAME::Character::IncrementBaseAttribute+6F - CC                    - int 3
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetExperiencePoints       - 8B 81 24160000        - mov eax,[rcx+00001624]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetExperiencePoints+6     - C3                    - ret
Game.GAME::Character::GetExperiencePoints+7     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+8     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+9     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+A     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+B     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+C     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+D     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+E     - CC                    - int 3
Game.GAME::Character::GetExperiencePoints+F     - CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>136116</ID>
          <Description>"Flag - Invincible (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>[_playerBase]+1D9C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136118</ID>
          <Description>"Flag - Invincible Alt (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>[_playerBase]+1D9E</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136000</ID>
          <Description>"Flag - Infinite Mana (set to 1)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>80FF80</Color>
          <VariableType>Byte</VariableType>
          <Address>[_playerBase]+1D9F</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87814</ID>
          <Description>"HP Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Double</VariableType>
          <Address>[_playerBase]+DD0</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87817</ID>
          <Description>"Mana Current"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+DEC</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87816</ID>
          <Description>"Money / Iron bits"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1584</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136020</ID>
          <Description>"XP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1624</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136029</ID>
          <Description>"Physique - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+1184</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136030</ID>
          <Description>"Cunning - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+1188</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>136031</ID>
          <Description>"Spirit - Base (non-editable)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>Float</VariableType>
          <Address>[_playerBase]+118C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>87815</ID>
          <Description>"Attribute Points Available"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1628</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134950</ID>
          <Description>"Skill Points Available"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+162C</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134953</ID>
          <Description>"Devotion Points Available"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1630</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134952</ID>
          <Description>"Total Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1634</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134951</ID>
          <Description>"Max Devotion Points"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FFFFFF</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>[_playerBase]+1638</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>134955</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>134956</ID>
              <Description>"Friendly Max Revered = 25000"</Description>
              <Color>80FF80</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134957</ID>
              <Description>"Enemy Max Nemesis = -20000"</Description>
              <Color>8080FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>134958</ID>
              <Description>"Devil's Crossing"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18B4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134959</ID>
              <Description>"Aetherials"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18B8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134960</ID>
              <Description>"Chthonians"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18BC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134961</ID>
              <Description>"Cronley's Gang"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18C0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134962</ID>
              <Description>"Beasts"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18C4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134963</ID>
              <Description>"Rovers"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18C8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134964</ID>
              <Description>"Neutral Faction (Hidden &amp; Locked)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18CC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134965</ID>
              <Description>"Homestead"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18D0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134966</ID>
              <Description>"Free Men of Corrigan Mine (Hidden &amp; Locked)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18D4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134967</ID>
              <Description>"The Outcast"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18D8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134968</ID>
              <Description>"Order of Death's Vigil"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18DC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134969</ID>
              <Description>"Arkovian Undead"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18E0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134970</ID>
              <Description>"Black Legion"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18E4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134971</ID>
              <Description>"Kymon's Chosen"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18E8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134972</ID>
              <Description>"Coven of Ugdenbog"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18EC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134973</ID>
              <Description>"Barrowholm"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FFFF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18F0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134974</ID>
              <Description>"Malmouth Resistance"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18F4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134975</ID>
              <Description>"Aetherial Vanguard"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18F8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134976</ID>
              <Description>"Cult of Bysmiel"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+18FC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134977</ID>
              <Description>"Cult of Dreeg"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+1900</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134978</ID>
              <Description>"Cult of Solael"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>40FF00</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+1904</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>134979</ID>
              <Description>"Eldritch Horrors"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>[_playerBase]+1908</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Last edited by StinVec on Sat Dec 16, 2023 8:50 pm, edited 1 time in total.

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

Re: Grim Dawn + All DLC's

Post by R3V0L »

StinVec wrote:
Tue Nov 28, 2023 8:20 pm
@R3V0L

I've done work with the mastery changing.

It is easy to find the current addresses in memory for the masteries and to change points invested in them.

However, finding offsets for the mastery addresses and using the same base address from "Character::GetExperiencePoints" as the other pointers is not going well. I can't find a decent and static base address that works well and consistently. Even tried from "Skill::GetCurrentLevel", "Skill::GetSkillLevel" and others (including gigs of pointer scan results).

After trying a lot of different ways, I have opted to just remake the option in a different way for now. I will keep working on trying to get that other way with each mastery in a list to work, but this is working perfectly for me and doesn't need additional pointers for MOD masteries. Whatever the mastery is on the current mastery tab can be altered whether it is vanilla or mod.

This option uses "Skill::GetMasteryLevel" and allows you to alter the points invested into your currently-selected Mastery tab so that you can max it out to 50 or zero it out and then choose a different mastery.

I hope this version of the option to alter masteries works well for your needs, at least for the time being.

(For those unfamiliar, this code adds a complete cheat option - just copy the code and then paste it (CTRL+V) into your cheat table to add the option.)
Mastery Control v2 - 1.2.0.2 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>135310</ID>
      <Description>"Mastery Control v2 - 1.2.0.2 x64"</Description>
      <Options moHideChildren="1" moAllowManualCollapseAndExpand="1"/>
      <LastState Activated="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.2

define(address,Game.GAME::Skill::GetMasteryLevel+4F)
define(bytes,8B 83 C8 00 00 00 48 83)
//

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Game.GAME::Skill::GetMasteryLevel+4F)
globalalloc(_masteryBase, 0x8, Game.GAME::Skill::GetMasteryLevel+4F)

label(code)
label(return)

newmem:
  mov eax,[rbx+000000C8]
  mov [_masteryBase],rbx
  jmp return

code:
  mov eax,[rbx+000000C8]
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]

address:
  db bytes
  // 8B 83 C8 00 00 00

dealloc(newmem)
dealloc(_masteryBase)

{
// ORIGINAL CODE - INJECTION POINT: Game.GAME::Skill::GetMasteryLevel+4F

Game.GAME::Skill::GetMasteryLevel+33: 48 3B C2           - cmp rax,rdx
Game.GAME::Skill::GetMasteryLevel+36: 74 17              - je Game.GAME::Skill::GetMasteryLevel+4F
Game.GAME::Skill::GetMasteryLevel+38: 48 8B 48 10        - mov rcx,[rax+10]
Game.GAME::Skill::GetMasteryLevel+3C: 48 85 C9           - test rcx,rcx
Game.GAME::Skill::GetMasteryLevel+3F: 74 1A              - je Game.GAME::Skill::GetMasteryLevel+5B
Game.GAME::Skill::GetMasteryLevel+41: 48 3B CA           - cmp rcx,rdx
Game.GAME::Skill::GetMasteryLevel+44: 74 09              - je Game.GAME::Skill::GetMasteryLevel+4F
Game.GAME::Skill::GetMasteryLevel+46: E8 65 29 0D 00     - call Game.GAME::WeaponArmor_Offhand::GetLeftHandType+2D70
Game.GAME::Skill::GetMasteryLevel+4B: 84 C0              - test al,al
Game.GAME::Skill::GetMasteryLevel+4D: 74 0C              - je Game.GAME::Skill::GetMasteryLevel+5B
// ---------- INJECTING HERE ----------
Game.GAME::Skill::GetMasteryLevel+4F: 8B 83 C8 00 00 00  - mov eax,[rbx+000000C8]
// ---------- DONE INJECTING  ----------
Game.GAME::Skill::GetMasteryLevel+55: 48 83 C4 20        - add rsp,20
Game.GAME::Skill::GetMasteryLevel+59: 5B                 - pop rbx
Game.GAME::Skill::GetMasteryLevel+5A: C3                 - ret
Game.GAME::Skill::GetMasteryLevel+5B: 33 C0              - xor eax,eax
Game.GAME::Skill::GetMasteryLevel+5D: 48 83 C4 20        - add rsp,20
Game.GAME::Skill::GetMasteryLevel+61: 5B                 - pop rbx
Game.GAME::Skill::GetMasteryLevel+62: C3                 - ret
Game.GAME::Skill::GetMasteryLevel+63: CC                 - int 3
Game.GAME::Skill::GetMasteryLevel+64: CC                 - int 3
Game.GAME::Skill::GetMasteryLevel+65: CC                 - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>135311</ID>
          <Description>"Base"</Description>
          <LastState RealAddress="53283E70"/>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>String</VariableType>
          <Length>0</Length>
          <Unicode>0</Unicode>
          <CodePage>0</CodePage>
          <ZeroTerminate>1</ZeroTerminate>
          <Address>[_masteryBase]</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>135987</ID>
              <Description>"Points In Active Mastery Tab"</Description>
              <LastState Value="39" RealAddress="53283F38"/>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>00FF80</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>+C8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>135989</ID>
              <Description>"USE: Open Masteries/Skills, let populate, alter points for active Mastery tab"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>135991</ID>
              <Description>"&gt;&gt;&gt; Does not use or refund skill points"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>135990</ID>
              <Description>"&gt;&gt;&gt; Skills with points in them remain active after deactivating mastery"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>135986</ID>
              <Description>"&gt;&gt;&gt; 50 = Max Points In Mastery (no benefit to going higher)"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>135988</ID>
              <Description>"&gt;&gt;&gt; 0 = Deactivate Mastery (Undo Class button available)"</Description>
              <LastState Value="" RealAddress="00000000"/>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
  • USE: Open Masteries/Skills window, let populate (few seconds delay), alter points for active Mastery tab
  • > Increasing points in a mastery does not need or consume any points; decreasing does not refund any points either
  • > Skills with points allocated into them will remain active after deactivating mastery
  • > 50 = Max Points In Mastery (no benefit to going higher)
  • > 0 = Deactivate Mastery (Undo Class button available)
Another benefit to the option always altering the active mastery tab is that hotkeys can be set to change the value of the option to 50 and to 0. This allows someone to max out or zero out the current mastery tab with a button push while in-game without needing to ALT+TAB between cheat engine and the game to change the values in different masteries.

(If doing hotkeys, remember that it takes a few seconds for the option to update to the active mastery tab. Be sure to wait a few seconds after switching to a mastery tab to allow the option to update to the new mastery address before hitting your hotkey or it might still be on the previous mastery tab.)
Thanks StinVec!
Masteries control works great! Also good idea on adding hotkeys))

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 »

You're a BOSS @StinVec. Thank you!

EDIT:
Sharing the Table I'm using with some out of date BUT still working scripts and the updated scripts by @StinVec
Attachments
Grim_Dawn_1_2_X_X_X [Updates by StinVec].CT
Contains scripts from the old CT and the ones updated by StinVec. I only compiled the scripts for the x64 version. Tested on the GoG/Steam versions.
(119.65 KiB) Downloaded 1162 times

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 the codes just in case they did not paste properly last time.

Regarding the "Invincible Player, Pets and Allies" option, I've finally gotten it updated.

I finally learned what that "rbx+a6c" was in the code's compare that was being used for determining friend from foe. Now I understand a lot more about the registers, other areas of assembly, CE and of how stuff in Grim Dawn works in general.

(For those unfamiliar, this code adds a complete cheat option - just copy the code and then paste it (CTRL+V) into your cheat table to add the option.)
Invincible (Player, Pets and Allies) - 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>136101</ID>
      <Description>"Invincible (Player, Pets and Allies) (sets 'Invincible' flag to 1)"</Description>
      <Options moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.3 Updated

[ENABLE]
aobscanmodule(godFriendlies,Game.dll,66 0F 2F 7F 20)
alloc(newmem,$1000,godFriendlies)

label(code)
label(return)

newmem:
  cmp [rdi+D94],0 //friend/foe
  jne code
//  mov byte ptr [rbx+00001D9C],1 //Flag: Invincible (pet health bars hidden even if they are enabled)
  mov byte ptr [rbx+00001D9E],1 //Flag: Invincible (pet health bars visible if they are enabled)
//  mov byte ptr [rbx+00001D9F],1 //Flag: Infinite Mana
  jmp return

code:
  comisd xmm7,[rdi+20]
  jmp return

godFriendlies:
  jmp newmem
return:
registersymbol(godFriendlies)

[DISABLE]
godFriendlies:
  db 66 0F 2F 7F 20

unregistersymbol(godFriendlies)
dealloc(newmem)

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

Game.GAME::CharacterBio::Update+20D: E8 CE D2 01 00           - call Game.GAME::CharAttributeAccumulator::GetValue
Game.GAME::CharacterBio::Update+212: F3 0F 11 87 74 07 00 00  - movss [rdi+00000774],xmm0
Game.GAME::CharacterBio::Update+21A: 40 B5 01                 - mov bpl,01
Game.GAME::CharacterBio::Update+21D: 80 BF A8 07 00 00 00     - cmp byte ptr [rdi+000007A8],00
Game.GAME::CharacterBio::Update+224: 0F 84 EB 02 00 00        - je Game.GAME::CharacterBio::Update+515
Game.GAME::CharacterBio::Update+22A: 80 BF A9 07 00 00 00     - cmp byte ptr [rdi+000007A9],00
Game.GAME::CharacterBio::Update+231: 0F 85 DE 02 00 00        - jne Game.GAME::CharacterBio::Update+515
Game.GAME::CharacterBio::Update+237: 85 F6                    - test esi,esi
Game.GAME::CharacterBio::Update+239: 0F 8E 2C 03 00 00        - jng Game.GAME::CharacterBio::Update+56B
Game.GAME::CharacterBio::Update+23F: 0F 57 FF                 - xorps xmm7,xmm7
// ---------- INJECTING HERE ----------
Game.GAME::CharacterBio::Update+242: 66 0F 2F 7F 20           - comisd xmm7,[rdi+20]
// ---------- DONE INJECTING  ----------
Game.GAME::CharacterBio::Update+247: 0F 83 1E 03 00 00        - jae Game.GAME::CharacterBio::Update+56B
Game.GAME::CharacterBio::Update+24D: 80 7F 34 00              - cmp byte ptr [rdi+34],00
Game.GAME::CharacterBio::Update+251: 45 0F 57 C0              - xorps xmm8,xmm8
Game.GAME::CharacterBio::Update+255: 44 0F 29 5C 24 30        - movaps [rsp+30],xmm11
Game.GAME::CharacterBio::Update+25B: 41 0F 28 F0              - movaps xmm6,xmm8
Game.GAME::CharacterBio::Update+25F: 66 44 0F 6E DE           - movd xmm11,esi
Game.GAME::CharacterBio::Update+264: 45 0F 5B DB              - cvtdq2ps xmm11,xmm11
Game.GAME::CharacterBio::Update+268: 41 0F 28 C3              - movaps xmm0,xmm11
Game.GAME::CharacterBio::Update+26C: F3 0F 59 05 D0 09 5C 00  - mulss xmm0,[Game.GAME::WeaponArmor_Offhand::`vftable'+EBC]
Game.GAME::CharacterBio::Update+274: 44 0F 5A D0              - cvtps2pd xmm10,xmm0
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>136114</ID>
          <Description>"!!! Disabling option does not turn off the flags !!!"</Description>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>136119</ID>
          <Description>"&gt;&gt;&gt; NOTES: Code options"</Description>
          <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <Color>80FFFF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>136113</ID>
              <Description>"Only 'Invincible' flag set to 1 by default"</Description>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>136122</ID>
                  <Description>"'Invincible' flag has health bars visible if they are enabled"</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>136121</ID>
              <Description>"Can enable 'Infinite Mana' line in code"</Description>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>136120</ID>
              <Description>"Can enable 'Combo Invincible + Infinite Mana' line in code"</Description>
              <Color>80FFFF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>136123</ID>
                  <Description>"&gt; 'Combo' flag hides health bars even if they are enabled"</Description>
                  <Color>C0C0C0</Color>
                  <GroupHeader>1</GroupHeader>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
The way they had made the option isn't the greatest (disabling the option doesn't turn off the invincible flag on pets/allies, but you can turn it off on you in the player info pointers section), so please read the notes I included about how the option works.
_____

I also applied what I learned from fixing that option to also fixing the "Set all enemies to 1 HP" option:
Set all enemies to 1 HP - 1.2.0.3 x64

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>269</ID>
      <Description>"Set all enemies to 1 HP"</Description>
      <Color>FFFFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>//Grim Dawn 1.2.0.3 Updated

[ENABLE]
aobscanmodule(KILLEMALL,Game.dll,C3 F2 0F 10 89 D0 0D 00 00)
alloc(newmem,$1000,KILLEMALL)

label(code)
label(return)

newmem:
cmp [rcx+00001B44],0 //friend/foe
je code
cmp [rcx+00001B44],#14
je code
cmp [rcx+00001B44],#1
je code
mov [rcx+00000DD0],0
mov [rcx+00000DD4],(float)1.875 //collectively = (double)1
code:
  movsd xmm1,[rcx+00000DD0]
  jmp return

KILLEMALL+01:
  jmp newmem
  nop 3
return:
registersymbol(KILLEMALL)

[DISABLE]
KILLEMALL+01:
  db F2 0F 10 89 D0 0D 00 00

unregistersymbol(KILLEMALL)
dealloc(newmem)

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

Game.GAME::Character::GetManaLimit+1A - CC                    - int 3
Game.GAME::Character::GetManaLimit+1B - CC                    - int 3
Game.GAME::Character::GetManaLimit+1C - CC                    - int 3
Game.GAME::Character::GetManaLimit+1D - CC                    - int 3
Game.GAME::Character::GetManaLimit+1E - CC                    - int 3
Game.GAME::Character::GetManaLimit+1F - CC                    - int 3
Game.GAME::Character::GetCurrentLife  - F2 0F10 81 D00D0000   - movsd xmm0,[rcx+00000DD0]
Game.GAME::Character::GetCurrentLife+8- 0F57 C9               - xorps xmm1,xmm1
Game.GAME::Character::GetCurrentLife+B- F2 0F5F C1            - maxsd xmm0,xmm1
Game.GAME::Character::GetCurrentLife+F- C3                    - ret
// ---------- INJECTING HERE ----------
Game.GAME::Character::GetCurrentLifeInt- F2 0F10 89 D00D0000   - movsd xmm1,[rcx+00000DD0]
// ---------- DONE INJECTING  ----------
Game.GAME::Character::GetCurrentLifeInt+8- 0F57 C0               - xorps xmm0,xmm0
Game.GAME::Character::GetCurrentLifeInt+B- F2 0F5F C8            - maxsd xmm1,xmm0
Game.GAME::Character::GetCurrentLifeInt+F- 66 0F5A D1            - cvtpd2ps xmm2,xmm1
Game.GAME::Character::GetCurrentLifeInt+13- 0F2F 15 02DF5D00      - comiss xmm2,[Game.GAME::WeaponArmor_Offhand::`vftable'+F64]
Game.GAME::Character::GetCurrentLifeInt+1A- 76 06                 - jna Game.GAME::Character::GetCurrentLifeInt+22
Game.GAME::Character::GetCurrentLifeInt+1C- F3 48 0F2C C2         - cvttss2si rax,xmm2
Game.GAME::Character::GetCurrentLifeInt+21- C3                    - ret
Game.GAME::Character::GetCurrentLifeInt+22- 33 C0                 - xor eax,eax
Game.GAME::Character::GetCurrentLifeInt+24- 0F2F D0               - comiss xmm2,xmm0
Game.GAME::Character::GetCurrentLifeInt+27- 0F97 C0               - seta al
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
_____

Now that I have a good grasp on finding friend from foe, I'll revisit my Freeze Buff Timers option to get rid of the duration limit that is needed to avoid applying to enemies also. I need to rework that option anyway due to the changes to buffs in the 1.2 update.

There are primary skill buffs that get frozen, but there are also secondary skill effects that are not, which I've had to make an option to also freeze those. But debuffs also get frozen on that option if the duration timer is set too low. Then there are buffs given by item skills that also need another option to freeze those.

I've been working on those, but now I can do them properly without needing to worry about enemies also getting affected by the options.

I can also look at the "Monsters Can't move" option to try to get it to not affect your pets too so that it only affects enemy monsters.

_____

This is what I am currently using for my assembled table of options for 1.2.0.3 x64.

It is a combination of many options originally made, updated, altered and/or expanded on by fantomas, Marcus101RR, Artykalamata, all_my_sins, me and likely a few others (many options have been included in many tables over the years, sometimes with altered names, and some options did not have the name of the creator in the scripts, so it is hard to figure out who originally made many options).
  • [Link]
Are there any options not in this that are not yet updated and which others would like to see updated?
Are there any options in this that others do not have and want me to post?
Are there options I don't have in this that others feel really are useful and should be included?

_____

EDIT - Another question:
Does enabling the Max Pets Set To 20 and spawning 20 pets cause a game freeze and crash after a few battles for anyone else?

I think it is just my slow computer that can't handle that much action and effects on-screen. I lowered the option down to just 9 or 12 max for me to see if the problem continues.
Last edited by StinVec on Sun Jul 21, 2024 4:23 pm, edited 2 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:
Wed Dec 06, 2023 10:01 am
EDIT - Another question:
Does enabling the Max Pets Set To 20 and spawning 20 pets cause a game freeze and crash after a few battles for anyone else?

I think it is just my slow computer that can't handle that much action and effects on-screen. I lowered the option down to just 9 or 12 max for me to see if the problem continues.
Thanks for the updates. I'll check if the game crashes as soon as I get home.

AlexS
Expert Cheater
Expert Cheater
Posts: 323
Joined: Sun Apr 08, 2018 3:46 pm
Reputation: 192

Re: Grim Dawn + All DLC's

Post by AlexS »

(Google translation)

Who knows, please tell me which of the tables posted here contains the largest number of working options and which options in the table work for the latest version of the GOG game (1.2.0.2hf2), and which do not?

Baofu
Expert Cheater
Expert Cheater
Posts: 118
Joined: Wed Mar 15, 2017 10:25 am
Reputation: 17

Re: Grim Dawn + All DLC's

Post by Baofu »

StinVec wrote:
Wed Dec 06, 2023 10:01 am


Are there any options not in this that are not yet updated and which others would like to see updated?
Are there any options in this that others do not have and want me to post?
Are there options I don't have in this that others feel really are useful and should be included?
Hi! Thanks for all your hard work, I really appreciate the effort that's gone to fix everything so far.

Up to 1.1.9.8 I was also using the MiniMapReveal option and the Loot related ones, plus those for Shattered Realm and Crucible. I would like to see those brought up to date if possible in descending order. SR/Crucible can be fun but not entirely necessary as we can use GD Defiler and Stash to gear toons. But a full MiniMap, I miss the most. Thanks again!

Edit: If nothing else there'll be a whole new expansion being added which I'm sure will respark some interest in getting everything running again. Crucible stuff was "runSpeed_ptr" + 1540, 1330 and 1548, those offsets might have changed but thats where those stats were for wave, tributes and score. SR Shard number was runSpeed_ptr - 302C96B8.

Baofu
Expert Cheater
Expert Cheater
Posts: 118
Joined: Wed Mar 15, 2017 10:25 am
Reputation: 17

Re: Grim Dawn + All DLC's

Post by Baofu »

Crucible Score (Select all, Copy and paste into cheat table)
Spoiler
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>135992</ID>
<Description>"Crucible Score"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">20:Default
135:Max Speed
250:Super Speed
500:Super Speed x2
750:Super Speed x3
1000:Super Speed x4
</DropDownList>
<LastState Value="508663" RealAddress="1BD3EA017C0"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>[runSpeed_ptr]+17a0</Address>
</CheatEntry>
</CheatEntries>
</CheatTable>
Crucible Wave
Spoiler
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>135993</ID>
<Description>"Crucible Wave"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">20:Default
135:Max Speed
250:Super Speed
500:Super Speed x2
750:Super Speed x3
1000:Super Speed x4
</DropDownList>
<LastState Value="120" RealAddress="1BD3EA017B8"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>[runSpeed_ptr]+1798</Address>
</CheatEntry>
</CheatEntries>
</CheatTable>
Crucible Tributes
Spoiler
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>135994</ID>
<Description>"Crucible Tributes"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">20:Default
135:Max Speed
250:Super Speed
500:Super Speed x2
750:Super Speed x3
1000:Super Speed x4
</DropDownList>
<LastState Value="91" RealAddress="1BD3EA015A8"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>[runSpeed_ptr]+1588</Address>
</CheatEntry>
</CheatEntries>
</CheatTable>
Maybe try these for x64? Also, I think MiniMapReveal still works fine.

Post Reply

Who is online

Users browsing this forum: AmazonBot, Anaking, Chindopopito, FSMcas, Google [Bot], LordViktor, salka-200