<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>16</ID>
      <Description>"UWorld Find"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>// Game Executable   : KingOfBones.exe
// Author            : admin
// Executable Version: 5.4.4.0
// Module Version    : 
// Script Date       : 2026-03-03
// Created with      : customAOBInjectionTemplates version: 1.3.6
[ENABLE]
aobscanmodule(aob_Uworld,KingOfBones.exe,488B??????????8B??4C????????????85??74??4C??????488B)
registersymbol(GWORLD)
label(GWORLD)
aob_Uworld+7+(LONG)[aob_Uworld+3]:
GWORLD:
registersymbol(aob_Uworld)


[DISABLE]

unregistersymbol(GWORLD)
unregistersymbol(aob_Uworld)


{
// ORIGINAL CODE - INJECTION POINT: KingOfBones.exe+5FC1726

KingOfBones.exe+5FC16D9: 48 8D 0D 6B 89 88 0B  - lea rcx,[KingOfBones.exe+1184A04B]
KingOfBones.exe+5FC16E0: E8 CB 63 F2 07        - call KingOfBones.exe+DEE7AB0
KingOfBones.exe+5FC16E5: 84 C0                 - test al,al
KingOfBones.exe+5FC16E7: 74 0E                 - je KingOfBones.exe+5FC16F7
KingOfBones.exe+5FC16E9: 90                    - nop 
KingOfBones.exe+5FC16EA: CC                    - int 3 
KingOfBones.exe+5FC16EB: 48 8D 73 34           - lea rsi,[rbx+34]
KingOfBones.exe+5FC16EF: 4C 8D 7B 30           - lea r15,[rbx+30]
KingOfBones.exe+5FC16F3: 4C 8D 73 08           - lea r14,[rbx+08]
KingOfBones.exe+5FC16F7: 48 39 3D A2 17 91 0B  - cmp [KingOfBones.exe+118D2EA0],rdi
KingOfBones.exe+5FC16FE: 75 26                 - jne KingOfBones.exe+5FC1726
KingOfBones.exe+5FC1700: 4C 8D 0D D5 7A F7 07  - lea r9,[KingOfBones.exe+DF391DC]
KingOfBones.exe+5FC1707: 41 B8 43 00 00 00     - mov r8d,00000043
KingOfBones.exe+5FC170D: 48 8D 15 0C D8 9D 08  - lea rdx,[KingOfBones.exe+E99EF20]
KingOfBones.exe+5FC1714: 48 8D 0D 3D D9 9D 08  - lea rcx,[KingOfBones.exe+E99F058]
KingOfBones.exe+5FC171B: E8 C0 34 53 FB        - call KingOfBones.exe+14F4BE0
KingOfBones.exe+5FC1720: 84 C0                 - test al,al
KingOfBones.exe+5FC1722: 74 02                 - je KingOfBones.exe+5FC1726
KingOfBones.exe+5FC1724: 90                    - nop 
KingOfBones.exe+5FC1725: CC                    - int 3 
// ---------- INJECTING HERE ----------
KingOfBones.exe+5FC1726: 48 8B 05 73 17 91 0B  - mov rax,[KingOfBones.exe+118D2EA0]
// ---------- DONE INJECTING  ----------
KingOfBones.exe+5FC172D: 8B 0E                 - mov ecx,[rsi]
KingOfBones.exe+5FC172F: 4C 8B A0 50 02 00 00  - mov r12,[rax+00000250]
KingOfBones.exe+5FC1736: 85 C9                 - test ecx,ecx
KingOfBones.exe+5FC1738: 74 34                 - je KingOfBones.exe+5FC176E
KingOfBones.exe+5FC173A: 4C 63 6B 30           - movsxd  r13,dword ptr [rbx+30]
KingOfBones.exe+5FC173E: 48 8B 13              - mov rdx,[rbx]
KingOfBones.exe+5FC1741: 49 8B C5              - mov rax,r13
KingOfBones.exe+5FC1744: 48 03 C0              - add rax,rax
KingOfBones.exe+5FC1747: 4C 63 44 C2 04        - movsxd  r8,dword ptr [rdx+rax*8+04]
KingOfBones.exe+5FC174C: 8D 41 FF              - lea eax,[rcx-01]
KingOfBones.exe+5FC174F: 45 89 07              - mov [r15],r8d
KingOfBones.exe+5FC1752: 89 06                 - mov [rsi],eax
KingOfBones.exe+5FC1754: 85 C0                 - test eax,eax
KingOfBones.exe+5FC1756: 0F 84 57 01 00 00     - je KingOfBones.exe+5FC18B3
KingOfBones.exe+5FC175C: 49 8B C0              - mov rax,r8
KingOfBones.exe+5FC175F: 48 03 C0              - add rax,rax
KingOfBones.exe+5FC1762: C7 04 C2 FF FF FF FF  - mov [rdx+rax*8],FFFFFFFF
KingOfBones.exe+5FC1769: E9 45 01 00 00        - jmp KingOfBones.exe+5FC18B3
KingOfBones.exe+5FC176E: 44 8B 6B 08           - mov r13d,[rbx+08]
KingOfBones.exe+5FC1772: 41 8D 45 01           - lea eax,[r13+01]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>18</ID>
          <Description>"Player"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>0000FF</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
if syntaxcheck then return end

[ENABLE]

ArenaManagerOffsetCE = allocateMemory(0x4)
registerSymbol('ArenaManagerOff', ArenaManagerOffsetCE)

isMaxHealth = allocateMemory(0x4)
registerSymbol('MaxHealth',isMaxHealth)

isMaxStamina = allocateMemory(0x4)
registerSymbol('MaxStamina',isMaxStamina)

isNoStun = allocateMemory(0x4)
registerSymbol('NoStun',isNoStun)

isMaxChargingPower = allocateMemory(0x4)
registerSymbol('MaxChargingPower',isMaxChargingPower)

isQuickRagdoll = allocateMemory(0x4)
registerSymbol('QuickRagdoll',isQuickRagdoll)

isNoAttackCooldown = allocateMemory(0x4)
registerSymbol('NoAttackCooldown',isNoAttackCooldown)

FeaturesTimer = createTimer()
FeaturesTimer.setInterval(10)
FeaturesTimer.onTimer = function(features_F)
  local world = readPointer('GWORLD') -- KingOfBones.exe+118D2EA0
  if not world then return disable("World not found") end
  local OwningGameInstance = readPointer(world + 0x1E0)
  if OwningGameInstance == 0 or OwningGameInstance == nil then goto skip end
  local CurrentMapKey = readByte(OwningGameInstance + 0x358)
  local ArenaManagerOffset = getArenaManagerOffsetA(CurrentMapKey)
  WriteInteger('ArenaManagerOff', ArenaManagerOffset)
  local ULocalPlayerArray = readPointer(OwningGameInstance + 0x38)
  if ULocalPlayerArray == 0 or ULocalPlayerArray == nil then goto skip end
  local ULocalPlayer = readPointer(ULocalPlayerArray + 0x0)
  if ULocalPlayer == 0 or ULocalPlayer == nil then goto skip end
  local APlayerController = readPointer(ULocalPlayer + 0x30)
  if APlayerController == 0 or APlayerController == nil then goto skip end
  local AcknowledgedPawn = readPointer(APlayerController + 0x360)
  if AcknowledgedPawn == 0 or AcknowledgedPawn == nil then goto skip end
  isMaxHealthValue = readInteger('MaxHealth')
  isMaxStaminaValue = readInteger('MaxStamina')
  isNoStunValue = readInteger('NoStun')
  isMaxChargingPowerValue = readInteger('MaxChargingPower')
  isQuickRagdollValue = readInteger('QuickRagdoll')
  isNoAttackCooldownValue = readInteger('NoAttackCooldown')
  local UBPC_Vitals_C = readPointer(AcknowledgedPawn + 0x6F8)

  if isMaxHealthValue == 1 then
     MaxHealth = readDouble(UBPC_Vitals_C + 0x160)
     writeDouble(UBPC_Vitals_C + 0x168, MaxHealth)
  end
  if isMaxStaminaValue == 1 then
     writeDouble(UBPC_Vitals_C + 0xB0,1)
  end
  if isNoStunValue == 1 then
     writeDouble(UBPC_Vitals_C + 0x218,0)
  end
  if isMaxChargingPowerValue == 1 then
     writeDouble(AcknowledgedPawn + 0xE50,1)
  end
  if isQuickRagdollValue == 1 then
     writeDouble(AcknowledgedPawn + 0xDA8,0)
  end
  if isNoAttackCooldownValue == 1 then
     writeByte(AcknowledgedPawn + 0xE24,0)
  end




  ::skip::
end


function getArenaManagerOffsetA(CurrentMapKey)
   if CurrentMapKey == 0 then return 0x248 end
   if CurrentMapKey == 1 then return 0x2C8 end
   if CurrentMapKey == 2 then return 0x148 end
   if CurrentMapKey == 4 then return 0x2D8 end
   if CurrentMapKey == 6 then return 0x3E0 end
   if CurrentMapKey == 3 then return 0x148 end
   if CurrentMapKey == 8 then return 0x190 end
   if CurrentMapKey == 7 then return 0x2F0 end
   return 0x248
end

function disable(Message)
  FeaturesTimer.destroy()
  memrec.Active = false
  if Message then error(Message) end
end

 
 
[DISABLE]
   disable()
   unregisterSymbol('MaxHealth')
   deAlloc(isMaxHealth)
   unregisterSymbol('MaxStamina')
   deAlloc(isMaxStamina)
   unregisterSymbol('NoStun')
   deAlloc(isNoStun)
   unregisterSymbol('MaxChargingPower')
   deAlloc(isMaxChargingPower)
   unregisterSymbol('QuickRagdoll')
   deAlloc(isQuickRagdoll)
   unregisterSymbol('NoAttackCooldown')
   deAlloc(isNoAttackCooldown)
   unregisterSymbol('ArenaManagerOff')
   deAlloc(ArenaManagerOffsetCE)


</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>49</ID>
              <Description>"Scripts"</Description>
              <Options moHideChildren="1"/>
              <Color>800000</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>19</ID>
                  <Description>"Inf Health"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
 MaxStamina:
  dd 1



[DISABLE]
  MaxStamina:
  dd 0
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>20</ID>
                  <Description>"Inf Stamina"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
MaxHealth:
  dd 1



[DISABLE]
  MaxHealth:
  dd 0
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>21</ID>
                  <Description>"No Stun"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
NoStun:
  dd 1



[DISABLE]
NoStun:
  dd 0
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>22</ID>
                  <Description>"Inf Charge Power"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
MaxChargingPower:
  dd 1



[DISABLE]
MaxChargingPower:
  dd 0
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>23</ID>
                  <Description>"Quick Ragdoll"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
QuickRagdoll:
  dd 1



[DISABLE]
QuickRagdoll:
  dd 0
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>24</ID>
                  <Description>"No Attack Cooldown"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
NoAttackCooldown:
  dd 1



[DISABLE]
NoAttackCooldown:
  dd 0
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1</ID>
              <Description>"CurrentHealth"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>168</Offset>
                <Offset>6F8</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>0</ID>
              <Description>"Stamina"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>B0</Offset>
                <Offset>6F8</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>2</ID>
              <Description>"CurrentStunAmount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>218</Offset>
                <Offset>6F8</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>5</ID>
              <Description>"ChargingPower"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>E50</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>10</ID>
              <Description>"RagdollRecoverTime"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>DA8</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"AttackOnCooldown"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Byte</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>E24</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>7</ID>
              <Description>"WalkSpeed"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>918</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>8</ID>
              <Description>"RunSpeed"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>920</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>11</ID>
              <Description>"AgeProgression"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>8F0</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>9</ID>
              <Description>"CurrentExperience"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>928</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>4</ID>
              <Description>"Level"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>1F8</Offset>
                <Offset>6F8</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>25</ID>
              <Description>"DamageMult1"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>18</Offset>
                <Offset>A30</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>27</ID>
              <Description>"DamageMult2"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>58</Offset>
                <Offset>A30</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>28</ID>
              <Description>"DamageMult3"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>98</Offset>
                <Offset>A30</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>29</ID>
              <Description>"DamageMult4"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Double</VariableType>
              <Address>GWORLD</Address>
              <Offsets>
                <Offset>D8</Offset>
                <Offset>A30</Offset>
                <Offset>360</Offset>
                <Offset>30</Offset>
                <Offset>0</Offset>
                <Offset>38</Offset>
                <Offset>1E0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>57</ID>
              <Description>"Select"</Description>
              <Options moHideChildren="1"/>
              <Color>FF8000</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>56</ID>
                  <Description>"CurrentDinosaur"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">27:albertosaurus
19:allosaurus
11:ankylosaurus
33:carcharodontosaurus
14:carnotaurus
17:deinocheirus
25:deinonnychus
16:dilphosaurus
6:dimetrodon
26:dryosaurus
21:edmonotosaurus
15:giganotosaurus
20:iguanodon
32:mammoth
7:pachycephalosaurus
8:parasaurolophus
22:protoceratops
31:sabertoothed tiger
28:sarcosuchus
13:skorpiovenator
12:spinosaurus
10:stegosaurus
9:styracosaurus
18:suchomimus
23:shantungosaurus
1:compsognathus
0:tyrannosaurus rex
3:triceratops
2:velociraptor
4:yangchuansaurus
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>3C0</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>58</ID>
                  <Description>"CurrentMapKey"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Shoreside
1:GrassLands
2:RedWoods
4:Cascades
6:Snowfall
3:Bonegluch
8:Infrenus
7:Darkside
9:Random
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>358</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>64</ID>
                  <Description>"CurrentMode"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:KING OF THE HILL
1:ASCENSION
2:ONSLAUGHT
3:Spectate
4:ARCADE
5:Training
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>52</Offset>
                    <Offset>3B0</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>60</ID>
                  <Description>" IsDaytime"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:on
0:off
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>418</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>61</ID>
                  <Description>" RandomMap"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:on
0:off
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>419</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>62</ID>
                  <Description>"SettingBloodEnabled"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:on
0:off
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>3F8</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>63</ID>
                  <Description>"SettingDismembermentEnabled"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">1:on
0:off
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>3F9</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>17</ID>
              <Description>"Flags"</Description>
              <Options moHideChildren="1"/>
              <Color>FF8000</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>3</ID>
                  <Description>"Invincibility"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>249</Offset>
                    <Offset>6F8</Offset>
                    <Offset>360</Offset>
                    <Offset>30</Offset>
                    <Offset>0</Offset>
                    <Offset>38</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>35</ID>
              <Description>"Match"</Description>
              <Options moHideChildren="1"/>
              <Color>FF8000</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>87</ID>
                  <Description>"Onslaught"</Description>
                  <Options moHideChildren="1"/>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>46</ID>
                      <Description>"CurrentWave"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>GWORLD</Address>
                      <Offsets>
                        <Offset>350</Offset>
                        <Offset>[ArenaManagerOff]</Offset>
                        <Offset>A0</Offset>
                        <Offset>30</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>88</ID>
                  <Description>"King Of The Hill"</Description>
                  <Options moHideChildren="1"/>
                  <Color>800080</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>47</ID>
                      <Description>"CapturesCompleted"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Byte</VariableType>
                      <Address>GWORLD</Address>
                      <Offsets>
                        <Offset>33C</Offset>
                        <Offset>[ArenaManagerOff]</Offset>
                        <Offset>A0</Offset>
                        <Offset>30</Offset>
                      </Offsets>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>48</ID>
                      <Description>"CompletionCount"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>GWORLD</Address>
                      <Offsets>
                        <Offset>338</Offset>
                        <Offset>[ArenaManagerOff]</Offset>
                        <Offset>A0</Offset>
                        <Offset>30</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>15</ID>
          <Description>"Other NPCS Features"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>0000FF</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
if syntaxcheck then return end

[ENABLE]


OtherDinoTimer = createTimer()
OtherDinoTimer.setInterval(100)
OtherDinoTimer.onTimer = function(OtherDino_F)
   local world = readPointer('GWORLD')
   if not world then disableNPCS("World not found") end
   if world == 0 or world == nil then
      goto continue
   end
  local OwningGameInstance = readPointer(world + 0x1E0)
  if OwningGameInstance == 0 or OwningGameInstance == nil then goto continue end
  local CurrentMapKey = readByte(OwningGameInstance + 0x358)
  local ArenaManagerOffset = getArenaManagerOffset(CurrentMapKey)
  local ULocalPlayerArray = readPointer(OwningGameInstance + 0x38)
  if ULocalPlayerArray == 0 or ULocalPlayerArray == nil then goto continue end
  local ULocalPlayer = readPointer(ULocalPlayerArray + 0x0)
  if ULocalPlayer == 0 or ULocalPlayer == nil then goto continue end
  local APlayerController = readPointer(ULocalPlayer + 0x30)
  if APlayerController == 0 or APlayerController == nil then goto continue end
  local AcknowledgedPawn = readPointer(APlayerController + 0x360)
  if AcknowledgedPawn == 0 or AcknowledgedPawn == nil then goto continue end
   local level = readPointer(world + 0x30)
   if level == 0 or level == nil then
      goto continue
   end
   local actorArray = readPointer(level + 0xA0)
   if actorArray == 0 or actorArray == nil then
      goto continue
   end
   local ArenaManager = readPointer(actorArray + ArenaManagerOffset)
   --print(ArenaManager)
   if ArenaManager == 0 or ArenaManager == nil then
      goto continue
   end
   local actorCount = readInteger(level + 0xA8)
   --findArenaManager(actorArray, actorCount)
   findAAIC_AIController_C(actorArray, ArenaManager, actorCount)
   findNPCDino(actorArray, actorCount)
   ::continue::
end

function getArenaManagerOffset(CurrentMapKey)
   if CurrentMapKey == 0 then return 0x248 end
   if CurrentMapKey == 1 then return 0x2C8 end
   if CurrentMapKey == 2 then return 0x148 end
   if CurrentMapKey == 4 then return 0x2D8 end
   if CurrentMapKey == 6 then return 0x3E0 end
   if CurrentMapKey == 3 then return 0x148 end
   if CurrentMapKey == 8 then return 0x190 end
   if CurrentMapKey == 7 then return 0x2F0 end
   return 0x248
end


function findAAIC_AIController_C(actorArray, ArenaManager, actorCount)
         local offset = 0x0
         for i = 0, actorCount do
             local Actor = readPointer(actorArray + offset)
             if Actor ~= 0 and Actor ~= nil then
               if readPointer(Actor + 0x4C0) == ArenaManager then
                  local AIController_C = Actor
                  if AIController_C ~= 0 and AIController_C ~= nil then
                     ManageAIFeatures(AIController_C)
                  end
               end
             end
             offset = offset + 0x8
         end
end

function findSpawnerActor(actorArray, actorCount)
         local offset = 0x0
         for i = 0, actorCount do
             local Actor = readPointer(actorArray + offset)
             if Actor ~= 0 and Actor ~= nil then
                local SpawnedDinoNum = readFloat(Actor + 0x318)
                if SpawnedDinoNum == 1 then
                   print(offset)
                end
             end
             offset = offset + 0x8
         end

end


function findArenaManager(actorArray, actorCount)
         local offset = 0x0
         for i = 0, actorCount do
             local Actor = readPointer(actorArray + offset)
             if Actor ~= 0 and Actor ~= nil then
                local WaveNum = readInteger(Actor + 0x350)
                if WaveNum == 4 then
                   print(offset)
                end
             end
             offset = offset + 0x8
         end

end

function findNPCDino(actorArray, actorCount)
   local offset = 0x0
   for i = 0, actorCount do
      local Actor = readPointer(actorArray + offset)
      if Actor ~= 0 and Actor ~= nil then
         local Instigator = readPointer(Actor + 0x188)
         if Instigator ~= 0 and Instigator ~= nil then
            local UBPC_Vitals_C = readPointer(Instigator + 0x6F8)
            if UBPC_Vitals_C ~= 0 and UBPC_Vitals_C ~= nil then
                if readByte(UBPC_Vitals_C + 0x1D0) == 1 then
                   if readDouble(UBPC_Vitals_C + 0x168) &gt; 1 and readDouble(UBPC_Vitals_C + 0x168) &lt; 99999999 then
                      ManageVitalFeatures(UBPC_Vitals_C)
                   end
                end
            end
         end
      end
      offset = offset + 0x8
   end
end

function disableNPCS(Message)
  OtherDinoTimer.destroy()
  memrec.Active = false
  if Message then error(Message) end

end

function ManageVitalFeatures(UBPC_Vitals_C)
 isInstantKill = readInteger('kill')
 isNoStam = readInteger('fuckstamina')
 isInstantStun = readInteger('stunspeedrun')
 if isInstantKill and isInstantKill == 1 then
    writeDouble(UBPC_Vitals_C + 0x168, 0)
 end
 if isNoStam and isNoStam == 1 then
    writeDouble(UBPC_Vitals_C + 0xB0, 0)
 end
 if isInstantStun and isInstantStun == 1 then
    if readDouble(UBPC_Vitals_C + 0x218) &lt; readDouble(UBPC_Vitals_C + 0x220) then
       writeDouble(UBPC_Vitals_C + 0x218, readDouble(UBPC_Vitals_C + 0x220))
    end
 end
end

function ManageAIFeatures(AIController_C)
  -- print(AIController_C)
  -- fullAccess(AIController_C, 0x128)
   isNoSeen = readInteger('blind')
   isNoHear = readInteger('depth')
   if isNoSeen and isNoSeen == 1 then
      writeQword(AIController_C + 0x420, 0) -- AlertTarget
      writeDouble(AIController_C + 0x418, 0) -- AlertAmount
      writeByte(AIController_C + 0x438, 0) -- TargetSeen
      writeByte(AIController_C + 0x43B, 0) -- FocusedOnTarget
   end
   if isNoHear and isNoHear == 1 then
      writeDouble(AIController_C + 0x430, 0) -- HearingRange
   end
end




--[[local actorArray = readPointer(level + 0xA0)
offset = 0x0
for i = 0, 1000 do
  local Actor = readPointer(actorArray + offset)
  local Instigator = readPointer(Actor + 0x188)

   if Instigator ~= 0 and Instigator ~= nil then
      local UBPC_Vitals_C = readPointer(Instigator + 0x6F8)
      if UBPC_Vitals_C ~= 0 and UBPC_Vitals_C ~= nil then
         if readByte(UBPC_Vitals_C + 0x1D0) == 1 then
            if readDouble(UBPC_Vitals_C + 0x168) ~= 0 then
               writeDouble(UBPC_Vitals_C + 0x168,1)
            end
         end
      end
   end
  offset = offset + 0x8
end]]

 
 
[DISABLE]
disableNPCS()
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>30</ID>
              <Description>"Instant Kill"</Description>
              <Color>8080FF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
alloc(kill,4)
registersymbol(kill)

kill:
  dd 1


[DISABLE]

kill:
  dd 0

dealloc(kill,4)
unregistersymbol(kill)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>31</ID>
              <Description>"NoStamina"</Description>
              <Color>8080FF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
alloc(fuckstamina,4)
registersymbol(fuckstamina)

fuckstamina:
  dd 1


[DISABLE]

fuckstamina:
  dd 0

dealloc(fuckstamina,4)
unregistersymbol(fuckstamina)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>32</ID>
              <Description>"Instant Stun"</Description>
              <Color>8080FF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
alloc(stunspeedrun,4)
registersymbol(stunspeedrun)

stunspeedrun:
  dd 1


[DISABLE]

stunspeedrun:
  dd 0

dealloc(stunspeedrun,4)
unregistersymbol(stunspeedrun)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>42</ID>
              <Description>"Blind Enemy"</Description>
              <Color>8080FF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
alloc(blind,4)
registersymbol(blind)

blind:
  dd 1


[DISABLE]

blind:
  dd 0

dealloc(blind,4)
unregistersymbol(blind)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>43</ID>
              <Description>"Enemy Cant Hear"</Description>
              <Color>8080FF</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
alloc(depth,4)
registersymbol(depth)

depth:
  dd 1


[DISABLE]

depth:
  dd 0

dealloc(depth,4)
unregistersymbol(depth)
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>65</ID>
          <Description>"SpawnFeatures"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>0000FF</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
if syntaxcheck then return end

[ENABLE]

dinoList = {["albertosaurus"] = 27,
            ["allosaurus"] = 19,
            ["ankylosaurus"] = 11,
            ["carcharodontosaurus"] = 33,
            ["carnotaurus"] = 14,
            ["deinocheirus"] = 17,
            ["deinonnychus"] = 25,
            ["dilphosaurus"] = 16,
            ["dimetrodon"] = 6,
            ["dryosaurus"] = 26,
            ["edmonotosaurus"] = 21,
            ["giganotosaurus"] = 15,
            ["iguanodon"] = 20,
            ["mammoth"] = 32,
            ["pachycephalosaurus"] = 7,
            ["parasaurolophus"] = 8,
            ["protoceratops"] = 22,
            ["sabertoothed tiger"] = 31,
            ["sarcosuchus"] = 28,
            ["skorpiovenator"] = 13,
            ["spinosaurus"] = 12,
            ["stegosaurus"] = 10,
            ["styracosaurus"] = 9,
            ["suchomimus"] = 18,
            ["shantungosaurus"] = 23,
            ["compsognathus"] = 1,
            ["tyrannosaurus rex"] = 0,
            ["triceratops"] = 3,
            ["velociraptor"] = 2,
            ["yangchuansaurus"] = 4
}

dinoSkinAmountList = {[27] = 5,
                      [19] = 5,
                      [11] = 5,
                      [33] = 4,
                      [14] = 4,
                      [17] = 5,
                      [25] = 5,
                      [16] = 5,
                      [6] = 4,
                      [26] = 5,
                      [21] = 5,
                      [15] = 5,
                      [20] = 5,
                      [32] = 1,
                      [7] = 3,
                      [8] = 5,
                      [22] = 5,
                      [31] = 4,
                      [28] = 5,
                      [12] = 4,
                      [13] = 5,
                      [10] = 5,
                      [9] = 5,
                      [18] = 5,
                      [23] = 5,
                      [1] = 4,
                      [0] = 4,
                      [3] = 5,
                      [2] = 4,
                      [4] = 5
}

ArcadeList = {}

SpawnListTimer = createTimer()
SpawnListTimer.setInterval(100)
SpawnListTimer.onTimer = function(features_F)
  local DropDownDinoString = ConvertLuaTableToDropDownString(dinoList)
  local OnOffDropDownList = "1:on\n0:off"
  local TeamDropDownList = "0:BLUE\n1:RED\n2:YELLOW\n3:GREEN\n4:SPECTATE"
  local world = readPointer('GWORLD') -- KingOfBones.exe+118D2EA0
  if not world then return disableSL("World not found") end
  local OwningGameInstance = readPointer(world + 0x1E0)
  if OwningGameInstance == 0 or OwningGameInstance == nil then goto skipSP end
  local CurrentMode = readPointer(OwningGameInstance + 0x3B0)
  --
  --local SpawnListOffset = getSpawnListOffset(CurrentModeKey)

  local randAscension = readInteger('randomAscension')
  if randAscension and randAscension == 1 then
     local SpawnListAscOffset = 0x3E8
     local SpawnListAscSizeOffset = SpawnListAscOffset + 0x8
     local SpawnListAsc = readPointer(OwningGameInstance + SpawnListAscOffset)
     local SpawnSizeAsc = readInteger(OwningGameInstance + SpawnListAscSizeOffset)
     randomizeAscension(SpawnListAsc, SpawnSizeAsc)
     writeInteger('randomAscension', 0)
     memrec.Child[0].Child[0].Active = false
  end

  if CurrentMode == 0 or CurrentMode == nil then goto skipSP end
  local CurrentModeKey = readByte(CurrentMode + 0x52)

  local KingOfTheHillSpawner = readInteger('KOHSpawner')
  if KingOfTheHillSpawner and KingOfTheHillSpawner == 1 then
      if CurrentModeKey ~= 0 then goto KOHskip end
      local CrazyRandom = readInteger('KOHCrazy')
      local SpeciesData = readByte('KOHSpecies')
      local AmountData = readInteger('KOHAmount')
      local SkinData = readInteger('KOHSkin')
      if CrazyRandom and CrazyRandom == 1 then
         if SpeciesData then memrec.Child[1].Child[0].Child[0].Active = false end
         if AmountData then memrec.Child[1].Child[0].Child[1].Active = false end
         if SkinData then memrec.Child[1].Child[0].Child[2].Active = false end
      end
      local CurrentMapKey = readByte(OwningGameInstance + 0x358)
      local ArenaManagerOffset = getArenaManagerOffsetB(CurrentMapKey)
      local level = readPointer(world + 0x30)
      if level == 0 or level == nil then goto KOHskip end
      local actorArray = readPointer(level + 0xA0)
      if actorArray == 0 or actorArray == nil then goto KOHskip end
      local ArenaManager = readPointer(actorArray + ArenaManagerOffset)
      if ArenaManager == 0 or ArenaManager == nil then goto KOHskip end
      local SpawnQueueListSize = readInteger(ArenaManager + 0x328)
      if SpawnQueueListSize == 0 then goto KOHskip end
      local SpawnQueueList = readPointer(ArenaManager + 0x320)
      if SpawnQueueList == 0 or SpawnQueueList == nil then goto KOHskip end
      --print(SpawnQueueList)
      if CrazyRandom and CrazyRandom == 1 then
         local listKOHCrazy =  ConvertLuaTableToLuaList(dinoList)
         local index, randomCrazyId = getRandomDinoId(listKOHCrazy)
         local randomCrazyAmount = math.random(1, 31) -- change this to test computer
         local randomCrazySkin = getRandomDinoSkin(dinoSkinAmountList[randomCrazyId])
         writeByte(SpawnQueueList + 0x4, randomCrazyId)
         writeInteger(SpawnQueueList + 0x8, randomCrazySkin)
         writeInteger(SpawnQueueList + 0xC, randomCrazyAmount)
         goto KOHskip
      end
      if SpeciesData then
         local listKOHR = ConvertLuaTableToLuaList(dinoList)
         local index = getIndex(listKOHR, SpeciesData)
         if type(listKOHR[index]) ~= "nil" then

            writeByte(SpawnQueueList + 0x4, SpeciesData)
         else
             writeByte('KOHSpecies', 0)
         end
      end

      if AmountData then
         if AmountData &gt; 0 then
            writeInteger(SpawnQueueList + 0xC, AmountData)
         else
             writeInteger('KOHAmount', 1)
         end
      end

      if SkinData then
         local SpawnSpecies = readByte(SpawnQueueList + 0x4)
         if SkinData &lt; dinoSkinAmountList[SpawnSpecies] and SkinData &gt;= 0 then
            writeInteger(SpawnQueueList + 0x8, SkinData)
         else
            writeInteger('KOHSkin', 0)
         end
      end
      ::KOHskip::
  end

  local ArcadeParent = memrec[3]
  local ActivatorCrazyRecord = ArcadeParent.Child[0]
  local ActivatorRecord = ArcadeParent.Child[1]
  local ArcadeParentRecord =  ActivatorRecord.Child[0]
  if ArcadeParent.Active == false then
     ActivatorCrazyRecord.Active = false
     ActivatorRecord.Active = false
     DeleteMemrec(ArcadeParentRecord)
  end
  local ArcadeCrazySpawner = readInteger('ArcadeCrazy')
  local ArcadeSpawnData = readInteger('ArcadeData')
  if ArcadeSpawnData and ArcadeSpawnData == 1 then
     if CurrentModeKey ~= 4 then
        DeleteMemrec(ArcadeParentRecord)
        goto Askip
     end
     local SpawnListArcadeOffset = 0x400
     local SpawnListArcadeSizeOffset = SpawnListArcadeOffset + 0x8
     local SpawnListArcade = readPointer(OwningGameInstance + SpawnListArcadeOffset)
     if SpawnListArcade == 0 or SpawnListArcade == nil then
        DeleteMemrec(ArcadeParentRecord)
        goto Askip
     end
     local SpawnSizeArcade = readInteger(OwningGameInstance + SpawnListArcadeSizeOffset)
     if SpawnSizeArcade == 0 then
        DeleteMemrec(ArcadeParentRecord)
        goto Askip
     end
     DeleteMemrec(ArcadeParentRecord)
     OrganizeData(ArcadeParentRecord, SpawnListArcade, SpawnSizeArcade, DropDownDinoString, TeamDropDownList, OnOffDropDownList)
     ActivatorRecord.Active = false
     ::Askip::
  end
  if ArcadeCrazySpawner and ArcadeCrazySpawner == 1 then
     if CurrentModeKey ~= 4 then goto Askip2 end
     local SpawnListArcadeOffset = 0x400
     local SpawnListArcadeSizeOffset = SpawnListArcadeOffset + 0x8
     local SpawnListArcade = readPointer(OwningGameInstance + SpawnListArcadeOffset)
     if SpawnListArcade == 0 or SpawnListArcade == nil then goto Askip2 end
     local SpawnSizeArcade = readInteger(OwningGameInstance + SpawnListArcadeSizeOffset)
     if SpawnSizeArcade == 0 then goto Askip2 end
     RandomizeArcadeData(SpawnListArcade, SpawnSizeArcade)
     ActivatorCrazyRecord.Active = false
     ::Askip2::
  end

  local SpectateParent = memrec[4]
  local SpectateCrazyRecord = SpectateParent.Child[0]
  local SpectateRecord = SpectateParent.Child[1]
  local  SpectateParentRecord =  SpectateRecord.Child[0]
  if SpectateParent.Active == false then
     SpectateCrazyRecord.Active = false
     SpectateRecord.Active = false
     DeleteMemrec(SpectateParentRecord)
  end
  local SpectateCrazySpawner = readInteger('SpectateCrazy')
  local SpectateSpawnData = readInteger('SpectateData')
  if SpectateSpawnData and SpectateSpawnData == 1 then
     if CurrentModeKey ~= 3 then
        DeleteMemrec(SpectateParentRecord)
        goto Sskip
     end
     local SpawnListSpectateOffset = 0x3C8
     local SpawnListSpectateSizeOffset = SpawnListSpectateOffset + 0x8
     local SpawnListSpectate = readPointer(OwningGameInstance + SpawnListSpectateOffset)
     if SpawnListSpectate == 0 or SpawnListSpectate == nil then
        DeleteMemrec(SpectateParentRecord)
        goto Sskip
     end
     local SpawnSizeSpectate = readInteger(OwningGameInstance + SpawnListSpectateSizeOffset)
     if SpawnSizeSpectate == 0 then
        DeleteMemrec(SpectateParentRecord)
        goto Sskip
     end
     DeleteMemrec(SpectateParentRecord)
     OrganizeData(SpectateParentRecord, SpawnListSpectate, SpawnSizeSpectate, DropDownDinoString, TeamDropDownList, OnOffDropDownList)
     SpectateRecord.Active = false
     ::Sskip::
  end
  if SpectateCrazySpawner and SpectateCrazySpawner == 1 then
     if CurrentModeKey ~= 3 then goto Sskip2 end
     local SpawnListSpectateOffset = 0x3C8
     local SpawnListSpectateSizeOffset = SpawnListSpectateOffset + 0x8
     local SpawnListSpectate = readPointer(OwningGameInstance + SpawnListSpectateOffset)
     if SpawnListSpectate == 0 or SpawnListSpectate == nil then goto Sskip2 end
     local SpawnSizeSpectate = readInteger(OwningGameInstance + SpawnListSpectateSizeOffset)
     if SpawnSizeSpectate == 0 then goto Sskip2 end
     RandomizeSpectateData(SpawnListSpectate, SpawnSizeSpectate)
     SpectateCrazyRecord.Active = false
     ::Sskip2::
  end

  ::skipSP::
end


function RandomizeSpectateData(SpawnList, SpawnSize)
  local OffsetBase = 0x0
  local VariableList = ConvertLuaTableToLuaList(dinoList)
  for i = 1, SpawnSize do
      local Team = SpawnList + OffsetBase
      local Species = SpawnList + OffsetBase + 0x4
      local Texture = SpawnList + OffsetBase + 0x8
      local SpawnCount = SpawnList + OffsetBase + 0xC
      local RandomEntrance = SpawnList + OffsetBase + 0x10
      local randomTeam = math.random(0, 3)
      local Index, randomCrazyId =  getRandomDinoId(VariableList)
      local randomCrazySkin = getRandomDinoSkin(dinoSkinAmountList[randomCrazyId])
      local randomCrazyAmount = math.random(1, 21) -- change this to test computer
      local israndomEntrance = math.random(0,1)
      writeInteger(Team, randomTeam)
      writeByte(Species, randomCrazyId)
      writeInteger(Texture, randomCrazySkin)
      writeInteger(SpawnCount, randomCrazyAmount)
      writeByte(RandomEntrance, israndomEntrance)
      OffsetBase = OffsetBase + 0x14
  end

end


function ConvertLuaTableToDropDownString(LuaTable)
         local DropDownString = ""
         for k,v in pairs(LuaTable) do
             DropDownString = DropDownString .. v .. ":" .. k .. "\n"
         end
         return DropDownString
end

function RandomizeArcadeData(SpawnListArcade, SpawnSizeArcade)
  local ArcadeOffsetBase = 0x0
  local VariableList = ConvertLuaTableToLuaList(dinoList)
  for i = 1, SpawnSizeArcade do
      local ArcSpecies = SpawnListArcade + ArcadeOffsetBase + 0x4
      local ArcTexture = SpawnListArcade + ArcadeOffsetBase + 0x8
      local ArcSpawnCount = SpawnListArcade + ArcadeOffsetBase + 0xC
      local ArcRandomEntrance = SpawnListArcade + ArcadeOffsetBase + 0x10
      local  Index, randomCrazyId =  getRandomDinoId(VariableList)
      local randomCrazySkin = getRandomDinoSkin(dinoSkinAmountList[randomCrazyId])
      local randomCrazyAmount = math.random(1, 51) -- change this to test computer
      local israndomEntrance = math.random(0,1)
      writeByte(ArcSpecies, randomCrazyId)
      writeInteger(ArcTexture, randomCrazySkin)
      writeInteger(ArcSpawnCount, randomCrazyAmount)
      writeByte(ArcRandomEntrance, israndomEntrance)
      ArcadeOffsetBase = ArcadeOffsetBase + 0x14
  end

end

function OrganizeData(ParentRecord, SpawnList, SpawnSize, DropDownDinoString, TeamDropDownList, OnOffDropDownList)
   local InvdinoList = invertTable(dinoList)
   local offsetBase = 0x0
   for i = 1, SpawnSize do
       local Team = SpawnList + offsetBase
       local Species = SpawnList + offsetBase + 0x4
       local Texture = SpawnList + offsetBase + 0x8
       local SpawnCount = SpawnList + offsetBase + 0xC
       local RandomEntrance = SpawnList + offsetBase + 0x10
       local DinoName = InvdinoList[readByte(Species)] .. "_" .. i
       local DinoMemRec = AddMemoryRecord(ParentRecord, Species, vtByte, DinoName, false)
       addDD(DinoMemRec, DropDownDinoString)
       local DinoTeamMemRec = AddMemoryRecord(DinoMemRec, Team, vtDword, "Team", false)
       addDD(DinoTeamMemRec, TeamDropDownList)
       AddMemoryRecord(DinoMemRec, Texture, vtDword, "TextureIndex", false)
       AddMemoryRecord(DinoMemRec, SpawnCount, vtDword, "SpawnCount", false)
       local DinoEntranceMemRec = AddMemoryRecord(DinoMemRec, RandomEntrance, vtByte, "isRandomEntrance", false)
       addDD(DinoEntranceMemRec, OnOffDropDownList)
       offsetBase = offsetBase + 0x14
   end
end

function invertTable(original)
    local inverted = {}
    for key, value in pairs(original) do
        inverted[value] = key
    end
    return inverted
end


function randomizeAscension(SpawnListAsc, SpawnSizeAsc)
   local AscBaseOff = 0x0
   local VariableList = ConvertLuaTableToLuaList(dinoList)
   for i = 1, SpawnSizeAsc do
       local  Index, randID =  getRandomDinoId(VariableList)
       if Index and randID  then
          table.remove(VariableList, Index)
          --local DinoSkinAmount = dinoSkinAmountList[randID]
          --local DinoSkin = getRandomDinoSkin(DinoSkinAmount)
          writeByte(SpawnListAsc + AscBaseOff + 0x4, randID)
          --writeInteger(SpawnListAsc + AscBaseOff + 0x8, DinoSkin)
       end
       AscBaseOff = AscBaseOff + 0x14
   end
end

function getIndex(list, targetValue)
    for i, value in ipairs(list) do
        if value == targetValue then
            return i -- Returns the index (e.g., 1, 2, 3...)
        end
    end
    return nil -- Returns nil if the value isn't in the list
end

function ConvertLuaTableToLuaList(DinolistA)
    local values = {}

    for _, value in pairs(DinolistA) do
        table.insert(values, value)
    end

    return values
end

function getRandomDinoSkin(DinoSkinAmount)
    if DinoSkinAmount &gt; 1 then
       return math.random(DinoSkinAmount)
    end
    return 0
end

function getRandomDinoId(values)
    if #values &gt; 0 then
        local index = math.random(#values)
        return index, values[index]
    end
    return nil, nil
end

function getArenaManagerOffsetB(CurrentMapKey)
   if CurrentMapKey == 0 then return 0x248 end
   if CurrentMapKey == 1 then return 0x2C8 end
   if CurrentMapKey == 2 then return 0x148 end
   if CurrentMapKey == 4 then return 0x2D8 end
   if CurrentMapKey == 6 then return 0x3E0 end
   if CurrentMapKey == 3 then return 0x148 end
   if CurrentMapKey == 8 then return 0x190 end
   if CurrentMapKey == 7 then return 0x2F0 end
   return 0x248
end


function addDD(entry, str)
    entry.DropDownList.Text = str
    entry.DropDownReadOnly = true
    entry.DropDownDescriptionOnly = true
    entry.DisplayAsDropDownListItem = true
end


function DeleteMemrec(MR)
   local memreclist = getMemrecChildList(MR)
   for k,v in pairs(memreclist) do
      if v~= nil then memoryrecord_delete(v) end
   end
end


function getMemrecChildList(MR)
   local memrecList = {}
   for i = 0, MR.Count  do
    if MR.Child[i] ~= nil then
          local child = MR.Child[i]
          memrecList[i] = child
    end
   end
   return memrecList
end


function AddMemoryRecord(V_MemoryRecord, V_Address, V_Type, V_Description, V_isHex)
  al=getAddressList()
  local newMR=al.createMemoryRecord();
  newMR.Description= V_Description
  newMR.Address= V_Address
  newMR.Type= V_Type
  newMR.ShowAsHex = V_isHex
  if V_MemoryRecord ~= nil then
    newMR.Parent= V_MemoryRecord
  end
  return newMR
end

function disableSL(Message)
  SpawnListTimer.destroy()
  memrec.Active = false
  if Message then error(Message) end
end

 
 
[DISABLE]
   disableSL()

</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>66</ID>
              <Description>"Ascension(Before Game)"</Description>
              <Options moHideChildren="1"/>
              <Color>FF00FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>67</ID>
                  <Description>"Randomize"</Description>
                  <Color>008080</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(randomAscension,4)
registersymbol(randomAscension)

randomAscension:
  dd 1


[DISABLE]

randomAscension:
  dd 0

dealloc(randomAscension,4)
unregistersymbol(randomAscension)
</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>68</ID>
              <Description>"King Of The Hill(In Game)"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>FF00FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>79</ID>
                  <Description>"ActivateSpawner"</Description>
                  <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(KOHSpawner,4)
registersymbol(KOHSpawner)

KOHSpawner:
  dd 1


[DISABLE]

KOHSpawner:
  dd 0

unregistersymbol(KOHSpawner)
dealloc(KOHSpawner,4)

</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>74</ID>
                      <Description>"Species Spawn Replace"</Description>
                      <Options moHideChildren="1"/>
                      <Color>008080</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>[ENABLE]
alloc(KOHSpecies,1)
registersymbol(KOHSpecies)

KOHSpecies:
  db 00


[DISABLE]

unregistersymbol(KOHSpecies)
dealloc(KOHSpecies,1)

</AssemblerScript>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>76</ID>
                          <Description>"Queued Species"</Description>
                          <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">27:albertosaurus
19:allosaurus
11:ankylosaurus
33:carcharodontosaurus
14:carnotaurus
17:deinocheirus
25:deinonnychus
16:dilphosaurus
6:dimetrodon
26:dryosaurus
21:edmonotosaurus
15:giganotosaurus
20:iguanodon
32:mammoth
7:pachycephalosaurus
8:parasaurolophus
22:protoceratops
31:sabertoothed tiger
28:sarcosuchus
13:skorpiovenator
12:spinosaurus
10:stegosaurus
9:styracosaurus
18:suchomimus
23:shantungosaurus
1:compsognathus
0:tyrannosaurus rex
3:triceratops
2:velociraptor
4:yangchuansaurus
</DropDownList>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>Byte</VariableType>
                          <Address>KOHSpecies</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>73</ID>
                      <Description>"Amount Spawn Replace"</Description>
                      <Options moHideChildren="1"/>
                      <Color>008080</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>[ENABLE]
alloc(KOHAmount,4)
registersymbol(KOHAmount)

KOHAmount:
  dd 1


[DISABLE]


unregistersymbol(KOHAmount)
dealloc(KOHAmount,4)

</AssemblerScript>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>77</ID>
                          <Description>"Queued Amount"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>KOHAmount</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>75</ID>
                      <Description>"Skin Spawn Replace(0-AmountOfSkins)"</Description>
                      <Options moHideChildren="1"/>
                      <Color>008080</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>[ENABLE]
alloc(KOHSkin,4)
registersymbol(KOHSkin)

KOHSkin:
  dd 0


[DISABLE]

unregistersymbol(KOHSkin)
dealloc(KOHSkin,4)

</AssemblerScript>
                      <CheatEntries>
                        <CheatEntry>
                          <ID>78</ID>
                          <Description>"Queued Skin"</Description>
                          <ShowAsSigned>0</ShowAsSigned>
                          <VariableType>4 Bytes</VariableType>
                          <Address>KOHSkin</Address>
                        </CheatEntry>
                      </CheatEntries>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>72</ID>
                      <Description>"Crazy Randomize"</Description>
                      <Color>008080</Color>
                      <VariableType>Auto Assembler Script</VariableType>
                      <AssemblerScript>[ENABLE]
alloc(KOHCrazy,4)
registersymbol(KOHCrazy)

KOHCrazy:
  dd 1


[DISABLE]

KOHCrazy:
  dd 0

dealloc(KOHCrazy,4)
unregistersymbol(KOHCrazy)
</AssemblerScript>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>80</ID>
              <Description>"Onslaught(After Seeing Red Start Game)"</Description>
              <Options moHideChildren="1"/>
              <Color>FF00FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>81</ID>
                  <Description>"Species"</Description>
                  <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">27:albertosaurus
19:allosaurus
11:ankylosaurus
33:carcharodontosaurus
14:carnotaurus
17:deinocheirus
25:deinonnychus
16:dilphosaurus
6:dimetrodon
26:dryosaurus
21:edmonotosaurus
15:giganotosaurus
20:iguanodon
32:mammoth
7:pachycephalosaurus
8:parasaurolophus
22:protoceratops
31:sabertoothed tiger
28:sarcosuchus
13:skorpiovenator
12:spinosaurus
10:stegosaurus
9:styracosaurus
18:suchomimus
23:shantungosaurus
1:compsognathus
0:tyrannosaurus rex
3:triceratops
2:velociraptor
4:yangchuansaurus
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>4</Offset>
                    <Offset>3C8</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>82</ID>
                  <Description>"TextureIndex"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>8</Offset>
                    <Offset>3C8</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>83</ID>
                  <Description>"SpawnCount"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>C</Offset>
                    <Offset>3C8</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>84</ID>
                  <Description>"RandomEntrance"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Byte</VariableType>
                  <Address>GWORLD</Address>
                  <Offsets>
                    <Offset>10</Offset>
                    <Offset>3C8</Offset>
                    <Offset>1E0</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>85</ID>
              <Description>"Arcade(During Load of The Game)"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>FF00FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>90</ID>
                  <Description>"Crazy Spawn Changer"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(ArcadeCrazy,4)
registersymbol(ArcadeCrazy)

ArcadeCrazy:
  dd 1


[DISABLE]

ArcadeCrazy:
  dd 0

dealloc(ArcadeCrazy,4)
unregistersymbol(ArcadeCrazy)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>86</ID>
                  <Description>"GetSpawnData"</Description>
                  <Options moDeactivateChildrenAsWell="1"/>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(ArcadeData,4)
registersymbol(ArcadeData)

ArcadeData:
  dd 1


[DISABLE]

ArcadeData:
  dd 0

unregistersymbol(ArcadeData)
dealloc(ArcadeData,4)

</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>89</ID>
                      <Description>"List"</Description>
                      <GroupHeader>1</GroupHeader>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>91</ID>
              <Description>"Spectate(After Seeing Red Start Game)"</Description>
              <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
              <Color>FF00FF</Color>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>92</ID>
                  <Description>"Crazy Spawn Changer"</Description>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(SpectateCrazy,4)
registersymbol(SpectateCrazy)

SpectateCrazy:
  dd 1


[DISABLE]

SpectateCrazy:
  dd 0

dealloc(SpectateCrazy,4)
unregistersymbol(SpectateCrazy)
</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>93</ID>
                  <Description>"GetSpawnData"</Description>
                  <Options moDeactivateChildrenAsWell="1"/>
                  <Color>8080FF</Color>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>[ENABLE]
alloc(SpectateData,4)
registersymbol(SpectateData)

SpectateData:
  dd 1


[DISABLE]

SpectateData:
  dd 0

unregistersymbol(SpectateData)
dealloc(SpectateData,4)

</AssemblerScript>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>94</ID>
                      <Description>"List"</Description>
                      <GroupHeader>1</GroupHeader>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>ArenaManagerOff</Name>
      <Address>24EA3A70000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>MaxHealth</Name>
      <Address>24EA3BD0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>MaxStamina</Name>
      <Address>24EB56E0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>NoStun</Name>
      <Address>24EC38D0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>MaxChargingPower</Name>
      <Address>24EC51B0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>QuickRagdoll</Name>
      <Address>24EC51F0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>NoAttackCooldown</Name>
      <Address>24EC5290000</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
  <Comments>+310 second player
+400 player
??? needs to find more
</Comments>
</CheatTable>
