<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>33</ID>
      <Description>"Find+Register GEngine and Show Options"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if not syntaxcheck then
  local function isValidPointer(addr)
    if not addr or addr == 0 then return false end
    if addr &lt; 0x10000 then return false end
    if addr % 8 ~= 0 then return false end
    return true
  end

  local function hasValidVTable(objectPtr)
    local success, vtable = pcall(readPointer, objectPtr)
    if not success or not isValidPointer(vtable) then
      return false
    end
    if vtable &lt; 0x100000000 or vtable &gt; 0x7FFFFFFFFFFF then
      return false
    end
    return true
  end

  local function validateGEngine(gEngineAddr)
    local enginePtr = readPointer(gEngineAddr)
    if not isValidPointer(enginePtr) or not hasValidVTable(enginePtr) then
      return false
    end
    for viewportOffset = 0x700, 0x900, 0x8 do
      local success1, viewportPtr = pcall(readPointer, enginePtr + viewportOffset)
      if success1 and isValidPointer(viewportPtr) and hasValidVTable(viewportPtr) then
        for worldOffset = 0x70, 0x100, 0x8 do
          local success2, worldPtr = pcall(readPointer, viewportPtr + worldOffset)
          if success2 and isValidPointer(worldPtr) and hasValidVTable(worldPtr) then
            for giOffset = 0x150, 0x200, 0x8 do
              local success3, giPtr = pcall(readPointer, worldPtr + giOffset)
              if success3 and isValidPointer(giPtr) and hasValidVTable(giPtr) then
                return true
              end
            end
          end
        end
      end
    end
    return false
  end

  local function findGEngine()
    local patterns = {
      {"48 8B 0D ?? ?? ?? ?? 48 85 C9 74", 3, 7},
      {"48 8B 05 ?? ?? ?? ?? 48 8B 88 ?? ?? ?? ??", 3, 7},
      {"48 8B 0D ?? ?? ?? ?? 48 8B 01 FF", 3, 7},
      {"48 89 0D ?? ?? ?? ?? 48 85 C9", 3, 7},
      {"48 8B 05 ?? ?? ?? ?? 48 85 C0 74", 3, 7},
      {"48 8B 0D ?? ?? ?? ?? 4C 8B 01", 3, 7},
      {"4C 8B 05 ?? ?? ?? ?? 4C 85 C0", 3, 7},
      {"48 8B 15 ?? ?? ?? ?? 48 85 D2 74", 3, 7},
    }
    print("Scanning for GEngine...")
    local candidateCounts = {}
    for i, patternData in ipairs(patterns) do
      local pattern = patternData[1]
      local offsetPos = patternData[2]
      local instrLen = patternData[3]
      local result = AOBScan(pattern, "+X")
      if result and result.Count &gt; 0 then
        local maxCheck = math.min(result.Count, 50)
        for j = 0, maxCheck - 1 do
          pcall(function()
            local instructionAddrStr = result.getString(j)
            local instructionAddr = getAddress(instructionAddrStr)
            local offsetAddr = instructionAddr + offsetPos
            local ripOffset = readInteger(offsetAddr)
            local gEngineAddr = instructionAddr + instrLen + ripOffset
            if validateGEngine(gEngineAddr) then
              candidateCounts[gEngineAddr] = (candidateCounts[gEngineAddr] or 0) + 1
            end
          end)
        end
        result.destroy()
      end
    end

    local bestAddr = nil
    local bestCount = 0
    for addr, count in pairs(candidateCounts) do
      print(string.format("  %X: %d patterns", addr, count))
      if count &gt; bestCount then
        bestAddr = addr
        bestCount = count
      end
    end
    if bestAddr then
      registerSymbol("GEngine", bestAddr, true)
      print(string.format("GEngine registered: %X", bestAddr))
      return true
    end
    print("GEngine not found!")
    return false
  end
  findGEngine()
end
{$asm}

[DISABLE]
{$lua}
if not syntaxcheck then
  if getAddress("GEngine") then
    unregisterSymbol("GEngine")
    print("GEngine unregistered")
  end
end
{$asm}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>31</ID>
          <Description>"Player Stuff"</Description>
          <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>20</ID>
              <Description>"MovementMode (1,3,5)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>201</Offset>
                <Offset>328</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>21</ID>
              <Description>"CollisionEnabled (3,0)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>3C0</Offset>
                <Offset>330</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"SPACE - up | CTRL - down (enable flight)"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
{$lua}
if not syntaxcheck then
  -- Clean up any existing hotkeys/timers first
  if _G.verticalMoveTimer then
    _G.verticalMoveTimer.destroy()
    _G.verticalMoveTimer = nil
  end
  local upVelocity = 500.0
  local downVelocity = -500.0
  local function getZVelocityAddress()
    local gEngine = getAddress("GEngine")
    if not gEngine then return nil end
    local addr = readPointer(gEngine)
    if not addr then return nil end
    addr = readPointer(addr + 0xA58)
    if not addr then return nil end
    addr = readPointer(addr + 0x78)
    if not addr then return nil end
    addr = readPointer(addr + 0x1B8)
    if not addr then return nil end
    addr = readPointer(addr + 0x38)
    if not addr then return nil end
    addr = readPointer(addr + 0x0)
    if not addr then return nil end
    addr = readPointer(addr + 0x30)
    if not addr then return nil end
    addr = readPointer(addr + 0x2D8)
    if not addr then return nil end
    addr = readPointer(addr + 0x328)
    if not addr then return nil end
    return addr + 0xC8
  end
  local function updateVelocity()
    local addr = getZVelocityAddress()
    if not addr then return end
    local spacePressed = isKeyPressed(VK_SPACE)
    local ctrlPressed = isKeyPressed(VK_CONTROL)
    if spacePressed and not ctrlPressed then
      writeDouble(addr, upVelocity)
    elseif ctrlPressed and not spacePressed then
      writeDouble(addr, downVelocity)
    else
      writeDouble(addr, 0)
    end
  end
  _G.verticalMoveTimer = createTimer(nil)
  _G.verticalMoveTimer.Interval = 10
  _G.verticalMoveTimer.OnTimer = updateVelocity
  _G.verticalMoveTimer.Enabled = true
  print("Vertical movement enabled!")
end
{$asm}
[DISABLE]
{$lua}
if not syntaxcheck then
  if _G.verticalMoveTimer then
    _G.verticalMoveTimer.Enabled = false
    _G.verticalMoveTimer.destroy()
    _G.verticalMoveTimer = nil
  end
  -- Reset velocity
  local function getZVelocityAddress()
    local gEngine = getAddress("GEngine")
    if not gEngine then return nil end
    local addr = readPointer(gEngine)
    if not addr then return nil end
    addr = readPointer(addr + 0xA58)
    if not addr then return nil end
    addr = readPointer(addr + 0x78)
    if not addr then return nil end
    addr = readPointer(addr + 0x1B8)
    if not addr then return nil end
    addr = readPointer(addr + 0x38)
    if not addr then return nil end
    addr = readPointer(addr + 0x0)
    if not addr then return nil end
    addr = readPointer(addr + 0x30)
    if not addr then return nil end
    addr = readPointer(addr + 0x2D8)
    if not addr then return nil end
    addr = readPointer(addr + 0x328)
    if not addr then return nil end
    return addr + 0xC8
  end
  local addr = getZVelocityAddress()
  if addr then
    writeDouble(addr, 0)
  end
  print("Vertical movement disabled")
end
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>24</ID>
              <Description>"CustomTimeDilation"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>064</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>2</ID>
              <Description>"Current HP (getting hit from behind instakills)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>0A8</Offset>
                <Offset>6A8</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>3</ID>
              <Description>"CurrentStamina"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>768</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>4</ID>
              <Description>"StaminaExhaustRate"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>770</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>5</ID>
              <Description>"StaminaRecoveryRate"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>778</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>36</ID>
              <Description>"MaxInteractDistance"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>BC0</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>35</ID>
              <Description>"FallHeight (idk if fall damage is real)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>798</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>7</ID>
              <Description>"JumpHeight (can you even jump?)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>848</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>8</ID>
              <Description>"Lean (you can lean???)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>850</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>34</ID>
              <Description>"isFiringBlocked (kinda works?)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>9F8</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>17</ID>
              <Description>"BreathCount (what even is this)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>AF0</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"EnemyDeathCount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>C08</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"Current Weapon Stuff"</Description>
          <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>25</ID>
              <Description>"StoredRecoil (freeze me at 0)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>450</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>11</ID>
              <Description>"DT_Ammo Mag (freeze me)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>428</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"DT_Ammo Bag"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>42C</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>14</ID>
              <Description>"MaxAmmo"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>438</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>30</ID>
              <Description>"DT_Firemode (0 semi, 1 burst, 2 full auto)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>421</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>28</ID>
              <Description>"DT_RPM (recommended value= 0.03)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>460</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>26</ID>
              <Description>"DT_MaxRange"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>4F8</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>27</ID>
              <Description>"DT_Damage"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>500</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>29</ID>
              <Description>"Shot Count (statistic, useless)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>440</Offset>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>32</ID>
          <Description>"info (useless unless unreal engine dumping)"</Description>
          <Options moHideChildren="1" moManualExpandCollapse="1" moAllowManualCollapseAndExpand="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>0</ID>
              <Description>"Pawn (CBP_MPS_A_C)"</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>8 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>1</ID>
              <Description>"AcknowledgedPawn (CBP_MPS_A_C)"</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>8 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>340</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>10</ID>
              <Description>"ActiveWeapon (BP_Weapon_Master_C)"</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>8 Bytes</VariableType>
              <Address>GEngine</Address>
              <Offsets>
                <Offset>860</Offset>
                <Offset>2D8</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1B8</Offset>
                <Offset>78</Offset>
                <Offset>A58</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
