<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>29</ID>
      <Description>"╔══════════════════════════════╗"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>30</ID>
      <Description>"║                Clunky Hero (STEAM)                ║"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>31</ID>
      <Description>"╠══════════════════════════════╣"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>7</ID>
      <Description>"║        === PLAYER MANAGER ===          ║"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{
  ==============================================
   Clunky Hero Table by SeryogaSK
  ----------------------------------------------
   Game    : ClunkyHero.exe
   Version : xx.xx.xx (Steam)
   Author  : SeryogaSK
   Website : Habibrahimov.com
  ----------------------------------------------
   Warning: Online use may trigger anti-cheat!
  ==============================================

  This script Get Player Base Address
}

[ENABLE]

aobscan(ply_health,48 8B 46 18 F3 0F 10 80 80 00 00 00) // should be unique
alloc(newmem,$1000,ply_health)
alloc(ply_base,8)

label(code)
label(return)

newmem:
mov [ply_base],rsi
code:
  mov rax,[rsi+18]
  movss xmm0,[rax+00000080]
  jmp return

ply_health:
  jmp newmem
  nop 7
return:
registersymbol(ply_health ply_base)

[DISABLE]

ply_health:
  db 48 8B 46 18 F3 0F 10 80 80 00 00 00

unregistersymbol(*)
dealloc(*)

{
// ORIGINAL CODE - INJECTION POINT: HealthText:Update+1e

12CF4E8667C: 00 00                          - add [rax],al
12CF4E8667E: 00 00                          - add [rax],al
HealthText:Update: 55                             - push rbp
HealthText:Update+1: 48 8B EC                       - mov rbp,rsp
HealthText:Update+4: 48 83 EC 40                    - sub rsp,40
HealthText:Update+8: 48 89 75 F8                    - mov [rbp-08],rsi
HealthText:Update+c: 48 8B F1                       - mov rsi,rcx
HealthText:Update+f: C7 45 F0 00 00 00 00           - mov [rbp-10],00000000
HealthText:Update+16: 48 8B 46 20                    - mov rax,[rsi+20]
HealthText:Update+1a: 48 89 45 E8                    - mov [rbp-18],rax
// ---------- INJECTING HERE ----------
HealthText:Update+1e: 48 8B 46 18                    - mov rax,[rsi+18]
// ---------- DONE INJECTING  ----------
HealthText:Update+22: F3 0F 10 80 80 00 00 00        - movss xmm0,[rax+00000080]
HealthText:Update+2a: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
HealthText:Update+2e: F2 0F 2C C0                    - cvttsd2si eax,xmm0
HealthText:Update+32: 89 45 F0                       - mov [rbp-10],eax
HealthText:Update+35: 48 8B CD                       - mov rcx,rbp
HealthText:Update+38: 48 83 C1 F0                    - add rcx,-10
HealthText:Update+3c: 66 90                          - nop 2
HealthText:Update+3e: 49 BB A0 CE 04 60 2E 01 00 00  - mov r11,System.Int32:ToString
HealthText:Update+48: 41 FF D3                       - call r11
HealthText:Update+4b: 48 89 45 E0                    - mov [rbp-20],rax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>8</ID>
          <Description>"Base"</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>8 Bytes</VariableType>
          <Address>ply_base</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>9</ID>
          <Description>"CurrentHealth"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>80</Offset>
          </Offsets>
          <CheatEntries>
            <CheatEntry>
              <ID>11</ID>
              <Description>"InitialHealth"</Description>
              <VariableType>4 Bytes</VariableType>
              <Address>[ply_base]+18</Address>
              <Offsets>
                <Offset>88</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"MaximumHealth"</Description>
              <VariableType>4 Bytes</VariableType>
              <Address>[ply_base]+18</Address>
              <Offsets>
                <Offset>8C</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"TemporaryInvulnerable"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>84</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>13</ID>
          <Description>"Invulnerable"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>90</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"ImmuneToKnockback"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>92</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>15</ID>
          <Description>"damageMultiplier"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>94</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"DestroyOnDeath"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>98</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"DelayBeforeDestruction"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>9C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>18</ID>
          <Description>"CollisionsOffOnDeath"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>A0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"PointsWhenDestroyed"</Description>
          <VariableType>4 Bytes</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>A4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"VibrateOnDeath"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>A8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"RespawnAtInitialLocation"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>A9</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"ResetForcesOnDeath"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>B4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"DebugActive"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>25</Offset>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>24</ID>
          <Description>"_holdingMax"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>2C</Offset>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>25</ID>
          <Description>"_originalGravity"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>F4</Offset>
            <Offset>50</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26</ID>
          <Description>"_speed"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>F8</Offset>
            <Offset>58</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>27</ID>
          <Description>"_gravityActive"</Description>
          <VariableType>Byte</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>134</Offset>
            <Offset>58</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"_worldSpeed"</Description>
          <VariableType>Float</VariableType>
          <Address>[ply_base]+18</Address>
          <Offsets>
            <Offset>298</Offset>
            <Offset>58</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>32</ID>
      <Description>"╠══════════════════════════════╣"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>33</ID>
      <Description>"║   TIP: Right-click values to set hotkeys!  ║"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>34</ID>
      <Description>"║       === Habibrahimov.com ===           ║"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>35</ID>
      <Description>"╠══════════════════════════════╣"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>36</ID>
      <Description>"║     === Latest Update 03.09.25 ===        ║"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>37</ID>
      <Description>"╚══════════════════════════════╝"</Description>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>
-- Cheat Table Decorator
function decorateSSKTable()
  local mainForm = getMainForm()

  -- Main Form Styling
  mainForm.Caption = 'Clunky Hero (Steam) - Enhanced Table [by SeryogaSK] {Habibrahimov.com}'
  mainForm.Color = 0x2B2B2B  -- Dark background
  mainForm.Font.Color = 0xE6E6E6 -- Light text
  getAutoAttachList().add("ClunkyHero.exe")
end

-- Execute when table loads
decorateSSKTable()


</LuaScript>
</CheatTable>
