<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Star Fire: Eternal Cycle"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{  Game Executable   : StarFire.exe
   Script Date       : 2025-09-11
   Author            : Sianz
}

[ENABLE]
{$lua}
if syntaxcheck then return end
--attach procress 
if getProcessIDFromProcessName("StarFire.exe") ~= nil then 
openProcess("StarFire.exe")
else 
showMessage("StarFire.exe not found.") 
disableCheat() 
end
{$asm}
[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"Build 19939874"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>59</ID>
              <Description>"Invincibility"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{  Game Executable   : StarFire.exe
   Script Date       : 2025-09-11
   Author            : Sianz
}

[ENABLE]

aobscanmodule(invis,GameAssembly.dll,FF 8E F8 00 00 00) // should be unique
alloc(newmem,$1000,invis)

label(code)
label(return)

newmem:
code:
  jmp return

invis:
  jmp newmem
  nop
return:
registersymbol(invis)

[DISABLE]

invis:
  db FF 8E F8 00 00 00

unregistersymbol(invis)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>72</ID>
              <Description>"Damage"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{  Game Executable   : StarFire.exe
   Script Date       : 2025-09-11
   Author            : Sianz
}

[ENABLE]

aobscanmodule(damage,GameAssembly.dll,C3 CC F3 0F 10 41 30) // should be unique
alloc(newmem,$1000,damage)
alloc(mydmg,8)
label(code)
label(return)

mydmg:
dd (float)999999

newmem:
  cmp dword ptr [rcx+1D8],#2
  jne code
  cmp dword ptr [rcx+6D8],#2
  jne code
  movss xmm1,[mydmg]
  movss [rcx+30],xmm1
code:
  movss xmm0,[rcx+30]
  jmp return

damage+02:
  jmp newmem
return:
registersymbol(damage mydmg)

[DISABLE]

damage+02:
  db F3 0F 10 41 30

unregistersymbol(*)
dealloc(*)
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>73</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>mydmg</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>35</ID>
              <Description>"Pointer"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{  Game Executable   : StarFire.exe
   Script Date       : 2025-09-11
   Author            : Sianz
}

[ENABLE]

aobscanmodule(pData,GameAssembly.dll,48 8B 88 B8 00 00 00 0F 10 71 58) // should be unique
alloc(newmem,$1000,pData)
alloc(stats2,8)
label(code)
label(return skip2)

newmem:
  test rax,rax
  je skip2
  mov [stats2],rax
  skip2:
code:
  mov rcx,[rax+000000B8]
  jmp return

pData:
  jmp newmem
  nop 2
return:
registersymbol(pData stats2)

[DISABLE]

pData:
  db 48 8B 88 B8 00 00 00

unregistersymbol(*)
dealloc(*)
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>38</ID>
                  <Description>"Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>stats2</Address>
                  <Offsets>
                    <Offset>D0</Offset>
                    <Offset>20</Offset>
                    <Offset>D0</Offset>
                    <Offset>0</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>45</ID>
                  <Description>"Rage Energy"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>stats2</Address>
                  <Offsets>
                    <Offset>170</Offset>
                    <Offset>78</Offset>
                    <Offset>F0</Offset>
                    <Offset>10</Offset>
                    <Offset>E8</Offset>
                    <Offset>8</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>74</ID>
              <Description>"Infinite Items"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : StarFire.exe
  Date   : 2025-09-14
  Author : Sianz
}

[ENABLE]

aobscanmodule(items,GameAssembly.dll,8B 43 30 0F 28 C6 89) // should be unique
alloc(newmem,$1000,items)

label(code)
label(return)

newmem:
  test rbx,rbx
  je code
  cmp byte ptr [rbx+81], 1
  jne code
  cmp qword ptr [rbx+70], 0
  je code
  push rax
  mov rax, qword ptr [rbx+70]
  cmp dword ptr [rax+10], 8
  pop rax
  jne code
  mov dword ptr [rbx+30],(float)1000000.0
code:
  mov eax,[rbx+30]
  movaps xmm0,xmm6
  jmp return

items:
  jmp newmem
  nop
return:
registersymbol(items)

[DISABLE]

items:
  db 8B 43 30 0F 28 C6

unregistersymbol(items)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
