<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>134435</ID>
      <Description>"Compact Mode"</Description>
      <Color>DFDFDF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible    = state; getMainForm().Panel5.Visible    = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))

[DISABLE]
LuaCall(cycleFullCompact(nil,false))
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>134964</ID>
      <Description>"disableAllWithoutExecute"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ ian on ctg
  https://discord.com/channels/350750090463281172/350754403894165505/1168185034398781470
}
{$LUA}
if syntaxcheck then return end

AddressList.disableAllWithoutExecute()
deleteAllRegisteredSymbols()
local entries = getAddressList()
for i=0, entries.getCount()-1 do
    entries[i].Active = false
end
[enable]
error()
[disable]

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>134977</ID>
      <Description>"Reach"</Description>
      <Options moAlwaysHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>134969</ID>
          <Description>"Character::canBuildDistanceCheck"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Character::canBuildDistanceCheck:
  mov al,1
  ret
  nop 3

[DISABLE]

Character::canBuildDistanceCheck:
  db 40 53 48 83 EC 30

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::canBuildDistanceCheck

Factorio.Character::setDriving+98A: E8 F1 05 96 00        - call Factorio.exe+C01D70
Factorio.Character::setDriving+98F: 90                    - nop 
Factorio.Character::setDriving+990: E8 B7 77 16 01        - call Factorio._invalid_parameter_noinfo_noreturn
Factorio.Character::setDriving+995: 90                    - nop 
Factorio.Character::setDriving+996: E8 B1 77 16 01        - call Factorio._invalid_parameter_noinfo_noreturn
Factorio.Character::setDriving+99B: CC                    - int 3 
Factorio.Character::setDriving+99C: CC                    - int 3 
Factorio.exe+2A178D: CC                    - int 3 
Factorio.exe+2A178E: CC                    - int 3 
Factorio.exe+2A178F: CC                    - int 3 
// ---------- INJECTING HERE ----------
Factorio.Character::canBuildDistanceCheck: 40 53                 - push rbx
// ---------- DONE INJECTING  ----------
Factorio.Character::canBuildDistanceCheck+2: 48 83 EC 30           - sub rsp,30
Factorio.Character::canBuildDistanceCheck+6: 48 8B C2              - mov rax,rdx
Factorio.Character::canBuildDistanceCheck+9: 0F 29 74 24 20        - movaps [rsp+20],xmm6
Factorio.Character::canBuildDistanceCheck+E: 48 8D 91 40 FF FF FF  - lea rdx,[rcx-Factorio.dtor_list_head+70]
Factorio.Character::canBuildDistanceCheck+15: 48 8B D9              - mov rbx,rcx
Factorio.Character::canBuildDistanceCheck+18: 48 8B C8              - mov rcx,rax
Factorio.Character::canBuildDistanceCheck+1B: 0F 28 F2              - movaps xmm6,xmm2
Factorio.Character::canBuildDistanceCheck+1E: E8 3D B2 94 00        - call Factorio.BoundingBox::distanceFromPoint
Factorio.Character::canBuildDistanceCheck+23: 48 8D 8B F0 FE FF FF  - lea rcx,[rbx-Factorio.dtor_list_head+C0]
Factorio.Character::canBuildDistanceCheck+2A: 0F 28 E0              - movaps xmm4,xmm0
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>134984</ID>
          <Description>"CharacterController::canBuildDistanceCheck"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

CharacterController::canBuildDistanceCheck:
  mov al,1
  ret
  nop 3

[DISABLE]

CharacterController::canBuildDistanceCheck:
  db 40 53 48 83 EC 30

{
// ORIGINAL CODE - INJECTION POINT: Factorio.CharacterController::canBuildDistanceCheck

Factorio.exe+1F6B66: CC                    - int 3 
Factorio.exe+1F6B67: CC                    - int 3 
Factorio.exe+1F6B68: CC                    - int 3 
Factorio.exe+1F6B69: CC                    - int 3 
Factorio.exe+1F6B6A: CC                    - int 3 
Factorio.exe+1F6B6B: CC                    - int 3 
Factorio.exe+1F6B6C: CC                    - int 3 
Factorio.exe+1F6B6D: CC                    - int 3 
Factorio.exe+1F6B6E: CC                    - int 3 
Factorio.exe+1F6B6F: CC                    - int 3 
// ---------- INJECTING HERE ----------
Factorio.CharacterController::canBuildDistanceCheck: 40 53                 - push rbx
// ---------- DONE INJECTING  ----------
Factorio.CharacterController::canBuildDistanceCheck+2: 48 83 EC 30           - sub rsp,30
Factorio.CharacterController::canBuildDistanceCheck+6: 48 8B 99 98 01 00 00  - mov rbx,[rcx+Factorio.ssprintf_buffer+48]
Factorio.CharacterController::canBuildDistanceCheck+D: 48 8B C2              - mov rax,rdx
Factorio.CharacterController::canBuildDistanceCheck+10: 0F 29 74 24 20        - movaps [rsp+20],xmm6
Factorio.CharacterController::canBuildDistanceCheck+15: 0F 28 F2              - movaps xmm6,xmm2
Factorio.CharacterController::canBuildDistanceCheck+18: 48 85 DB              - test rbx,rbx
Factorio.CharacterController::canBuildDistanceCheck+1B: 75 0D                 - jne Factorio.CharacterController::canBuildDistanceCheck+2A
Factorio.CharacterController::canBuildDistanceCheck+1D: 32 C0                 - xor al,al
Factorio.CharacterController::canBuildDistanceCheck+1F: 0F 28 74 24 20        - movaps xmm6,[rsp+20]
Factorio.CharacterController::canBuildDistanceCheck+24: 48 83 C4 30           - add rsp,30
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>134975</ID>
          <Description>"Character::canDropItem"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Character::canDropItem:
  mov al,1
  ret
  nop 3

[DISABLE]

Character::canDropItem:
  db 40 53 48 83 EC 20

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::canDropItem

Factorio.Character::useRepairTool+9B: 48 8B 5C 24 30           - mov rbx,[rsp+30]
Factorio.Character::useRepairTool+A0: 48 8B 74 24 38           - mov rsi,[rsp+38]
Factorio.Character::useRepairTool+A5: 48 83 C4 20              - add rsp,20
Factorio.Character::useRepairTool+A9: 5F                       - pop rdi
Factorio.Character::useRepairTool+AA: C3                       - ret 
Factorio.Character::useRepairTool+AB: CC                       - int 3 
Factorio.exe+2A1D1C: CC                       - int 3 
Factorio.exe+2A1D1D: CC                       - int 3 
Factorio.exe+2A1D1E: CC                       - int 3 
Factorio.exe+2A1D1F: CC                       - int 3 
// ---------- INJECTING HERE ----------
Factorio.Character::canDropItem: 40 53                    - push rbx
// ---------- DONE INJECTING  ----------
Factorio.Character::canDropItem+2: 48 83 EC 20              - sub rsp,20
Factorio.Character::canDropItem+6: 8B 02                    - mov eax,[rdx]
Factorio.Character::canDropItem+8: 48 8B D9                 - mov rbx,rcx
Factorio.Character::canDropItem+B: 2B 81 30 FF FF FF        - sub eax,[rcx-Factorio.dtor_list_head+80]
Factorio.Character::canDropItem+11: 66 0F 6E D0              - movd xmm2,eax
Factorio.Character::canDropItem+15: 8B 42 04                 - mov eax,[rdx+04]
Factorio.Character::canDropItem+18: 2B 81 34 FF FF FF        - sub eax,[rcx-Factorio.dtor_list_head+7C]
Factorio.Character::canDropItem+1E: F3 0F E6 D2              - cvtdq2pd xmm2,xmm2
Factorio.Character::canDropItem+22: 66 0F 6E C0              - movd xmm0,eax
Factorio.Character::canDropItem+26: F2 0F 59 15 2A 41 60 01  - mulsd xmm2,[Factorio.exe+18A5E78]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>134968</ID>
          <Description>"Character::canInsert"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Character::canInsert:
  mov al,1
  ret
  nop 2

[DISABLE]

Character::canInsert:
  db 48 89 5C 24 10

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::canInsert

Factorio.exe+2A8776: CC                 - int 3 
Factorio.exe+2A8777: CC                 - int 3 
Factorio.exe+2A8778: CC                 - int 3 
Factorio.exe+2A8779: CC                 - int 3 
Factorio.exe+2A877A: CC                 - int 3 
Factorio.exe+2A877B: CC                 - int 3 
Factorio.exe+2A877C: CC                 - int 3 
Factorio.exe+2A877D: CC                 - int 3 
Factorio.exe+2A877E: CC                 - int 3 
Factorio.exe+2A877F: CC                 - int 3 
// ---------- INJECTING HERE ----------
Factorio.Character::canInsert: 48 89 5C 24 10     - mov [rsp+10],rbx
// ---------- DONE INJECTING  ----------
Factorio.Character::canInsert+5: 48 89 74 24 18     - mov [rsp+18],rsi
Factorio.Character::canInsert+A: 57                 - push rdi
Factorio.Character::canInsert+B: 48 83 EC 30        - sub rsp,30
Factorio.Character::canInsert+F: 80 7A 08 00        - cmp byte ptr [rdx+08],00
Factorio.Character::canInsert+13: 48 8B F2           - mov rsi,rdx
Factorio.Character::canInsert+16: 48 8B D9           - mov rbx,rcx
Factorio.Character::canInsert+19: 0F 85 05 02 00 00  - jne Factorio.Character::canInsert+224
Factorio.Character::canInsert+1F: 48 8B 02           - mov rax,[rdx]
Factorio.Character::canInsert+22: 66 83 78 06 00     - cmp word ptr [rax+06],00
Factorio.Character::canInsert+27: 0F 84 F7 01 00 00  - je Factorio.Character::canInsert+224
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>134978</ID>
          <Description>"Character::canReachEntity"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Character::canReachEntity:
  mov al,1
  ret
  nop 2

[DISABLE]

Character::canReachEntity:
  db 48 89 5C 24 08

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::canReachEntity

Factorio.exe+2A19C6: C3                 - ret 
Factorio.exe+2A19C7: CC                 - int 3 
Factorio.exe+2A19C8: CC                 - int 3 
Factorio.exe+2A19C9: CC                 - int 3 
Factorio.exe+2A19CA: CC                 - int 3 
Factorio.exe+2A19CB: CC                 - int 3 
Factorio.exe+2A19CC: CC                 - int 3 
Factorio.exe+2A19CD: CC                 - int 3 
Factorio.exe+2A19CE: CC                 - int 3 
Factorio.exe+2A19CF: CC                 - int 3 
// ---------- INJECTING HERE ----------
Factorio.Character::canReachEntity: 48 89 5C 24 08     - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
Factorio.Character::canReachEntity+5: 48 89 54 24 10     - mov [rsp+10],rdx
Factorio.Character::canReachEntity+A: 57                 - push rdi
Factorio.Character::canReachEntity+B: 48 83 EC 30        - sub rsp,30
Factorio.Character::canReachEntity+F: 48 8B 01           - mov rax,[rcx]
Factorio.Character::canReachEntity+12: 49 8B F8           - mov rdi,r8
Factorio.Character::canReachEntity+15: 0F 29 74 24 20     - movaps [rsp+20],xmm6
Factorio.Character::canReachEntity+1A: 48 8B D9           - mov rbx,rcx
Factorio.Character::canReachEntity+1D: 0F 28 F3           - movaps xmm6,xmm3
Factorio.Character::canReachEntity+20: FF 90 80 05 00 00  - call qword ptr [rax+Factorio._tls+230]
Factorio.Character::canReachEntity+26: 84 C0              - test al,al
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>135024</ID>
          <Description>"Character::canRotateEntity"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio.exe
  Version: 
  Date   : 2024-04-05
  Author : User

  This script does blah blah blah
}

[ENABLE]

Character::canRotateEntity + 0x26:
  db 75

[DISABLE]

Character::canRotateEntity + 0x26:
  db 74

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::canRotateEntity+26

Factorio.Character::canRotateEntity+5: 48 89 74 24 10        - mov [rsp+10],rsi
Factorio.Character::canRotateEntity+A: 57                    - push rdi
Factorio.Character::canRotateEntity+B: 48 83 EC 20           - sub rsp,20
Factorio.Character::canRotateEntity+F: 49 8B 00              - mov rax,[r8]
Factorio.Character::canRotateEntity+12: 48 8B F1              - mov rsi,rcx
Factorio.Character::canRotateEntity+15: 49 8B C8              - mov rcx,r8
Factorio.Character::canRotateEntity+18: 49 8B F8              - mov rdi,r8
Factorio.Character::canRotateEntity+1B: 48 8B DA              - mov rbx,rdx
Factorio.Character::canRotateEntity+1E: FF 90 88 05 00 00     - call qword ptr [rax+Factorio._tls+238]
Factorio.Character::canRotateEntity+24: 84 C0                 - test al,al
// ---------- INJECTING HERE ----------
Factorio.Character::canRotateEntity+26: 74 04                 - je Factorio.Character::canRotateEntity+2C
// ---------- DONE INJECTING  ----------
Factorio.Character::canRotateEntity+28: 33 C0                 - xor eax,eax
Factorio.Character::canRotateEntity+2A: EB 32                 - jmp Factorio.Character::canRotateEntity+5E
Factorio.Character::canRotateEntity+2C: 48 8D 96 30 FF FF FF  - lea rdx,[rsi-Factorio.dtor_list_head+80]
Factorio.Character::canRotateEntity+33: 48 8D 4F 5C           - lea rcx,[rdi+5C]
Factorio.Character::canRotateEntity+37: E8 94 B1 94 00        - call Factorio.BoundingBox::distanceFromPoint
Factorio.Character::canRotateEntity+3C: 48 8D 8E E0 FE FF FF  - lea rcx,[rsi-Factorio.dtor_list_head+D0]
Factorio.Character::canRotateEntity+43: 0F 28 D8              - movaps xmm3,xmm0
Factorio.Character::canRotateEntity+46: E8 55 7E 00 00        - call Factorio.Character::getBuildDistance
Factorio.Character::canRotateEntity+4B: 8B C8                 - mov ecx,eax
Factorio.Character::canRotateEntity+4D: 0F 57 D2              - xorps xmm2,xmm2
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>2</ID>
      <Description>"Instant Hand Mine"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-03-31
  Author : User

  This script does blah blah blah
}

[ENABLE]

ManualMiner::performMining+3C7:
  nop 2

[DISABLE]

ManualMiner::performMining+3C7:
  db 76 50

{
// ORIGINAL CODE - INJECTION POINT: Factorio.ManualMiner::performMining+3C7

Factorio.ManualMiner::performMining+394: F2 0F 5E 35 14 E4 77 01  - divsd xmm6,[Factorio.exe+18A6550]
Factorio.ManualMiner::performMining+39C: 48 8B 8E 88 00 00 00     - mov rcx,[rsi+Factorio.dtor_list_head+38]
Factorio.ManualMiner::performMining+3A3: 48 8B 01                 - mov rax,[rcx]
Factorio.ManualMiner::performMining+3A6: FF 50 20                 - call qword ptr [rax+20]
Factorio.ManualMiner::performMining+3A9: F2 0F 59 C6              - mulsd xmm0,xmm6
Factorio.ManualMiner::performMining+3AD: F2 0F 58 46 70           - addsd xmm0,[rsi+70]
Factorio.ManualMiner::performMining+3B2: F2 0F 11 46 70           - movsd [rsi+70],xmm0
Factorio.ManualMiner::performMining+3B7: 48 8B 4E 28              - mov rcx,[rsi+28]
Factorio.ManualMiner::performMining+3BB: 48 8B 41 48              - mov rax,[rcx+48]
Factorio.ManualMiner::performMining+3BF: 66 0F 2F 80 80 02 00 00  - comisd xmm0,[rax+Factorio.ssprintf_buffer+130]
// ---------- INJECTING HERE ----------
Factorio.ManualMiner::performMining+3C7: 76 50                    - jna Factorio.ManualMiner::performMining+419
// ---------- DONE INJECTING  ----------
Factorio.ManualMiner::performMining+3C9: 33 C0                    - xor eax,eax
Factorio.ManualMiner::performMining+3CB: 48 89 46 70              - mov [rsi+70],rax
Factorio.ManualMiner::performMining+3CF: 48 8B 49 48              - mov rcx,[rcx+48]
Factorio.ManualMiner::performMining+3D3: E8 18 55 1D 00           - call Factorio.EntityPrototype::getMinedSound
Factorio.ManualMiner::performMining+3D8: 4C 8B F0                 - mov r14,rax
Factorio.ManualMiner::performMining+3DB: 41 B0 01                 - mov r8b,01
Factorio.ManualMiner::performMining+3DE: 48 8B 56 28              - mov rdx,[rsi+28]
Factorio.ManualMiner::performMining+3E2: 48 8B CE                 - mov rcx,rsi
Factorio.ManualMiner::performMining+3E5: E8 A6 04 00 00           - call Factorio.ManualMiner::mineEntity
Factorio.ManualMiner::performMining+3EA: 0F B6 F8                 - movzx edi,al
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>7</ID>
      <Description>"Instant Drill Mine"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-03-31
  Author : User

  This script does blah blah blah
}

[ENABLE]

MiningDrill::performMining+8A:
  nop 6

[DISABLE]

MiningDrill::performMining+8A:
  db 0F 82 81 01 00 00

{
// ORIGINAL CODE - INJECTION POINT: Factorio.MiningDrill::performMining+8A

Factorio.MiningDrill::performMining+4E: C6 81 29 02 00 00 01        - mov byte ptr [rcx+Factorio.ssprintf_buffer+D9],01
Factorio.MiningDrill::performMining+55: 48 8D 05 1C 91 2B 01        - lea rax,[Factorio.StuckItemsFallback::`vftable']
Factorio.MiningDrill::performMining+5C: 48 89 44 24 38              - mov [rsp+38],rax
Factorio.MiningDrill::performMining+61: 48 8D 81 D8 01 00 00        - lea rax,[rcx+Factorio.ssprintf_buffer+88]
Factorio.MiningDrill::performMining+68: 48 89 45 87                 - mov [rbp-79],rax
Factorio.MiningDrill::performMining+6C: 48 8B 81 48 01 00 00        - mov rax,[rcx+Factorio.dtor_list_head+F8]
Factorio.MiningDrill::performMining+73: F2 0F 10 81 60 02 00 00     - movsd xmm0,[rcx+Factorio.ssprintf_buffer+110]
Factorio.MiningDrill::performMining+7B: 45 33 FF                    - xor r15d,r15d
Factorio.MiningDrill::performMining+7E: 4C 8D 0D 1B 18 3F 01        - lea r9,[Factorio.ResourceMiningCollector::`vftable']
Factorio.MiningDrill::performMining+85: 66 0F 2F 40 08              - comisd xmm0,[rax+08]
// ---------- INJECTING HERE ----------
Factorio.MiningDrill::performMining+8A: 0F 82 81 01 00 00           - jb Factorio.MiningDrill::performMining+211
// ---------- DONE INJECTING  ----------
Factorio.MiningDrill::performMining+90: 4C 8D A1 B0 01 00 00        - lea r12,[rcx+Factorio.ssprintf_buffer+60]
Factorio.MiningDrill::performMining+97: 66 0F 1F 84 00 00 00 00 00  - nop word ptr [rax+rax+00000000]
Factorio.MiningDrill::performMining+A0: F2 0F 5C 40 08              - subsd xmm0,[rax+08]
Factorio.MiningDrill::performMining+A5: F2 0F 11 83 60 02 00 00     - movsd [rbx+Factorio.ssprintf_buffer+110],xmm0
Factorio.MiningDrill::performMining+AD: 4C 89 65 8F                 - mov [rbp-71],r12
Factorio.MiningDrill::performMining+B1: 0F 57 C0                    - xorps xmm0,xmm0
Factorio.MiningDrill::performMining+B4: F3 0F 7F 45 97              - movdqu [rbp-69],xmm0
Factorio.MiningDrill::performMining+B9: 4C 89 7D A7                 - mov [rbp-59],r15
Factorio.MiningDrill::performMining+BD: 48 8B 83 80 00 00 00        - mov rax,[rbx+Factorio.dtor_list_head+30]
Factorio.MiningDrill::performMining+C4: 48 8B 88 28 03 00 00        - mov rcx,[rax+Factorio.ssprintf_buffer+1D8]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>135002</ID>
      <Description>"Character::getManualCraftingSpeedModifier"</Description>
      <Options moAlwaysHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-03
  Author : User

  This script does blah blah blah
}

[ENABLE]

alloc(ManualCraftingSpeedModifier,8,Character::getManualCraftingSpeedModifier)

ManualCraftingSpeedModifier:
  dq (double)2000.0

Character::getManualCraftingSpeedModifier:
  movsd xmm0,[ManualCraftingSpeedModifier]
  ret
  nop 6

registersymbol(ManualCraftingSpeedModifier)

[DISABLE]

Character::getManualCraftingSpeedModifier:
  db 48 8B 81 50 FF FF FF 44 0F B6 81 68 FF FF FF

unregistersymbol(ManualCraftingSpeedModifier)

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::getManualCraftingSpeedModifier

Factorio.Character::getLogisticRequestAndAutoTrash+19D: 48 8B 74 24 40           - mov rsi,[rsp+40]
Factorio.Character::getLogisticRequestAndAutoTrash+1A2: 48 83 C4 10              - add rsp,10
Factorio.Character::getLogisticRequestAndAutoTrash+1A6: 41 5F                    - pop r15
Factorio.Character::getLogisticRequestAndAutoTrash+1A8: 41 5E                    - pop r14
Factorio.Character::getLogisticRequestAndAutoTrash+1AA: 5F                       - pop rdi
Factorio.Character::getLogisticRequestAndAutoTrash+1AB: C3                       - ret 
Factorio.Character::getLogisticRequestAndAutoTrash+1AC: CC                       - int 3 
Factorio.exe+2AA0AD: CC                       - int 3 
Factorio.exe+2AA0AE: CC                       - int 3 
Factorio.exe+2AA0AF: CC                       - int 3 
// ---------- INJECTING HERE ----------
Factorio.Character::getManualCraftingSpeedModifier: 48 8B 81 50 FF FF FF     - mov rax,[rcx-Factorio.dtor_list_head+60]
// ---------- DONE INJECTING  ----------
Factorio.Character::getManualCraftingSpeedModifier+7: 44 0F B6 81 68 FF FF FF  - movzx r8d,byte ptr [rcx-Factorio.dtor_list_head+48]
Factorio.Character::getManualCraftingSpeedModifier+F: F2 0F 10 41 50           - movsd xmm0,[rcx+50]
Factorio.Character::getManualCraftingSpeedModifier+14: F2 0F 58 05 6C C1 5F 01  - addsd xmm0,[Factorio.exe+18A6238]
Factorio.Character::getManualCraftingSpeedModifier+1C: 48 8B 90 28 03 00 00     - mov rdx,[rax+Factorio.ssprintf_buffer+1D8]
Factorio.Character::getManualCraftingSpeedModifier+23: 4A 8B 04 C2              - mov rax,[rdx+r8*8]
Factorio.Character::getManualCraftingSpeedModifier+27: F2 0F 10 90 08 02 00 00  - movsd xmm2,[rax+Factorio.ssprintf_buffer+B8]
Factorio.Character::getManualCraftingSpeedModifier+2F: F2 0F 58 15 51 C1 5F 01  - addsd xmm2,[Factorio.exe+18A6238]
Factorio.Character::getManualCraftingSpeedModifier+37: F2 0F 59 C2              - mulsd xmm0,xmm2
Factorio.Character::getManualCraftingSpeedModifier+3B: C3                       - ret 
Factorio.Character::getManualCraftingSpeedModifier+3C: CC                       - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>135003</ID>
          <Description>""</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>ManualCraftingSpeedModifier</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>134976</ID>
      <Description>"Enable Non-Handcraftables"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Character::canEverCraft:
  mov al,1
  ret
  nop 3

[DISABLE]

Character::canEverCraft:
  db 40 53 48 83 EC 40

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Character::canEverCraft

Factorio.Character::transferTo+66: C3                          - ret 
Factorio.exe+2A81C7: CC                          - int 3 
Factorio.exe+2A81C8: CC                          - int 3 
Factorio.exe+2A81C9: CC                          - int 3 
Factorio.exe+2A81CA: CC                          - int 3 
Factorio.exe+2A81CB: CC                          - int 3 
Factorio.exe+2A81CC: CC                          - int 3 
Factorio.exe+2A81CD: CC                          - int 3 
Factorio.exe+2A81CE: CC                          - int 3 
Factorio.exe+2A81CF: CC                          - int 3 
// ---------- INJECTING HERE ----------
Factorio.Character::canEverCraft: 40 53                       - push rbx
// ---------- DONE INJECTING  ----------
Factorio.Character::canEverCraft+2: 48 83 EC 40                 - sub rsp,40
Factorio.Character::canEverCraft+6: 48 C7 44 24 20 FE FF FF FF  - mov qword ptr [rsp+20],FFFFFFFFFFFFFFFE
Factorio.Character::canEverCraft+F: 48 8B DA                    - mov rbx,rdx
Factorio.Character::canEverCraft+12: 48 8B D1                    - mov rdx,rcx
Factorio.Character::canEverCraft+15: 48 8B 81 D8 05 00 00        - mov rax,[rcx+000005D8]
Factorio.Character::canEverCraft+1C: 48 85 C0                    - test rax,rax
Factorio.Character::canEverCraft+1F: 74 22                       - je Factorio.Character::canEverCraft+43
Factorio.Character::canEverCraft+21: 48 8B 88 B8 01 00 00        - mov rcx,[rax+Factorio.ssprintf_buffer+68]
Factorio.Character::canEverCraft+28: 48 85 C9                    - test rcx,rcx
Factorio.Character::canEverCraft+2B: 74 16                       - je Factorio.Character::canEverCraft+43
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>134997</ID>
      <Description>"Shooter::useAmmo"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Shooter::useAmmo:
  mov al,1
  ret
  nop 2

[DISABLE]

Shooter::useAmmo:
  db 48 89 5C 24 08

{
// ORIGINAL CODE - INJECTION POINT: Factorio.Shooter::useAmmo

Factorio.exe+BCD0A6: CC              - int 3 
Factorio.exe+BCD0A7: CC              - int 3 
Factorio.exe+BCD0A8: CC              - int 3 
Factorio.exe+BCD0A9: CC              - int 3 
Factorio.exe+BCD0AA: CC              - int 3 
Factorio.exe+BCD0AB: CC              - int 3 
Factorio.exe+BCD0AC: CC              - int 3 
Factorio.exe+BCD0AD: CC              - int 3 
Factorio.exe+BCD0AE: CC              - int 3 
Factorio.exe+BCD0AF: CC              - int 3 
// ---------- INJECTING HERE ----------
Factorio.Shooter::useAmmo: 48 89 5C 24 08  - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
Factorio.Shooter::useAmmo+5: 48 89 6C 24 10  - mov [rsp+10],rbp
Factorio.Shooter::useAmmo+A: 48 89 74 24 18  - mov [rsp+18],rsi
Factorio.Shooter::useAmmo+F: 57              - push rdi
Factorio.Shooter::useAmmo+10: 48 83 EC 20     - sub rsp,20
Factorio.Shooter::useAmmo+14: 0F B6 DA        - movzx ebx,dl
Factorio.Shooter::useAmmo+17: 48 8B F1        - mov rsi,rcx
Factorio.Shooter::useAmmo+1A: 48 8B 54 24 50  - mov rdx,[rsp+50]
Factorio.Shooter::useAmmo+1F: 49 8B F9        - mov rdi,r9
Factorio.Shooter::useAmmo+22: 49 8B 49 10     - mov rcx,[r9+10]
Factorio.Shooter::useAmmo+26: 49 8B E8        - mov rbp,r8
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>134996</ID>
      <Description>"Shooter::canShoot"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

Shooter::canShoot:
  mov al,0
  ret
  nop 2

[DISABLE]

Shooter::canShoot:
  db 48 89 6C 24 10

{
// ORIGINAL CODE - INJECTION POINT: Factorio.exe+BCE580

Factorio.exe+BCE55B: 45 0F 28 43 D0        - movaps xmm8,[r11-30]
Factorio.exe+BCE560: 45 0F 28 4B C0        - movaps xmm9,[r11-40]
Factorio.exe+BCE565: 45 0F 28 53 B0        - movaps xmm10,[r11-50]
Factorio.exe+BCE56A: 45 0F 28 5B A0        - movaps xmm11,[r11-60]
Factorio.exe+BCE56F: 45 0F 28 63 90        - movaps xmm12,[r11-70]
Factorio.exe+BCE574: 45 0F 28 6B 80        - movaps xmm13,[r11-80]
Factorio.exe+BCE579: 49 8B E3              - mov rsp,r11
Factorio.exe+BCE57C: 41 5E                 - pop r14
Factorio.exe+BCE57E: C3                    - ret 
Factorio.exe+BCE57F: CC                    - int 3 
// ---------- INJECTING HERE ----------
Factorio.exe+BCE580: 48 89 6C 24 10        - mov [rsp+10],rbp
// ---------- DONE INJECTING  ----------
Factorio.exe+BCE585: 48 89 74 24 18        - mov [rsp+18],rsi
Factorio.exe+BCE58A: 48 89 7C 24 20        - mov [rsp+20],rdi
Factorio.exe+BCE58F: 41 56                 - push r14
Factorio.exe+BCE591: 48 81 EC 90 00 00 00  - sub rsp,00000090
Factorio.exe+BCE598: 49 8B E9              - mov rbp,r9
Factorio.exe+BCE59B: 49 8B F0              - mov rsi,r8
Factorio.exe+BCE59E: 44 8B 42 08           - mov r8d,[rdx+08]
Factorio.exe+BCE5A2: 45 33 C9              - xor r9d,r9d
Factorio.exe+BCE5A5: 48 8B FA              - mov rdi,rdx
Factorio.exe+BCE5A8: 4C 8B F1              - mov r14,rcx
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>9</ID>
      <Description>"Disable Machine Ingredient Decrement"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-03-31
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(disableTakeIngredientsAOB,Factorio.exe,4C 89 4C 24 20 48 89 54 24 10 53 55 56 57 41 54 41 56) // should be unique

disableTakeIngredientsAOB:
  ret

registersymbol(disableTakeIngredientsAOB)

[DISABLE]

disableTakeIngredientsAOB:
  db 4C 89 4C 24 20

unregistersymbol(disableTakeIngredientsAOB)

{
// ORIGINAL CODE - INJECTION POINT: Factorio.ProductionHelper::takeIngredients

Factorio.exe+92C376: CC              - int 3 
Factorio.exe+92C377: CC              - int 3 
Factorio.exe+92C378: CC              - int 3 
Factorio.exe+92C379: CC              - int 3 
Factorio.exe+92C37A: CC              - int 3 
Factorio.exe+92C37B: CC              - int 3 
Factorio.exe+92C37C: CC              - int 3 
Factorio.exe+92C37D: CC              - int 3 
Factorio.exe+92C37E: CC              - int 3 
Factorio.exe+92C37F: CC              - int 3 
// ---------- INJECTING HERE ----------
Factorio.ProductionHelper::takeIngredients: 4C 89 4C 24 20  - mov [rsp+20],r9
// ---------- DONE INJECTING  ----------
Factorio.ProductionHelper::takeIngredients+5: 48 89 54 24 10  - mov [rsp+10],rdx
Factorio.ProductionHelper::takeIngredients+A: 53              - push rbx
Factorio.ProductionHelper::takeIngredients+B: 55              - push rbp
Factorio.ProductionHelper::takeIngredients+C: 56              - push rsi
Factorio.ProductionHelper::takeIngredients+D: 57              - push rdi
Factorio.ProductionHelper::takeIngredients+E: 41 54           - push r12
Factorio.ProductionHelper::takeIngredients+10: 41 56           - push r14
Factorio.ProductionHelper::takeIngredients+12: 41 57           - push r15
Factorio.ProductionHelper::takeIngredients+14: 48 83 EC 40     - sub rsp,40
Factorio.ProductionHelper::takeIngredients+18: 41 8B 38        - mov edi,[r8]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>134965</ID>
          <Description>"No Machine Ingredients Required"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-01
  Author : User

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(ProductionHelpercanTakeIngredientsAOB,Factorio.exe,48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 48 89 7C 24 20 41 56 41 8B) // should be unique

ProductionHelpercanTakeIngredientsAOB:
  mov al,1
  ret
  nop 2

registersymbol(ProductionHelpercanTakeIngredientsAOB)

[DISABLE]

ProductionHelpercanTakeIngredientsAOB:
  db 48 89 5C 24 08

unregistersymbol(ProductionHelpercanTakeIngredientsAOB)

{
// ORIGINAL CODE - INJECTION POINT: Factorio.ProductionHelper::canTakeIngredients

Factorio.exe+92C226: CC              - int 3 
Factorio.exe+92C227: CC              - int 3 
Factorio.exe+92C228: CC              - int 3 
Factorio.exe+92C229: CC              - int 3 
Factorio.exe+92C22A: CC              - int 3 
Factorio.exe+92C22B: CC              - int 3 
Factorio.exe+92C22C: CC              - int 3 
Factorio.exe+92C22D: CC              - int 3 
Factorio.exe+92C22E: CC              - int 3 
Factorio.exe+92C22F: CC              - int 3 
// ---------- INJECTING HERE ----------
Factorio.ProductionHelper::canTakeIngredients: 48 89 5C 24 08  - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
Factorio.ProductionHelper::canTakeIngredients+5: 48 89 6C 24 10  - mov [rsp+10],rbp
Factorio.ProductionHelper::canTakeIngredients+A: 48 89 74 24 18  - mov [rsp+18],rsi
Factorio.ProductionHelper::canTakeIngredients+F: 48 89 7C 24 20  - mov [rsp+20],rdi
Factorio.ProductionHelper::canTakeIngredients+14: 41 56           - push r14
Factorio.ProductionHelper::canTakeIngredients+16: 41 8B 18        - mov ebx,[r8]
Factorio.ProductionHelper::canTakeIngredients+19: 45 33 DB        - xor r11d,r11d
Factorio.ProductionHelper::canTakeIngredients+1C: 0F B7 79 10     - movzx edi,word ptr [rcx+10]
Factorio.ProductionHelper::canTakeIngredients+20: 49 8B F0        - mov rsi,r8
Factorio.ProductionHelper::canTakeIngredients+23: 4C 8B F2        - mov r14,rdx
Factorio.ProductionHelper::canTakeIngredients+26: 48 8B E9        - mov rbp,rcx
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>134989</ID>
      <Description>"Disable Handcraft Ingredient Requirement"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Factorio 1.1.104
  Version: 
  Date   : 2024-04-02
  Author : User

  This script does blah blah blah
}

[ENABLE]

ManualCrafter::startCrafting+2A2:
  jmp ManualCrafter::startCrafting+46C
  nop

[DISABLE]

ManualCrafter::startCrafting+2A2:
  db 0F 85 C4 01 00 00

{
// ORIGINAL CODE - INJECTION POINT: Factorio.ManualCrafter::startCrafting+2A2

Factorio.ManualCrafter::startCrafting+281: 90                 - nop 
Factorio.ManualCrafter::startCrafting+282: BA 28 00 00 00     - mov edx,Factorio.PropertyTree::numberConversionString+18
Factorio.ManualCrafter::startCrafting+287: 48 8B 4C 24 50     - mov rcx,[rsp+50]
Factorio.ManualCrafter::startCrafting+28C: E8 13 3B 2B 01     - call Factorio.exe+13DA7B4
Factorio.ManualCrafter::startCrafting+291: 90                 - nop 
Factorio.ManualCrafter::startCrafting+292: 48 8D 55 9F        - lea rdx,[rbp-61]
Factorio.ManualCrafter::startCrafting+296: 48 8B CE           - mov rcx,rsi
Factorio.ManualCrafter::startCrafting+299: E8 52 F9 FF FF     - call Factorio.ManualCrafter::buildMaterialRecipeMap
Factorio.ManualCrafter::startCrafting+29E: 90                 - nop 
Factorio.ManualCrafter::startCrafting+29F: 45 84 ED           - test r13b,r13b
// ---------- INJECTING HERE ----------
Factorio.ManualCrafter::startCrafting+2A2: 0F 85 C4 01 00 00  - jne Factorio.ManualCrafter::startCrafting+46C
// ---------- DONE INJECTING  ----------
Factorio.ManualCrafter::startCrafting+2A8: 48 8D 55 AF        - lea rdx,[rbp-51]
Factorio.ManualCrafter::startCrafting+2AC: 48 8D 4C 24 50     - lea rcx,[rsp+50]
Factorio.ManualCrafter::startCrafting+2B1: E8 8A 55 DD 00     - call "Factorio.std::_Tree&lt;std::_Tmap_traits&lt;MaterialID,double,std::less&lt;MaterialID&gt;,std::allocator&lt;std::pair&lt;MaterialID const ,double&gt; &gt;,0&gt; &gt;::_Tree&lt;std::_Tmap_traits&lt;MaterialID,double,std::less&lt;MaterialID&gt;,std::allocator&lt;std::pair&lt;MaterialID const ,double&gt; &gt;,0&gt; &gt;&lt;std::allocator&lt;std::_Tree_node&lt;std::pair&lt;MaterialID const ,double&gt;,void *&gt; &gt; &gt;"
Factorio.ManualCrafter::startCrafting+2B6: 90                 - nop 
Factorio.ManualCrafter::startCrafting+2B7: 48 8D 55 9F        - lea rdx,[rbp-61]
Factorio.ManualCrafter::startCrafting+2BB: 48 8D 4C 24 50     - lea rcx,[rsp+50]
Factorio.ManualCrafter::startCrafting+2C0: E8 1B 02 8C 00     - call Factorio.Recipe::buildItemsUpperLimits
Factorio.ManualCrafter::startCrafting+2C5: 48 8D 45 9F        - lea rax,[rbp-61]
Factorio.ManualCrafter::startCrafting+2C9: 48 89 44 24 20     - mov [rsp+20],rax
Factorio.ManualCrafter::startCrafting+2CE: 4C 8D 4C 24 50     - lea r9,[rsp+50]
}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>D2Game.0x6FD136E0
sp disable tree ui?
</Comments>
</CheatTable>
