<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="52">
  <CheatEntries>
    <CheatEntry NoCheckbox="1">
      <ID>3744</ID>
      <Description>"━━━━━━━━ Gravity Circuit ━━━━━━━━"</Description>
      <Color>00FFFF</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
    <CheatEntry>
      <ID>3746</ID>
      <Description>"━━━━━━━━ 🖥️ COMPACT VIEW ━━━━━━━━"</Description>
      <Color>00FFFF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
// Script Created By mgr.inz.Player On CE Forums
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>13</ID>
      <Description>"━━━━━━━━ 🧍 PLAYER ━━━━━━━━"</Description>
      <Options moHideChildren="1"/>
      <Color>00FF00</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,$400)
alloc(stateStore,8)
alloc(cmd,1024)
alloc(doit,8)
registersymbol(stateStore)
registersymbol(cmd)
registersymbol(doit)
registersymbol(gettopHook)

stateStore:
  dq 0
doit:
  dq 0
cmd:
  db 'a=1',0

label(gettopHook)
label(code)
label(skip)

newmem:
  mov [stateStore],rcx
  cmp qword ptr [doit],0
  je skip
  push rbp
  mov rbp,rsp
  and rsp,-10
  sub rsp,20
  mov qword ptr [doit],0
  mov rcx,[stateStore]
  lea rdx,[cmd]
  call lua51.luaL_loadstring
  mov rcx,[stateStore]
  xor edx,edx
  mov r8d,0FFFFFFFF
  xor r9d,r9d
  call lua51.lua_pcall
  mov rsp,rbp
  pop rbp
skip:
  mov rcx,[stateStore]
code:
  mov rax,[rcx+28]
  sub rax,[rcx+20]
  sar rax,03
  ret

lua51.lua_gettop:
gettopHook:
  jmp newmem

[DISABLE]
lua51.lua_gettop:
  db 48 8B 41 28 48 2B 41 20 48 C1 F8 03 C3
unregistersymbol(stateStore)
unregistersymbol(cmd)
unregistersymbol(doit)
unregistersymbol(gettopHook)
dealloc(cmd)
dealloc(doit)
dealloc(stateStore)
dealloc(newmem)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>21</ID>
          <Description>"Invincibility"</Description>
          <Options moHideChildren="1"/>
          <Color>00FF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end

local timer = createTimer(nil)
timer.Interval = 100
timer.OnTimer = function()
  execLua([[
    local a = GetActor(1)
    if a then
      a:setInvincible(true)
      a.invulnerable = true
      a.invincibleFrames = 9999
      a.hurtCooldown = 0
    end
  ]])
end
timer.Enabled = true
__invincible_timer = timer
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __invincible_timer then
  __invincible_timer.destroy()
  __invincible_timer = nil
end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end
execLua([[
  local a = GetActor(1)
  if a then
    a:setInvincible(false)
    a.invulnerable = false
    a.invincibleFrames = 0
  end
]])
{$asm}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"Infinite Health"</Description>
          <Color>00FF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end
execLua("local a=GetActor(1) if a then a.INFINITE_HEALTH_ENABLED=true a.health=a.maxhealth end")
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end
execLua("local a=GetActor(1) if a then a.INFINITE_HEALTH_ENABLED=false end")
{$asm}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"Hover Mode (V key toggle) Fly Up (Z key) Fly Down (X key)"</Description>
          <Options moAlwaysHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
          <Color>00FF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end

local hover = false
local lastV = false
local hoverY = nil

local timer = createTimer(nil)
timer.Interval = 16
timer.OnTimer = function()
  local vKey = isKeyPressed(0x56)
  if vKey and not lastV then
    hover = not hover
    if not hover then hoverY = nil end
  end
  lastV = vKey

  if hover then
    if hoverY == nil then
      execLua("local a=GetActor(1) if a then __hoverY=a:getY() end")
      hoverY = true
    end
    execLua("local a=GetActor(1) if a and __hoverY then a:setY(__hoverY) if a.velocity and a.velocity.vertical then a.velocity.vertical.current=0 end end")
  end
end
timer.Enabled = true
__hover_timer = timer
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __hover_timer then
  __hover_timer.destroy()
  __hover_timer = nil
end
{$asm}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>15</ID>
              <Description>"Fly Up (Z key)"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end

local timer = createTimer(nil)
timer.Interval = 16
timer.OnTimer = function()
  if isKeyPressed(0x5A) then
    execLua("local a=GetActor(1) if a then a:setY(a:getY()-5) if a.velocity and a.velocity.vertical then a.velocity.vertical.current=0 end end")
  end
end
timer.Enabled = true
__flyup_timer = timer
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __flyup_timer then
  __flyup_timer.destroy()
  __flyup_timer = nil
end
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>16</ID>
              <Description>"Fly Down (X key)"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end

local timer = createTimer(nil)
timer.Interval = 16
timer.OnTimer = function()
  if isKeyPressed(0x58) then
    execLua("local a=GetActor(1) if a then a:setY(a:getY()+5) if a.velocity and a.velocity.vertical then a.velocity.vertical.current=0 end end")
  end
end
timer.Enabled = true
__flydown_timer = timer
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __flydown_timer then
  __flydown_timer.destroy()
  __flydown_timer = nil
end
{$asm}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>18</ID>
          <Description>"Money"</Description>
          <Options moHideChildren="1"/>
          <Color>00FF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end

local h0 = createHotkey(function() execLua("local c=Money.get() Money.remove(c)") end, 0x60)
local h1 = createHotkey(function() execLua("Money.add(100)") end, 0x61)
local h2 = createHotkey(function() execLua("Money.add(1000)") end, 0x62)
local h3 = createHotkey(function() execLua("Money.remove(100)") end, 0x63)
local h4 = createHotkey(function() execLua("Money.remove(1000)") end, 0x64)

__money_hotkeys = {h0, h1, h2, h3, h4}
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __money_hotkeys then
  for _, h in ipairs(__money_hotkeys) do
    if h then h.destroy() end
  end
  __money_hotkeys = nil
end
{$asm}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>19</ID>
              <Description>"(Num0=Zero Num1=+100 Num2=+1000 Num3=-100 Num4=-1000)"</Description>
              <Color>00FF00</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"Super Jump"</Description>
          <Options moHideChildren="1"/>
          <Color>00FF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

-- CHANGE THIS VALUE TO ADJUST JUMP HEIGHT (5 = low, 15 = medium, 30 = high)
JUMP_HEIGHT = 15

local function execLua(cmd)
  local cmdAddr = getAddress("cmd")
  local doitAddr = getAddress("doit")
  if readQword(doitAddr) == 0 then
    writeString(cmdAddr, cmd)
    writeByte(cmdAddr + #cmd, 0)
    writeQword(doitAddr, 1)
    return true
  end
  return false
end

local lastY = false

local timer = createTimer(nil)
timer.Interval = 16
timer.OnTimer = function()
  local yKey = isKeyPressed(0x59)  -- Y key
  if yKey and not lastY then
    execLua(string.format("local a=GetActor(1) if a then a:setY(a:getY()-%d) if a.velocity and a.velocity.vertical then a.velocity.vertical.current=-%d end end", JUMP_HEIGHT, JUMP_HEIGHT))
  end
  lastY = yKey
end
timer.Enabled = true
__jump_timer = timer
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __jump_timer then
  __jump_timer.destroy()
  __jump_timer = nil
end
{$asm}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>3757</ID>
      <Description>"━━━━━━━━ 🔧 DEBUG ━━━━━━━━━"</Description>
      <Options moHideChildren="1"/>
      <Color>800080</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>10</ID>
          <Description>"└─ Lua Hook"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Lua State Hijack - GravityCircuit x64 - runs on game's own thread }

[ENABLE]
alloc(newmem,$400)
alloc(stateStore,8)
alloc(cmd,1024)
alloc(doit,8)
registersymbol(stateStore)
registersymbol(cmd)
registersymbol(doit)
registersymbol(gettopHook)

stateStore:
  dq 0
doit:
  dq 0
cmd:
  db 'a=1',0

label(gettopHook)
label(code)
label(skip)

newmem:
  mov [stateStore],rcx
  cmp qword ptr [doit],0
  je skip
  push rbp
  mov rbp,rsp
  and rsp,-10
  sub rsp,20
  mov qword ptr [doit],0
  mov rcx,[stateStore]
  lea rdx,[cmd]
  call lua51.luaL_loadstring
  mov rcx,[stateStore]
  xor edx,edx
  mov r8d,0FFFFFFFF
  xor r9d,r9d
  call lua51.lua_pcall
  mov rsp,rbp
  pop rbp
skip:
  mov rcx,[stateStore]
code:
  mov rax,[rcx+28]
  sub rax,[rcx+20]
  sar rax,03
  ret

lua51.lua_gettop:
gettopHook:
  jmp newmem

[DISABLE]
lua51.lua_gettop:
  db 48 8B 41 28 48 2B 41 20 48 C1 F8 03 C3
unregistersymbol(stateStore)
unregistersymbol(cmd)
unregistersymbol(doit)
unregistersymbol(gettopHook)
dealloc(cmd)
dealloc(doit)
dealloc(stateStore)
dealloc(newmem)
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>11</ID>
              <Description>"Hacks"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Gravity Circuit Trainer
  Requires the lua_gettop hijack hook ENABLED first.
  Z = rise   X = descend   V = toggle hover
  Numpad 0 = money to 0   1 = +100   2 = +1000   3 = -100   4 = -1000 }

[ENABLE]
{$lua}
if syntaxcheck then return end

__GC_kick = createTimer(getMainForm())
__GC_kick.Interval = 1
__GC_kick.OnTimer = function()
  __GC_kick.destroy(); __GC_kick = nil

  local mf = getMainForm()
  if __GC_timer then __GC_timer.destroy() end
  if __GC_money then for _,h in ipairs(__GC_money) do h.destroy() end end
  __GC_money = {}
  __GC_infhp = true
  __GC_hover, __GC_hoverSet, __GC_lastHK = false, false, false

  local RISE, FALL = 5, 5      -- fly speed per tick

  local function run(s)
    local cmdA, doitA = getAddress("cmd"), getAddress("doit")
    if readQword(doitA) ~= 0 then return false end
    writeString(cmdA, s); writeByte(cmdA + #s, 0); writeQword(doitA, 1)
    return true
  end

  __GC_timer = createTimer(mf)
  __GC_timer.Interval = 16
  __GC_timer.OnTimer = function()
    local hk = isKeyPressed(0x56)
    if hk and not __GC_lastHK then __GC_hover = not __GC_hover; __GC_hoverSet = false end
    __GC_lastHK = hk

    local parts = {"local a=GetActor(1) if a then"}
    if __GC_infhp then
      parts[#parts+1] = "a.INFINITE_HEALTH_ENABLED=true a.health=a.maxhealth"
    end

    local killgrav = "if a.velocity and a.velocity.vertical then a.velocity.vertical.current=0 end"

    local dy = 0
    if isKeyPressed(0x5A) then dy = -RISE end
    if isKeyPressed(0x58) then dy =  FALL end

    if dy ~= 0 then
      parts[#parts+1] = string.format("a:setY(a:getY()+(%d)) %s", dy, killgrav)
      if __GC_hover then parts[#parts+1] = "__hoverY=a:getY()" end
    elseif __GC_hover then
      if not __GC_hoverSet then parts[#parts+1]="__hoverY=a:getY()"; __GC_hoverSet=true end
      parts[#parts+1] = "if __hoverY then a:setY(__hoverY) "..killgrav.." end"
    end
    parts[#parts+1] = "end"

    local cmdA, doitA = getAddress("cmd"), getAddress("doit")
    if readQword(doitA) == 0 then
      local s = table.concat(parts, " ")
      writeString(cmdA, s); writeByte(cmdA + #s, 0); writeQword(doitA, 1)
    end
  end

  local function bind(vk, luastr)
    __GC_money[#__GC_money+1] = createHotkey(function() run(luastr) end, vk)
  end
  bind(0x60, "local c=Money.get() Money.remove(c)")
  bind(0x61, "Money.add(100)")
  bind(0x62, "Money.add(1000)")
  bind(0x63, "Money.remove(100)")
  bind(0x64, "Money.remove(1000)")

  print("[trainer] running -- Z=up X=down V=hover | Num0/1/2/3/4 money")
end
return true
{$asm}

[DISABLE]
{$lua}
if syntaxcheck then return end
if __GC_kick  then __GC_kick.destroy();  __GC_kick=nil  end
if __GC_timer then __GC_timer.destroy(); __GC_timer=nil end
if __GC_money then for _,h in ipairs(__GC_money) do h.destroy() end __GC_money=nil end
local cmdA, doitA = getAddress("cmd"), getAddress("doit")
local s="local a=GetActor(1) if a then a.INFINITE_HEALTH_ENABLED=false end"
writeString(cmdA,s); writeByte(cmdA+#s,0); writeQword(doitA,1)
return true
{$asm}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry NoCheckbox="1">
      <ID>3750</ID>
      <Description>"━━━━━━━━ 📡 Links ━━━━━━━━"</Description>
      <Color>FFFF00</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry NoScriptTag="1">
          <ID>3751</ID>
          <Description>"├─ YouTube"</Description>
          <Color>FFFF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
[ENABLE]
shellExecute("https://www.youtube.com/@SeryogaSK");
createThread(function();sleep(100);memrec.Active=false;end);
[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry NoScriptTag="1">
          <ID>3752</ID>
          <Description>"├─ OCT PROFILE"</Description>
          <Color>FFFF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
[ENABLE]
shellExecute("https://opencheattables.com/memberlist.php?mode=viewprofile&amp;u=6096");
createThread(function();sleep(100);memrec.Active=false;end);
[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry NoScriptTag="1">
          <ID>3758</ID>
          <Description>"├─ savagethehacker (Original) Table"</Description>
          <Color>FFFF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
[ENABLE]
shellExecute("https://opencheattables.com/viewtopic.php?p=5204#p5204");
createThread(function();sleep(100);memrec.Active=false;end);
[DISABLE]
</AssemblerScript>
        </CheatEntry>
        <CheatEntry NoScriptTag="1">
          <ID>3753</ID>
          <Description>"└─ Website"</Description>
          <Color>FFFF00</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
[ENABLE]
shellExecute("https://habibrahimov.com");
createThread(function();sleep(100);memrec.Active=false;end);
[DISABLE]
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry NoCheckbox="1">
      <ID>3755</ID>
      <Description>"━━━━━━━━ 📜 Last Update ━━━━━━━━"</Description>
      <Color>00FFFF</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry NoCheckbox="1">
          <ID>3756</ID>
          <Description>"└─ 10.06.2026"</Description>
          <Color>00FFFF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>-- Cheat Table Decorator
function decorateSSKTable()
  local mainForm = getMainForm()

  -- Main Form Styling
  mainForm.Caption = 'Gravity Circuit (Steam) - Enhanced Table [by SeryogaSK] {Habibrahimov.com}'
  mainForm.Color = 0x2B2B2B  -- Dark background
  mainForm.Font.Color = 0xE6E6E6 -- Light text
  getAutoAttachList().add("GravityCircuit.exe")
end

-- Execute when table loads
decorateSSKTable()



</LuaScript>
</CheatTable>
