<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>26722</ID>
      <Description>"CE compact mode"</Description>
      <Color>FF0000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
--------------------------------------------------------------------------------
if syntaxcheck then return end
--------------------------------------------------------------------------------
function ToggleCECompactMode()
  local f = getMainForm()
  local controls = {f.Splitter1, f.Panel4, f.Panel5}
  for k,c in ipairs(controls) do c.Visible = not c.Visible end
end
ToggleCECompactMode()
--------------------------------------------------------------------------------
{$asm}
[DISABLE]
{$lua}
--------------------------------------------------------------------------------
if syntaxcheck then return end
--------------------------------------------------------------------------------
ToggleCECompactMode()
--------------------------------------------------------------------------------
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>9210</ID>
      <Description>"Attach CE to the game process &amp; activate mono features"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <Color>FF0000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
--------------------------------------------------------------------------------
if syntaxcheck then return end
--------------------------------------------------------------------------------
function init_DotNetInfo()
  -- I didn't found a better way to access "dotnetinfo.lua" local functions
  miDotNetInfoClick(getMainForm()) -- opens ".Net Info" form
  df.Hide() -- hides just opened ".Net Info" form
end
--------------------------------------------------------------------------------
function mono_findClassEx(namespace, classname)
  if namespace==nil then
    print("[mono_findClassEx]: Invalid parameters!" .. namespace .. "." .. classname)
  else
    if classname==nil then
      needle = namespace
    else
      needle = namespace .. "." .. classname
    end
    --print("[mono_findClassEx]: Looking for: " .. needle)
    if DataSource.Domains==nil then
      init_DotNetInfo()
    end
    for _, Domain in ipairs(DataSource.Domains) do
      if Domain.Images == nil then
        DataSource.getImages(Domain) debugPrint()
      end
      for _, Image in ipairs(Domain.Images) do
        if Image.Classes == nil then
          Image.Classes = {}
          Image.Classes.Busy = true
          DataSource.getClasses(Image)
          Image.Classes.Busy = nil
        end
        for _, Class in ipairs(Image.Classes) do
          if Class.FullName == needle then
            return Class.Handle
          end
        end
      end
    end
  end
  return nil
end
--------------------------------------------------------------------------------
function mono_findMethodEx(namespace, classname, methodname)
  if namespace==nil or classname==nil then
    print("[mono_findMethodEx]: Invalid parameters! " .. namespace .. "." .. classname .. ":" .. methodname)
  else
    if methodname==nil then
      classname=namespace
      methodname=classname
      namespace=''
    end
    --print("[mono_findMethodEx]: Looking for: " .. namespace .. "." .. classname .. ":" .. methodname)
    local class = mono_findClassEx(namespace, classname)
    if class==nil or class==0 then
      print("[mono_findMethodEx]: Class not found! " .. namespace .. "." .. classname)
    else
      return mono_class_findMethod(class, methodname)
    end
  end
  return nil
end
--------------------------------------------------------------------------------
function mono_symbolLookupCallbackEx(symbol)
  --print("[mono_symbolLookupCallbackEx]: Parsing... " .. symbol)
  local namespace, classname, methodname = SplitDotNetName(symbol)
  if (methodname=='') or (classname=='') then
    print("[mono_symbolLookupCallbackEx]: Invalid parameters! " .. namespace .. "." .. classname .. ":" .. methodname)
  else
    if monopipe == nil or monopipe.IL2CPP then
      print("[mono_symbolLookupCallbackEx]: Unable to use mono features.")
    else
      local method = mono_findMethodEx(namespace, classname, methodname)
      if method==nil or method==0 then
        print("[mono_symbolLookupCallbackEx]: Method not found! " .. namespace .. "." .. classname .. ":" .. methodname)
      else
        local methodaddress = mono_compile_method(method)
        if methodaddress == nil or methodaddress == 0 then
          print("[mono_symbolLookupCallbackEx]: mono_compile_method error!")
        else
          return methodaddress
        end
      end
    end
  end
  return nil
end
--------------------------------------------------------------------------------
-- Scans the memory near &lt;mono_symbol&gt; for &lt;aob&gt; and returns it's address
function mono_AOBScanUnique(aob,mono_symbol)
  local result = nil
  local mono_address = mono_symbolLookupCallbackEx(mono_symbol)
  if mono_address == nil then
    print("[mono_AOBScanUnique]: Mono symbol not found! " .. mono_symbol)
  else
    local ji = mono_getJitInfo(mono_address)
    local start = ji.code_start -- Method start address
    local stop = start + ji.code_size -- Size of the method

    local protectionFlags = "+X-C+W"
    local alignmentType = fsmNotAligned
    local alignmentParam = nil
    local isHexadecimalInput = true
    local isNotABinaryString = true
    local isunicodescan = false
    local iscasesensitive = false
    local ms = createMemScan()

	  ms.firstScan(soExactValue, vtByteArray, nil, aob, nil, start, stop,
      protectionFlags, alignmentType, alignmentParam,
      isHexadecimalInput, isNotABinaryString, isunicodescan, iscasesensitive)
	  ms.waitTillDone()
	  local fl = createFoundList(ms)
    fl.initialize()
    if ms.FoundList.getCount()==0 then
      print("[mono_aobscan]: AOB [" .. aob .. "] not found near " .. mono_symbol)
    else
      if fl.getCount()&gt;1 then
        print("[mono_aobscan]: AOB [" .. aob .. "] is not unique near " .. mono_symbol)
      else
        result = fl[0]
      end
    end
    fl.deinitialize()
	  ms.destroy()
  end
	return result
end
--------------------------------------------------------------------------------
function string:split(sep)
  sep = sep or '%s'
  local elements = {}
  for element in string.gmatch(self, "([^"..sep.."]+)") do
    if element then elements[#elements+1]=element end
  end
  return elements
end
--------------------------------------------------------------------------------
function string:trim()
  return string.match(self, "^%s*(.-)%s*$")
end
--------------------------------------------------------------------------------
function parse(parameters)
  local args = {}
  for arg in string.gmatch(parameters, "([^,]+)") do
    if arg then
      args[#args+1]= arg:trim()
    end
  end
  return args
end
--------------------------------------------------------------------------------
function aobScanMono(parameters, syntaxcheck)
  local args = parse(parameters)
  if #args &lt; 3 then
    return nil, "Wrong number of parameters for 'aobScanMono' custom AA command."
  end
  local Symbol = args[1]
  local Bytes = args[3]
  if not syntaxcheck then
    local a = mono_AOBScanUnique(Bytes, args[2])
    if a == nil then
      return nil, "Error in 'aobScanMono' custom AA command."
    else
      Address = a
    end
  end
  local str = "define(" .. Symbol .. ", "  .. Address .. ")\r\n"
  str = str .. "assert(" .. Symbol .. ", " .. Bytes .. ")\r\n"
  return str
end
--------------------------------------------------------------------------------
function mono_activate()
  if getOpenedProcessID()==0 then
    print("[mono_activate]: No process opened!")
  else
    if monopipe==nil and LaunchMonoDataCollector()==0 then
      print("[mono_activate]: LaunchMonoDataCollector error!")
    else
      init_DotNetInfo()
    end
  end
end
--------------------------------------------------------------------------------
function mono_deactivate()
  if monopipe then
    monopipe.OnTimeout()
  end
end
--------------------------------------------------------------------------------
GetLuaEngine().MenuItem5.doClick() -- clear lua output
if OpenProcess("RimWorldWin64.exe") then
  mono_activate()
else
  msg = "Cannot open process!"
  print(msg)
  error(msg)
end
registerAutoAssemblerCommand("aobScanMono", aobScanMono)
--------------------------------------------------------------------------------
{$asm}
[DISABLE]
{$lua}
--------------------------------------------------------------------------------
if syntaxcheck then return end
--------------------------------------------------------------------------------
local function DeleteUserdefinedSymbols()
  local mv = getMemoryViewForm()
  if mv.frmSymbolhandler == nil then
    mv.Symbolhandler1.doClick()
    mv.frmSymbolhandler.Close()
  end
  local items = mv.frmSymbolhandler.ListView1.Items
  for i=0,items.Count-1 do
    unregisterSymbol(items.Item[0].Caption)
  end
end
--------------------------------------------------------------------------------
DeleteUserdefinedSymbols()
mono_deactivate()
unregisterAutoAssemblerCommand("aobScanMono")
--------------------------------------------------------------------------------
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Activate</Action>
          <Keys>
            <Key>18</Key>
            <Key>45</Key>
          </Keys>
          <ID>0</ID>
          <ActivateSound>Activate</ActivateSound>
        </Hotkey>
        <Hotkey>
          <Action>Deactivate</Action>
          <Keys>
            <Key>18</Key>
            <Key>46</Key>
          </Keys>
          <ID>1</ID>
          <DeactivateSound>Deactivate</DeactivateSound>
        </Hotkey>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>99</Key>
          </Keys>
          <ID>2</ID>
          <ActivateSound>Activate</ActivateSound>
          <DeactivateSound>Deactivate</DeactivateSound>
        </Hotkey>
      </Hotkeys>
      <CheatEntries>
        <CheatEntry>
          <ID>1337196606</ID>
          <Description>"【 Player pawns 】"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>FF0000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
define(codeIsColonistPlayerControlled,Verse.Pawn:get_IsColonistPlayerControlled)
//aobScanMono(codeIsColonistPlayerControlled, Verse.Pawn:get_IsColonistPlayerControlled, 55 48 8B EC 48 83 EC 30 48 89 75 F8 48 8B F1)
registersymbol(codeIsColonistPlayerControlled)
[DISABLE]
unregistersymbol(*)

{
// ORIGINAL CODE - INJECTION POINT: Verse.Pawn:get_IsColonistPlayerControlled

1515815D9CD: 01 00                          - add [rax],eax
1515815D9CF: 00 00                          - add [rax],al
1515815D9D1: 00 00                          - add [rax],al
1515815D9D3: 00 00                          - add [rax],al
1515815D9D5: 00 00                          - add [rax],al
1515815D9D7: 00 00                          - add [rax],al
1515815D9D9: 00 00                          - add [rax],al
1515815D9DB: 00 00                          - add [rax],al
1515815D9DD: 00 00                          - add [rax],al
1515815D9DF: 00                             - db 00
// ---------- INJECTING HERE ----------
Verse.Pawn:get_IsColonistPlayerControlled: 55                             - push rbp
// ---------- DONE INJECTING  ----------
Verse.Pawn:get_IsColonistPlayerControlled+1: 48 8B EC                       - mov rbp,rsp
Verse.Pawn:get_IsColonistPlayerControlled+4: 48 83 EC 30                    - sub rsp,30
Verse.Pawn:get_IsColonistPlayerControlled+8: 48 89 75 F8                    - mov [rbp-08],rsi
Verse.Pawn:get_IsColonistPlayerControlled+c: 48 8B F1                       - mov rsi,rcx
Verse.Pawn:get_IsColonistPlayerControlled+f: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
Verse.Pawn:get_IsColonistPlayerControlled+16: 49 BB 40 5C DD 57 51 01 00 00  - mov r11,Verse.Thing:get_Spawned
Verse.Pawn:get_IsColonistPlayerControlled+20: 41 FF D3                       - call r11
Verse.Pawn:get_IsColonistPlayerControlled+23: 85 C0                          - test eax,eax
Verse.Pawn:get_IsColonistPlayerControlled+25: 0F 84 69 00 00 00              - je Verse.Pawn:get_IsColonistPlayerControlled+94
Verse.Pawn:get_IsColonistPlayerControlled+2b: 48 8B CE                       - mov rcx,rsi
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>1337196735</ID>
              <Description>"Untargetable"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTryFindShootLineFromTo, Verse.Verb:TryFindShootLineFromTo, 48 8B 85 A0 FB FF FF 48 3B)
alloc(memTryFindShootLineFromTo,$1000,codeTryFindShootLineFromTo)
label(return)
label(skip)

memTryFindShootLineFromTo:
//------------------------------------------------------------------------------
  push rsi
  mov rsi,[rbp-00000458]
  mov rsi,[rsi] // Verse.Verb.currentTarget.thingInt
  mov [ptrTryFindShootLineFromTo],rsi
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi
  mov rcx,[rcx+10]          // Thing.def
  cmp byte ptr [rcx+388],1  // Thing.def.category == Pawn
  pop rcx
  jne skip // update only Pawns
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------
  mov rcx,0 // =&gt; 'targ.Thing.Map != caster.Map'

skip:
  pop rsi
  mov rax,[rbp-00000460]
  jmp return

ptrTryFindShootLineFromTo:
  dq 0

bkpTryFindShootLineFromTo:
  readmem(codeTryFindShootLineFromTo,7)

codeTryFindShootLineFromTo:
  jmp memTryFindShootLineFromTo
  nop 2

return:

registersymbol(codeTryFindShootLineFromTo)
registersymbol(memTryFindShootLineFromTo)
registersymbol(bkpTryFindShootLineFromTo)
registersymbol(ptrTryFindShootLineFromTo)

[DISABLE]

codeTryFindShootLineFromTo:
  readmem(bkpTryFindShootLineFromTo,7)

unregistersymbol(*)
dealloc(memTryFindShootLineFromTo)

{
// ORIGINAL CODE - INJECTION POINT: Verse.Verb:TryFindShootLineFromTo+176

Verse.Verb:TryFindShootLineFromTo+146: 49 BB 40 65 08 45 A7 02 00 00  - mov r11,Verse.Thing:get_Map
Verse.Verb:TryFindShootLineFromTo+150: 41 FF D3                       - call r11
Verse.Verb:TryFindShootLineFromTo+153: 48 89 85 A0 FB FF FF           - mov [rbp-00000460],rax
Verse.Verb:TryFindShootLineFromTo+15a: 48 8B 47 30                    - mov rax,[rdi+30]
Verse.Verb:TryFindShootLineFromTo+15e: 48 8B C8                       - mov rcx,rax
Verse.Verb:TryFindShootLineFromTo+161: 83 38 00                       - cmp dword ptr [rax],00
Verse.Verb:TryFindShootLineFromTo+164: 66 90                          - nop 2
Verse.Verb:TryFindShootLineFromTo+166: 49 BB 40 65 08 45 A7 02 00 00  - mov r11,Verse.Thing:get_Map
Verse.Verb:TryFindShootLineFromTo+170: 41 FF D3                       - call r11
Verse.Verb:TryFindShootLineFromTo+173: 48 8B C8                       - mov rcx,rax
// ---------- INJECTING HERE ----------
Verse.Verb:TryFindShootLineFromTo+176: 48 8B 85 A0 FB FF FF           - mov rax,[rbp-00000460]
// ---------- DONE INJECTING  ----------
Verse.Verb:TryFindShootLineFromTo+17d: 48 3B C1                       - cmp rax,rcx
Verse.Verb:TryFindShootLineFromTo+180: 0F 84 30 00 00 00              - je Verse.Verb:TryFindShootLineFromTo+1b6
Verse.Verb:TryFindShootLineFromTo+186: C7 06 00 00 00 00              - mov [rsi],00000000
Verse.Verb:TryFindShootLineFromTo+18c: C7 46 04 00 00 00 00           - mov [rsi+04],00000000
Verse.Verb:TryFindShootLineFromTo+193: C7 46 08 00 00 00 00           - mov [rsi+08],00000000
Verse.Verb:TryFindShootLineFromTo+19a: C7 46 0C 00 00 00 00           - mov [rsi+0C],00000000
Verse.Verb:TryFindShootLineFromTo+1a1: C7 46 10 00 00 00 00           - mov [rsi+10],00000000
Verse.Verb:TryFindShootLineFromTo+1a8: C7 46 14 00 00 00 00           - mov [rsi+14],00000000
Verse.Verb:TryFindShootLineFromTo+1af: 33 C0                          - xor eax,eax
Verse.Verb:TryFindShootLineFromTo+1b1: E9 FD 0F 00 00                 - jmp Verse.Verb:TryFindShootLineFromTo+11b3
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196734</ID>
              <Description>"Instant movement"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codePatherTick, Verse.AI.Pawn_PathFollower:PatherTick, F3 0F 10 46 54 F3 0F 5A C0 66 0F 57 C9)
alloc(memPatherTick,$1000,codePatherTick)
label(return)
label(skip)

memPatherTick:
//------------------------------------------------------------------------------
  push rdi
  mov rdi,rsi // backup rsi
  mov rsi,[rsi+10] // current Pawn
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------
  mov rsi,rdi
  mov [rsi+54],(float)0.0 // Verse.AI.Pawn_PathFollower.nextCellCostLeft

skip:
  mov rsi,rdi
  pop rdi
  movss xmm0,[rsi+54]
  jmp return

bkpPatherTick:
  readmem(codePatherTick,5)

codePatherTick:
  jmp memPatherTick

return:

registersymbol(codePatherTick)
registersymbol(memPatherTick)
registersymbol(bkpPatherTick)

[DISABLE]

codePatherTick:
  readmem(bkpPatherTick,5)

unregistersymbol(*)
dealloc(memPatherTick)

{
// ORIGINAL CODE - INJECTION POINT: Verse.AI.Pawn_PathFollower:PatherTick+6e1

Verse.AI.Pawn_PathFollower:PatherTick+6ae: 49 BB A7 6D F4 E0 D7 01 00 00  - mov r11,000001D7E0F46DA7
Verse.AI.Pawn_PathFollower:PatherTick+6b8: 41 FF D3                       - call r11
Verse.AI.Pawn_PathFollower:PatherTick+6bb: E9 9B 00 00 00                 - jmp Verse.AI.Pawn_PathFollower:PatherTick+75b
Verse.AI.Pawn_PathFollower:PatherTick+6c0: 48 B8 F0 4E 94 12 D7 01 00 00  - mov rax,000001D712944EF0
Verse.AI.Pawn_PathFollower:PatherTick+6ca: 48 8B 00                       - mov rax,[rax]
Verse.AI.Pawn_PathFollower:PatherTick+6cd: 48 8B 80 B0 00 00 00           - mov rax,[rax+000000B0]
Verse.AI.Pawn_PathFollower:PatherTick+6d4: 48 8B C8                       - mov rcx,rax
Verse.AI.Pawn_PathFollower:PatherTick+6d7: 83 39 00                       - cmp dword ptr [rcx],00
Verse.AI.Pawn_PathFollower:PatherTick+6da: 48 63 40 38                    - movsxd  rax,dword ptr [rax+38]
Verse.AI.Pawn_PathFollower:PatherTick+6de: 89 46 60                       - mov [rsi+60],eax
// ---------- INJECTING HERE ----------
Verse.AI.Pawn_PathFollower:PatherTick+6e1: F3 0F 10 46 54                 - movss xmm0,[rsi+54]
// ---------- DONE INJECTING  ----------
Verse.AI.Pawn_PathFollower:PatherTick+6e6: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Verse.AI.Pawn_PathFollower:PatherTick+6ea: 66 0F 57 C9                    - xorpd xmm1,xmm1
Verse.AI.Pawn_PathFollower:PatherTick+6ee: 66 0F 2F C8                    - comisd xmm1,xmm0
Verse.AI.Pawn_PathFollower:PatherTick+6f2: 0F 8A 49 00 00 00              - jp Verse.AI.Pawn_PathFollower:PatherTick+741
Verse.AI.Pawn_PathFollower:PatherTick+6f8: 0F 83 43 00 00 00              - jae Verse.AI.Pawn_PathFollower:PatherTick+741
Verse.AI.Pawn_PathFollower:PatherTick+6fe: F3 0F 10 46 54                 - movss xmm0,[rsi+54]
Verse.AI.Pawn_PathFollower:PatherTick+703: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Verse.AI.Pawn_PathFollower:PatherTick+707: F2 0F 11 85 80 FE FF FF        - movsd [rbp-00000180],xmm0
Verse.AI.Pawn_PathFollower:PatherTick+70f: 48 8B CE                       - mov rcx,rsi
Verse.AI.Pawn_PathFollower:PatherTick+712: 48 8D 6D 00                    - lea rbp,[rbp+00]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196668</ID>
              <Description>"Edit learning rate"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeLearnRateFactor, RimWorld.SkillRecord:LearnRateFactor, 48 8B 7D F0 4C 8B 7D F8)
alloc(memLearnRateFactor, $1000, codeLearnRateFactor)
label(skip)
label(return)

memLearnRateFactor:
//------------------------------------------------------------------------------
  push rsi
  mov rsi,[rdi+10]  // current Pawn
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------

  movss xmm0,[desiredLearnRateFactor]
skip:
  pop rsi
  mov rdi,[rbp-10]
  mov r15,[rbp-08]
  jmp return
desiredLearnRateFactor:
  dd (float)200.0

bkpLearnRateFactor:
  readmem(codeLearnRateFactor,8)

codeLearnRateFactor:
  jmp memLearnRateFactor
  nop 3

return:

registersymbol(desiredLearnRateFactor)
registersymbol(codeLearnRateFactor)
registersymbol(memLearnRateFactor)
registersymbol(bkpLearnRateFactor)

[DISABLE]

codeLearnRateFactor:
  readmem(bkpLearnRateFactor,8)

unregistersymbol(*)
dealloc(memLearnRateFactor)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.SkillRecord:LearnRateFactor+26e

RimWorld.SkillRecord:LearnRateFactor+23f: F3 0F 10 45 EC           - movss xmm0,[rbp-14]
RimWorld.SkillRecord:LearnRateFactor+244: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.SkillRecord:LearnRateFactor+248: F3 0F 10 0D 30 00 00 00  - movss xmm1,[RimWorld.SkillRecord:LearnRateFactor+280]
RimWorld.SkillRecord:LearnRateFactor+250: F3 0F 5A C9              - cvtss2sd xmm1,xmm1
RimWorld.SkillRecord:LearnRateFactor+254: F2 0F 59 C1              - mulsd xmm0,xmm1
RimWorld.SkillRecord:LearnRateFactor+258: F2 0F 5A E8              - cvtsd2ss xmm5,xmm0
RimWorld.SkillRecord:LearnRateFactor+25c: F3 0F 11 6D EC           - movss [rbp-14],xmm5
RimWorld.SkillRecord:LearnRateFactor+261: F3 0F 10 45 EC           - movss xmm0,[rbp-14]
RimWorld.SkillRecord:LearnRateFactor+266: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.SkillRecord:LearnRateFactor+26a: F2 0F 5A C0              - cvtsd2ss xmm0,xmm0
// ---------- INJECTING HERE ----------
RimWorld.SkillRecord:LearnRateFactor+26e: 48 8B 7D F0              - mov rdi,[rbp-10]
// ---------- DONE INJECTING  ----------
RimWorld.SkillRecord:LearnRateFactor+272: 4C 8B 7D F8              - mov r15,[rbp-08]
RimWorld.SkillRecord:LearnRateFactor+276: 48 8D 65 00              - lea rsp,[rbp+00]
RimWorld.SkillRecord:LearnRateFactor+27a: 5D                       - pop rbp
RimWorld.SkillRecord:LearnRateFactor+27b: C3                       - ret
RimWorld.SkillRecord:LearnRateFactor+27c: 8B 6D F8                 - mov ebp,[rbp-08]
RimWorld.SkillRecord:LearnRateFactor+27f: 48 CD CC                 - int -34
RimWorld.SkillRecord:LearnRateFactor+282: 4C 3E                    - db 3E
RimWorld.SkillRecord:LearnRateFactor+284: C3                       - ret
RimWorld.SkillRecord:LearnRateFactor+285: 9C                       - pushfq
RimWorld.SkillRecord:LearnRateFactor+286: 48 63 40 08              - movsxd  rax,dword ptr [rax+08]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196669</ID>
                  <Description>"Desired learn rate"</Description>
                  <DropDownList DisplayValueAsItem="1">0.349999994:no passion
1:minor passion
1.5:major passion
200:debug
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808000</Color>
                  <VariableType>Float</VariableType>
                  <Address>desiredLearnRateFactor</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196604</ID>
              <Description>"Max skills"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeSkillRecord, RimWorld.SkillRecord:Interval, 48 8B 46 10 48 8B 80 38 01 00 00)
alloc(memSkillRecord, $1000, codeSkillRecord)
label(skip)
label(return)

memSkillRecord:
//------------------------------------------------------------------------------
  push rdi
  mov rdi,rsi // backup rsi
  mov rsi,[rsi+10]  // current Pawn
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------

  mov rsi,rdi
  mov [rsi+20],#20 // set 'levelInt' to max
  mov [rsi+24],#2 // set 'passion' to max
  mov [rsi+28],(float)30000.0 // set 'xpSinceLastLevel' matching the 'levelInt'.

skip:
  mov rsi,rdi
  pop rdi
  mov rax,[rsi+10]
  mov rax,[rax+00000138]
  jmp return

bkpSkillRecord:
  readmem(codeSkillRecord,11)

codeSkillRecord:
  jmp memSkillRecord
  nop 6

return:

registersymbol(codeSkillRecord)
registersymbol(memSkillRecord)
registersymbol(bkpSkillRecord)

[DISABLE]

codeSkillRecord:
  readmem(bkpSkillRecord,11)

unregistersymbol(*)
dealloc(memSkillRecord)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.SkillRecord:Interval+13

27BDFA5E868: 00 00                          - add [rax],al
27BDFA5E86A: 00 00                          - add [rax],al
27BDFA5E86C: 00 00                          - add [rax],al
27BDFA5E86E: 00 00                          - add [rax],al
RimWorld.SkillRecord:Interval: 55                             - push rbp
RimWorld.SkillRecord:Interval+1: 48 8B EC                       - mov rbp,rsp
RimWorld.SkillRecord:Interval+4: 48 83 EC 40                    - sub rsp,40
RimWorld.SkillRecord:Interval+8: 48 89 75 F0                    - mov [rbp-10],rsi
RimWorld.SkillRecord:Interval+c: 48 89 7D F8                    - mov [rbp-08],rdi
RimWorld.SkillRecord:Interval+10: 48 8B F1                       - mov rsi,rcx
// ---------- INJECTING HERE ----------
RimWorld.SkillRecord:Interval+13: 48 8B 46 10                    - mov rax,[rsi+10]
RimWorld.SkillRecord:Interval+17: 48 8B 80 38 01 00 00           - mov rax,[rax+00000138]
// ---------- DONE INJECTING  ----------
RimWorld.SkillRecord:Interval+1e: 48 8B 40 40                    - mov rax,[rax+40]
RimWorld.SkillRecord:Interval+22: 48 B9 A8 8E D6 0D 7C 02 00 00  - mov rcx,0000027C0DD68EA8
RimWorld.SkillRecord:Interval+2c: 48 8B 11                       - mov rdx,[rcx]
RimWorld.SkillRecord:Interval+2f: 48 8B C8                       - mov rcx,rax
RimWorld.SkillRecord:Interval+32: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.SkillRecord:Interval+35: 90                             - nop
RimWorld.SkillRecord:Interval+36: 49 BB 40 72 D4 72 7C 02 00 00  - mov r11,RimWorld.TraitSet:HasTrait
RimWorld.SkillRecord:Interval+40: 41 FF D3                       - call r11
RimWorld.SkillRecord:Interval+43: 85 C0                          - test eax,eax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196681</ID>
              <Description>"Set pawn stats"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeGetStatValue, RimWorld.StatExtension:GetStatValue, F3 0F 5A C0 F2 0F 5A C0)
alloc(memGetStatValue, $1000, codeGetStatValue)
label(skip)
label(return)

memGetStatValue:

  // DoorOpenSpeed #64457
  // FilthRate #38404
  // MeleeDodgeChance #18456
  // ShootingAccuracyPawn #34504
  // AimingDelayFactor #17806

  // RimWorld.StatDef.shortHash
  // Filter only relevant stats to update

//------------------------------------------------------------------------------
  push rsi
  mov rsi,[rbp-10]  // current Thing
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi
  mov rcx,[rcx+10]          // Thing.def
  cmp byte ptr [rcx+388],1  // Thing.def.category == Pawn
  pop rcx
  jne skip // update only Pawns
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------

  mov [ptrStatThing],rsi

//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------

  mov [ptrStatDef],r15

  cmp word ptr [r15+52],#30381 // WorkSpeedGlobal
  jne @f
  movss xmm0,[desiredWorkSpeedGlobal]
@@:
  cmp word ptr [r15+52],#45971 // GlobalLearningFactor
  jne @f
  movss xmm0,[desiredGlobalLearningFactor]
@@:
  cmp word ptr [r15+52],#33199 // MoveSpeed
  jne @f
  movss xmm0,[desiredMoveSpeed]
@@:
  cmp word ptr [r15+52],#50280 // CleaningSpeed
  jne @f
  movss xmm0,[desiredCleaningSpeed]
skip:
  pop rsi
  cvtss2sd xmm0,xmm0
  cvtsd2ss xmm0,xmm0
  jmp return

desiredCleaningSpeed:
  dd (float)100.0

desiredWorkSpeedGlobal:
  dd (float)100.0

desiredGlobalLearningFactor:
  dd (float)10000.0

desiredMoveSpeed:
  dd (float)100.0

ptrStatDef:
  dq 0

ptrStatThing:
  dq 0

bkpGetStatValue:
  readmem(codeGetStatValue,8)

codeGetStatValue:
  jmp memGetStatValue
  nop 3

return:

registersymbol(desiredCleaningSpeed)
registersymbol(desiredWorkSpeedGlobal)
registersymbol(desiredGlobalLearningFactor)
registersymbol(desiredMoveSpeed)
registersymbol(ptrStatThing)
registersymbol(ptrStatDef)
registersymbol(codeGetStatValue)
registersymbol(memGetStatValue)
registersymbol(bkpGetStatValue)

[DISABLE]

codeGetStatValue:
  readmem(bkpGetStatValue,8)

unregistersymbol(*)
dealloc(memGetStatValue)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.StatExtension:GetStatValue+53

RimWorld.StatExtension:GetStatValue+22: 48 8D 6D 00                    - lea rbp,[rbp+00]
RimWorld.StatExtension:GetStatValue+26: 49 BB B0 F9 E9 C4 CE 01 00 00  - mov r11,RimWorld.StatDef:get_Worker
RimWorld.StatExtension:GetStatValue+30: 41 FF D3                       - call r11
RimWorld.StatExtension:GetStatValue+33: 48 8B C8                       - mov rcx,rax
RimWorld.StatExtension:GetStatValue+36: 48 8B 55 F0                    - mov rdx,[rbp-10]
RimWorld.StatExtension:GetStatValue+3a: 44 0F B6 45 E8                 - movzx r8d,byte ptr [rbp-18]
RimWorld.StatExtension:GetStatValue+3f: 4C 63 4D E0                    - movsxd  r9,dword ptr [rbp-20]
RimWorld.StatExtension:GetStatValue+43: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.StatExtension:GetStatValue+46: 49 BB 90 08 42 CC CE 01 00 00  - mov r11,RimWorld.StatWorker:GetValue
RimWorld.StatExtension:GetStatValue+50: 41 FF D3                       - call r11
// ---------- INJECTING HERE ----------
RimWorld.StatExtension:GetStatValue+53: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
// ---------- DONE INJECTING  ----------
RimWorld.StatExtension:GetStatValue+57: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.StatExtension:GetStatValue+5b: 4C 8B 7D F8                    - mov r15,[rbp-08]
RimWorld.StatExtension:GetStatValue+5f: 48 8D 65 00                    - lea rsp,[rbp+00]
RimWorld.StatExtension:GetStatValue+63: 5D                             - pop rbp
RimWorld.StatExtension:GetStatValue+64: C3                             - ret
1CECC420845: 00 00                          - add [rax],al
1CECC420847: 00 01                          - add [rcx],al
1CECC420849: 04 02                          - add al,02
1CECC42084B: 05 04 03 01 50                 - add eax,50010304
1CECC420850: 00 00                          - add [rax],al
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196682</ID>
                  <Description>"CleaningSpeed"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808000</Color>
                  <VariableType>Float</VariableType>
                  <Address>desiredCleaningSpeed</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337196692</ID>
                  <Description>"GlobalLearningFactor"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808000</Color>
                  <VariableType>Float</VariableType>
                  <Address>desiredGlobalLearningFactor</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337196693</ID>
                  <Description>"MoveSpeed"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808000</Color>
                  <VariableType>Float</VariableType>
                  <Address>desiredMoveSpeed</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337196694</ID>
                  <Description>"WorkSpeedGlobal"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808000</Color>
                  <VariableType>Float</VariableType>
                  <Address>desiredWorkSpeedGlobal</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196700</ID>
              <Description>"【 Set pawn capacity levels 】"</Description>
              <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
              <Color>808080</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196670</ID>
                  <Description>"Set pawn capacity levels (Verse.PawnCapacitiesHandler:GetLevel)"</Description>
                  <Options moHideChildren="1"/>
                  <Color>FF0000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
aobScanMono(codeCapacityGetLevel, Verse.PawnCapacitiesHandler:GetLevel, 48 8B 75 F0 48 8B 7D F8)
alloc(memCapacityGetLevel, $1000, codeCapacityGetLevel)
label(skip)
label(return)

memCapacityGetLevel:
//------------------------------------------------------------------------------
  push rsi
  mov rsi,[rdi+10]  // current Pawn
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------

  movss xmm0,[desiredCapacityGetLevel]
  movss [rax+14],xmm0
skip:
  pop rsi
  mov rsi,[rbp-10]
  mov rdi,[rbp-08]
  jmp return

bkpCapacityGetLevel:
  readmem(codeCapacityGetLevel,8)

desiredCapacityGetLevel:
  dd (float)100.0

codeCapacityGetLevel:
  jmp memCapacityGetLevel
  nop 3

return:

registersymbol(desiredCapacityGetLevel)
registersymbol(codeCapacityGetLevel)
registersymbol(memCapacityGetLevel)
registersymbol(bkpCapacityGetLevel)

[DISABLE]

codeCapacityGetLevel:
  readmem(bkpCapacityGetLevel,8)

unregistersymbol(*)
dealloc(memCapacityGetLevel)

{
// ORIGINAL CODE - INJECTION POINT: Verse.PawnCapacitiesHandler:GetLevel+181

Verse.PawnCapacitiesHandler:GetLevel+156: 49 BB 8B 5C A2 3D EF 01 00 00  - mov r11,000001EF3DA25C8B
Verse.PawnCapacitiesHandler:GetLevel+160: 41 FF D3                       - call r11
Verse.PawnCapacitiesHandler:GetLevel+163: EB 18                          - jmp Verse.PawnCapacitiesHandler:GetLevel+17d
Verse.PawnCapacitiesHandler:GetLevel+165: 48 89 65 E8                    - mov [rbp-18],rsp
Verse.PawnCapacitiesHandler:GetLevel+169: 48 83 EC 20                    - sub rsp,20
Verse.PawnCapacitiesHandler:GetLevel+16d: 48 8B 45 B0                    - mov rax,[rbp-50]
Verse.PawnCapacitiesHandler:GetLevel+171: C7 40 10 02 00 00 00           - mov [rax+10],00000002
Verse.PawnCapacitiesHandler:GetLevel+178: 48 8B 65 E8                    - mov rsp,[rbp-18]
Verse.PawnCapacitiesHandler:GetLevel+17c: C3                             - ret
Verse.PawnCapacitiesHandler:GetLevel+17d: 48 8B 45 B0                    - mov rax,[rbp-50]
// ---------- INJECTING HERE ----------
Verse.PawnCapacitiesHandler:GetLevel+181: F3 0F 10 40 14                 - movss xmm0,[rax+14]
// ---------- DONE INJECTING  ----------
Verse.PawnCapacitiesHandler:GetLevel+186: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Verse.PawnCapacitiesHandler:GetLevel+18a: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
Verse.PawnCapacitiesHandler:GetLevel+18e: 48 8B 75 F0                    - mov rsi,[rbp-10]
Verse.PawnCapacitiesHandler:GetLevel+192: 48 8B 7D F8                    - mov rdi,[rbp-08]
Verse.PawnCapacitiesHandler:GetLevel+196: 48 8D 65 00                    - lea rsp,[rbp+00]
Verse.PawnCapacitiesHandler:GetLevel+19a: 5D                             - pop rbp
Verse.PawnCapacitiesHandler:GetLevel+19b: C3                             - ret
1F163CCDE7C: 00 00                          - add [rax],al
1F163CCDE7E: 00 00                          - add [rax],al
1F163CCDE80: 01 04 02                       - add [rdx+rax],eax
}
</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1337196695</ID>
                      <Description>"desiredCapacityGetLevel"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>808000</Color>
                      <VariableType>Float</VariableType>
                      <Address>desiredCapacityGetLevel</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337196696</ID>
                  <Description>"Set pawn capacity levels (Verse.PawnCapacityUtility:CalculateCapacityLevel)"</Description>
                  <Options moHideChildren="1"/>
                  <Color>FF0000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
aobScanMono(codeCalculateCapacityLevel, Verse.PawnCapacityUtility:CalculateCapacityLevel, F3 0F 5A C0 F2 0F 5A C0 48 8B 5D C8)
alloc(memCalculateCapacityLevel, $1000, codeCalculateCapacityLevel)
label(skip)
label(return)

memCalculateCapacityLevel:
//------------------------------------------------------------------------------
  push rsi
  mov rsi,[r14+10]
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------

  movss xmm0,[desiredCalculateCapacityLevel]
skip:
  pop rsi
  cvtss2sd xmm0,xmm0
  cvtsd2ss xmm0,xmm0
  jmp return

bkpCalculateCapacityLevel:
  readmem(codeCalculateCapacityLevel,8)

desiredCalculateCapacityLevel:
  dd (float)100.0

codeCalculateCapacityLevel:
  jmp memCalculateCapacityLevel
  nop 3

return:

registersymbol(desiredCalculateCapacityLevel)
registersymbol(codeCalculateCapacityLevel)
registersymbol(memCalculateCapacityLevel)
registersymbol(bkpCalculateCapacityLevel)

[DISABLE]

codeCalculateCapacityLevel:
  readmem(bkpCalculateCapacityLevel,8)

unregistersymbol(*)
dealloc(memCalculateCapacityLevel)

{
// ORIGINAL CODE - INJECTION POINT: Verse.PawnCapacityUtility:CalculateCapacityLevel+90d

Verse.PawnCapacityUtility:CalculateCapacityLevel+8dc: F3 0F 11 6D C4                 - movss [rbp-3C],xmm5
Verse.PawnCapacityUtility:CalculateCapacityLevel+8e1: F3 0F 10 45 C4                 - movss xmm0,[rbp-3C]
Verse.PawnCapacityUtility:CalculateCapacityLevel+8e6: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Verse.PawnCapacityUtility:CalculateCapacityLevel+8ea: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
Verse.PawnCapacityUtility:CalculateCapacityLevel+8ee: 49 BB F0 C0 26 E0 01 02 00 00  - mov r11,Verse.GenMath:RoundedHundredth
Verse.PawnCapacityUtility:CalculateCapacityLevel+8f8: 41 FF D3                       - call r11
Verse.PawnCapacityUtility:CalculateCapacityLevel+8fb: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Verse.PawnCapacityUtility:CalculateCapacityLevel+8ff: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
Verse.PawnCapacityUtility:CalculateCapacityLevel+903: F3 0F 11 6D C4                 - movss [rbp-3C],xmm5
Verse.PawnCapacityUtility:CalculateCapacityLevel+908: F3 0F 10 45 C4                 - movss xmm0,[rbp-3C]
// ---------- INJECTING HERE ----------
Verse.PawnCapacityUtility:CalculateCapacityLevel+90d: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
// ---------- DONE INJECTING  ----------
Verse.PawnCapacityUtility:CalculateCapacityLevel+911: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
Verse.PawnCapacityUtility:CalculateCapacityLevel+915: 48 8B 5D C8                    - mov rbx,[rbp-38]
Verse.PawnCapacityUtility:CalculateCapacityLevel+919: 48 8B 75 D0                    - mov rsi,[rbp-30]
Verse.PawnCapacityUtility:CalculateCapacityLevel+91d: 48 8B 7D D8                    - mov rdi,[rbp-28]
Verse.PawnCapacityUtility:CalculateCapacityLevel+921: 4C 8B 65 E0                    - mov r12,[rbp-20]
Verse.PawnCapacityUtility:CalculateCapacityLevel+925: 4C 8B 6D E8                    - mov r13,[rbp-18]
Verse.PawnCapacityUtility:CalculateCapacityLevel+929: 4C 8B 75 F0                    - mov r14,[rbp-10]
Verse.PawnCapacityUtility:CalculateCapacityLevel+92d: 4C 8B 7D F8                    - mov r15,[rbp-08]
Verse.PawnCapacityUtility:CalculateCapacityLevel+931: 48 8D 65 00                    - lea rsp,[rbp+00]
Verse.PawnCapacityUtility:CalculateCapacityLevel+935: 5D                             - pop rbp
}
</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1337196697</ID>
                      <Description>"desiredCalculateCapacityLevel"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>808000</Color>
                      <VariableType>Float</VariableType>
                      <Address>desiredCalculateCapacityLevel</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196671</ID>
              <Description>"Zero injuries severity"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeHediffGetSeverity, Verse.Hediff:get_Severity, F3 0F 10 40 58)
alloc(memHediffGetSeverity, $1000, codeHediffGetSeverity)
label(skip)
label(return)

memHediffGetSeverity:
//------------------------------------------------------------------------------
  push rsi
  mov rsi,[rax+48]  // current Pawn
//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------
  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists
//------------------------------------------------------------------------------

  mov [rax+58],(float)0.0 // zero 'Verse.Hediff.severityInt'
skip:
  pop rsi
  movss xmm0,[rax+58]
  jmp return

bkpHediffGetSeverity:
  readmem(codeHediffGetSeverity,5)

codeHediffGetSeverity:
  jmp memHediffGetSeverity

return:

registersymbol(codeHediffGetSeverity)
registersymbol(memHediffGetSeverity)
registersymbol(bkpHediffGetSeverity)

[DISABLE]

codeHediffGetSeverity:
  readmem(bkpHediffGetSeverity,5)

unregistersymbol(*)
dealloc(memHediffGetSeverity)

{
// ORIGINAL CODE - INJECTION POINT: Verse.Hediff:get_Severity+b

1F163CD6D02: 00 00           - add [rax],al
1F163CD6D04: 00 00           - add [rax],al
1F163CD6D06: 00 00           - add [rax],al
1F163CD6D08: 00 00           - add [rax],al
1F163CD6D0A: 00 00           - add [rax],al
1F163CD6D0C: 00 00           - add [rax],al
1F163CD6D0E: 00 00           - add [rax],al
Verse.Hediff:get_Severity: 48 83 EC 08     - sub rsp,08
Verse.Hediff:get_Severity+4: 48 89 0C 24     - mov [rsp],rcx
Verse.Hediff:get_Severity+8: 48 8B C1        - mov rax,rcx
// ---------- INJECTING HERE ----------
Verse.Hediff:get_Severity+b: F3 0F 10 40 58  - movss xmm0,[rax+58]
// ---------- DONE INJECTING  ----------
Verse.Hediff:get_Severity+10: F3 0F 5A C0     - cvtss2sd xmm0,xmm0
Verse.Hediff:get_Severity+14: F2 0F 5A C0     - cvtsd2ss xmm0,xmm0
Verse.Hediff:get_Severity+18: 48 83 C4 08     - add rsp,08
Verse.Hediff:get_Severity+1c: C3              - ret
1F163CD6D2D: 00 00           - add [rax],al
1F163CD6D2F: 00 01           - add [rcx],al
1F163CD6D31: 04 01           - add al,01
1F163CD6D33: 00 04 02        - add [rdx+rax],al
1F163CD6D36: 00 00           - add [rax],al
1F163CD6D38: 00 00           - add [rax],al
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196667</ID>
              <Description>"All needs are met"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeNeedCurLevel, RimWorld.Need:get_CurLevel, F3 0F 10 40 28)
alloc(memNeedCurLevel, $1000, codeNeedCurLevel)
label(skip)
label(return)

memNeedCurLevel:

  push rsi
  mov rsi,[rax+18]  // current Pawn

//------------------------------------------------------------------------------
  push rcx
  mov rcx,[rsi+18]  // Verse.Pawn.factionInt
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  mov rcx,[rcx+10]  // def
  test rcx,rcx
  jne @f
  pop rcx
  jmp skip

@@:
  cmp byte ptr [rcx+250],1 // isPlayer
  pop rcx
  jne skip // this check prevents the game crash if the script calls
  // 'get_IsColonistPlayerControlled' just after the game start
  // and before player selects the first player-controlled pawn.
//------------------------------------------------------------------------------

  push rcx
  mov rcx,rsi // current pawn as 'This' parameter
  push rax // get_IsColonistPlayerControlled uses 'eax' as return value
  push r11
  mov r11,codeIsColonistPlayerControlled
  call r11
  pop r11
  test eax,eax
  pop rax
  pop rcx
  je skip // update only relevant colonists

  mov [rax+28],(float)1.0 // set 'curLevelInt' to max

skip:
  pop rsi
  movss xmm0,[rax+28]
  jmp return

bkpNeedCurLevel:
  readmem(codeNeedCurLevel,5)

codeNeedCurLevel:
  jmp memNeedCurLevel

return:

registersymbol(codeNeedCurLevel)
registersymbol(memNeedCurLevel)
registersymbol(bkpNeedCurLevel)

[DISABLE]

codeNeedCurLevel:
  readmem(bkpNeedCurLevel,5)

unregistersymbol(*)
dealloc(memNeedCurLevel)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Need:get_CurLevel+b

196D42C7E52: 00 00           - add [rax],al
196D42C7E54: 00 00           - add [rax],al
196D42C7E56: 00 00           - add [rax],al
196D42C7E58: 00 00           - add [rax],al
196D42C7E5A: 00 00           - add [rax],al
196D42C7E5C: 00 00           - add [rax],al
196D42C7E5E: 00 00           - add [rax],al
RimWorld.Need:get_CurLevel: 48 83 EC 08     - sub rsp,08
RimWorld.Need:get_CurLevel+4: 48 89 0C 24     - mov [rsp],rcx
RimWorld.Need:get_CurLevel+8: 48 8B C1        - mov rax,rcx
// ---------- INJECTING HERE ----------
RimWorld.Need:get_CurLevel+b: F3 0F 10 40 28  - movss xmm0,[rax+28]
// ---------- DONE INJECTING  ----------
RimWorld.Need:get_CurLevel+10: F3 0F 5A C0     - cvtss2sd xmm0,xmm0
RimWorld.Need:get_CurLevel+14: F2 0F 5A C0     - cvtsd2ss xmm0,xmm0
RimWorld.Need:get_CurLevel+18: 48 83 C4 08     - add rsp,08
RimWorld.Need:get_CurLevel+1c: C3              - ret
196D42C7E7D: 00 00           - add [rax],al
196D42C7E7F: 00 01           - add [rcx],al
196D42C7E81: 04 01           - add al,01
196D42C7E83: 00 04 02        - add [rdx+rax],al
196D42C7E86: 00 00           - add [rax],al
196D42C7E88: 00 00           - add [rax],al
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>27114</ID>
          <Description>"【 Instant Work 】"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>808080</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>1337196609</ID>
              <Description>"Research"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeResearchPerformed, RimWorld.ResearchManager:ResearchPerformed, 0F 84 28 00 00 00)
alloc(bkpResearchPerformed,6,codeResearchPerformed)

bkpResearchPerformed:
  readmem(codeResearchPerformed,6)

codeResearchPerformed:
  nop 6

registersymbol(codeResearchPerformed)
registersymbol(bkpResearchPerformed)

[DISABLE]

codeResearchPerformed:
  readmem(bkpResearchPerformed,6)

unregistersymbol(*)
dealloc(bkpResearchPerformed)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.ResearchManager:ResearchPerformed+205

RimWorld.ResearchManager:ResearchPerformed+1db: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.ResearchManager:ResearchPerformed+1de: 49 BB A0 4B 56 7C 7C 02 00 00  - mov r11,System.Collections.Generic.Dictionary`2[Verse.ResearchProjectDef,System.Single]:set_Item
RimWorld.ResearchManager:ResearchPerformed+1e8: 41 FF D3                       - call r11
RimWorld.ResearchManager:ResearchPerformed+1eb: 48 8B 47 10                    - mov rax,[rdi+10]
RimWorld.ResearchManager:ResearchPerformed+1ef: 48 8B C8                       - mov rcx,rax
RimWorld.ResearchManager:ResearchPerformed+1f2: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.ResearchManager:ResearchPerformed+1f5: 90                             - nop
RimWorld.ResearchManager:ResearchPerformed+1f6: 49 BB 90 53 91 7A 7C 02 00 00  - mov r11,Verse.ResearchProjectDef:get_IsFinished
RimWorld.ResearchManager:ResearchPerformed+200: 41 FF D3                       - call r11
RimWorld.ResearchManager:ResearchPerformed+203: 85 C0                          - test eax,eax
// ---------- INJECTING HERE ----------
RimWorld.ResearchManager:ResearchPerformed+205: 0F 84 28 00 00 00              - je RimWorld.ResearchManager:ResearchPerformed+233
// ---------- DONE INJECTING  ----------
RimWorld.ResearchManager:ResearchPerformed+20b: 48 8B 57 10                    - mov rdx,[rdi+10]
RimWorld.ResearchManager:ResearchPerformed+20f: 48 C7 44 24 20 01 00 00 00     - mov qword ptr [rsp+20],00000001
RimWorld.ResearchManager:ResearchPerformed+218: 48 8B CF                       - mov rcx,rdi
RimWorld.ResearchManager:ResearchPerformed+21b: 41 B8 01 00 00 00              - mov r8d,00000001
RimWorld.ResearchManager:ResearchPerformed+221: 4C 8B CE                       - mov r9,rsi
RimWorld.ResearchManager:ResearchPerformed+224: 66 90                          - nop 2
RimWorld.ResearchManager:ResearchPerformed+226: 49 BB 00 00 12 48 7A 02 00 00  - mov r11,RimWorld.ResearchManager:FinishProject
RimWorld.ResearchManager:ResearchPerformed+230: 41 FF D3                       - call r11
RimWorld.ResearchManager:ResearchPerformed+233: 48 8B 75 F0                    - mov rsi,[rbp-10]
RimWorld.ResearchManager:ResearchPerformed+237: 48 8B 7D F8                    - mov rdi,[rbp-08]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196600</ID>
              <Description>"Repair"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverRepair, RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1, F2 0F 5C C1 F2 0F 5A E8)
alloc(memJobDriverRepair,$1000,codeJobDriverRepair)
label(return)

memJobDriverRepair:
  xorps xmm0,xmm0 // zeroing ticksToNextRepair
  cvtsd2ss xmm5,xmm0
  jmp return

bkpJobDriverRepair:
  readmem(codeJobDriverRepair,8)

codeJobDriverRepair:
  jmp memJobDriverRepair
  nop 3

return:

registersymbol(codeJobDriverRepair)
registersymbol(memJobDriverRepair)
registersymbol(bkpJobDriverRepair)

[DISABLE]

codeJobDriverRepair:
  readmem(bkpJobDriverRepair,8)

unregistersymbol(*)
dealloc(memJobDriverRepair)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+159

RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+12f: F3 0F 5A C9        - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+133: F2 0F 59 C1        - mulsd xmm0,xmm1
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+137: F2 0F 5A E8        - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+13b: F3 0F 11 6D DC     - movss [rbp-24],xmm5
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+140: 48 8B 46 10        - mov rax,[rsi+10]
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+144: 48 8B C8           - mov rcx,rax
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+147: F3 0F 10 41 78     - movss xmm0,[rcx+78]
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+14c: F3 0F 5A C0        - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+150: F3 0F 10 4D DC     - movss xmm1,[rbp-24]
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+155: F3 0F 5A C9        - cvtss2sd xmm1,xmm1
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+159: F2 0F 5C C1        - subsd xmm0,xmm1
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+15d: F2 0F 5A E8        - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+161: F3 0F 11 68 78     - movss [rax+78],xmm5
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+166: 48 8B 46 10        - mov rax,[rsi+10]
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+16a: F3 0F 10 40 78     - movss xmm0,[rax+78]
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+16f: F3 0F 5A C0        - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+173: 66 0F 57 C9        - xorpd xmm1,xmm1
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+177: 66 0F 2F C8        - comisd xmm1,xmm0
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+17b: 0F 82 1A 02 00 00  - jb RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+39b
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+181: 48 8B 46 10        - mov rax,[rsi+10]
RimWorld.JobDriver_Repair+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+185: 48 8B C8           - mov rcx,rax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27111</ID>
              <Description>"Mine"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverMine, RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0, 48 63 80 80 00 00 00 83 F8 9C)
alloc(memJobDriverMine,$1000,codeJobDriverMine)
label(return)

memJobDriverMine:
  mov [rax+00000080],#0 // zeroing ticksToPickHit
  movsxd  rax,dword ptr [rax+00000080]
  jmp return

bkpJobDriverMine:
  readmem(codeJobDriverMine,7)

codeJobDriverMine:
  jmp memJobDriverMine
  nop 2

return:

registersymbol(codeJobDriverMine)
registersymbol(memJobDriverMine)
registersymbol(bkpJobDriverMine)

[DISABLE]

codeJobDriverMine:
  readmem(bkpJobDriverMine,7)

unregistersymbol(*)
dealloc(memJobDriverMine)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+92

RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+5e: 49 BB D3 4E CC ED 52 02 00 00  - mov r11,00000252EDCC4ED3
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+68: 41 FF D3                       - call r11
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+6b: 48 8B 46 10                    - mov rax,[rsi+10]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+6f: 4C 8B 60 10                    - mov r12,[rax+10]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+73: 48 8B 4E 18                    - mov rcx,[rsi+18]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+77: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+7e: 49 BB AE 79 9F B1 54 02 00 00  - mov r11,00000254B19F79AE
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+88: 41 FF D3                       - call r11
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+8b: 48 8B D8                       - mov rbx,rax
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+8e: 48 8B 46 18                    - mov rax,[rsi+18]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+92: 48 63 80 80 00 00 00           - movsxd  rax,dword ptr [rax+00000080]
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+99: 83 F8 9C                       - cmp eax,-64
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+9c: 7D 15                          - jnl RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+b3
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+9e: 48 8B 4E 18                    - mov rcx,[rsi+18]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+a2: 48 8D 6D 00                    - lea rbp,[rbp+00]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+a6: 49 BB 22 78 9F B1 54 02 00 00  - mov r11,00000254B19F7822
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+b0: 41 FF D3                       - call r11
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+b3: 49 8B 84 24 30 01 00 00        - mov rax,[r12+00000130]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+bb: 48 85 C0                       - test rax,rax
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+be: 0F 84 67 00 00 00              - je RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+12b
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+c4: 83 3B 00                       - cmp dword ptr [rbx],00
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27112</ID>
              <Description>"AffectFloor"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverAffectFloor, RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3, F3 0F 10 40 78)
alloc(memJobDriverAffectFloor,$1000,codeJobDriverAffectFloor)
label(return)

memJobDriverAffectFloor:
  mov [rax+78],(float)0 // zeroing 'workLeft'
  movss xmm0,[rax+78]
  jmp return

bkpJobDriverAffectFloor:
  readmem(codeJobDriverAffectFloor,5)

codeJobDriverAffectFloor:
  jmp memJobDriverAffectFloor

return:

registersymbol(codeJobDriverAffectFloor)
registersymbol(memJobDriverAffectFloor)
registersymbol(bkpJobDriverAffectFloor)

[DISABLE]

codeJobDriverAffectFloor:
  readmem(bkpJobDriverAffectFloor,5)

unregistersymbol(*)
dealloc(memJobDriverAffectFloor)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+24

1E7FDC9EECE: 00 00                    - add [rax],al
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3: 55                       - push rbp
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+1: 48 8B EC                 - mov rbp,rsp
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+4: 48 83 EC 40              - sub rsp,40
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+8: 48 89 75 F8              - mov [rbp-08],rsi
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+c: 48 8B F1                 - mov rsi,rcx
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+f: F3 0F 10 05 59 00 00 00  - movss xmm0,[RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+70]
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+17: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+1b: F2 0F 11 45 F0           - movsd [rbp-10],xmm0
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+20: 48 8B 46 10              - mov rax,[rsi+10]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+24: F3 0F 10 40 78           - movss xmm0,[rax+78]
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+29: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+2d: F2 0F 11 45 E8           - movsd [rbp-18],xmm0
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+32: 48 8B 46 10              - mov rax,[rsi+10]
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+36: 48 8B C8                 - mov rcx,rax
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+39: 48 8B 00                 - mov rax,[rax]
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+3c: FF 90 28 01 00 00        - call qword ptr [rax+00000128]
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+42: F2 0F 10 45 F0           - movsd xmm0,[rbp-10]
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+47: F2 0F 10 4D E8           - movsd xmm1,[rbp-18]
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+4c: F3 0F 2A D0              - cvtsi2ss xmm2,eax
RimWorld.JobDriver_AffectFloor+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__3+50: F3 0F 5A D2              - cvtss2sd xmm2,xmm2
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27117</ID>
              <Description>"AffectRoof"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverAffectRoof, RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1, F3 0F 11 68 78)
alloc(memJobDriverAffectRoof,$1000,codeJobDriverAffectRoof)
label(return)

memJobDriverAffectRoof:
  xorps xmm5,xmm5 // zero remaining work
  movss [rax+78],xmm5
  jmp return

bkpJobDriverAffectRoof:
  readmem(codeJobDriverAffectRoof,5)

codeJobDriverAffectRoof:
  jmp memJobDriverAffectRoof

return:

registersymbol(codeJobDriverAffectRoof)
registersymbol(memJobDriverAffectRoof)
registersymbol(bkpJobDriverAffectRoof)

[DISABLE]

codeJobDriverAffectRoof:
  readmem(bkpJobDriverAffectRoof,5)

unregistersymbol(*)
dealloc(memJobDriverAffectRoof)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+81

RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+57: F2 0F 5A E8        - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+5b: F3 0F 11 6D F4     - movss [rbp-0C],xmm5
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+60: 48 8B 46 10        - mov rax,[rsi+10]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+64: 48 8B C8           - mov rcx,rax
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+67: F3 0F 10 41 78     - movss xmm0,[rcx+78]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+6c: F3 0F 5A C0        - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+70: F3 0F 10 4D F4     - movss xmm1,[rbp-0C]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+75: F3 0F 5A C9        - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+79: F2 0F 5C C1        - subsd xmm0,xmm1
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+7d: F2 0F 5A E8        - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+81: F3 0F 11 68 78     - movss [rax+78],xmm5
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+86: 48 8B 46 10        - mov rax,[rsi+10]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+8a: F3 0F 10 40 78     - movss xmm0,[rax+78]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+8f: F3 0F 5A C0        - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+93: 66 0F 57 C9        - xorpd xmm1,xmm1
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+97: 66 0F 2F C8        - comisd xmm1,xmm0
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+9b: 0F 82 22 00 00 00  - jb RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+c3
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+a1: 48 8B 46 10        - mov rax,[rsi+10]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+a5: 48 8B C8           - mov rcx,rax
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+a8: 48 8B 00           - mov rax,[rax]
RimWorld.JobDriver_AffectRoof+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+ab: FF 90 18 01 00 00  - call qword ptr [rax+00000118]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27115</ID>
              <Description>"ConstructFinishFrame"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverConstructFinishFrame, RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1, F3 41 0F 11 AF C0 00 00 00)
alloc(memJobDriverConstructFinishFrame,$1000,codeJobDriverConstructFinishFrame)
label(return)

memJobDriverConstructFinishFrame:
  movss xmm5,[rbp-54]
  movss [r15+000000C0],xmm5 // set 'frame.workDone' to 'workToBuild'
  jmp return

bkpJobDriverConstructFinishFrame:
  readmem(codeJobDriverConstructFinishFrame,9)

codeJobDriverConstructFinishFrame:
  jmp memJobDriverConstructFinishFrame
  nop 4

return:

registersymbol(codeJobDriverConstructFinishFrame)
registersymbol(memJobDriverConstructFinishFrame)
registersymbol(bkpJobDriverConstructFinishFrame)

[DISABLE]

codeJobDriverConstructFinishFrame:
  readmem(bkpJobDriverConstructFinishFrame,9)

unregistersymbol(*)
dealloc(memJobDriverConstructFinishFrame)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+381

RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+34f: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+352: 48 8D 6D 00                    - lea rbp,[rbp+00]
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+356: 49 BB 10 65 F2 ED E7 01 00 00  - mov r11,Verse.SnowGrid:SetDepth
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+360: 41 FF D3                       - call r11
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+363: F3 41 0F 10 87 C0 00 00 00     - movss xmm0,[r15+000000C0]
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+36c: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+370: F3 0F 10 4D D4                 - movss xmm1,[rbp-2C]
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+375: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+379: F2 0F 58 C1                    - addsd xmm0,xmm1
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+37d: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+381: F3 41 0F 11 AF C0 00 00 00     - movss [r15+000000C0],xmm5
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+38a: F3 41 0F 10 87 C0 00 00 00     - movss xmm0,[r15+000000C0]
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+393: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+397: F3 0F 10 4D AC                 - movss xmm1,[rbp-54]
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+39c: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3a0: 66 0F 2F C8                    - comisd xmm1,xmm0
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3a4: 0F 8A 39 00 00 00              - jp RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3e3
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3aa: 0F 87 33 00 00 00              - ja RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3e3
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3b0: 49 8B CF                       - mov rcx,r15
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3b3: 48 8B D7                       - mov rdx,rdi
RimWorld.JobDriver_ConstructFinishFrame+&lt;&gt;c__DisplayClass4_0:&lt;MakeNewToils&gt;b__1+3b6: 41 83 3F 00                    - cmp dword ptr [r15],00
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27116</ID>
              <Description>"PlantWork"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverPlantWork, RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1, F3 0F 10 88 B0 00 00 00)
alloc(memJobDriverPlantWork,$1000,codeJobDriverPlantWork)
label(return)

memJobDriverPlantWork:
  movss xmm1,[rax+000000B0] // get 'plant.def.plant.harvestWork'
  movss xmm0,[rax+000000B0] // set 'workDone' to 'plant.def.plant.harvestWork'
  push rax
  mov rax,[rsi+10]
  movss [rax+78],xmm0
  pop rax
  cvtss2sd xmm0,xmm0
  jmp return

bkpJobDriverPlantWork:
  readmem(codeJobDriverPlantWork,8)

codeJobDriverPlantWork:
  jmp memJobDriverPlantWork
  nop 3

return:

registersymbol(codeJobDriverPlantWork)
registersymbol(memJobDriverPlantWork)
registersymbol(bkpJobDriverPlantWork)

[DISABLE]

codeJobDriverPlantWork:
  readmem(bkpJobDriverPlantWork,8)

unregistersymbol(*)
dealloc(memJobDriverPlantWork)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+113

RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+df: 48 8B 85 40 FE FF FF     - mov rax,[rbp-000001C0]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+e6: F2 0F 10 85 38 FE FF FF  - movsd xmm0,[rbp-000001C8]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+ee: F2 0F 58 C1              - addsd xmm0,xmm1
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+f2: F2 0F 5A E8              - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+f6: F3 0F 11 68 78           - movss [rax+78],xmm5
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+fb: 48 8B 46 10              - mov rax,[rsi+10]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+ff: F3 0F 10 40 78           - movss xmm0,[rax+78]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+104: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+108: 48 8B 47 10              - mov rax,[rdi+10]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+10c: 48 8B 80 28 03 00 00     - mov rax,[rax+00000328]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+113: F3 0F 10 88 B0 00 00 00  - movss xmm1,[rax+000000B0]
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+11b: F3 0F 5A C9              - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+11f: 66 0F 2F C8              - comisd xmm1,xmm0
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+123: 0F 8A 02 06 00 00        - jp RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+72b
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+129: 0F 87 FC 05 00 00        - ja RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+72b
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+12f: 48 8B 47 10              - mov rax,[rdi+10]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+133: 48 8B 80 28 03 00 00     - mov rax,[rax+00000328]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+13a: 48 8B 40 28              - mov rax,[rax+28]
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+13e: 48 85 C0                 - test rax,rax
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+141: 0F 84 C4 04 00 00        - je RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+60b
RimWorld.JobDriver_PlantWork+&lt;&gt;c__DisplayClass11_0:&lt;MakeNewToils&gt;b__1+147: 48 8B 47 10              - mov rax,[rdi+10]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196602</ID>
              <Description>"PlantSow"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverPlantSow, RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4, F3 0F 10 88 A4 00 00 00)
alloc(memJobDriverPlantSow,$1000,codeJobDriverPlantSow)
label(return)

memJobDriverPlantSow:
  movss xmm1,[rax+000000A4] // get 'plant2.def.plant.sowWork'
  movss xmm0,[rax+000000A4] // set 'sowWorkDone' to 'plant2.def.plant.sowWork'
  push rax
  mov rax,[rsi+10]
  movss [rax+78],xmm0
  pop rax
  cvtss2sd xmm0,xmm0
  jmp return

bkpJobDriverPlantSow:
  readmem(codeJobDriverPlantSow,8)

codeJobDriverPlantSow:
  jmp memJobDriverPlantSow
  nop 3

return:

registersymbol(codeJobDriverPlantSow)
registersymbol(memJobDriverPlantSow)
registersymbol(bkpJobDriverPlantSow)

[DISABLE]

codeJobDriverPlantSow:
  readmem(bkpJobDriverPlantSow,8)

unregistersymbol(*)
dealloc(memJobDriverPlantSow)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+149

RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+11b: F3 0F 10 4D E4           - movss xmm1,[rbp-1C]
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+120: F3 0F 5A C9              - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+124: F2 0F 58 C1              - addsd xmm0,xmm1
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+128: F2 0F 5A E8              - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+12c: F3 0F 11 68 78           - movss [rax+78],xmm5
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+131: 48 8B 46 10              - mov rax,[rsi+10]
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+135: F3 0F 10 40 78           - movss xmm0,[rax+78]
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+13a: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+13e: 48 8B 47 10              - mov rax,[rdi+10]
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+142: 48 8B 80 28 03 00 00     - mov rax,[rax+00000328]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+149: F3 0F 10 88 A4 00 00 00  - movss xmm1,[rax+000000A4]
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+151: F3 0F 5A C9              - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+155: 66 0F 2F C8              - comisd xmm1,xmm0
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+159: 0F 8A 2C 05 00 00        - jp RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+68b
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+15f: 0F 87 26 05 00 00        - ja RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+68b
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+165: F3 0F 10 05 33 05 00 00  - movss xmm0,[RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+6a0]
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+16d: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+171: 48 8B CF                 - mov rcx,rdi
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+174: F2 0F 10 C8              - movsd xmm1,xmm0
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+178: F2 0F 5A C9              - cvtsd2ss xmm1,xmm1
RimWorld.JobDriver_PlantSow+&lt;&gt;c__DisplayClass5_0:&lt;MakeNewToils&gt;b__4+17c: 48 8B 07                 - mov rax,[rdi]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196603</ID>
              <Description>"CleanFilth"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverCleanFilth, RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1, F3 0F 10 48 18)
alloc(memJobDriverCleanFilth,$1000,codeJobDriverCleanFilth)
label(return)

memJobDriverCleanFilth:
  movss xmm1,[rax+18] // get 'filth.def.filth.cleaningWorkToReduceThickness'
  movss xmm0,[rax+18] // set 'cleaningWorkDone'
  push rax
  mov rax,[rsi+10]
  addss xmm0,xmm0 // double 'cleaningWorkDone' because it should be strictly above the required work
  movss [rax+78],xmm0
  pop rax
  cvtss2sd xmm0,xmm0
  jmp return

bkpJobDriverCleanFilth:
  readmem(codeJobDriverCleanFilth,5)

codeJobDriverCleanFilth:
  jmp memJobDriverCleanFilth

return:

registersymbol(codeJobDriverCleanFilth)
registersymbol(memJobDriverCleanFilth)
registersymbol(bkpJobDriverCleanFilth)

[DISABLE]

codeJobDriverCleanFilth:
  readmem(bkpJobDriverCleanFilth,5)

unregistersymbol(*)
dealloc(memJobDriverCleanFilth)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+19c

RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+16e: F3 0F 10 4D C4                 - movss xmm1,[rbp-3C]
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+173: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+177: F2 0F 58 C1                    - addsd xmm0,xmm1
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+17b: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+17f: F3 0F 11 68 7C                 - movss [rax+7C],xmm5
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+184: 48 8B 46 10                    - mov rax,[rsi+10]
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+188: F3 0F 10 40 78                 - movss xmm0,[rax+78]
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+18d: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+191: 48 8B 47 10                    - mov rax,[rdi+10]
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+195: 48 8B 80 F8 02 00 00           - mov rax,[rax+000002F8]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+19c: F3 0F 10 48 18                 - movss xmm1,[rax+18]
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1a1: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1a5: 66 0F 2F C8                    - comisd xmm1,xmm0
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1a9: 0F 8A 94 00 00 00              - jp RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+243
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1af: 0F 83 8E 00 00 00              - jae RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+243
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1b5: 48 8B CF                       - mov rcx,rdi
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1b8: 83 3F 00                       - cmp dword ptr [rdi],00
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1bb: 66 66 90                       - nop 3
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1be: 49 BB A0 1D F1 72 7C 02 00 00  - mov r11,RimWorld.Filth:ThinFilth
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1c8: 41 FF D3                       - call r11
RimWorld.JobDriver_CleanFilth+&lt;&gt;c__DisplayClass7_0:&lt;MakeNewToils&gt;b__1+1cb: 48 8B 46 10                    - mov rax,[rsi+10]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>27120</ID>
              <Description>"RemoveBuilding"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeJobDriverRemoveBuilding, RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1, F3 0F 11 68 78)
alloc(memJobDriverRemoveBuilding,$1000,codeJobDriverRemoveBuilding)
label(return)

memJobDriverRemoveBuilding:
  xorps xmm5,xmm5 // zero 'workLeft'
  movss [rax+78],xmm5
  jmp return

bkpJobDriverRemoveBuilding:
  readmem(codeJobDriverRemoveBuilding,5)

codeJobDriverRemoveBuilding:
  jmp memJobDriverRemoveBuilding

return:

registersymbol(codeJobDriverRemoveBuilding)
registersymbol(memJobDriverRemoveBuilding)
registersymbol(bkpJobDriverRemoveBuilding)

[DISABLE]

codeJobDriverRemoveBuilding:
  readmem(bkpJobDriverRemoveBuilding,5)

unregistersymbol(*)
dealloc(memJobDriverRemoveBuilding)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+80

RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+4e: 49 BB A0 C7 03 58 51 01 00 00  - mov r11,RimWorld.StatExtension:GetStatValue
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+58: 41 FF D3                       - call r11
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+5b: F3 0F 5A C8                    - cvtss2sd xmm1,xmm0
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+5f: 48 8B 45 E8                    - mov rax,[rbp-18]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+63: F2 0F 10 45 E0                 - movsd xmm0,[rbp-20]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+68: F3 0F 10 15 80 00 00 00        - movss xmm2,[RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+f0]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+70: F3 0F 5A D2                    - cvtss2sd xmm2,xmm2
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+74: F2 0F 59 CA                    - mulsd xmm1,xmm2
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+78: F2 0F 5C C1                    - subsd xmm0,xmm1
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+7c: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+80: F3 0F 11 68 78                 - movss [rax+78],xmm5
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+85: 48 8B 46 18                    - mov rax,[rsi+18]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+89: 48 8B C8                       - mov rcx,rax
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+8c: 48 8B 00                       - mov rax,[rax]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+8f: FF 90 10 01 00 00              - call qword ptr [rax+00000110]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+95: 48 8B 46 18                    - mov rax,[rsi+18]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+99: F3 0F 10 40 78                 - movss xmm0,[rax+78]
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+9e: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+a2: 66 0F 57 C9                    - xorpd xmm1,xmm1
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+a6: 66 0F 2F C8                    - comisd xmm1,xmm0
RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+aa: 0F 82 2B 00 00 00              - jb RimWorld.JobDriver_RemoveBuilding+&lt;&gt;c__DisplayClass12_0:&lt;MakeNewToils&gt;b__1+db
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>1337196746</ID>
          <Description>"【 Recruitment &amp; Taming 】"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>808080</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>1337196740</ID>
              <Description>"No pawn interaction cooldown"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeInteractedTooRecentlyToInteract, RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract, 83 C1 78)
alloc(bkpInteractedTooRecentlyToInteract,3,codeInteractedTooRecentlyToInteract)

bkpInteractedTooRecentlyToInteract:
  readmem(codeInteractedTooRecentlyToInteract,3)

codeInteractedTooRecentlyToInteract:
  nop 3

registersymbol(codeInteractedTooRecentlyToInteract)
registersymbol(bkpInteractedTooRecentlyToInteract)

[DISABLE]

codeInteractedTooRecentlyToInteract:
  readmem(bkpInteractedTooRecentlyToInteract,3)

unregistersymbol(*)
dealloc(bkpInteractedTooRecentlyToInteract)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+2e

RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract: 48 83 EC 08                    - sub rsp,08
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+4: 48 89 0C 24                    - mov [rsp],rcx
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+8: 48 B8 F0 4E 54 9C 5B 01 00 00  - mov rax,0000015B9C544EF0
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+12: 48 8B 00                       - mov rax,[rax]
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+15: 48 8B 80 B0 00 00 00           - mov rax,[rax+000000B0]
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+1c: 48 8B C8                       - mov rcx,rax
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+1f: 83 39 00                       - cmp dword ptr [rcx],00
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+22: 48 63 40 38                    - movsxd  rax,dword ptr [rax+38]
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+26: 48 8B 0C 24                    - mov rcx,[rsp]
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+2a: 48 63 49 24                    - movsxd  rcx,dword ptr [rcx+24]
// ---------- INJECTING HERE ----------
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+2e: 83 C1 78                       - add ecx,78
// ---------- DONE INJECTING  ----------
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+31: 3B C1                          - cmp eax,ecx
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+33: 40 0F 9C C0                    - setl al
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+37: 48 0F B6 C0                    - movzx rax,al
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+3b: 48 83 C4 08                    - add rsp,08
RimWorld.Pawn_InteractionsTracker:InteractedTooRecentlyToInteract+3f: C3                             - ret
15C4718CC90: 01 04 01                       - add [rcx+rax],eax
15C4718CC93: 00 04 02                       - add [rdx+rax],al
15C4718CC96: 00 00                          - add [rax],al
15C4718CC98: 00 00                          - add [rax],al
15C4718CC9A: 00 00                          - add [rax],al
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196743</ID>
              <Description>"No prisoner interaction cooldown"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeScheduledForInteraction, RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction, 48 8B 34 24 48 83 C4 08)
alloc(memScheduledForInteraction,$1000,codeScheduledForInteraction)
label(return)

memScheduledForInteraction:
  mov eax,1 // return true
  mov rsi,[rsp]
  add rsp,08
  jmp return

bkpScheduledForInteraction:
  readmem(codeScheduledForInteraction,8)

codeScheduledForInteraction:
  jmp memScheduledForInteraction
  nop 3

return:

registersymbol(codeScheduledForInteraction)
registersymbol(memScheduledForInteraction)
registersymbol(bkpScheduledForInteraction)

[DISABLE]

codeScheduledForInteraction:
  readmem(bkpScheduledForInteraction,8)

unregistersymbol(*)
dealloc(memScheduledForInteraction)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+66

RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+41: 3B C1                 - cmp eax,ecx
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+43: 7D 1F                 - jnl RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+64
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+45: 48 8B 46 10           - mov rax,[rsi+10]
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+49: 48 8B 80 D0 00 00 00  - mov rax,[rax+000000D0]
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+50: 48 63 80 10 01 00 00  - movsxd  rax,dword ptr [rax+00000110]
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+57: 83 F8 02              - cmp eax,02
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+5a: 40 0F 9C C0           - setl al
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+5e: 48 0F B6 C0           - movzx rax,al
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+62: EB 02                 - jmp RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+66
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+64: 33 C0                 - xor eax,eax
// ---------- INJECTING HERE ----------
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+66: 48 8B 34 24           - mov rsi,[rsp]
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+6a: 48 83 C4 08           - add rsp,08
// ---------- DONE INJECTING  ----------
RimWorld.Pawn_GuestTracker:get_ScheduledForInteraction+6e: C3                    - ret
15C5DA3B3AF: 00 01                 - add [rcx],al
15C5DA3B3B1: 04 01                 - add al,01
15C5DA3B3B3: 00 04 02              - add [rdx+rax],al
15C5DA3B3B6: 00 00                 - add [rax],al
15C5DA3B3B8: 00 00                 - add [rax],al
15C5DA3B3BA: 00 00                 - add [rax],al
15C5DA3B3BC: 00 00                 - add [rax],al
15C5DA3B3BE: 00 00                 - add [rax],al
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196716</ID>
              <Description>"Instant taming and recruitment attempts"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeInstantRecruit, RimWorld.Toils_Interpersonal:TryRecruit, C7 41 64 5E 01 00 00)
alloc(bkpInstantRecruit,7,codeInstantRecruit)

bkpInstantRecruit:
  readmem(codeInstantRecruit,7)

codeInstantRecruit:
  nop 7

registersymbol(codeInstantRecruit)
registersymbol(bkpInstantRecruit)

[DISABLE]

codeInstantRecruit:
  readmem(bkpInstantRecruit,7)

unregistersymbol(*)
dealloc(bkpInstantRecruit)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Toils_Interpersonal:TryRecruit+17a

RimWorld.Toils_Interpersonal:TryRecruit+149: 48 8D 64 24 00                 - lea rsp,[rsp+00]
RimWorld.Toils_Interpersonal:TryRecruit+14e: 49 BB 30 11 D1 9C 5B 01 00 00  - mov r11,System.Object:wbarrier_conc
RimWorld.Toils_Interpersonal:TryRecruit+158: 41 FF D3                       - call r11
RimWorld.Toils_Interpersonal:TryRecruit+15b: 48 8B 45 C0                    - mov rax,[rbp-40]
RimWorld.Toils_Interpersonal:TryRecruit+15f: 48 8B 4D B8                    - mov rcx,[rbp-48]
RimWorld.Toils_Interpersonal:TryRecruit+163: 48 8B 48 10                    - mov rcx,[rax+10]
RimWorld.Toils_Interpersonal:TryRecruit+167: C7 41 5C 00 00 00 00           - mov [rcx+5C],00000000
RimWorld.Toils_Interpersonal:TryRecruit+16e: 48 8B 48 10                    - mov rcx,[rax+10]
RimWorld.Toils_Interpersonal:TryRecruit+172: C6 41 60 03                    - mov byte ptr [rcx+60],03
RimWorld.Toils_Interpersonal:TryRecruit+176: 48 8B 48 10                    - mov rcx,[rax+10]
// ---------- INJECTING HERE ----------
RimWorld.Toils_Interpersonal:TryRecruit+17a: C7 41 64 5E 01 00 00           - mov [rcx+64],0000015E
// ---------- DONE INJECTING  ----------
RimWorld.Toils_Interpersonal:TryRecruit+181: 48 8B 48 10                    - mov rcx,[rax+10]
RimWorld.Toils_Interpersonal:TryRecruit+185: 48 89 4D D8                    - mov [rbp-28],rcx
RimWorld.Toils_Interpersonal:TryRecruit+189: 48 89 45 C8                    - mov [rbp-38],rax
RimWorld.Toils_Interpersonal:TryRecruit+18d: 48 85 C0                       - test rax,rax
RimWorld.Toils_Interpersonal:TryRecruit+190: 0F 84 E5 00 00 00              - je RimWorld.Toils_Interpersonal:TryRecruit+27b
RimWorld.Toils_Interpersonal:TryRecruit+196: 48 B9 C8 52 DF B6 5C 01 00 00  - mov rcx,0000015CB6DF52C8
RimWorld.Toils_Interpersonal:TryRecruit+1a0: 48 8D 64 24 00                 - lea rsp,[rsp+00]
RimWorld.Toils_Interpersonal:TryRecruit+1a5: 90                             - nop
RimWorld.Toils_Interpersonal:TryRecruit+1a6: 49 BB 10 10 D1 9C 5B 01 00 00  - mov r11,System.Object:__icall_wrapper_ves_icall_object_new_specific
RimWorld.Toils_Interpersonal:TryRecruit+1b0: 41 FF D3                       - call r11
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196745</ID>
              <Description>"Instant resistance reduction"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeConvinceRecruitee, RimWorld.Toils_Interpersonal:ConvinceRecruitee, C7 42 64 5E 01 00 00)
alloc(bkpConvinceRecruitee,7,codeConvinceRecruitee)

bkpConvinceRecruitee:
  readmem(codeConvinceRecruitee,7)

codeConvinceRecruitee:
  nop 7

registersymbol(codeConvinceRecruitee)
registersymbol(bkpConvinceRecruitee)

[DISABLE]

codeConvinceRecruitee:
  readmem(bkpConvinceRecruitee,7)

unregistersymbol(*)
dealloc(bkpConvinceRecruitee)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Toils_Interpersonal:ConvinceRecruitee+270

RimWorld.Toils_Interpersonal:ConvinceRecruitee+23d: C6 42 60 00                    - mov byte ptr [rdx+60],00
RimWorld.Toils_Interpersonal:ConvinceRecruitee+241: 49 BA B0 D4 28 73 25 02 00 00  - mov r10,000002257328D4B0
RimWorld.Toils_Interpersonal:ConvinceRecruitee+24b: 66 66 90                       - nop 3
RimWorld.Toils_Interpersonal:ConvinceRecruitee+24e: 49 BB 80 CE 19 6D 25 02 00 00  - mov r11,Verse.AI.ToilFailConditions:FailOn
RimWorld.Toils_Interpersonal:ConvinceRecruitee+258: 41 FF D3                       - call r11
RimWorld.Toils_Interpersonal:ConvinceRecruitee+25b: 48 8B C8                       - mov rcx,rax
RimWorld.Toils_Interpersonal:ConvinceRecruitee+25e: 48 8B 45 E0                    - mov rax,[rbp-20]
RimWorld.Toils_Interpersonal:ConvinceRecruitee+262: 48 8B D0                       - mov rdx,rax
RimWorld.Toils_Interpersonal:ConvinceRecruitee+265: C7 40 5C 00 00 00 00           - mov [rax+5C],00000000
RimWorld.Toils_Interpersonal:ConvinceRecruitee+26c: C6 42 60 03                    - mov byte ptr [rdx+60],03
// ---------- INJECTING HERE ----------
RimWorld.Toils_Interpersonal:ConvinceRecruitee+270: C7 42 64 5E 01 00 00           - mov [rdx+64],0000015E
// ---------- DONE INJECTING  ----------
RimWorld.Toils_Interpersonal:ConvinceRecruitee+277: 48 B8 78 F2 A2 39 25 02 00 00  - mov rax,0000022539A2F278
RimWorld.Toils_Interpersonal:ConvinceRecruitee+281: 48 8B 00                       - mov rax,[rax]
RimWorld.Toils_Interpersonal:ConvinceRecruitee+284: 48 8B C8                       - mov rcx,rax
RimWorld.Toils_Interpersonal:ConvinceRecruitee+287: 48 8B F2                       - mov rsi,rdx
RimWorld.Toils_Interpersonal:ConvinceRecruitee+28a: 48 8B FA                       - mov rdi,rdx
RimWorld.Toils_Interpersonal:ConvinceRecruitee+28d: 4C 8B F9                       - mov r15,rcx
RimWorld.Toils_Interpersonal:ConvinceRecruitee+290: 48 85 C0                       - test rax,rax
RimWorld.Toils_Interpersonal:ConvinceRecruitee+293: 0F 85 E5 00 00 00              - jne RimWorld.Toils_Interpersonal:ConvinceRecruitee+37e
RimWorld.Toils_Interpersonal:ConvinceRecruitee+299: 48 B8 00 D5 CF 7D 25 02 00 00  - mov rax,000002257DCFD500
RimWorld.Toils_Interpersonal:ConvinceRecruitee+2a3: 48 89 45 C0                    - mov [rbp-40],rax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196738</ID>
              <Description>"Instant animal talk"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTalkToAnimal, RimWorld.JobDriver_InteractAnimal:TalkToAnimal, C7 40 64 0E 01 00 00)
alloc(memTalkToAnimal,$1000,codeTalkToAnimal)
label(return)

memTalkToAnimal:
  mov [rax+64],0 // toil.defaultDuration
  jmp return

bkpTalkToAnimal:
  readmem(codeTalkToAnimal,7)

codeTalkToAnimal:
  jmp memTalkToAnimal
  nop 2

return:

registersymbol(codeTalkToAnimal)
registersymbol(memTalkToAnimal)
registersymbol(bkpTalkToAnimal)

[DISABLE]

codeTalkToAnimal:
  readmem(bkpTalkToAnimal,7)

unregistersymbol(*)
dealloc(memTalkToAnimal)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_InteractAnimal:TalkToAnimal+207

RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1d1: 48 8B 40 20                    - mov rax,[rax+20]
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1d5: 48 89 42 10                    - mov [rdx+10],rax
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1d9: C6 42 60 00                    - mov byte ptr [rdx+60],00
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1dd: 49 BA 80 DE E6 50 5C 01 00 00  - mov r10,0000015C50E6DE80
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1e7: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1ee: 49 BB 00 15 52 4F 5C 01 00 00  - mov r11,Verse.AI.ToilFailConditions:FailOn
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1f8: 41 FF D3                       - call r11
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1fb: 49 8B 47 10                    - mov rax,[r15+10]
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+1ff: C6 40 60 03                    - mov byte ptr [rax+60],03
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+203: 49 8B 47 10                    - mov rax,[r15+10]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+207: C7 40 64 0E 01 00 00           - mov [rax+64],0000010E
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+20e: 49 8B 57 10                    - mov rdx,[r15+10]
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+212: 48 B8 68 5C B6 A7 5C 01 00 00  - mov rax,0000015CA7B65C68
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+21c: 48 8B 00                       - mov rax,[rax]
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+21f: 48 8B C8                       - mov rcx,rax
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+222: 48 8B FA                       - mov rdi,rdx
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+225: 48 8B F1                       - mov rsi,rcx
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+228: 48 85 C0                       - test rax,rax
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+22b: 0F 85 E5 00 00 00              - jne RimWorld.JobDriver_InteractAnimal:TalkToAnimal+316
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+231: 48 B8 20 D1 56 AC 5C 01 00 00  - mov rax,0000015CAC56D120
RimWorld.JobDriver_InteractAnimal:TalkToAnimal+23b: 48 89 45 C0                    - mov [rbp-40],rax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196739</ID>
              <Description>"Instant animal feed"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeStartFeedAnimal, RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0, 89 48 50 45 3B F5)
alloc(memStartFeedAnimal,$1000,codeStartFeedAnimal)
label(return)

memStartFeedAnimal:
  mov ecx,0
  mov [rax+50],ecx // ticksLeftThisToil
  cmp r14d,r13d
  jmp return

bkpStartFeedAnimal:
  readmem(codeStartFeedAnimal,6)

codeStartFeedAnimal:
  jmp memStartFeedAnimal
  nop

return:

registersymbol(codeStartFeedAnimal)
registersymbol(memStartFeedAnimal)
registersymbol(bkpStartFeedAnimal)

[DISABLE]

codeStartFeedAnimal:
  readmem(bkpStartFeedAnimal,6)

unregistersymbol(*)
dealloc(memStartFeedAnimal)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+485

RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+44f: F2 0F 10 85 20 FF FF FF        - movsd xmm0,[rbp-000000E0]
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+457: F2 0F 10 8D 18 FF FF FF        - movsd xmm1,[rbp-000000E8]
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+45f: F2 0F 5E CA                    - divsd xmm1,xmm2
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+463: F2 0F 59 C1                    - mulsd xmm0,xmm1
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+467: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+46b: 66 66 90                       - nop 3
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+46e: 49 BB 50 05 57 4F 5C 01 00 00  - mov r11,UnityEngine.Mathf:CeilToInt
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+478: 41 FF D3                       - call r11
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+47b: 48 8B C8                       - mov rcx,rax
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+47e: 48 8B 85 28 FF FF FF           - mov rax,[rbp-000000D8]
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+485: 89 48 50                       - mov [rax+50],ecx
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+488: 45 3B F5                       - cmp r14d,r13d
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+48b: 0F 8F 16 00 00 00              - jg RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+4a7
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+491: 48 8B 46 18                    - mov rax,[rsi+18]
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+495: 66 0F 57 C0                    - xorpd xmm0,xmm0
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+499: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+49d: F3 0F 11 68 78                 - movss [rax+78],xmm5
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+4a2: E9 56 00 00 00                 - jmp RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+4fd
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+4a7: 48 8B 46 18                    - mov rax,[rsi+18]
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+4ab: 48 8B C8                       - mov rcx,rax
RimWorld.JobDriver_InteractAnimal+&lt;&gt;c__DisplayClass19_0:&lt;StartFeedAnimal&gt;b__0+4ae: F3 0F 10 41 78                 - movss xmm0,[rcx+78]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196741</ID>
              <Description>"Instant animal training"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeInstantTrain, RimWorld.Toils_Interpersonal:TryTrain, C7 40 64 64 00 00 00)
alloc(bkpInstantTrain,7,codeInstantTrain)

bkpInstantTrain:
  readmem(codeInstantTrain,7)

codeInstantTrain:
  nop 7

registersymbol(codeInstantTrain)
registersymbol(bkpInstantTrain)

[DISABLE]

codeInstantTrain:
  readmem(bkpInstantTrain,7)

unregistersymbol(*)
dealloc(bkpInstantTrain)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Toils_Interpersonal:TryTrain+14b

RimWorld.Toils_Interpersonal:TryTrain+11d: 48 89 45 E0                    - mov [rbp-20],rax
RimWorld.Toils_Interpersonal:TryTrain+121: 48 89 41 18                    - mov [rcx+18],rax
RimWorld.Toils_Interpersonal:TryTrain+125: 48 83 C1 18                    - add rcx,18
RimWorld.Toils_Interpersonal:TryTrain+129: 48 8D 64 24 00                 - lea rsp,[rsp+00]
RimWorld.Toils_Interpersonal:TryTrain+12e: 49 BB 30 11 D1 9C 5B 01 00 00  - mov r11,System.Object:wbarrier_conc
RimWorld.Toils_Interpersonal:TryTrain+138: 41 FF D3                       - call r11
RimWorld.Toils_Interpersonal:TryTrain+13b: 48 8B 45 E0                    - mov rax,[rbp-20]
RimWorld.Toils_Interpersonal:TryTrain+13f: 48 8B 47 10                    - mov rax,[rdi+10]
RimWorld.Toils_Interpersonal:TryTrain+143: C6 40 60 03                    - mov byte ptr [rax+60],03
RimWorld.Toils_Interpersonal:TryTrain+147: 48 8B 47 10                    - mov rax,[rdi+10]
// ---------- INJECTING HERE ----------
RimWorld.Toils_Interpersonal:TryTrain+14b: C7 40 64 64 00 00 00           - mov [rax+64],00000064
// ---------- DONE INJECTING  ----------
RimWorld.Toils_Interpersonal:TryTrain+152: 48 8B 57 10                    - mov rdx,[rdi+10]
RimWorld.Toils_Interpersonal:TryTrain+156: 48 B8 08 57 00 24 5C 01 00 00  - mov rax,0000015C24005708
RimWorld.Toils_Interpersonal:TryTrain+160: 48 8B 00                       - mov rax,[rax]
RimWorld.Toils_Interpersonal:TryTrain+163: 48 8B C8                       - mov rcx,rax
RimWorld.Toils_Interpersonal:TryTrain+166: 48 8B F2                       - mov rsi,rdx
RimWorld.Toils_Interpersonal:TryTrain+169: 4C 8B F9                       - mov r15,rcx
RimWorld.Toils_Interpersonal:TryTrain+16c: 48 85 C0                       - test rax,rax
RimWorld.Toils_Interpersonal:TryTrain+16f: 0F 85 E1 00 00 00              - jne RimWorld.Toils_Interpersonal:TryTrain+256
RimWorld.Toils_Interpersonal:TryTrain+175: 48 B8 80 60 A5 D9 5C 01 00 00  - mov rax,0000015CD9A56080
RimWorld.Toils_Interpersonal:TryTrain+17f: 48 89 45 C0                    - mov [rbp-40],rax
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196737</ID>
              <Description>"No animal training cooldown"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTrainedTooRecently, RimWorld.TrainableUtility:TrainedTooRecently, 81 C1 98 3A 00 00)
alloc(bkpTrainedTooRecently,6,codeTrainedTooRecently)

bkpTrainedTooRecently:
  readmem(codeTrainedTooRecently,6)

codeTrainedTooRecently:
  nop 6

registersymbol(codeTrainedTooRecently)
registersymbol(bkpTrainedTooRecently)

[DISABLE]

codeTrainedTooRecently:
  readmem(bkpTrainedTooRecently,6)

unregistersymbol(*)
dealloc(bkpTrainedTooRecently)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.TrainableUtility:TrainedTooRecently+38

RimWorld.TrainableUtility:TrainedTooRecently+4: 48 89 0C 24                    - mov [rsp],rcx
RimWorld.TrainableUtility:TrainedTooRecently+8: 48 B8 F0 4E 54 9C 5B 01 00 00  - mov rax,0000015B9C544EF0
RimWorld.TrainableUtility:TrainedTooRecently+12: 48 8B 00                       - mov rax,[rax]
RimWorld.TrainableUtility:TrainedTooRecently+15: 48 8B 80 B0 00 00 00           - mov rax,[rax+000000B0]
RimWorld.TrainableUtility:TrainedTooRecently+1c: 48 8B C8                       - mov rcx,rax
RimWorld.TrainableUtility:TrainedTooRecently+1f: 83 39 00                       - cmp dword ptr [rcx],00
RimWorld.TrainableUtility:TrainedTooRecently+22: 48 63 40 38                    - movsxd  rax,dword ptr [rax+38]
RimWorld.TrainableUtility:TrainedTooRecently+26: 48 8B 0C 24                    - mov rcx,[rsp]
RimWorld.TrainableUtility:TrainedTooRecently+2a: 48 8B 89 D0 00 00 00           - mov rcx,[rcx+000000D0]
RimWorld.TrainableUtility:TrainedTooRecently+31: 48 63 89 0C 01 00 00           - movsxd  rcx,dword ptr [rcx+0000010C]
// ---------- INJECTING HERE ----------
RimWorld.TrainableUtility:TrainedTooRecently+38: 81 C1 98 3A 00 00              - add ecx,00003A98
// ---------- DONE INJECTING  ----------
RimWorld.TrainableUtility:TrainedTooRecently+3e: 3B C1                          - cmp eax,ecx
RimWorld.TrainableUtility:TrainedTooRecently+40: 40 0F 9C C0                    - setl al
RimWorld.TrainableUtility:TrainedTooRecently+44: 48 0F B6 C0                    - movzx rax,al
RimWorld.TrainableUtility:TrainedTooRecently+48: 48 83 C4 08                    - add rsp,08
RimWorld.TrainableUtility:TrainedTooRecently+4c: C3                             - ret
15CAFD30E4D: 00 00                          - add [rax],al
15CAFD30E4F: 00 01                          - add [rcx],al
15CAFD30E51: 04 01                          - add al,01
15CAFD30E53: 00 04 02                       - add [rdx+rax],al
15CAFD30E56: 00 00                          - add [rax],al
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196703</ID>
              <Description>"Guaranteed tame"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTameAnimalChance, RimWorld.InteractionWorker_RecruitAttempt:Interacted, 0F 84 D5 02 00 00 48 C7)
alloc(bkpTameAnimalChance,6,codeTameAnimalChance)

bkpTameAnimalChance:
  readmem(codeTameAnimalChance,6)

codeTameAnimalChance:
  nop 6

registersymbol(codeTameAnimalChance)
registersymbol(bkpTameAnimalChance)

[DISABLE]

codeTameAnimalChance:
  readmem(bkpTameAnimalChance,6)

unregistersymbol(*)
dealloc(bkpTameAnimalChance)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.InteractionWorker_RecruitAttempt:Interacted+46d

RimWorld.InteractionWorker_RecruitAttempt:Interacted+437: F2 0F 59 C1                    - mulsd xmm0,xmm1
RimWorld.InteractionWorker_RecruitAttempt:Interacted+43b: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.InteractionWorker_RecruitAttempt:Interacted+43f: F3 0F 11 AD 9C FB FF FF        - movss [rbp-00000464],xmm5
RimWorld.InteractionWorker_RecruitAttempt:Interacted+447: F3 0F 10 85 9C FB FF FF        - movss xmm0,[rbp-00000464]
RimWorld.InteractionWorker_RecruitAttempt:Interacted+44f: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.InteractionWorker_RecruitAttempt:Interacted+453: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.InteractionWorker_RecruitAttempt:Interacted+457: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
RimWorld.InteractionWorker_RecruitAttempt:Interacted+45e: 49 BB 40 88 D6 F7 62 01 00 00  - mov r11,Verse.Rand:Chance
RimWorld.InteractionWorker_RecruitAttempt:Interacted+468: 41 FF D3                       - call r11
RimWorld.InteractionWorker_RecruitAttempt:Interacted+46b: 85 C0                          - test eax,eax
// ---------- INJECTING HERE ----------
RimWorld.InteractionWorker_RecruitAttempt:Interacted+46d: 0F 84 D5 02 00 00              - je RimWorld.InteractionWorker_RecruitAttempt:Interacted+748
// ---------- DONE INJECTING  ----------
RimWorld.InteractionWorker_RecruitAttempt:Interacted+473: 48 C7 44 24 20 01 00 00 00     - mov qword ptr [rsp+20],00000001
RimWorld.InteractionWorker_RecruitAttempt:Interacted+47c: 48 C7 44 24 28 00 00 00 00     - mov qword ptr [rsp+28],00000000
RimWorld.InteractionWorker_RecruitAttempt:Interacted+485: 48 8B CB                       - mov rcx,rbx
RimWorld.InteractionWorker_RecruitAttempt:Interacted+488: 49 8B D4                       - mov rdx,r12
RimWorld.InteractionWorker_RecruitAttempt:Interacted+48b: 4D 8B C7                       - mov r8,r15
RimWorld.InteractionWorker_RecruitAttempt:Interacted+48e: 4D 8B CE                       - mov r9,r14
RimWorld.InteractionWorker_RecruitAttempt:Interacted+491: 48 8D 64 24 00                 - lea rsp,[rsp+00]
RimWorld.InteractionWorker_RecruitAttempt:Interacted+496: 49 BB 36 DF 89 20 63 01 00 00  - mov r11,000001632089DF36
RimWorld.InteractionWorker_RecruitAttempt:Interacted+4a0: 41 FF D3                       - call r11
RimWorld.InteractionWorker_RecruitAttempt:Interacted+4a3: 49 8B 07                       - mov rax,[r15]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196736</ID>
              <Description>"Guaranteed animal training"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTryTrain, RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0, F3 0F 11 6D D4 48 8B 87 98)
alloc(memTryTrain,$1000,codeTryTrain)
label(return)

memTryTrain:
  movss xmm5,[desiredTryTrain]
  movss [rbp-2C],xmm5 // statValue
  jmp return

desiredTryTrain:
  dd (float)1.0

bkpTryTrain:
  readmem(codeTryTrain,5)

codeTryTrain:
  jmp memTryTrain

return:

registersymbol(codeTryTrain)
registersymbol(memTryTrain)
registersymbol(bkpTryTrain)

[DISABLE]

codeTryTrain:
  readmem(bkpTryTrain,5)

unregistersymbol(*)
dealloc(memTryTrain)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+30b

RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2dc: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2e0: F3 0F 11 6D D4                 - movss [rbp-2C],xmm5
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2e5: F3 0F 10 45 D4                 - movss xmm0,[rbp-2C]
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2ea: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2ee: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2f2: 48 8D 6D 00                    - lea rbp,[rbp+00]
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+2f6: 49 BB 70 36 5C 10 5C 01 00 00  - mov r11,UnityEngine.Mathf:Clamp01
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+300: 41 FF D3                       - call r11
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+303: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+307: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+30b: F3 0F 11 6D D4                 - movss [rbp-2C],xmm5
// ---------- DONE INJECTING  ----------
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+310: 48 8B 87 98 01 00 00           - mov rax,[rdi+00000198]
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+317: 48 8B C8                       - mov rcx,rax
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+31a: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+31d: 90                             - nop
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+31e: 49 BB 60 0E D3 AF 5C 01 00 00  - mov r11,RimWorld.Pawn_TrainingTracker:NextTrainableToTrain
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+328: 41 FF D3                       - call r11
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+32b: 4C 8B F8                       - mov r15,rax
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+32e: 48 85 C0                       - test rax,rax
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+331: 0F 85 21 00 00 00              - jne RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+358
RimWorld.Toils_Interpersonal+&lt;&gt;c__DisplayClass9_0:&lt;TryTrain&gt;b__0+337: 48 B9 00 6E 05 AD 5C 01 00 00  - mov rcx,0000015CAD056E00
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196742</ID>
              <Description>"Guaranteed animal bonding"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTryDevelopBondRelation, RimWorld.RelationsUtility:TryDevelopBondRelation, 0F 86 6D 0A 00 00 48 8B 87)
alloc(bkpTryDevelopBondRelation,6,codeTryDevelopBondRelation)

bkpTryDevelopBondRelation:
  readmem(codeTryDevelopBondRelation,6)

codeTryDevelopBondRelation:
  nop 6

registersymbol(codeTryDevelopBondRelation)
registersymbol(bkpTryDevelopBondRelation)

[DISABLE]

codeTryDevelopBondRelation:
  readmem(bkpTryDevelopBondRelation,6)

unregistersymbol(*)
dealloc(bkpTryDevelopBondRelation)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.RelationsUtility:TryDevelopBondRelation+90f

RimWorld.RelationsUtility:TryDevelopBondRelation+8d7: F2 0F 59 C1                    - mulsd xmm0,xmm1
RimWorld.RelationsUtility:TryDevelopBondRelation+8db: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.RelationsUtility:TryDevelopBondRelation+8df: F3 0F 11 AD 20 FC FF FF        - movss [rbp-000003E0],xmm5
RimWorld.RelationsUtility:TryDevelopBondRelation+8e7: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
RimWorld.RelationsUtility:TryDevelopBondRelation+8ee: 49 BB D0 AD 5F 13 5C 01 00 00  - mov r11,Verse.Rand:get_Value
RimWorld.RelationsUtility:TryDevelopBondRelation+8f8: 41 FF D3                       - call r11
RimWorld.RelationsUtility:TryDevelopBondRelation+8fb: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.RelationsUtility:TryDevelopBondRelation+8ff: F3 0F 10 8D 20 FC FF FF        - movss xmm1,[rbp-000003E0]
RimWorld.RelationsUtility:TryDevelopBondRelation+907: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.RelationsUtility:TryDevelopBondRelation+90b: 66 0F 2F C8                    - comisd xmm1,xmm0
// ---------- INJECTING HERE ----------
RimWorld.RelationsUtility:TryDevelopBondRelation+90f: 0F 86 6D 0A 00 00              - jbe RimWorld.RelationsUtility:TryDevelopBondRelation+1382
// ---------- DONE INJECTING  ----------
RimWorld.RelationsUtility:TryDevelopBondRelation+915: 48 8B 87 B0 01 00 00           - mov rax,[rdi+000001B0]
RimWorld.RelationsUtility:TryDevelopBondRelation+91c: 48 B9 00 2F 1F 10 5C 01 00 00  - mov rcx,0000015C101F2F00
RimWorld.RelationsUtility:TryDevelopBondRelation+926: 48 8B 11                       - mov rdx,[rcx]
RimWorld.RelationsUtility:TryDevelopBondRelation+929: 48 8B C8                       - mov rcx,rax
RimWorld.RelationsUtility:TryDevelopBondRelation+92c: 4C 8B C6                       - mov r8,rsi
RimWorld.RelationsUtility:TryDevelopBondRelation+92f: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.RelationsUtility:TryDevelopBondRelation+932: 48 8D 6D 00                    - lea rbp,[rbp+00]
RimWorld.RelationsUtility:TryDevelopBondRelation+936: 49 BB 00 A9 A2 4F 5C 01 00 00  - mov r11,RimWorld.Pawn_RelationsTracker:AddDirectRelation
RimWorld.RelationsUtility:TryDevelopBondRelation+940: 41 FF D3                       - call r11
RimWorld.RelationsUtility:TryDevelopBondRelation+943: 83 3F 00                       - cmp dword ptr [rdi],00
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>1337196634</ID>
          <Description>"【 Other 】"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>808080</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>1337196748</ID>
              <Description>"Massive mining damage"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeMiningDamage, RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0, 48 8B F8 48 0F 45 F9)
alloc(memMiningDamage,$1000,codeMiningDamage)
label(return)

memMiningDamage:
  mov rdi,#99999 // MiningDamage
  jmp return

bkpMiningDamage:
  readmem(codeMiningDamage,7)

codeMiningDamage:
  jmp memMiningDamage
  nop 2

return:

registersymbol(codeMiningDamage)
registersymbol(memMiningDamage)
registersymbol(bkpMiningDamage)

[DISABLE]

codeMiningDamage:
  readmem(bkpMiningDamage,7)

unregistersymbol(*)
dealloc(memMiningDamage)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+301

RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2d1: 83 38 00                       - cmp dword ptr [rax],00
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2d4: 66 90                          - nop 2
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2d6: 49 BB B0 A1 91 71 25 02 00 00  - mov r11,Verse.Effecter:Trigger
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2e0: 41 FF D3                       - call r11
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2e3: 48 8B 43 10                    - mov rax,[rbx+10]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2e7: 48 8B 80 08 03 00 00           - mov rax,[rax+00000308]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2ee: 0F B6 90 D3 02 00 00           - movzx edx,byte ptr [rax+000002D3]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2f5: B9 50 00 00 00                 - mov ecx,00000050
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2fa: B8 28 00 00 00                 - mov eax,00000028
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+2ff: 85 D2                          - test edx,edx
// ---------- INJECTING HERE ----------
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+301: 48 8B F8                       - mov rdi,rax
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+304: 48 0F 45 F9                    - cmovne rdi,rcx
// ---------- DONE INJECTING  ----------
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+308: 48 89 9D 90 FD FF FF           - mov [rbp-00000270],rbx
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+30f: 48 85 DB                       - test rbx,rbx
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+312: 0F 84 28 00 00 00              - je RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+340
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+318: 48 8B 03                       - mov rax,[rbx]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+31b: 48 8B 00                       - mov rax,[rax]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+31e: 48 8B 40 10                    - mov rax,[rax+10]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+322: 48 8B 40 28                    - mov rax,[rax+28]
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+326: 48 B9 70 28 17 E6 24 02 00 00  - mov rcx,00000224E6172870
RimWorld.JobDriver_Mine+&lt;&gt;c__DisplayClass9_0:&lt;MakeNewToils&gt;b__0+330: 48 3B C1                       - cmp rax,rcx
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196633</ID>
              <Description>"Infinite fuel"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTargetFuelLevel, RimWorld.CompRefuelable:get_TargetFuelLevel, F3 0F 10 40 4C)
alloc(memTargetFuelLevel,$1000,codeTargetFuelLevel)
label(return)

memTargetFuelLevel:
  movss xmm0,[rax+4C] // fuelCapacity
  movss [rsi+28],xmm0 // fuel
  jmp return

bkpTargetFuelLevel:
  readmem(codeTargetFuelLevel,5)

codeTargetFuelLevel:
  jmp memTargetFuelLevel

return:

registersymbol(codeTargetFuelLevel)
registersymbol(memTargetFuelLevel)
registersymbol(bkpTargetFuelLevel)

[DISABLE]

codeTargetFuelLevel:
  readmem(bkpTargetFuelLevel,5)

unregistersymbol(*)
dealloc(memTargetFuelLevel)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.CompRefuelable:get_TargetFuelLevel+e1

RimWorld.CompRefuelable:get_TargetFuelLevel+b8: 4D 85 FF                       - test r15,r15
RimWorld.CompRefuelable:get_TargetFuelLevel+bb: 74 21                          - je RimWorld.CompRefuelable:get_TargetFuelLevel+de
RimWorld.CompRefuelable:get_TargetFuelLevel+bd: 49 8B 07                       - mov rax,[r15]
RimWorld.CompRefuelable:get_TargetFuelLevel+c0: 48 8B 00                       - mov rax,[rax]
RimWorld.CompRefuelable:get_TargetFuelLevel+c3: 48 8B 40 10                    - mov rax,[rax+10]
RimWorld.CompRefuelable:get_TargetFuelLevel+c7: 48 8B 40 10                    - mov rax,[rax+10]
RimWorld.CompRefuelable:get_TargetFuelLevel+cb: 48 B9 08 B7 51 54 F2 01 00 00  - mov rcx,000001F25451B708
RimWorld.CompRefuelable:get_TargetFuelLevel+d5: 48 3B C1                       - cmp rax,rcx
RimWorld.CompRefuelable:get_TargetFuelLevel+d8: 0F 85 23 00 00 00              - jne RimWorld.CompRefuelable:get_TargetFuelLevel+101
RimWorld.CompRefuelable:get_TargetFuelLevel+de: 49 8B C7                       - mov rax,r15
// ---------- INJECTING HERE ----------
RimWorld.CompRefuelable:get_TargetFuelLevel+e1: F3 0F 10 40 4C                 - movss xmm0,[rax+4C]
// ---------- DONE INJECTING  ----------
RimWorld.CompRefuelable:get_TargetFuelLevel+e6: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.CompRefuelable:get_TargetFuelLevel+ea: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.CompRefuelable:get_TargetFuelLevel+ee: 48 8B 34 24                    - mov rsi,[rsp]
RimWorld.CompRefuelable:get_TargetFuelLevel+f2: 48 8B 7C 24 08                 - mov rdi,[rsp+08]
RimWorld.CompRefuelable:get_TargetFuelLevel+f7: 4C 8B 7C 24 10                 - mov r15,[rsp+10]
RimWorld.CompRefuelable:get_TargetFuelLevel+fc: 48 83 C4 18                    - add rsp,18
RimWorld.CompRefuelable:get_TargetFuelLevel+100: C3                             - ret
RimWorld.CompRefuelable:get_TargetFuelLevel+101: BA 43 00 00 00                 - mov edx,00000043
RimWorld.CompRefuelable:get_TargetFuelLevel+106: B9 92 01 00 00                 - mov ecx,00000192
RimWorld.CompRefuelable:get_TargetFuelLevel+10b: 66 66 90                       - nop 3
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196672</ID>
              <Description>"Transport pod unlimited capacity"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeZeroMassUsage, RimWorld.Dialog_LoadTransporters:get_MassUsage, F3 0F 10 86 14 01 00 00)
alloc(memZeroMassUsage,$1000,codeZeroMassUsage)
label(return)

memZeroMassUsage:
  mov [rsi+00000114],(float)0.0 // zero 'RimWorld.Dialog_LoadTransporters.cachedMassUsage'
  movss xmm0,[rsi+00000114]
  jmp return

bkpZeroMassUsage:
  readmem(codeZeroMassUsage,8)

codeZeroMassUsage:
  jmp memZeroMassUsage
  nop 3

return:

registersymbol(codeZeroMassUsage)
registersymbol(memZeroMassUsage)
registersymbol(bkpZeroMassUsage)

[DISABLE]

codeZeroMassUsage:
  readmem(bkpZeroMassUsage,8)

unregistersymbol(*)
dealloc(memZeroMassUsage)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.Dialog_LoadTransporters:get_MassUsage+df

RimWorld.Dialog_LoadTransporters:get_MassUsage+af: 48 63 55 C8                    - movsxd  rdx,dword ptr [rbp-38]
RimWorld.Dialog_LoadTransporters:get_MassUsage+b3: 4C 63 45 C0                    - movsxd  r8,dword ptr [rbp-40]
RimWorld.Dialog_LoadTransporters:get_MassUsage+b7: 45 33 C9                       - xor r9d,r9d
RimWorld.Dialog_LoadTransporters:get_MassUsage+ba: 48 8D 6D 00                    - lea rbp,[rbp+00]
RimWorld.Dialog_LoadTransporters:get_MassUsage+be: 49 BB 46 AE E6 5D F1 01 00 00  - mov r11,000001F15DE6AE46
RimWorld.Dialog_LoadTransporters:get_MassUsage+c8: 41 FF D3                       - call r11
RimWorld.Dialog_LoadTransporters:get_MassUsage+cb: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.Dialog_LoadTransporters:get_MassUsage+cf: 48 8B 45 D8                    - mov rax,[rbp-28]
RimWorld.Dialog_LoadTransporters:get_MassUsage+d3: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.Dialog_LoadTransporters:get_MassUsage+d7: F3 0F 11 A8 14 01 00 00        - movss [rax+00000114],xmm5
// ---------- INJECTING HERE ----------
RimWorld.Dialog_LoadTransporters:get_MassUsage+df: F3 0F 10 86 14 01 00 00        - movss xmm0,[rsi+00000114]
// ---------- DONE INJECTING  ----------
RimWorld.Dialog_LoadTransporters:get_MassUsage+e7: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.Dialog_LoadTransporters:get_MassUsage+eb: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.Dialog_LoadTransporters:get_MassUsage+ef: 48 8B 75 E0                    - mov rsi,[rbp-20]
RimWorld.Dialog_LoadTransporters:get_MassUsage+f3: 48 8B 7D E8                    - mov rdi,[rbp-18]
RimWorld.Dialog_LoadTransporters:get_MassUsage+f7: 4C 8B 75 F0                    - mov r14,[rbp-10]
RimWorld.Dialog_LoadTransporters:get_MassUsage+fb: 4C 8B 7D F8                    - mov r15,[rbp-08]
RimWorld.Dialog_LoadTransporters:get_MassUsage+ff: 48 8D 65 00                    - lea rsp,[rbp+00]
RimWorld.Dialog_LoadTransporters:get_MassUsage+103: 5D                             - pop rbp
RimWorld.Dialog_LoadTransporters:get_MassUsage+104: C3                             - ret
RimWorld.Dialog_LoadTransporters:get_MassUsage+105: 90                             - nop
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196702</ID>
              <Description>"Unlimited power"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeCurrentEnergyGainRate, RimWorld.PowerNet:CurrentEnergyGainRate, 0F B6 00 85 C0 74 15)
alloc(bkpCurrentEnergyGainRate,7,codeCurrentEnergyGainRate)

bkpCurrentEnergyGainRate:
  readmem(codeCurrentEnergyGainRate,7)

codeCurrentEnergyGainRate:
  nop 7

registersymbol(codeCurrentEnergyGainRate)
registersymbol(bkpCurrentEnergyGainRate)

[DISABLE]

codeCurrentEnergyGainRate:
  readmem(bkpCurrentEnergyGainRate,7)

unregistersymbol(*)
dealloc(bkpCurrentEnergyGainRate)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.PowerNet:CurrentEnergyGainRate+2d

RimWorld.PowerNet:CurrentEnergyGainRate+1: 48 8B EC                       - mov rbp,rsp
RimWorld.PowerNet:CurrentEnergyGainRate+4: 48 83 EC 70                    - sub rsp,70
RimWorld.PowerNet:CurrentEnergyGainRate+8: 48 89 75 D0                    - mov [rbp-30],rsi
RimWorld.PowerNet:CurrentEnergyGainRate+c: 48 89 7D D8                    - mov [rbp-28],rdi
RimWorld.PowerNet:CurrentEnergyGainRate+10: 4C 89 65 E0                    - mov [rbp-20],r12
RimWorld.PowerNet:CurrentEnergyGainRate+14: 4C 89 6D E8                    - mov [rbp-18],r13
RimWorld.PowerNet:CurrentEnergyGainRate+18: 4C 89 75 F0                    - mov [rbp-10],r14
RimWorld.PowerNet:CurrentEnergyGainRate+1c: 4C 89 7D F8                    - mov [rbp-08],r15
RimWorld.PowerNet:CurrentEnergyGainRate+20: 48 8B F1                       - mov rsi,rcx
RimWorld.PowerNet:CurrentEnergyGainRate+23: 48 B8 B8 A6 86 89 62 01 00 00  - mov rax,000001628986A6B8
// ---------- INJECTING HERE ----------
RimWorld.PowerNet:CurrentEnergyGainRate+2d: 0F B6 00                       - movzx eax,byte ptr [rax]
RimWorld.PowerNet:CurrentEnergyGainRate+30: 85 C0                          - test eax,eax
RimWorld.PowerNet:CurrentEnergyGainRate+32: 74 15                          - je RimWorld.PowerNet:CurrentEnergyGainRate+49
// ---------- DONE INJECTING  ----------
RimWorld.PowerNet:CurrentEnergyGainRate+34: F3 0F 10 05 64 01 00 00        - movss xmm0,[RimWorld.PowerNet:CurrentEnergyGainRate+1a0]
RimWorld.PowerNet:CurrentEnergyGainRate+3c: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.PowerNet:CurrentEnergyGainRate+40: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.PowerNet:CurrentEnergyGainRate+44: E9 0F 01 00 00                 - jmp RimWorld.PowerNet:CurrentEnergyGainRate+158
RimWorld.PowerNet:CurrentEnergyGainRate+49: 66 0F 57 C0                    - xorpd xmm0,xmm0
RimWorld.PowerNet:CurrentEnergyGainRate+4d: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
RimWorld.PowerNet:CurrentEnergyGainRate+51: F3 0F 11 6D CC                 - movss [rbp-34],xmm5
RimWorld.PowerNet:CurrentEnergyGainRate+56: 33 FF                          - xor edi,edi
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196713</ID>
              <Description>"No deterioration"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeCanEverDeteriorate, Verse.ThingDef:get_CanEverDeteriorate, 75 04 33 C0 EB 31)
alloc(bkpCanEverDeteriorate,2,codeCanEverDeteriorate)

bkpCanEverDeteriorate:
  readmem(codeCanEverDeteriorate,2)

codeCanEverDeteriorate:
  nop 2

registersymbol(codeCanEverDeteriorate)
registersymbol(bkpCanEverDeteriorate)

[DISABLE]

codeCanEverDeteriorate:
  readmem(bkpCanEverDeteriorate,2)

unregistersymbol(*)
dealloc(bkpCanEverDeteriorate)


{
// ORIGINAL CODE - INJECTION POINT: Verse.ThingDef:get_CanEverDeteriorate+14

25D2A614ED7: 00 00                 - add [rax],al
25D2A614ED9: 00 00                 - add [rax],al
25D2A614EDB: 00 00                 - add [rax],al
25D2A614EDD: 00 00                 - add [rax],al
25D2A614EDF: 00 48 83              - add [rax-7D],cl
Verse.ThingDef:get_CanEverDeteriorate+2: EC                    - in al,dx
Verse.ThingDef:get_CanEverDeteriorate+3: 08 48 89              - or [rax-77],cl
Verse.ThingDef:get_CanEverDeteriorate+6: 34 24                 - xor al,24
Verse.ThingDef:get_CanEverDeteriorate+8: 48 8B F1              - mov rsi,rcx
Verse.ThingDef:get_CanEverDeteriorate+b: 0F B6 86 9B 03 00 00  - movzx eax,byte ptr [rsi+0000039B]
Verse.ThingDef:get_CanEverDeteriorate+12: 85 C0                 - test eax,eax
// ---------- INJECTING HERE ----------
Verse.ThingDef:get_CanEverDeteriorate+14: 75 04                 - jne Verse.ThingDef:get_CanEverDeteriorate+1a
// ---------- DONE INJECTING  ----------
Verse.ThingDef:get_CanEverDeteriorate+16: 33 C0                 - xor eax,eax
Verse.ThingDef:get_CanEverDeteriorate+18: EB 31                 - jmp Verse.ThingDef:get_CanEverDeteriorate+4b
Verse.ThingDef:get_CanEverDeteriorate+1a: 0F B6 86 88 03 00 00  - movzx eax,byte ptr [rsi+00000388]
Verse.ThingDef:get_CanEverDeteriorate+21: 83 F8 02              - cmp eax,02
Verse.ThingDef:get_CanEverDeteriorate+24: 74 20                 - je Verse.ThingDef:get_CanEverDeteriorate+46
Verse.ThingDef:get_CanEverDeteriorate+26: 48 8B 86 28 03 00 00  - mov rax,[rsi+00000328]
Verse.ThingDef:get_CanEverDeteriorate+2d: 48 85 C0              - test rax,rax
Verse.ThingDef:get_CanEverDeteriorate+30: 74 10                 - je Verse.ThingDef:get_CanEverDeteriorate+42
Verse.ThingDef:get_CanEverDeteriorate+32: 48 8B 86 28 03 00 00  - mov rax,[rsi+00000328]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196714</ID>
              <Description>"No rot"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeCompRottableActive, RimWorld.CompRottable:get_Active, B8 01 00 00 00)
alloc(bkpCompRottableActive,5,codeCompRottableActive)

bkpCompRottableActive:
  readmem(codeCompRottableActive,5)

codeCompRottableActive:
  nop 5

registersymbol(codeCompRottableActive)
registersymbol(bkpCompRottableActive)

[DISABLE]

codeCompRottableActive:
  readmem(bkpCompRottableActive,5)

unregistersymbol(*)
dealloc(bkpCompRottableActive)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.CompRottable:get_Active+93

RimWorld.CompRottable:get_Active+71: 74 20                          - je RimWorld.CompRottable:get_Active+93
RimWorld.CompRottable:get_Active+73: 48 8B CF                       - mov rcx,rdi
RimWorld.CompRottable:get_Active+76: 83 3F 00                       - cmp dword ptr [rdi],00
RimWorld.CompRottable:get_Active+79: 48 8D 64 24 00                 - lea rsp,[rsp+00]
RimWorld.CompRottable:get_Active+7e: 49 BB 81 E6 E4 55 5D 02 00 00  - mov r11,0000025D55E4E681
RimWorld.CompRottable:get_Active+88: 41 FF D3                       - call r11
RimWorld.CompRottable:get_Active+8b: 85 C0                          - test eax,eax
RimWorld.CompRottable:get_Active+8d: 75 04                          - jne RimWorld.CompRottable:get_Active+93
RimWorld.CompRottable:get_Active+8f: 33 C0                          - xor eax,eax
RimWorld.CompRottable:get_Active+91: EB 05                          - jmp RimWorld.CompRottable:get_Active+98
// ---------- INJECTING HERE ----------
RimWorld.CompRottable:get_Active+93: B8 01 00 00 00                 - mov eax,00000001
// ---------- DONE INJECTING  ----------
RimWorld.CompRottable:get_Active+98: 48 8B 75 E8                    - mov rsi,[rbp-18]
RimWorld.CompRottable:get_Active+9c: 48 8B 7D F0                    - mov rdi,[rbp-10]
RimWorld.CompRottable:get_Active+a0: 4C 8B 7D F8                    - mov r15,[rbp-08]
RimWorld.CompRottable:get_Active+a4: 48 8D 65 00                    - lea rsp,[rbp+00]
RimWorld.CompRottable:get_Active+a8: 5D                             - pop rbp
RimWorld.CompRottable:get_Active+a9: C3                             - ret
RimWorld.CompRottable:get_Active+aa: BA 88 00 00 00                 - mov edx,00000088
RimWorld.CompRottable:get_Active+af: B9 92 01 00 00                 - mov ecx,00000192
RimWorld.CompRottable:get_Active+b4: 66 90                          - nop 2
RimWorld.CompRottable:get_Active+b6: 49 BB D0 20 39 48 5B 02 00 00  - mov r11,0000025B483920D0
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196058</ID>
              <Description>"Edit selected thing"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeThingGetLabel, Verse.Thing:GetInspectString, 55 48 8B EC 48 83 EC 40)
alloc(memThingGetLabel,$1000, codeThingGetLabel)
label(return)

memThingGetLabel:
  mov [ptrThing],rcx
  push rbp
  mov rbp,rsp
  sub rsp,40
  jmp return

bkpThingGetLabel:
  readmem(codeThingGetLabel,8)

ptrThing:
  dq 0

codeThingGetLabel:
  jmp memThingGetLabel
  nop 3

return:

registersymbol(codeThingGetLabel)
registersymbol(memThingGetLabel)
registersymbol(bkpThingGetLabel)
registersymbol(ptrThing)

[DISABLE]

codeThingGetLabel:
  readmem(bkpThingGetLabel,8)

unregistersymbol(*)
dealloc(memThingGetLabel)


{
// ORIGINAL CODE - INJECTION POINT: Verse.Thing:GetInspectString

1AB174D520D: 00 00                          - add [rax],al
1AB174D520F: 00 00                          - add [rax],al
1AB174D5211: 00 00                          - add [rax],al
1AB174D5213: 00 00                          - add [rax],al
1AB174D5215: 00 00                          - add [rax],al
1AB174D5217: 00 00                          - add [rax],al
1AB174D5219: 00 00                          - add [rax],al
1AB174D521B: 00 00                          - add [rax],al
1AB174D521D: 00 00                          - add [rax],al
1AB174D521F: 00                             - db 00
// ---------- INJECTING HERE ----------
Verse.Thing:GetInspectString: 55                             - push rbp
// ---------- DONE INJECTING  ----------
Verse.Thing:GetInspectString+1: 48 8B EC                       - mov rbp,rsp
Verse.Thing:GetInspectString+4: 48 83 EC 40                    - sub rsp,40
Verse.Thing:GetInspectString+8: 48 89 4D F0                    - mov [rbp-10],rcx
Verse.Thing:GetInspectString+c: 48 B9 A8 4B D3 4C AA 01 00 00  - mov rcx,000001AA4CD34BA8
Verse.Thing:GetInspectString+16: 49 BB 10 10 34 A7 A8 01 00 00  - mov r11,System.Object:__icall_wrapper_ves_icall_object_new_specific
Verse.Thing:GetInspectString+20: 41 FF D3                       - call r11
Verse.Thing:GetInspectString+23: 48 89 45 E0                    - mov [rbp-20],rax
Verse.Thing:GetInspectString+27: 48 8B C8                       - mov rcx,rax
Verse.Thing:GetInspectString+2a: 48 8D 6D 00                    - lea rbp,[rbp+00]
Verse.Thing:GetInspectString+2e: 49 BB 80 B3 3A 51 AA 01 00 00  - mov r11,System.Text.StringBuilder:.ctor
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196059</ID>
                  <Description>"[Thing]"</Description>
                  <Options moHideChildren="1"/>
                  <ShowAsHex>1</ShowAsHex>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <Address>ptrThing</Address>
                  <Offsets>
                    <Offset>0</Offset>
                  </Offsets>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1337196061</ID>
                      <Description>"hitPointsInt"</Description>
                      <ShowAsSigned>1</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>+64</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196062</ID>
                      <Description>"stackCount"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>+60</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196614</ID>
                      <Description>"[def]"</Description>
                      <Options moHideChildren="1"/>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <Address>+10</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>1337196615</ID>
                          <Description>"defName"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>String</VariableType>
                          <Length>128</Length>
                          <Unicode>1</Unicode>
                          <CodePage>0</CodePage>
                          <ZeroTerminate>1</ZeroTerminate>
                          <Address>+10</Address>
                          <Offsets>
                            <Offset>14</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>1337196065</ID>
                          <Description>"label"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>String</VariableType>
                          <Length>128</Length>
                          <Unicode>1</Unicode>
                          <CodePage>0</CodePage>
                          <ZeroTerminate>1</ZeroTerminate>
                          <Address>+18</Address>
                          <Offsets>
                            <Offset>14</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>1337196632</ID>
                          <Description>"stackLimit"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>+38C</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196707</ID>
                      <Description>"[nameInt]"</Description>
                      <Options moHideChildren="1"/>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <Address>+80</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>1337196708</ID>
                          <Description>"First"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>String</VariableType>
                          <Length>128</Length>
                          <Unicode>1</Unicode>
                          <CodePage>0</CodePage>
                          <ZeroTerminate>1</ZeroTerminate>
                          <Address>+10</Address>
                          <Offsets>
                            <Offset>14</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>1337196709</ID>
                          <Description>"Nick"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>String</VariableType>
                          <Length>128</Length>
                          <Unicode>1</Unicode>
                          <CodePage>0</CodePage>
                          <ZeroTerminate>1</ZeroTerminate>
                          <Address>+18</Address>
                          <Offsets>
                            <Offset>14</Offset>
                          </Offsets>
                        </CheatEntry>
                        <CheatEntry>
                          <ID>1337196710</ID>
                          <Description>"Last"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>String</VariableType>
                          <Length>128</Length>
                          <Unicode>1</Unicode>
                          <CodePage>0</CodePage>
                          <ZeroTerminate>1</ZeroTerminate>
                          <Address>+20</Address>
                          <Offsets>
                            <Offset>14</Offset>
                          </Offsets>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196705</ID>
                      <Description>"[ageTracker]"</Description>
                      <Options moHideChildren="1"/>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <Address>+88</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>1337196706</ID>
                          <Description>"ageBiologicalTicksInt"</Description>
                          <DropDownList DisplayValueAsItem="1">72000000:20 years
90000000:25 years
360000000:100 years
</DropDownList>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>+18</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196711</ID>
                      <Description>"[guest]"</Description>
                      <Options moHideChildren="1"/>
                      <ShowAsHex>1</ShowAsHex>
                      <ShowAsSigned>0</ShowAsSigned>
                      <Color>800080</Color>
                      <GroupHeader>1</GroupHeader>
                      <Address>+140</Address>
                      <Offsets>
                        <Offset>0</Offset>
                      </Offsets>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>1337196712</ID>
                          <Description>"resistance"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Float</VariableType>
                          <Address>+80</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196611</ID>
              <Description>"Edit selected thing quality"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeTryGetQuality, RimWorld.QualityUtility:TryGetQuality, 41 0F B6 46 20)
alloc(memTryGetQuality,$1000,codeTryGetQuality)
label(return)

memTryGetQuality:
  mov [ptrTryGetQuality],r14
  movzx eax,byte ptr [r14+20]
  jmp return
ptrTryGetQuality:
  dq 0

bkpTryGetQuality:
  readmem(codeTryGetQuality,5)

codeTryGetQuality:
  jmp memTryGetQuality

return:

registersymbol(codeTryGetQuality)
registersymbol(memTryGetQuality)
registersymbol(bkpTryGetQuality)
registersymbol(ptrTryGetQuality)

[DISABLE]

codeTryGetQuality:
  readmem(bkpTryGetQuality,5)

unregistersymbol(*)
dealloc(memTryGetQuality)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.QualityUtility:TryGetQuality+c9

RimWorld.QualityUtility:TryGetQuality+a6: 49 BB 1E DF 9A 7A 7C 02 00 00  - mov r11,0000027C7A9ADF1E
RimWorld.QualityUtility:TryGetQuality+b0: 41 FF D3                       - call r11
RimWorld.QualityUtility:TryGetQuality+b3: 4C 8B F8                       - mov r15,rax
RimWorld.QualityUtility:TryGetQuality+b6: 4D 8B F7                       - mov r14,r15
RimWorld.QualityUtility:TryGetQuality+b9: 4D 85 FF                       - test r15,r15
RimWorld.QualityUtility:TryGetQuality+bc: 75 07                          - jne RimWorld.QualityUtility:TryGetQuality+c5
RimWorld.QualityUtility:TryGetQuality+be: C6 06 02                       - mov byte ptr [rsi],02
RimWorld.QualityUtility:TryGetQuality+c1: 33 C0                          - xor eax,eax
RimWorld.QualityUtility:TryGetQuality+c3: EB 11                          - jmp RimWorld.QualityUtility:TryGetQuality+d6
RimWorld.QualityUtility:TryGetQuality+c5: 41 83 3E 00                    - cmp dword ptr [r14],00
// ---------- INJECTING HERE ----------
RimWorld.QualityUtility:TryGetQuality+c9: 41 0F B6 46 20                 - movzx eax,byte ptr [r14+20]
// ---------- DONE INJECTING  ----------
RimWorld.QualityUtility:TryGetQuality+ce: 40 88 06                       - mov [rsi],al
RimWorld.QualityUtility:TryGetQuality+d1: B8 01 00 00 00                 - mov eax,00000001
RimWorld.QualityUtility:TryGetQuality+d6: 48 8B 75 D8                    - mov rsi,[rbp-28]
RimWorld.QualityUtility:TryGetQuality+da: 48 8B 7D E0                    - mov rdi,[rbp-20]
RimWorld.QualityUtility:TryGetQuality+de: 4C 8B 6D E8                    - mov r13,[rbp-18]
RimWorld.QualityUtility:TryGetQuality+e2: 4C 8B 75 F0                    - mov r14,[rbp-10]
RimWorld.QualityUtility:TryGetQuality+e6: 4C 8B 7D F8                    - mov r15,[rbp-08]
RimWorld.QualityUtility:TryGetQuality+ea: 48 8D 65 00                    - lea rsp,[rbp+00]
RimWorld.QualityUtility:TryGetQuality+ee: 5D                             - pop rbp
RimWorld.QualityUtility:TryGetQuality+ef: C3                             - ret
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196612</ID>
                  <Description>"QualityInt"</Description>
                  <DropDownList DisplayValueAsItem="1">0:Awful
1:Poor
2:Normal
3:Good
4:Excellent
5:Masterwork
6:Legendary
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>ptrTryGetQuality</Address>
                  <Offsets>
                    <Offset>20</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196610</ID>
              <Description>"Nonrandom medical tend quality"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeCompTended, Verse.HediffComp_TendDuration:CompTended, F3 0F 10 05 E8 04 00 00)
alloc(memCompTended,$1000,codeCompTended)
label(return)

memCompTended:
  // tendQuality = Mathf.Clamp(quality + Rand.Range(-0.25f, 0.25f), 0f, maxQuality);
  movss xmm0,[Verse.HediffComp_TendDuration:CompTended+530] // updates the minimum of tend quality factor (-0.25f)
  jmp return

bkpCompTended:
  readmem(codeCompTended,8)

codeCompTended:
  jmp memCompTended
  nop 3

return:

registersymbol(codeCompTended)
registersymbol(memCompTended)
registersymbol(bkpCompTended)

[DISABLE]

codeCompTended:
  readmem(bkpCompTended,8)

unregistersymbol(*)
dealloc(memCompTended)


{
// ORIGINAL CODE - INJECTION POINT: Verse.HediffComp_TendDuration:CompTended+50

Verse.HediffComp_TendDuration:CompTended+f: 48 89 7D F0                       - mov [rbp-10],rdi
Verse.HediffComp_TendDuration:CompTended+13: 4C 89 75 F8                       - mov [rbp-08],r14
Verse.HediffComp_TendDuration:CompTended+17: 48 8B F9                          - mov rdi,rcx
Verse.HediffComp_TendDuration:CompTended+1a: F3 0F 11 8D F8 FE FF FF           - movss [rbp-00000108],xmm1
Verse.HediffComp_TendDuration:CompTended+22: F3 0F 11 95 F0 FE FF FF           - movss [rbp-00000110],xmm2
Verse.HediffComp_TendDuration:CompTended+2a: 4C 89 8D E8 FE FF FF              - mov [rbp-00000118],r9
Verse.HediffComp_TendDuration:CompTended+31: 48 C7 85 18 FF FF FF 00 00 00 00  - mov qword ptr [rbp-000000E8],00000000
Verse.HediffComp_TendDuration:CompTended+3c: F3 0F 10 85 F8 FE FF FF           - movss xmm0,[rbp-00000108]
Verse.HediffComp_TendDuration:CompTended+44: F3 0F 5A C0                       - cvtss2sd xmm0,xmm0
Verse.HediffComp_TendDuration:CompTended+48: F2 0F 11 85 E0 FE FF FF           - movsd [rbp-00000120],xmm0
// ---------- INJECTING HERE ----------
Verse.HediffComp_TendDuration:CompTended+50: F3 0F 10 05 E8 04 00 00           - movss xmm0,[Verse.HediffComp_TendDuration:CompTended+540]
// ---------- DONE INJECTING  ----------
Verse.HediffComp_TendDuration:CompTended+58: F3 0F 5A C0                       - cvtss2sd xmm0,xmm0
Verse.HediffComp_TendDuration:CompTended+5c: F3 0F 10 0D CC 04 00 00           - movss xmm1,[Verse.HediffComp_TendDuration:CompTended+530]
Verse.HediffComp_TendDuration:CompTended+64: F3 0F 5A C9                       - cvtss2sd xmm1,xmm1
Verse.HediffComp_TendDuration:CompTended+68: F2 0F 5A C9                       - cvtsd2ss xmm1,xmm1
Verse.HediffComp_TendDuration:CompTended+6c: F2 0F 5A C0                       - cvtsd2ss xmm0,xmm0
Verse.HediffComp_TendDuration:CompTended+70: 48 8D 64 24 00                    - lea rsp,[rsp+00]
Verse.HediffComp_TendDuration:CompTended+75: 90                                - nop
Verse.HediffComp_TendDuration:CompTended+76: 49 BB 90 52 61 9E 7C 02 00 00     - mov r11,Verse.Rand:Range
Verse.HediffComp_TendDuration:CompTended+80: 41 FF D3                          - call r11
Verse.HediffComp_TendDuration:CompTended+83: F3 0F 5A C8                       - cvtss2sd xmm1,xmm0
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196613</ID>
              <Description>"New things are always legendary"</Description>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeSetQuality, RimWorld.CompQuality:SetQuality, 0F B6 45 F0 41 88 47 20)
alloc(memSetQuality,$1000,codeSetQuality)
label(return)
label(skip)

memSetQuality:
  cmp r8,0 // RimWorld.ArtGenerationContext; 0- Outsider, 1- Colony
  je skip
  mov byte ptr [rbp-10],6 // set Quality to legendary
skip:
  movzx eax,byte ptr [rbp-10]
  mov [r15+20],al
  jmp return

bkpSetQuality:
  readmem(codeSetQuality,8)

codeSetQuality:
  jmp memSetQuality
  nop 3

return:

registersymbol(codeSetQuality)
registersymbol(memSetQuality)
registersymbol(bkpSetQuality)

[DISABLE]

codeSetQuality:
  readmem(bkpSetQuality,8)

unregistersymbol(*)
dealloc(memSetQuality)


{
// ORIGINAL CODE - INJECTION POINT: RimWorld.CompQuality:SetQuality+17

27A47FFD01B: 00 00                          - add [rax],al
27A47FFD01D: 00 00                          - add [rax],al
27A47FFD01F: 00 55 48                       - add [rbp+48],dl
RimWorld.CompQuality:SetQuality+2: 8B EC                          - mov ebp,esp
RimWorld.CompQuality:SetQuality+4: 48 83 EC 40                    - sub rsp,40
RimWorld.CompQuality:SetQuality+8: 4C 89 7D F8                    - mov [rbp-08],r15
RimWorld.CompQuality:SetQuality+c: 4C 8B F9                       - mov r15,rcx
RimWorld.CompQuality:SetQuality+f: 48 89 55 F0                    - mov [rbp-10],rdx
RimWorld.CompQuality:SetQuality+13: 4C 89 45 E8                    - mov [rbp-18],r8
// ---------- INJECTING HERE ----------
RimWorld.CompQuality:SetQuality+17: 0F B6 45 F0                    - movzx eax,byte ptr [rbp-10]
RimWorld.CompQuality:SetQuality+1b: 41 88 47 20                    - mov [r15+20],al
// ---------- DONE INJECTING  ----------
RimWorld.CompQuality:SetQuality+1f: 49 8B 4F 10                    - mov rcx,[r15+10]
RimWorld.CompQuality:SetQuality+23: 49 BA 88 7E 91 AD 7C 02 00 00  - mov r10,0000027CAD917E88
RimWorld.CompQuality:SetQuality+2d: 90                             - nop
RimWorld.CompQuality:SetQuality+2e: 49 BB D0 85 9A 7A 7C 02 00 00  - mov r11,Verse.ThingCompUtility:TryGetComp
RimWorld.CompQuality:SetQuality+38: 41 FF D3                       - call r11
RimWorld.CompQuality:SetQuality+3b: 4C 8B F8                       - mov r15,rax
RimWorld.CompQuality:SetQuality+3e: 48 85 C0                       - test rax,rax
RimWorld.CompQuality:SetQuality+41: 74 18                          - je RimWorld.CompQuality:SetQuality+5b
RimWorld.CompQuality:SetQuality+43: 49 8B CF                       - mov rcx,r15
RimWorld.CompQuality:SetQuality+46: 0F B6 55 E8                    - movzx edx,byte ptr [rbp-18]
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196673</ID>
              <Description>"Edit wealth"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeWealthWatcher, RimWorld.WealthWatcher:get_WealthTotal, F3 0F 10 46 20)
alloc(memWealthWatcher,$1000,codeWealthWatcher)
label(return)
label(ptrWealthWatcher)
label(bZeroWealth)
label(skip)

memWealthWatcher:
  mov [ptrWealthWatcher],rsi
  cmp byte ptr [bZeroWealth],0
  je skip
  mov [rsi+20],(float)0.0 // WealthItems
  mov [rsi+24],(float)0.0 // WealthBuildings
  mov [rsi+28],(float)0.0 // WealthPawns
  mov [rsi+2C],(float)0.0 // WealthFloorsOnly
skip:
  movss xmm0,[rsi+20]
  jmp return

bZeroWealth:
  db 0

ptrWealthWatcher:
  dq 0

bkpWealthWatcher:
  readmem(codeWealthWatcher,5)

codeWealthWatcher:
  jmp memWealthWatcher

return:

registersymbol(ptrWealthWatcher)
registersymbol(bZeroWealth)
registersymbol(codeWealthWatcher)
registersymbol(memWealthWatcher)
registersymbol(bkpWealthWatcher)

[DISABLE]

codeWealthWatcher:
  readmem(bkpWealthWatcher,5)

unregistersymbol(*)
dealloc(memWealthWatcher)

{
// ORIGINAL CODE - INJECTION POINT: RimWorld.WealthWatcher:get_WealthTotal+23

1CB5BB8406C: 00 00                          - add [rax],al
1CB5BB8406E: 00 00                          - add [rax],al
RimWorld.WealthWatcher:get_WealthTotal: 55                             - push rbp
RimWorld.WealthWatcher:get_WealthTotal+1: 48 8B EC                       - mov rbp,rsp
RimWorld.WealthWatcher:get_WealthTotal+4: 48 83 EC 30                    - sub rsp,30
RimWorld.WealthWatcher:get_WealthTotal+8: 48 89 75 F8                    - mov [rbp-08],rsi
RimWorld.WealthWatcher:get_WealthTotal+c: 48 8B F1                       - mov rsi,rcx
RimWorld.WealthWatcher:get_WealthTotal+f: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
RimWorld.WealthWatcher:get_WealthTotal+16: 49 BB 00 41 B8 5B CB 01 00 00  - mov r11,RimWorld.WealthWatcher:RecountIfNeeded
RimWorld.WealthWatcher:get_WealthTotal+20: 41 FF D3                       - call r11
// ---------- INJECTING HERE ----------
RimWorld.WealthWatcher:get_WealthTotal+23: F3 0F 10 46 20                 - movss xmm0,[rsi+20]
// ---------- DONE INJECTING  ----------
RimWorld.WealthWatcher:get_WealthTotal+28: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
RimWorld.WealthWatcher:get_WealthTotal+2c: F3 0F 10 4E 24                 - movss xmm1,[rsi+24]
RimWorld.WealthWatcher:get_WealthTotal+31: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.WealthWatcher:get_WealthTotal+35: F2 0F 58 C1                    - addsd xmm0,xmm1
RimWorld.WealthWatcher:get_WealthTotal+39: F3 0F 10 4E 28                 - movss xmm1,[rsi+28]
RimWorld.WealthWatcher:get_WealthTotal+3e: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
RimWorld.WealthWatcher:get_WealthTotal+42: F2 0F 58 C1                    - addsd xmm0,xmm1
RimWorld.WealthWatcher:get_WealthTotal+46: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
RimWorld.WealthWatcher:get_WealthTotal+4a: 48 8B 75 F8                    - mov rsi,[rbp-08]
RimWorld.WealthWatcher:get_WealthTotal+4e: 48 8D 65 00                    - lea rsp,[rbp+00]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196680</ID>
                  <Description>"Zero wealth"</Description>
                  <Options moHideChildren="1"/>
                  <Color>FF0000</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
bZeroWealth:
  db 1

[DISABLE]
bZeroWealth:
  db 0
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337196675</ID>
                  <Description>"[WealthWatcher]"</Description>
                  <Options moHideChildren="1"/>
                  <ShowAsHex>1</ShowAsHex>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <Address>ptrWealthWatcher</Address>
                  <Offsets>
                    <Offset>0</Offset>
                  </Offsets>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1337196676</ID>
                      <Description>"WealthItems"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+20</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196677</ID>
                      <Description>"WealthBuildings"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+24</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196678</ID>
                      <Description>"WealthPawns"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+28</Address>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>1337196679</ID>
                      <Description>"WealthFloorsOnly"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>+2C</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337196638</ID>
              <Description>"Set size for all item stacks"</Description>
              <Options moHideChildren="1"/>
              <Color>FF0000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
aobScanMono(codeDrawGUIOverlay, Verse.Thing:DrawGUIOverlay, 48 63 4E 60 48 8D AD 00 00 00 00)
alloc(memDrawGUIOverlay,$1000,codeDrawGUIOverlay)
label(return)
label(skip)

memDrawGUIOverlay:
  mov rcx, [rsi+10]
  mov ecx, [rcx+38C] // get 'stackLimit'
  cmp ecx,#1
  je skip // update 'stackCount' for stackable items only
  cvtsi2ss xmm0, ecx
  mulss xmm0, [desiredFullness]
  cvtss2si ecx, xmm0
  mov [rsi+60], ecx

skip:
  movsxd rcx, dword ptr [rsi+60]
  lea rbp,[rbp+00000000]
  jmp return

desiredFullness:
  dd (float)1

bkpDrawGUIOverlay:
  readmem(codeDrawGUIOverlay,11)

codeDrawGUIOverlay:
  jmp memDrawGUIOverlay
  nop 6

return:

registersymbol(desiredFullness)
registersymbol(codeDrawGUIOverlay)
registersymbol(memDrawGUIOverlay)
registersymbol(bkpDrawGUIOverlay)

[DISABLE]

codeDrawGUIOverlay:
  readmem(bkpDrawGUIOverlay,11)

unregistersymbol(*)
dealloc(memDrawGUIOverlay)

{
// ORIGINAL CODE - INJECTION POINT: Verse.Thing:DrawGUIOverlay+4b

Verse.Thing:DrawGUIOverlay+20: 48 8B C8                       - mov rcx,rax
Verse.Thing:DrawGUIOverlay+23: 83 38 00                       - cmp dword ptr [rax],00
Verse.Thing:DrawGUIOverlay+26: 49 BB D0 4B DE D6 AA 01 00 00  - mov r11,Verse.CameraDriver:get_CurrentZoom
Verse.Thing:DrawGUIOverlay+30: 41 FF D3                       - call r11
Verse.Thing:DrawGUIOverlay+33: 85 C0                          - test eax,eax
Verse.Thing:DrawGUIOverlay+35: 0F 85 A0 00 00 00              - jne Verse.Thing:DrawGUIOverlay+db
Verse.Thing:DrawGUIOverlay+3b: 48 8B 46 10                    - mov rax,[rsi+10]
Verse.Thing:DrawGUIOverlay+3f: 48 63 80 8C 03 00 00           - movsxd  rax,dword ptr [rax+0000038C]
Verse.Thing:DrawGUIOverlay+46: 83 F8 01                       - cmp eax,01
Verse.Thing:DrawGUIOverlay+49: 7E 35                          - jle Verse.Thing:DrawGUIOverlay+80
// ---------- INJECTING HERE ----------
Verse.Thing:DrawGUIOverlay+4b: 48 63 4E 60                    - movsxd  rcx,dword ptr [rsi+60]
// ---------- DONE INJECTING  ----------
Verse.Thing:DrawGUIOverlay+4f: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
Verse.Thing:DrawGUIOverlay+56: 49 BB B0 C2 EA A6 AA 01 00 00  - mov r11,Verse.GenString:ToStringCached
Verse.Thing:DrawGUIOverlay+60: 41 FF D3                       - call r11
Verse.Thing:DrawGUIOverlay+63: 48 8B D0                       - mov rdx,rax
Verse.Thing:DrawGUIOverlay+66: 48 8B CE                       - mov rcx,rsi
Verse.Thing:DrawGUIOverlay+69: 48 8D 64 24 00                 - lea rsp,[rsp+00]
Verse.Thing:DrawGUIOverlay+6e: 49 BB B0 6F 00 D7 AA 01 00 00  - mov r11,Verse.GenMapUI:DrawThingLabel
Verse.Thing:DrawGUIOverlay+78: 41 FF D3                       - call r11
Verse.Thing:DrawGUIOverlay+7b: E9 5B 00 00 00                 - jmp Verse.Thing:DrawGUIOverlay+db
Verse.Thing:DrawGUIOverlay+80: 48 8B 46 10                    - mov rax,[rsi+10]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337196639</ID>
                  <Description>"Desired stack size (1.0 = full stack)"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>808000</Color>
                  <VariableType>Float</VariableType>
                  <Address>desiredFullness</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 TABLE INFO 】
❖ CE Version required: 7.5
❖ Game process: RimWorldWin64.exe
❖ Game engine: Unity
❖ Tested game versions: Steam (see history below for details)
❖ Author: mece
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 Player pawns 】
Applicable only to pawns controlled by player
❖ Untargetable: others cannot target or attack your colonists directly
❖ Instant movement: pawn speed is now above the legit cap (&gt;60 cells/sec)
❖ Edit learning rate: Adds a multiplier to the learning speed.
By default, this is an equivalent to debug feature 'Fast learning' but can be faster.
❖ Max skills: permanent all pawn skills to 20 (max), two flames burning passion, 
and prevents experience deterioration.
❖ Set pawn stats: temporary updates some pawn stats: CleaningSpeed, WorkSpeedGlobal, 
GlobalLearningFactor, MoveSpeed. The similar effect could be achieved with 
another scripts, but this only affect player-controlled pawns.
More info about stats: https://rimworldwiki.com/wiki/Stat
❖ Set pawn capacity levels: temporary set pawn capacities to desired value
PawnCapacitiesHandler:GetLevel - gets effective capacity value from the game cache
PawnCapacityUtility:CalculateCapacityLevel - used to show capacity value in the GUI.
More info about pawn capacities: https://rimworldwiki.com/wiki/Capacity
❖ Zero injuries severity: removes injuries and other health difficulties, 
effectively makes pawns invincible.
https://rimworldwiki.com/wiki/Injury
❖ All needs are met: set pawn need meter levels to max for all needs 
(Food, Rest, Comfort, etc.)
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 Instant Work 】
❖ Research: pawn will finish research immediately. Use debug feature 
'Finish All Research' if you don't want to bother with research at all.
❖ Repair: instantly repair buildings etc
❖ Mine: almost instantly dig rock etc
❖ AffectFloor: instantly smooth floors etc
❖ AffectRoof: instantly build roofs
❖ ConstructFinishFrame: instantly construct placed frames and build structures
❖ PlantWork: instantly cut trees and plants
❖ PlantSow: instantly sow crops
❖ CleanFilth: instantly clean filth and blood
❖ CleanFilth: instantly deconstruct structures
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 Recruitment &amp; Taming 】
❖ No pawn interaction cooldown: affects all kinds of interactions
❖ No prisoner interaction cooldown
❖ Instant taming and recruitment attempts
❖ Instant resistance reduction
❖ Instant animal talk
❖ Instant animal feed
❖ Instant animal training
❖ No animal training cooldown
❖ Guaranteed taming
❖ Guaranteed animal bonding
❖ Guaranteed animal training
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 Other 】
❖ Massive mining damage: remove mineable cells per single hit
❖ Infinite fuel: max fuel (e.g. torches)
❖ Transport pod unlimited capacity: zero mass of goods placed into the pod
❖ Unlimited power: same as debug feature "Unlimited power"
❖ Guaranteed tame: set taming change to 100% regardless of taming skills 
but only for tabable targets
❖ Edit selected thing: set size for selected item stacks, edit pawn age,
prisoner resistance
❖ Edit selected thing quality: could be used to make selected thing legendary 
after creation
❖ Nonrandom medical tend quality: removes randomness from tend quality.
To make it max use max skills and/or other game mechanics:
https://rimworldwiki.com/wiki/Doctoring#Tend_quality
❖ New things are always legendary
❖ Edit wealth: could be useful to increase or decrease raid frequency
https://rimworldwiki.com/wiki/Wealth
❖ Set size for all item stacks: Use to dupe items all at once and then turn it off 
to prevent unwanted surplus.
❖ No deterioration: disables damage of certain items due to its storage conditions
❖ No rot: disables damage of certain items due to rotting
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 USAGE TIPS 】
❖ 
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 KNOWN ISSUES 】
❖ Some scripts should be activated after corresponding game actions performed for the
first time. Otherwise, a lua error could occur.
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 CHANGE LOG 】
⋯ 2023-11-19 ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
❖ Game version: 1.4.3901
⋯ 2023-11-20 ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
v2
❖ Added: No deterioration
❖ Added: No rot
❖ Fixed: New things are always legendary: script corrupted the save when guest arrives
⋯ 2023-11-20 ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
❖ Added: Instant movement
❖ Fixed: The game crashed if 'Player pawns' scripts were activated just after the game
start and before the first selection of player controlled pawn.
⋯ 2023-11-27 ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
❖ Added: No pawn interaction cooldown
❖ Added: No prisoner interaction cooldown
❖ Added: Instant taming and recruitment attempts
❖ Added: Instant resistance reduction
❖ Added: Instant animal talk
❖ Added: Instant animal feed
❖ Added: Instant animal training
❖ Added: No animal training cooldown
❖ Added: Guaranteed taming
❖ Added: Guaranteed animal bonding
❖ Added: Guaranteed animal training
❖ Added: Massive mining damage
❖ Added: Untargetable
❖ Removed: Max movement speed: use 'Set pawn stats &gt; MoveSpeed' instead
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 TABLE UPDATE TIPS 】
❖ 
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 FUTURE PLANS 】
❖
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
【 CONTACT THE AUTHOR 】
❖ https://opencheattables.com/viewtopic.php?p=2262#p2262
</Comments>
</CheatTable>
