<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>77</ID>
      <Description>"Kingdom: Classic"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

{$lua}
  LaunchMonoDataCollector()
{$asm}

define(One,Player:UpdatePayState+309)
define(Two,Kingdom:Update+a)
define(Three,Player:UpdateActionState+2fe)
define(Four,Player:UpdateActionState+47)
define(Five,Player:Update+97)
define(Six,Director:Update+1a)

alloc(newmemOne,$1000)
alloc(newmemTwo,$1000)
alloc(newmemThree,$1000)
alloc(newmemFour,$1000)
alloc(newmemFive,$1000)
alloc(newmemSix,$1000)
alloc(Seven,4)
alloc(Eight,4)
alloc(Nine,1)
alloc(Ten,4)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)
registersymbol(Four)
registersymbol(Five)
registersymbol(Six)
registersymbol(Seven)
registersymbol(Eight)
registersymbol(Nine)
registersymbol(Ten)

label(codeOne)
label(codeTwo)
label(codeThree)
label(codeFour)
label(codeFive)
label(codeSix)
label(codeSeven)
label(returnOne)
label(returnTwo)
label(returnThree)
label(returnFour)
label(returnFive)
label(returnSix)

Seven:
  dd 0

Eight:
  dd 0

Nine:
  db 0

Ten:
  dd 0

newmemOne:

codeOne:
  mov dword ptr [Seven],eax
  mov eax,[eax+3C]
  test eax,eax
  jmp returnOne

One:
  jmp newmemOne

returnOne:

newmemTwo:

codeTwo:
  mov dword ptr [Eight],edi
  fld dword ptr [edi+000000A8]
  jmp returnTwo

Two:
  jmp newmemTwo
  nop

returnTwo:

newmemThree:
  cmp byte ptr [Nine],1
  jne codeThree
  mov byte ptr [esi+000000CC],1
  jmp codeFour

codeThree:
  xor al,al
  mov byte ptr [esi+000000CC],al

codeFour:
  movzx eax,byte ptr [esi+000000CC]
  jmp returnThree

Three:
  jmp newmemThree
  nop 2

returnThree:

newmemFour:
  cmp byte ptr [Nine],1
  jne codeFive
  fld1

codeFive:
  fstp dword ptr [esi+00000090]
  jmp returnFour

Four:
  jmp newmemFour
  nop

returnFour:

newmemFive:
  cmp byte ptr [Nine],1
  jne codeSix
  fldz

codeSix:
  fstp dword ptr [edi+000000C0]
  jmp returnFive

Five:
  jmp newmemFive
  nop

returnFive:

newmemSix:

codeSeven:
  mov dword ptr [Ten],edi
  movzx eax,byte ptr [edi+4D]
  test eax,eax
  jmp returnSix

Six:
  jmp newmemSix
  nop

returnSix:

[DISABLE]

One:
  db 8B 40 3C 85 C0

Two:
  db D9 87 A8 00 00 00

Three:
  db 0F B6 86 CC 00 00 00

Four:
  db D9 9E 90 00 00 00

Five:
  db D9 9F C0 00 00 00

Six:
  db 0F B6 47 4D 85 C0

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)
unregistersymbol(Five)
unregistersymbol(Six)
unregistersymbol(Seven)
unregistersymbol(Eight)
unregistersymbol(Nine)
unregistersymbol(Ten)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(newmemThree)
dealloc(newmemFour)
dealloc(newmemFive)
dealloc(newmemSix)
dealloc(Seven)
dealloc(Eight)
dealloc(Nine)
dealloc(Ten)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>78</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>84</ID>
              <Description>"Infinite Stamina"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

Nine:
  db 1

[DISABLE]

Nine:
  db 0
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>94</ID>
              <Description>"Infinite Shrine Blessing"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Eleven,Statue:Update+23)
alloc(newmem,$1000)

label(code)
label(return)
label(Twelve)

newmem:

code:
  mov eax,[Twelve]
  mov [edi+74],eax
  fld dword ptr [edi+74]
  fstp qword ptr [ebp-20]
  jmp return

Twelve:
  dd (float)3

Eleven:
  jmp newmem
  nop

return:
registersymbol(Eleven)

[DISABLE]

Eleven:
  db D9 47 74 DD 5D E0

unregistersymbol(Eleven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>102</ID>
              <Description>"Instant Build"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Thirteen,WorkableBuilding:WorkAvailable+9)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  mov ecx,[eax+28]
  mov edx,[eax+30]
  cmp edx,ecx
  jge code
  cmp edx,ecx
  jge code
  sub ecx,1
  push ecx
  fild dword ptr [esp]
  add esp,4
  fstp dword ptr [eax+30]

code:
  fld dword ptr [eax+30]
  mov eax,[eax+28]
  jmp return

Thirteen:
  jmp newmem
  nop

return:
registersymbol(Thirteen)

[DISABLE]

Thirteen:
  db D9 40 30 8B 40 28

unregistersymbol(Thirteen)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>145</ID>
              <Description>"Quick Portal Collapse"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Fourteen,Portal:HandleOnReceiveHit+13)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [eax+50],1
  jle code
  mov dword ptr [eax+50],1

code:
  mov eax,[eax+50]
  test eax,eax
  jmp return

Fourteen:
  jmp newmem

return:
registersymbol(Fourteen)

[DISABLE]

Fourteen:
  db 8B 40 50 85 C0

unregistersymbol(Fourteen)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>89</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

{$lua}
  if untouchable ~= nil then
  untouchable.destroy()
  untouchable = nil
  end
  local proc = getOpenedProcessID()
  untouchable = createTimer()
  untouchable.Interval = 1000
  untouchable.OnTimer = function()
  if getOpenedProcessID() ~= proc then
  untouchable.destroy()
  untouchable = nil
  return
  end
  pcall(function()
  local a = getAddress('Eight')
  if not a then return end
  local base = readInteger(a)
  if base == 0 then return end
  base = readInteger(base+0x20)
  if base == 0 then return end
  base = readInteger(base+0x58)
  if base == 0 then return end
  writeBytes(base+0x4C,1)
  end)
  end
{$asm}

[DISABLE]

{$lua}
  if untouchable ~= nil then
  untouchable.destroy()
  untouchable = nil
  end
  pcall(function()
  local a = getAddress('Eight')
  if not a then return end
  local base = readInteger(a)
  if base == 0 then return end
  base = readInteger(base+0x20)
  if base == 0 then return end
  base = readInteger(base+0x58)
  if base == 0 then return end
  writeBytes(base+0x4C,0)
  end)
{$asm}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>79</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>76</ID>
              <Description>"Coins"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Seven]+3C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>80</ID>
              <Description>"⬆Press the drop coin button to populate value, even if you have zero."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>63</ID>
              <Description>"Time Scale"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>[Ten]+28</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>59</ID>
              <Description>"Gallop Speed"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>[[[Eight]+20]+78]+A0</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>162</ID>
      <Description>"Kingdom: New Lands"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

{$lua}
  LaunchMonoDataCollector()
{$asm}

define(Fifteen,Player:UpdatePayState+24a)
define(Sixteen,Kingdom:Update+a)
define(Seventeen,Player:UpdateActionState+230)
define(Eighteen,Player:TryToGallop+10)
define(Nineteen,Director:Update+1a)
define(Twenty,Deer:ShouldFollowPlayer+40)

alloc(newmemOne,$1000)
alloc(newmemTwo,$1000)
alloc(newmemThree,$1000)
alloc(newmemFour,$1000)
alloc(newmemFive,$1000)
alloc(newmemSix,$1000)
alloc(Twentyone,4)
alloc(Twentytwo,4)
alloc(Twentythree,1)
alloc(Twentyfour,4)
alloc(Twentyfive,4)

registersymbol(Fifteen)
registersymbol(Sixteen)
registersymbol(Seventeen)
registersymbol(Eighteen)
registersymbol(Nineteen)
registersymbol(Twenty)
registersymbol(Twentyone)
registersymbol(Twentytwo)
registersymbol(Twentythree)
registersymbol(Twentyfour)
registersymbol(Twentyfive)

label(codeOne)
label(codeTwo)
label(codeThree)
label(codeFour)
label(codeFive)
label(codeSix)
label(returnOne)
label(returnTwo)
label(returnThree)
label(returnFour)
label(returnFive)
label(returnSix)
label(Twentysix)

Twentyone:
  dd 0

Twentytwo:
  dd 0

Twentythree:
  db 0

Twentyfour:
  dd 0

Twentyfive:
  dd 0

newmemOne:

codeOne:
  mov dword ptr [Twentyone],eax
  mov eax,[eax+38]
  test eax,eax
  jmp returnOne

Fifteen:
  jmp newmemOne

returnOne:

newmemTwo:

codeTwo:
  mov dword ptr [Twentytwo],edi
  fld dword ptr [edi+000000C0]
  jmp returnTwo

Sixteen:
  jmp newmemTwo
  nop

returnTwo:

newmemThree:
  cmp byte ptr [Twentythree],1
  jne codeThree
  fld dword ptr [eax+00000194]
  fld dword ptr [Twentysix]
  fucomip st(0),st(1)
  jae codeThree
  fstp st(1)

codeThree:
  fstp dword ptr [eax+00000194]
  jmp returnThree

Twentysix:
  dd (float)0.9

Seventeen:
  jmp newmemThree
  nop

returnThree:

newmemFour:
  cmp byte ptr [Twentythree],1
  jne codeFour
  fldz

codeFour:
  fstp dword ptr [eax+0000018C]
  jmp returnFour

Eighteen:
  jmp newmemFour
  nop

returnFour:

newmemFive:

codeFive:
  mov dword ptr [Twentyfour],edi
  movzx eax,byte ptr [edi+000000BD]
  jmp returnFive

Nineteen:
  jmp newmemFive
  nop 2

returnFive:

newmemSix:

codeSix:
  mov dword ptr [Twentyfive],eax
  movzx eax,byte ptr [eax+00000134]
  jmp returnSix

Twenty:
  jmp newmemSix
  nop 2

returnSix:

[DISABLE]

Fifteen:
  db 8B 40 38 85 C0

Sixteen:
  db D9 87 C0 00 00 00

Seventeen:
  db D9 98 94 01 00 00

Eighteen:
  db D9 80 8C 01 00 00

Nineteen:
  db 0F B6 87 BD 00 00 00

Twenty:
  db 0F B6 80 34 01 00 00

unregistersymbol(Fifteen)
unregistersymbol(Sixteen)
unregistersymbol(Seventeen)
unregistersymbol(Eighteen)
unregistersymbol(Nineteen)
unregistersymbol(Twenty)
unregistersymbol(Twentyone)
unregistersymbol(Twentytwo)
unregistersymbol(Twentythree)
unregistersymbol(Twentyfour)
unregistersymbol(Twentyfive)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(newmemThree)
dealloc(newmemFour)
dealloc(newmemFive)
dealloc(newmemSix)
dealloc(Twentyone)
dealloc(Twentytwo)
dealloc(Twentythree)
dealloc(Twentyfour)
dealloc(Twentyfive)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>163</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>164</ID>
              <Description>"Infinite Stamina"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

Twentythree:
  db 1

[DISABLE]

Twentythree:
  db 0
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>165</ID>
              <Description>"Infinite Shrine Blessing"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Twentyseven,Statue:Update+24)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  fld dword ptr [edi+000000A4]
  fst dword ptr [edi+000000CC]
  jmp return

Twentyseven:
  jmp newmem
  nop

return:
registersymbol(Twentyseven)

[DISABLE]

Twentyseven:
  db D9 87 CC 00 00 00

unregistersymbol(Twentyseven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>166</ID>
              <Description>"Instant Build"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Twentyeight,WorkableBuilding:WorkAvailable+9)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  mov ecx,[eax+24]
  mov edx,[eax+2C]
  cmp edx,ecx
  jge code
  cmp edx,ecx
  jge code
  sub ecx,1
  push ecx
  fild dword ptr [esp]
  add esp,4
  fstp dword ptr [eax+2C]

code:
  fld dword ptr [eax+2C]
  mov eax,[eax+24]
  jmp return

Twentyeight:
  jmp newmem
  nop

return:
registersymbol(Twentyeight)

[DISABLE]

Twentyeight:
  db D9 40 2C 8B 40 24

unregistersymbol(Twentyeight)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>167</ID>
              <Description>"Charm Deer"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

{$lua}
  if charmDeer == nil then
  charmDeer = createTimer(nil,false)
  charmDeer.Interval = 500
  charmDeer.OnTimer = function(t)
  pcall(function()
  local a = getAddress('Twentyfive')
  if a == 0 then return end
  local base = readInteger(a)
  if base and base ~= 0 then
  writeBytes(base+0x134,1)
  end
  end)
  end
  end
  charmDeer.Enabled = true
{$asm}

[DISABLE]

{$lua}
  if charmDeer then
  charmDeer.destroy()
  charmDeer = nil
  end
  pcall(function()
  local a = getAddress('Twentyfive')
  if a ~= 0 then
  local base = readInteger(a)
  if base and base ~= 0 then
  writeBytes(base+0x134,0)
  end
  end
  end)
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>168</ID>
              <Description>"⬆Charm deer with any mount, not just the Stag."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>169</ID>
              <Description>"Quick Portal Collapse"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

define(Twentynine,Portal:HandleOnReceiveHit+13)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp dword ptr [eax+48],1
  jle code
  mov dword ptr [eax+48],1

code:
  mov eax,[eax+48]
  test eax,eax
  jmp return

Twentynine:
  jmp newmem

return:
registersymbol(Twentynine)

[DISABLE]

Twentynine:
  db 8B 40 48 85 C0

unregistersymbol(Twentynine)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>170</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

{$lua}
  if untouchable ~= nil then
  untouchable.destroy()
  untouchable = nil
  end
  local proc = getOpenedProcessID()
  untouchable = createTimer()
  untouchable.Interval = 1000
  untouchable.OnTimer = function()
  if getOpenedProcessID() ~= proc then
  untouchable.destroy()
  untouchable = nil
  return
  end
  pcall(function()
  local a = getAddress('Twentytwo')
  if not a then return end
  local base = readInteger(a)
  if base == 0 then return end
  base = readInteger(base+0x28)
  if base == 0 then return end
  base = readInteger(base+0x54)
  if base == 0 then return end
  writeBytes(base+0x44,1)
  end)
  end
{$asm}

[DISABLE]

{$lua}
  if untouchable ~= nil then
  untouchable.destroy()
  untouchable = nil
  end
  pcall(function()
  local a = getAddress('Twentytwo')
  if not a then return end
  local base = readInteger(a)
  if base == 0 then return end
  base = readInteger(base+0x28)
  if base == 0 then return end
  base = readInteger(base+0x54)
  if base == 0 then return end
  writeBytes(base+0x44,0)
  end)
{$asm}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>171</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>172</ID>
              <Description>"Coins"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Twentyone]+38</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>173</ID>
              <Description>"⬆Press the drop coin button to populate value, even if you have zero."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>174</ID>
              <Description>"Time Scale"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>[Twentyfour]+54</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>175</ID>
              <Description>"Gallop Speed"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>[[[Twentytwo]+28]+68]+E4</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
