IXN3RD3MXN (3 Weeks Ago)
Install Cheat engine
How Use that ?: 1,Create Text file, 2,copy past in , and rename 'Something.CT' , and u can open it
Table+LuaScript
BM UpdateCode:<?xml version="1.0" encoding="utf-8"?> <CheatTable CheatEngineTableVersion="46"> <CheatEntries> <CheatEntry> <ID>6358</ID> <Description>"KILGPT"</Description> <Color>FF0080</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>57</ID> <Description>"UseFull"</Description> <Options moHideChildren="1"/> <Color>008000</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>58</ID> <Description>"5%PotReturn"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,74 XX C7 45 F4 00 00 00 00 90 8B 46 10 8B 4D FC 8B 5E 14 89 45 F0 8D 45 F0 50 8D 45 E0 50) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 74 INJECT: db EB return: registersymbol(INJECT) [DISABLE] INJECT: db 74 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>60</ID> <Description>"antiafk"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(AntiAFK,trove.exe,55 8B EC 83 E4 F8 D9 EE 83 EC 58) alloc(newmem,$1000) label(code) label(return) newmem: code: ret push ebp mov ebp,esp and esp,-08 jmp return AntiAFK: jmp newmem nop return: registersymbol(AntiAFK) [DISABLE] AntiAFK: db 55 8B EC 83 E4 F8 unregistersymbol(AntiAFK) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>63</ID> <Description>"Insta Mining 0 - 300 laser All Blocks"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(Trover,trove.exe,DF F1 DD D8 72 61) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db DF F1 jmp return Trover: db DF F0 return: registersymbol(Trover) [DISABLE] Trover: db DF F1 unregistersymbol(Trover) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>64</ID> <Description>"Lasermancy Geode (Omni Tool) - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(Beam,trove.exe,DF F1 DD D8 72 35 8D) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db DF F1 jmp return Beam: db DF F0 return: registersymbol(Beam) [DISABLE] Beam: db DF F1 unregistersymbol(Beam) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>61</ID> <Description>"Auto Attack Basic"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,DF F1 DD D8 72 1F) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db DF F1 INJECT: db DF F0 return: registersymbol(INJECT) [DISABLE] INJECT: db DF F1 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>67</ID> <Description>"No Clip (need hotkey) - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,0F 84 F0 05 00 00 0F 28 45 E0 0F 28 65 D0) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 0F 84 jmp return INJECT: db 0F 87 return: registersymbol(INJECT) [DISABLE] INJECT: db 0F 84 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>4</ID> <Description>"Map Extend(Scroll)"</Description> <Color>FFFFFF</Color> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,77 XX B8 XX XX XX XX F3 0F 10 08 F3 0F 11 89 XX XX XX XX 8B 89 D0 00 00 00 85 C9 74 XX) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 77 05 jmp return INJECT: db EB return: registersymbol(INJECT) [DISABLE] INJECT: db 77 05 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> <Hotkeys> <Hotkey> <Action>Toggle Activation</Action> <Keys> <Key>17</Key> <Key>77</Key> </Keys> <ID>0</ID> </Hotkey> </Hotkeys> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>71</ID> <Description>"Usable"</Description> <Options moHideChildren="1"/> <Color>0080FF</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>59</ID> <Description>"Jump Speed"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(jump,trove.exe,0F 28 05 XX XX XX XX XX 29 40 40) alloc(newmem,$1000) label(code) label(return) newmem: code: db 0F 28 05 jmp return jump: db 0F 28 0D return: registersymbol(jump) [DISABLE] jump: db 0F 28 05 unregistersymbol(jump) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>65</ID> <Description>"XRAY"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 10 48 28 0F C6 C0 00 0F 28 D1 F3 0F 59 15 XX XX XX XX 0F 29 44 24 10) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 10 48 jmp return INJECT: db F3 0F 10 40 return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 10 48 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>66</ID> <Description>"Fov Script"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(FOVV,trove.exe,F3 0F 10 41 28 F3 0F 59 05 XX XX XX XX 8B 4D F4) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 10 41 28 F3 0F 59 05 jmp return FOVV: db F3 0F 10 41 28 F3 0F 59 0D return: registersymbol(FOVV) [DISABLE] FOVV: db F3 0F 10 41 28 F3 0F 59 05 unregistersymbol(FOVV) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>68</ID> <Description>"No Clip Cam"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,0F 29 01 C7 41 34 00 00 00 00 0F) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: movaps [ecx],xmm0 jmp return INJECT: db 90 90 90 return: registersymbol(INJECT) [DISABLE] INJECT: db 0F 29 01 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>62</ID> <Description>"Easy Glide"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,D9 C9 DF F1 DD D8 76 24) alloc(newmem,$1000) label(code) label(return) newmem: code: db D9 C9 INJECT: db D9 C8 return: registersymbol(INJECT) [DISABLE] INJECT: db D9 C9 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>9</ID> <Description>"Glider Never Down"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobScanModule(MyCheat2, Trove.exe, D80DXXXXXXXXD9EED9C9DBF1DDD9) assert(MyCheat2, D8 0D) registerSymbol(MyCheat2) alloc(newmem, 0x100) label(code) label(return) label(SavedBytes) registerSymbol(SavedBytes) label(newValue) newmem: code: fmul dword ptr [newValue] jmp return SavedBytes: readMem(MyCheat2, 6) newValue: dd (float)99 MyCheat2: jmp newmem nop return: [DISABLE] MyCheat2: readMem(SavedBytes, 6) dealloc(newmem) unregisterSymbol(MyCheat2) unregisterSymbol(SavedBytes) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>34</ID> <Description>"Boat Speed"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,74 xx 57 FF 35 xx xx xx xx E8 xx xx xx xx 8B F8 85 FF 74 xx 6A 02 8B CF E8 xx xx xx xx 8B 17 8B CF FF xx xx) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 74 INJECT: db EB return: registersymbol(INJECT) [DISABLE] INJECT: db 74 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>56</ID> <Description>"Fancy"</Description> <Options moHideChildren="1"/> <Color>FFFF00</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>52</ID> <Description>"False break blocks - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(draco,trove.exe,80 7F xx 00 0F 84 xx xx xx xx 8B 4B 08 E8 xx xx xx xx FF 75 0C 8B 4D 10 8B F0 FF 75 08 8B 45 14 83 EC 0C 8B 3E 8B D4 6A 01 89 0A 8B CE 89 42 04 8B 45 18) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 80 7F 64 00 jmp return draco: db 80 7F 64 01 return: registersymbol(draco) [DISABLE] draco: db 80 7F 64 00 unregistersymbol(draco) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>40</ID> <Description>"Utevo Lux - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 11 45 F0 F3 0F 10 41 5C) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 11 45 INJECT: db F3 0F 11 4D return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 11 45 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>41</ID> <Description>"Giant Monsters"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 10 44 24 14 0F C6 C0 00 0F 29 46) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: movss xmm0,[esp+14] INJECT: movss xmm1,[esp+14] return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 10 44 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>33</ID> <Description>"Monster/Object Red"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 10 04 XX XX XX XX XX XX C1 C1 E8 08 83 E0 0F F3 0F 11 45 E0 F3 0F 10 04 XX XX XX XX XX 8B C1 C1 E8 04 83 E0 0F F3 0F 11 45 E4 83 E1 0F F3 0F 10 04 XX XX XX XX XX F3 0F 11 45 E8 F3 0F 10 04 XX XX XX XX XX F3 0F 11 45 EC 0F 28 45 E0 0F 29 07) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 10 04 INJECT: db F3 0F 10 0C return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 10 04 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>32</ID> <Description>"Monster/Object Green"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 11 45 E4 83 E1 0F F3 0F 10 04 XX XX XX XX XX F3 0F 11 45 E8 F3 0F 10 04 XX XX XX XX XX F3 0F 11 45 EC 0F 28 45 E0 0F 29 07 8B C7 5F 5E 8B E5 5D 8B E3 5B) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 11 45 INJECT: db F3 0F 11 4D return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 11 45 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>31</ID> <Description>"Monster/Object Blue"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 11 45 E8 F3 0F 10 04 XX XX XX XX XX F3 0F 11 45 EC 0F 28 45 E0 0F 29 07 8B C7 5F 5E 8B E5 5D 8B E3 5B) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 11 45 INJECT: db F3 0F 11 4D return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 11 45 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>30</ID> <Description>"Monster/Object White"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,0F 29 07 8B C7 5F 5E 8B E5 5D 8B) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 0F 29 07 INJECT: db 0F 29 0F return: registersymbol(INJECT) [DISABLE] INJECT: db 0F 29 07 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>28</ID> <Description>"Purple Chat Name"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 2C C0 88 45 F9) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 2C C0 INJECT: db F3 0F 2C C1 return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 2C C0 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>27</ID> <Description>"Green Chat Name"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 2C C0 88 45 FA) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 2C C0 INJECT: db F3 0F 2C C1 return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 2C C0 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>29</ID> <Description>"Blue Chat Name"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 2C C0 88 45 F8) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 2C C0 INJECT: db F3 0F 2C C1 return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 2C C0 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>37</ID> <Description>"Lock Cam - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,74 05 8B 01 FF 50 0C 8B E5) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 74 05 INJECT: db EB 05 return: registersymbol(INJECT) [DISABLE] INJECT: db 74 05 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>3</ID> <Description>"Zoom hack"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 11 5F 2C) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: movss [edi+2C],xmm3 jmp return INJECT: movss [edi+2C],xmm2 return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 11 5F 2C unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>69</ID> <Description>"Work but not sure"</Description> <Options moHideChildren="1"/> <Color>FF8080</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>50</ID> <Description>"Super Atk Speed (Dont Move)"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,D9 C9 DD 56 38) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db D9 C9 INJECT: db D9 C8 return: registersymbol(INJECT) [DISABLE] INJECT: db D9 C9 DD 56 38 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>49</ID> <Description>"Super Atk Speed (Dont Move)2"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,D9 C9 DB F1 76 12) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db D9 C9 INJECT: db D9 C8 return: registersymbol(INJECT) [DISABLE] INJECT: db D9 C9 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>35</ID> <Description>"Speed 4x"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobScanModule(MyCheat1, Trove.exe, D80DXXXXXXXXD95DFC74XXF30F1086XXXXXXXXF30F5945FCF30F1145FC) assert(MyCheat1, D8 0D) registerSymbol(MyCheat1) alloc(newmem, 0x100) label(code) label(return) label(SavedBytes) registerSymbol(SavedBytes) label(newValue) newmem: code: fmul dword ptr [newValue] jmp return SavedBytes: readMem(MyCheat1, 6) newValue: dd (float)0.4 MyCheat1: jmp newmem nop return: [DISABLE] MyCheat1: readMem(SavedBytes, 6) dealloc(newmem) unregisterSymbol(MyCheat1) unregisterSymbol(SavedBytes) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>36</ID> <Description>"Speed 3x"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobScanModule(MyCheat1, Trove.exe, D80DXXXXXXXXD95DFC74XXF30F1086XXXXXXXXF30F5945FCF30F1145FC) assert(MyCheat1, D8 0D) registerSymbol(MyCheat1) alloc(newmem, 0x100) label(code) label(return) label(SavedBytes) registerSymbol(SavedBytes) label(newValue) newmem: code: fmul dword ptr [newValue] jmp return SavedBytes: readMem(MyCheat1, 6) newValue: dd (float)0.3 MyCheat1: jmp newmem nop return: [DISABLE] MyCheat1: readMem(SavedBytes, 6) dealloc(newmem) unregisterSymbol(MyCheat1) unregisterSymbol(SavedBytes) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>21</ID> <Description>"Speed 2x"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobScanModule(MyCheat1, Trove.exe, D80DXXXXXXXXD95DFC74XXF30F1086XXXXXXXXF30F5945FCF30F1145FC) assert(MyCheat1, D8 0D) registerSymbol(MyCheat1) alloc(newmem, 0x100) label(code) label(return) label(SavedBytes) registerSymbol(SavedBytes) label(newValue) newmem: code: fmul dword ptr [newValue] jmp return SavedBytes: readMem(MyCheat1, 6) newValue: dd (float)0.2 MyCheat1: jmp newmem nop return: [DISABLE] MyCheat1: readMem(SavedBytes, 6) dealloc(newmem) unregisterSymbol(MyCheat1) unregisterSymbol(SavedBytes) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>18</ID> <Description>"Slow Fall Gun (need hotkey) - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(slow1,trove.exe,F3 0F 10 05 XX XX XX XX F3 0F 11 45 FC D9 45 FC 8B E5 5D C3 D9 05 XX XX XX XX) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 10 05 jmp return slow1: db F3 0F 10 0D return: registersymbol(slow1) [DISABLE] slow1: db F3 0F 10 05 unregistersymbol(slow1) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>12</ID> <Description>"Inta Mining 300+ Laser &gt; Normal Blocks / Nitro / Shape / cinabrio - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,77 02 8B C7 DD 00 DD 17 DF F1 DD D8 72 61) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 77 02 jmp return INJECT: db 72 02 return: registersymbol(INJECT) [DISABLE] INJECT: db 77 02 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>53</ID> <Description>"No Animation Skills / Etc - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F3 0F 11 44 24 24 F3 0F 58 84 24 80 00 00 00 50 F3 0F 11 43 24 E8 XX XX XX XX 8D 44 24 34 50) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: movss [esp+24],xmm0 jmp return INJECT: movss [esp+24],xmm1 return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 11 44 24 24 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>39</ID> <Description>"Hitted all"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,F0 D9 C9 DF F1 DD D8 76) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F0 D9 C9 INJECT: db F0 D9 C8 return: registersymbol(INJECT) [DISABLE] INJECT: db F0 D9 C9 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>70</ID> <Description>"Didnt Work ATM"</Description> <Options moHideChildren="1"/> <Color>0000FF</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>8</ID> <Description>"JumpMin"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(jumper,trove.exe,FF 46 3C 68) alloc(newmem,$1000) label(code) newmem: code: db FF 46 jumper: db FF 4E return: registersymbol(jumper) [DISABLE] jumper: db FF 46 unregistersymbol(jumper) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>6</ID> <Description>"Anti Dismount"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(nodismount,trove.exe,74 XX 8B 07 8B CF 6A 00 6A 00 FF 50 60) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 74 nodismount: db EB return: registersymbol(nodismount) [DISABLE] nodismount: db 74 unregistersymbol(nodismount) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>5</ID> <Description>"Infinity Dogde"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(DODGE,trove.exe,DF F1 DD D8 73 12 56) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db DF F1 jmp return DODGE: db DF F0 return: registersymbol(DODGE) [DISABLE] DODGE: db DF F1 unregistersymbol(DODGE) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>14</ID> <Description>"Fly Geode Boots - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,74 xx 8B 0D xx xx xx xx 89 48 40 8B 0D xx xx xx xx 89 48 44 C7 40 60 00 00 00 00 FF 35 xx xx xx xx) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 74 INJECT: db EB return: registersymbol(INJECT) [DISABLE] INJECT: db 74 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>25</ID> <Description>"No Clip Down"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,DE E9 DD 1C 24 E8 xx xx xx xx E8 xx xx xx xx 0F 28 07 0F 29 45 B0 F3 0F 10 45 B4 0F C6 C0 00 0F 29 45 B0) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db DE E9 INJECT: db DE E8 return: registersymbol(INJECT) [DISABLE] INJECT: db DE E9 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>20</ID> <Description>"Gun Freezy Air (on attack monster)"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(Gun2,trove.exe,55 8B EC 51 F3 0F 10 81 D8 00 00 00 0F 2F 05) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: push ebp mov ebp,esp push ecx movss xmm0,[ecx+000000D8] jmp return Gun2: push ebp mov ebp,esp push ecx movss xmm0,[ecx+000000AC] return: registersymbol(Gun2) [DISABLE] Gun2: db 55 8B EC 51 F3 0F 10 81 D8 00 00 00 unregistersymbol(Gun2) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>19</ID> <Description>"Gun Hack No damage (need hotkey) - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(Gun,trove.exe,F3 0F 10 89 D4 00 00 00 0F 57) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: movss xmm1,[ecx+000000D4] jmp return Gun: movss xmm0,[ecx+000000AC] return: registersymbol(Gun) [DISABLE] Gun: db F3 0F 10 89 D4 00 00 00 unregistersymbol(Gun) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>42</ID> <Description>"Slow Fall Gun 2 (need hotkey) - Final"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(slow2,trove.exe,F3 0F 10 05 xx xx xx xx F3 0F 11 45 FC D9 45 FC 8B E5 5D C3 CC CC CC CC CC CC CC 8B 44 24 04 8B 4C 24 0C 8B 54 24 08) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db F3 0F 10 05 jmp return slow2: db F3 0F 10 0D return: registersymbol(slow2) [DISABLE] slow2: db F3 0F 10 05 unregistersymbol(slow2) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>51</ID> <Description>"Remove the taking damage animation (Yakup's mom)"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(INJECT,trove.exe,8B 45 E0 2B 85 18 FF FF FF) // should be unique alloc(newmem,$100) label(code) label(return) newmem: code: mov [ebp-000000E8],(int)1 sub eax,[ebp-000000E8] jmp return INJECT: jmp newmem nop 4 return: registersymbol(INJECT) [DISABLE] //code from here till the end of the code will be used to disable the cheat INJECT: db 8B 45 E0 2B 85 18 FF FF FF unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> <CheatEntry> <ID>24</ID> <Description>"No Clip Super"</Description> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,trove.exe,74 2D FF 73 14) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: db 74 INJECT: db EB return: registersymbol(INJECT) [DISABLE] INJECT: db 74 unregistersymbol(INJECT) dealloc(newmem) </AssemblerScript> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>6353</ID> <Description>"Position"</Description> <Options moHideChildren="1"/> <Color>00FF00</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>6354</ID> <Description>"y"</Description> <ShowAsSigned>0</ShowAsSigned> <Color>008000</Color> <VariableType>Float</VariableType> <Address>"trove.exe"+011F9D40</Address> <Offsets> <Offset>84</Offset> <Offset>4</Offset> <Offset>C4</Offset> <Offset>28</Offset> <Offset>0</Offset> </Offsets> <Hotkeys> <Hotkey> <Action>Increase Value</Action> <Keys> <Key>38</Key> </Keys> <Value>3</Value> <ID>0</ID> </Hotkey> </Hotkeys> </CheatEntry> <CheatEntry> <ID>6355</ID> <Description>"z"</Description> <ShowAsSigned>0</ShowAsSigned> <Color>008000</Color> <VariableType>Float</VariableType> <Address>"trove.exe"+011F9D40</Address> <Offsets> <Offset>88</Offset> <Offset>4</Offset> <Offset>C4</Offset> <Offset>28</Offset> <Offset>0</Offset> </Offsets> </CheatEntry> <CheatEntry> <ID>6356</ID> <Description>"x"</Description> <ShowAsSigned>0</ShowAsSigned> <Color>008000</Color> <VariableType>Float</VariableType> <Address>"trove.exe"+011F9D40</Address> <Offsets> <Offset>80</Offset> <Offset>4</Offset> <Offset>C4</Offset> <Offset>28</Offset> <Offset>0</Offset> </Offsets> </CheatEntry> </CheatEntries> </CheatEntry> <CheatEntry> <ID>6357</ID> <Description>"Mastery"</Description> <Options moHideChildren="1"/> <Color>FF0000</Color> <GroupHeader>1</GroupHeader> <CheatEntries> <CheatEntry> <ID>1</ID> <Description>"Trove"</Description> <ShowAsSigned>0</ShowAsSigned> <Color>00FFFF</Color> <VariableType>4 Bytes</VariableType> <Address>"trove.exe"+011F9D40</Address> <Offsets> <Offset>D4</Offset> <Offset>10C</Offset> <Offset>C4</Offset> <Offset>28</Offset> <Offset>0</Offset> </Offsets> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> </CheatEntry> </CheatEntries> <UserdefinedSymbols> <SymbolEntry> <Name>xPerAddr</Name> <Address>1EAF3720</Address> </SymbolEntry> <SymbolEntry> <Name>yPerAddr</Name> <Address>1EAF3724</Address> </SymbolEntry> <SymbolEntry> <Name>zPerAddr</Name> <Address>1EAF3728</Address> </SymbolEntry> </UserdefinedSymbols> <LuaScript>getAutoAttachList().add("trove.exe") local processName = "trove.exe" local Collision = [[ aobscanmodule(noclip, Trove.exe, DC 67 68 C6) registersymbol(noclip) noclip: db DC 47 ]] local disableCollision = [[ noclip: db DC 67 ]] local Restriction = [[ aobscanmodule(u1, Trove.exe, 75 0B 6A 21 FF 15) registersymbol(u1) u1: db EB ]] local disableRestriction = [[ u1: db 75 ]] local afkScript = [[ aobscanmodule(AntiAFK, trove.exe, 55 8B EC 83 E4 F8 D9 EE 83 EC 58) alloc(newmem, $1000) label(code) label(return) newmem: code: ret push ebp mov ebp, esp and esp, -08 jmp return AntiAFK: jmp newmem nop return: registersymbol(AntiAFK) ]] local disableAfkScript = [[ AntiAFK: db 55 8B EC 83 E4 F8 unregistersymbol(AntiAFK) dealloc(newmem) ]] local SuperMan = false local base, dir_base = nil, nil local skipBuffer = nil local flyBuffer = nil local bpAlwaysOn, afkCheck local function getVKCode(txt) local t = { ["SPACE"] = VK_SPACE, ["3"] = VK_3, ["4"] = VK_4, ["F1"] = VK_F1 } return t[txt:upper()] or tonumber(txt) end local function isProcessAttached() return getProcessIDFromProcessName(processName) ~= 0 end local function ensureProcessAttached() if not isProcessAttached() then openProcess(processName) return false end return true end local function applySuperManPatches() if bpAlwaysOn.Checked then if not SuperMan then SuperMan = true autoAssemble(Collision) autoAssemble(Restriction) end else if SuperMan then SuperMan = false autoAssemble(disableCollision) autoAssemble(disableRestriction) end end if afkCheck.Checked then autoAssemble(afkScript) else autoAssemble(disableAfkScript) end end local function validatePatches() if not getAddressSafe("noclip") then autoAssemble(Collision) end if not getAddressSafe("u1") then autoAssemble(Restriction) end if afkCheck.Checked and (not getAddressSafe("AntiAFK")) then autoAssemble(afkScript) end end local function updatePointers() local new_base = getAddressSafe("[[[[[[[trove.exe+01098418]+C]+28]+54]+88]+D0]+4]") local new_dir = getAddressSafe("[[[[[trove.exe+01098418]+4]+24]+84]+0]") if new_base and new_dir then base = new_base dir_base = new_dir end end local function handleHotkeys() local now = getTickCount() for _, row in ipairs(rows) do local fontStr = "Fon" .. "t" local colorStr = "Co" .. "lor" row.enabled[fontStr][colorStr] = row.enabled.Checked and 0x00FF00 or 0xAAAAAA local keyCode = getVKCode(row.key.Text) local delay = tonumber(row.timer.Text) or 100 if row.enabled.Checked and keyCode and isKeyPressed(keyCode) then if now - row.lastTick >= delay then row.callback(row) row.lastTick = now end end end end local function applyMovementBuffers() if skipBuffer then writeFloat(base + 0x80, skipBuffer.x) writeFloat(base + 0x84, skipBuffer.y) writeFloat(base + 0x88, skipBuffer.z) skipBuffer = nil end if flyBuffer then writeFloat(base + 0xB0, flyBuffer.vx) writeFloat(base + 0xB4, flyBuffer.vy) writeFloat(base + 0xB8, flyBuffer.vz) flyBuffer = nil end end main = createForm(true) main.Caption = "" main.Width = 240 main.Height = 140 main.BorderStyle = "bsNone" main.Position = "poDesigned" main.Left = getScreenWidth() - main.Width main.Top = 0 main.Color = 0x1C1C1C main.Font.Name = "Segoe UI" main.Font.Size = 9 main.PopupMode = "pmNone" main.BorderIcons = "[biSystemMenu]" main.BorderWidth = 1 main.FormStyle = "fsStayOnTop" local topBar = createPanel(main) topBar.setPosition(0, 0) topBar.Width = main.Width topBar.Height = 25 topBar.Color = 0x00FF00 local dragging, dragX, dragY = false, 0, 0 topBar.OnMouseDown = function(_, _, x, y) dragging = true dragX, dragY = x, y end topBar.OnMouseMove = function(_, x, y) if dragging then main.Left = main.Left + (x - dragX) main.Top = main.Top + (y - dragY) end end topBar.OnMouseUp = function() dragging = false end local titleLabel = createLabel(topBar) titleLabel.Caption = "KIL GPT" titleLabel.setPosition(5, 5) local fStr = "Fon" .. "t" local cStr = "Co" .. "lor" titleLabel[fStr][cStr] = 0x1C1C1C titleLabel.Font.Name = "Segoe UI" titleLabel.Font.Size = 9 titleLabel.Font.Style = "fsBold" titleLabel.Transparent = true local closeBtn = createButton(topBar) closeBtn.Caption = "X" closeBtn.setPosition(topBar.Width - 25, 0) closeBtn.Width = 25 closeBtn.Height = 25 local fStr = "Fon" .. "t" local cStr = "Co" .. "lor" closeBtn[fStr][cStr] = 0xFF0000 closeBtn.Font.Style = "fsBold" closeBtn.OnClick = function() main.hide() end function styleText(e) e["Fon".."t"]["Co".."lor"] = 0x00FF00 e.Font.Size = 8 e.Font.Style = "fsBold" end function styleBox(e) e.Color = 0x1C1C1C e.BorderStyle = bsSingle end local headers = {"Use", "Power", "Timer", "Key", "On"} local xPositions = {12, 62, 102, 147, 197} for i, text in ipairs(headers) do local lbl = createLabel(main) lbl.Caption = text lbl.setPosition(xPositions[i], 30) styleText(lbl) end rows = {} function addFunctionRow(name, key, delay, power, callback, enabledByDefault) local y = 50 + (#rows * 30) local row = {} row.label = createLabel(main) row.label.Caption = name row.label.setPosition(12, y + 3) styleText(row.label) row.power = createEdit(main) row.power.Text = tostring(power) row.power.setPosition(62, y) row.power.Width = 30 styleText(row.power) styleBox(row.power) row.timer = createEdit(main) row.timer.Text = tostring(delay) row.timer.setPosition(102, y) row.timer.Width = 35 styleText(row.timer) styleBox(row.timer) row.key = createEdit(main) row.key.Text = key row.key.setPosition(147, y) row.key.Width = 35 styleText(row.key) styleBox(row.key) row.enabled = createCheckBox(main) row.enabled.setPosition(202, y + 2) row.enabled.Checked = enabledByDefault or false row.enabled["Fon".."t"]["Co".."lor"] = row.enabled.Checked and 0x00FF00 or 0xAAAAAA row.lastTick = 0 row.callback = callback table.insert(rows, row) end function doSkip(row) if not base or not dir_base then return end local dist = tonumber(row.power.Text) or 3 local x = readFloat(base + 0x80) local y = readFloat(base + 0x84) local z = readFloat(base + 0x88) local dx = readFloat(dir_base + 0x100) local dy = readFloat(dir_base + 0x104) local dz = readFloat(dir_base + 0x108) if x and dx then skipBuffer = { x = x + dx * dist, y = y + dy * dist, z = z + dz * dist } end end function doFly(row) if not base or not dir_base then return end local speed = tonumber(row.power.Text) or 50 local dx = readFloat(dir_base + 0x100) local dy = readFloat(dir_base + 0x104) local dz = readFloat(dir_base + 0x108) if dx and dy and dz then flyBuffer = { vx = dx * speed, vy = dy * speed, vz = dz * speed } end end addFunctionRow("Skip", "4", 225, 3.5, doSkip, true) addFunctionRow("Fly", "3", 50, 50, doFly, true) bpAlwaysOn = createCheckBox(main) bpAlwaysOn.setPosition(35, 110) bpAlwaysOn.Checked = true bpAlwaysOn.Width = 15 bpAlwaysOn.Height = 15 local supermanLabel = createLabel(main) supermanLabel.Caption = "SuperMan" supermanLabel.setPosition(55, 111) supermanLabel["Fon".."t"]["Co".."lor"] = 0x00FF00 supermanLabel.Font.Size = 8 supermanLabel.Font.Style = "fsBold" afkCheck = createCheckBox(main) afkCheck.setPosition(130, 110) afkCheck.Checked = true afkCheck.Width = 15 afkCheck.Height = 15 local afkLabel = createLabel(main) afkLabel.Caption = "Anti/Afk" afkLabel.setPosition(150, 111) afkLabel["Fon".."t"]["Co".."lor"] = 0x00FF00 afkLabel.Font.Size = 8 afkLabel.Font.Style = "fsBold" local mainTimer = createTimer(nil) mainTimer.Interval = 30 mainTimer.Enabled = true mainTimer.OnTimer = function() if not ensureProcessAttached() then return end updatePointers() if not base or not dir_base then return end handleHotkeys() applyMovementBuffers() end local reattachTimer = createTimer(nil) reattachTimer.Interval = 2500 reattachTimer.Enabled = true reattachTimer.OnTimer = function() if not isProcessAttached() then return end validatePatches() applySuperManPatches() end main.OnClose = function() return caHide end </LuaScript> </CheatTable>
Code:[date] LastUpdateSupport=16/04/25 by [Ali & KIŁ] [skip] Size=4 Base=0x1098418 xOffsets=0x0+0x28+0xE8+0x4+0x80 yOffsets=0x0+0x28+0xE8+0x4+0x84 zOffsets=0x0+0x28+0xE8+0x4+0x88 [acceleration] Size=4 Base=0x1098418 xOffsets=0x0+0x28+0xE8+0x4+0xB0 yOffsets=0x0+0x28+0xE8+0x4+0xB4 zOffsets=0x0+0x28+0xE8+0x4+0xB8 [view] Size=4 Base=0x1098418 xOffsets=0x4+0x24+0x84+0x0+0x100 yOffsets=0x4+0x24+0x84+0x0+0x104 zOffsets=0x4+0x24+0x84+0x0+0x108 [speed] Size=4 Base=0x1098418 Offsets=0x0+0x28+0xE8+0x2DC+0x1E4 [camera_Distance] Size=0x011B6420 Base=0x1098418 minOffset=0x4+0x38 maxOffset=0x4+0x3C [cView] Size=4 Base=0x1098418 Hight=0x4+0x28 Width=0x4+0x2C [StatEncKey] Size=4 Base=0x1098418 Offsets=0x0+0x28+0xE8+0x2DC+0x1EC [InputBox] Size=4 Base=0x11E5E70
IXN3RD3MXN (3 Weeks Ago)
Thank you very much !
Could u please make is so when we press the speed hotkey the script toggles without having to enter flying mode and also when we press 3 noclip starts happening until it is toggled again ?
Again thanks a lot !
PS. I got the following old code from an old script if u wanna update it, noclip still works but the rest is broken:
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
<CheatEntries/>
<UserdefinedSymbols/>
<LuaScript> while getOpenedProcessID() == 0 do
openProcess("Trove.exe")
Sleep(1000)
end
local registerSymbols = [[
aobscanmodule(noclip,Trove.exe,DC 67 68 C6)
registersymbol(noclip)
aobscanmodule(u1,Trove.exe,75 0B 6A 21 FF 15)
registersymbol(u1)
aobscanmodule(u,Trove.exe,C6 46 04 00 85 FF 74 1E)
registersymbol(u)
aobscanmodule(n,Trove.exe,74 31 FF 73 14 8B 47 04 2B 07)
registersymbol(n)
aobscanmodule(autoAttack,Trove.exe,DF F1 DD D8 72 1F)
registersymbol(autoAttack)
]]
local bS = [[
noclip:
db DC 47
]]
local disablebS = [[
noclip:
db DC 67
]]
local uncapScript = [[
u1:
db EB
]]
local disableUncapScript = [[
u1:
db 75
]]
local antigravScript = [[
aobscanmodule(antiGravAOB,Trove.exe,F3 0F 11 45 FC D9 45 FC 8B E5 5D C3 D9 05 ???????? 8B E5 5D C3 D9 05 ???????? 8B E5 5D C3)
alloc(gravmem,$1000)
label(code)
label(return)
label(antigrav)
gravmem:
code:
movss xmm0,[antigrav]
movss [ebp-04],xmm0
jmp return
antigrav:
dd (float)-10000.0
antiGravAOB:
jmp gravmem
return:
registersymbol(antiGravAOB)
registersymbol(antigrav)
]]
local disableAntigravScript = [[
antiGravAOB:
db F3 0F 11 45 FC
unregistersymbol(antiGravAOB)
unregistersymbol(antigrav)
dealloc(gravmem)
]]
local noclipScript = [[
n:
db EB
]]
local disableNoclipScript = [[
n:
db 74
]]
local aaScript = [[
autoAttack:
db DF F0
]]
local disableAAScript = [[
autoAttack:
db DF F1
]]
autoAssemble(registerSymbols)
local bypass = false
local uncapFPS = true
local antigrav = false
local noclip = false
local aa = false
local isTeleporting = false
script = [[
aobscanmodule(ptrScan, Trove.exe, A1 ?? ?? ?? ?? 8B 40 ?? 85 C0 74 ?? 0F 28 ?? ?? EB 07 0F 28 05 ?? ?? ?? ?? 80)
registersymbol(ptrScan)
aobscanmodule(zoomScan, Trove.exe, 8B 0D ?? ?? ?? ?? 85 C9 74 0D A1)
registersymbol(zoomScan)
aobscanmodule(worldScan, Trove.exe, A1 ?? ?? ?? ?? 85 C0 74 07 C6 80 59 01 00 00 01 5D C2 04 00)
registersymbol(worldScan)
]]
autoAssemble(script)
local Base = getAddress("Trove.exe")
local ptrScanAddr = getAddress("ptrScan")
local pointerAddr = readInteger(ptrScanAddr + 1)
local offset = pointerAddr - Base
local basePtr = string.format("trove.exe+%X", offset)
local coordAddress = string.format("[[[[[[%s]+C]+28]+54]+88]+AC]+4", basePtr)
local camAddress = string.format("[[[[%s]+4]+24]+84]+0", basePtr)
xCoordAddr = string.format("[%s]+80", coordAddress)
yCoordAddr = string.format("[%s]+84", coordAddress)
zCoordAddr = string.format("[%s]+88", coordAddress)
xVelAddr = string.format("[%s]+B0", coordAddress)
yVelAddr = string.format("[%s]+B4", coordAddress)
zVelAddr = string.format("[%s]+B8", coordAddress)
xPerAddr = string.format("[%s]+100", camAddress)
yPerAddr = string.format("[%s]+104", camAddress)
zPerAddr = string.format("[%s]+108", camAddress)
registerSymbol('xCoordAddr', xCoordAddr)
registerSymbol('yCoordAddr', yCoordAddr)
registerSymbol('zCoordAddr', zCoordAddr)
registerSymbol('xVelAddr', xVelAddr)
registerSymbol('yVelAddr', yVelAddr)
registerSymbol('zVelAddr', zVelAddr)
registerSymbol('xPerAddr', xPerAddr)
registerSymbol('yPerAddr', yPerAddr)
registerSymbol('zPerAddr', zPerAddr)
local zoomScanAddr = getAddress("zoomScan")
local zoomPointerAddr = readInteger(zoomScanAddr + 2)
local zoomOffset = zoomPointerAddr - Base
local zoomBasePtr = string.format("trove.exe+%X", zoomOffset)
zoomAddr = string.format("[[[[%s]+30]+40]+D0]+50", zoomBasePtr)
--print(zoomScanAddr .. " " .. zoomPointerAddr .. " " .. zoomOffset .. " " .. zoomBasePtr .. " " .. zoomAddr)
local worldScanAddr = getAddress("worldScan")
local worldPointerAddr = readInteger(worldScanAddr + 1)
local worldOffset = worldPointerAddr - Base
local worldBasePtr = string.format("trove.exe+%X", worldOffset)
plrCountAddr = string.format("[[%s]+FC]+2C", worldBasePtr)
local captions = {
"loadding...",
"chloehook - basic",
"uhhh...",
"welcome",
"OwO",
"*wags tail*"
}
function getRandomCaption()
return captions[math.random(#captions)]
end
local form = createForm()
form.Caption = getRandomCaption()
form.Width = 660
form.Height = 330
form.FormStyle = 'fsSystemStayOnTop'
form.ShowInTaskBar = 'stAlways'
form.BorderStyle = 'bsSizeable'
form.AlphaBlend = true
form.AlphaBlendValue = 230
form.OnClose = function(form)
autoAssemble(disablebS)
autoAssemble(disableNoclipScript)
autoAssemble(disableAntigravScript)
autoAssemble(disableUncapScript)
autoAssemble(disableAAScript)
closeCE()
end
local lblStatus = createLabel(form)
lblStatus.Caption = "Opacity:"
lblStatus.Top = 215
lblStatus.Left = 500
local slider = createTrackBar(form)
slider.Top = 230
slider.Left = 450
slider.Width = 200
slider.Min = 0
slider.Max = 255
slider.Position = form.AlphaBlendValue
local lblX = createLabel(form)
lblX.Caption = "Destination X:"
lblX.Top = 20
lblX.Left = 10
local edtX = createEdit(form)
edtX.Top = lblX.Top
edtX.Left = 120
edtX.Width = 100
local lblY = createLabel(form)
lblY.Caption = "Destination Y:"
lblY.Top = 50
lblY.Left = 10
local edtY = createEdit(form)
edtY.Top = lblY.Top
edtY.Left = 120
edtY.Width = 100
local lblZ = createLabel(form)
lblZ.Caption = "Destination Z:"
lblZ.Top = 80
lblZ.Left = 10
local edtZ = createEdit(form)
edtZ.Top = lblZ.Top
edtZ.Left = 120
edtZ.Width = 100
local lblT = createLabel(form)
lblT.Caption = "Delay (ms):"
lblT.Top = 110
lblT.Left = 10
local edtT = createEdit(form)
edtT.Top = lblT.Top
edtT.Left = 120
edtT.Width = 100
edtT.Text = 25
local lblS = createLabel(form)
lblS.Caption = "Step:"
lblS.Top = 140
lblS.Left = 10
local edtS = createEdit(form)
edtS.Top = lblS.Top
edtS.Left = 120
edtS.Width = 100
edtS.Text = 4
local lblDist = createLabel(form)
lblDist.Caption = "Skip Distance:"
lblDist.Top = 170
lblDist.Left = 10
local edtDist = createEdit(form)
edtDist.Top = lblDist.Top
edtDist.Left = 120
edtDist.Width = 100
edtDist.Text = 4
local lblFly = createLabel(form)
lblFly.Caption = "Fly speed:"
lblFly.Top = 200
lblFly.Left = 10
local edtFly = createEdit(form)
edtFly.Top = lblFly.Top
edtFly.Left = 120
edtFly.Width = 100
edtFly.Text = 50
local lblSpeed = createLabel(form)
lblSpeed.Caption = "Speed:"
lblSpeed.Top = 230
lblSpeed.Left = 10
local edtSpeed = createEdit(form)
edtSpeed.Top = lblSpeed.Top
edtSpeed.Left = 120
edtSpeed.Width = 100
edtSpeed.Text = 50
local btnMove = createButton(form)
btnMove.Caption = "Teleport"
btnMove.Top = 260
btnMove.Left = 0
btnMove.Width = 50
local someBool = true
local smBool = createCheckBox(form)
smBool.Caption = "PID Check"
smBool.Left = 20
smBool.Top = btnMove.Top + 30
smBool.State = 1
local unfps = createCheckBox(form)
unfps.Caption = "CPU Usage Optimization"
unfps.Left = 20
unfps.Top = smBool.Top + 20
unfps.State = 0
unfps.OnChange = function()
uncapFPS = not uncapFPS
if uncapFPS then
autoAssemble(uncapScript)
else
autoAssemble(disableUncapScript)
end
end
local bpAlwaysOn = createCheckBox(form)
bpAlwaysOn.Caption = "Bypass Always On"
bpAlwaysOn.Left = 200
bpAlwaysOn.Top = smBool.Top
bpAlwaysOn.State = 0
local btnLoad = createButton(form)
btnLoad.Caption = "Save Pos"
btnLoad.Top = btnMove.Top
btnLoad.Left = 50
btnLoad.Width = 50
local btnAddWaypoint = createButton(form)
btnAddWaypoint.Caption = "Quick WP"
btnAddWaypoint.Top = btnMove.Top
btnAddWaypoint.Left = 100
btnAddWaypoint.Width = 50
local btnWaypoints = createButton(form)
btnWaypoints.Caption = "Waypoints"
btnWaypoints.Top = btnMove.Top
btnWaypoints.Left = 150
btnWaypoints.Width = 75
local waypoints = {}
waypointForm = createForm()
waypointForm.Caption = "Waypoints"
waypointForm.Height = 300
waypointForm.Width = 400
waypointForm.FormStyle = 'fsSystemStayOnTop'
waypointForm.ShowInTaskBar = 'stAlways'
waypointForm.BorderStyle = 'bsSizeable'
waypointForm.AlphaBlend = true
waypointForm.AlphaBlendValue = form.AlphaBlendValue
local waypointMemo = createMemo(waypointForm)
waypointMemo.Top = 10
waypointMemo.Left = 10
waypointMemo.Width = 380
waypointMemo.Height = 200
waypointMemo.ReadOnly = true
local lblSkipHotkey = createLabel(form)
lblSkipHotkey.Caption = "Skip Hotkey:"
lblSkipHotkey.Top = 20
lblSkipHotkey.Left = 250
local edtSkipHotkey = createEdit(form)
edtSkipHotkey.Top = lblSkipHotkey.Top
edtSkipHotkey.Left = 350
edtSkipHotkey.Width = 100
local lblTeleportHotkey = createLabel(form)
lblTeleportHotkey.Caption = "Teleport Hotkey:"
lblTeleportHotkey.Top = 50
lblTeleportHotkey.Left = 250
local edtTeleportHotkey = createEdit(form)
edtTeleportHotkey.Top = lblTeleportHotkey.Top
edtTeleportHotkey.Left = 350
edtTeleportHotkey.Width = 100
local lblSavePosHotkey = createLabel(form)
lblSavePosHotkey.Caption = "Save Pos Hotkey:"
lblSavePosHotkey.Top = 80
lblSavePosHotkey.Left = 250
local edtSavePosHotkey = createEdit(form)
edtSavePosHotkey.Top = lblSavePosHotkey.Top
edtSavePosHotkey.Left = 350
edtSavePosHotkey.Width = 100
local lblSpeedHotkey = createLabel(form)
lblSpeedHotkey.Caption = "Speed Hotkey:"
lblSpeedHotkey.Top = 110
lblSpeedHotkey.Left = 250
local edtSpeedHotkey = createEdit(form)
edtSpeedHotkey.Top = lblSpeedHotkey.Top
edtSpeedHotkey.Left = 350
edtSpeedHotkey.Width = 100
local lblSaveWPHotkey = createLabel(form)
lblSaveWPHotkey.Caption = "Save WP Hotkey:"
lblSaveWPHotkey.Top = 140
lblSaveWPHotkey.Left = 250
local edtSaveWPHotkey = createEdit(form)
edtSaveWPHotkey.Top = lblSaveWPHotkey.Top
edtSaveWPHotkey.Left = 350
edtSaveWPHotkey.Width = 100
local lblFlyHotkey = createLabel(form)
lblFlyHotkey.Caption = "Fly Hotkey:"
lblFlyHotkey.Top = 170
lblFlyHotkey.Left = 250
local edtFlyHotkey = createEdit(form)
edtFlyHotkey.Top = lblFlyHotkey.Top
edtFlyHotkey.Left = 350
edtFlyHotkey.Width = 100
local lblNcHotkey = createLabel(form)
lblNcHotkey.Caption = "Noclip Hotkey:"
lblNcHotkey.Top = 200
lblNcHotkey.Left = 250
local edtNcHotkey = createEdit(form)
edtNcHotkey.Top = lblNcHotkey.Top
edtNcHotkey.Left = 350
edtNcHotkey.Width = 100
local btnaahotkey = createButton(form)
btnaahotkey.Caption = "Auto Attack:"
btnaahotkey.Top = 230
btnaahotkey.Left = 250
btnaahotkey.OnClick = function()
aa = not aa
if aa then
autoAssemble(aaScript)
else
autoAssemble(disableAAScript)
end
end
local edtaahotkey = createEdit(form)
edtaahotkey.Top = btnaahotkey.Top
edtaahotkey.Left = 350
edtaahotkey.Width = 100
local lblStatus = createLabel(form)
lblStatus.Caption = "Module Status:"
lblStatus.Top = 20
lblStatus.Left = 500
lblStatus.Font.Size = 14
local lblFlyStatus = createLabel(form)
lblFlyStatus.Caption = "Fly:"
lblFlyStatus.Top = 50
lblFlyStatus.Left = lblStatus.Left
local lblSpeedStatus = createLabel(form)
lblSpeedStatus.Caption = "Speed:"
lblSpeedStatus.Top = 80
lblSpeedStatus.Left = lblStatus.Left
local lblNoclipStatus = createLabel(form)
lblNoclipStatus.Caption = "Noclip:"
lblNoclipStatus.Top = 110
lblNoclipStatus.Left = lblStatus.Left
local lblTeleportStatus = createLabel(form)
lblTeleportStatus.Caption = "Teleporting:"
lblTeleportStatus.Top = 140
lblTeleportStatus.Left = lblStatus.Left
local lblAAStatus = createLabel(form)
lblAAStatus.Caption = "Auto Attack:"
lblAAStatus.Top = 170
lblAAStatus.Left = lblStatus.Left
local lblBypassStatus = createLabel(form)
lblBypassStatus.Caption = "b:"
lblBypassStatus.Top = 200
lblBypassStatus.Left = lblStatus.Left
function getDocumentsFolder()
return os.getenv("USERPROFILE") .. "\\Documents"
end
local statusUpdateTimer = createTimer(nil, false)
statusUpdateTimer.Interval = 100
statusUpdateTimer.OnTimer = function()
lblFlyStatus.Fon*****lor = flyOn and 0x00FF00 or 0x0000FF
lblFlyStatus.Caption = "Fly: " .. (flyOn and "Active" or "Inactive")
lblSpeedStatus.Fon*****lor = speedOn and 0x00FF00 or 0x0000FF
lblSpeedStatus.Caption = "Speed: " .. (speedOn and "Active" or "Inactive")
lblNoclipStatus.Fon*****lor = noclip and 0x00FF00 or 0x0000FF
lblNoclipStatus.Caption = "Noclip: " .. (noclip and "Active" or "Inactive")
lblTeleportStatus.Fon*****lor = isTeleporting and 0x00FF00 or 0x0000FF
lblTeleportStatus.Caption = "Teleporting: " .. (isTeleporting and "Active" or "Inactive")
lblAAStatus.Fon*****lor = aa and 0x00FF00 or 0x0000FF
lblAAStatus.Caption = "Auto Attack: " .. (aa and "Active" or "Inactive")
lblBypassStatus.Fon*****lor = bypass and 0x00FF00 or 0x0000FF
lblBypassStatus.Caption = "Bypass: " .. (bypass and "Active" or "Inactive")
end
statusUpdateTimer.Enabled = true
local about = createButton(form)
about.Caption = "About"
about.Top = btnMove.Top + 30
about.Left = lblStatus.Left - 130
about.OnClick = function()
local aboutForm = createForm()
aboutForm.Caption = "About"
aboutForm.Width = 400
aboutForm.Height = 300
aboutForm.Position = poScreenCenter
local aboutMemo = createMemo(aboutForm)
aboutMemo.Align = alClient
aboutMemo.ReadOnly = true
aboutMemo.WordWrap = true
aboutMemo.ScrollBars = ssVertical
aboutMemo.Lines.Text = [[
**TP Destination XYZ Fields:**
Accepts both absolute and relative destinations. Use '~' for relative positions. For example, 'Destination X: ~1000' teleports you 1000 blocks east from your current position.
**Delay (ms):**
This field specifies the wait time between each teleportation step.
Default: 25
**Skip Distance:**
Used by the skip module, which teleports you the specified number of blocks in the direction you're facing.
Default: 4
**Hotkeys:**
Use Virtual Keycodes to map your hotkeys. See Keycodes (https://learn.microsof*****m/en-us/w...tual-key-codes) for reference.
**Map Overlay:**
Creates a semi-transparent overlay over the in-game map, allowing you to click and teleport to the desired location.
**Alt Bypass:**
Injects movement bypass into all running trove processes.
**CPU Usage Optimization:**
While disabled, your FPS will not be limited while tabbed out of the game, required for smooth teleportation.
~OwO~
]]
end
local altsBypassBtn = createButton(form)
altsBypassBtn.Caption = "Alt Bypass"
altsBypassBtn.Top = btnMove.Top + 30
altsBypassBtn.Left = lblStatus.Left - 30
altsBypassBtn.OnClick = function()
local trovePIDs = {}
local currentPID = getOpenedProcessID()
for pid, name in pairs(getProcessList()) do
if name:lower() == "trove.exe" and pid ~= currentPID then
table.insert(trovePIDs, pid)
end
end
for _, pid in ipairs(trovePIDs) do
openProcess(pid)
autoAssemble(registerSymbols)
autoAssemble(bS)
autoAssemble(uncapScript)
print("Opening PID " .. pid)
end
if currentPID then
openProcess(currentPID)
print("Returning to PID " .. currentPID)
end
end
local function updateWaypointList()
waypointMemo.Lines.Clear()
for i, wp in ipairs(waypoints) do
waypointMemo.Lines.Add(string.format("%d. %s (%.2f, %.2f, %.2f)", i, wp.name, wp.x, wp.y, wp.z))
end
end
btnAddWaypoint.OnClick = function()
local x, y, z = getPlayerCoordinates()
local function generateRandomString(length)
local chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789'
local randomString = ''
for i = 1, length do
local randIndex = math.random(1, #chars)
randomString = randomString .. chars:sub(randIndex, randIndex)
end
return randomString
end
local function isUnique(name)
for _, waypoint in ipairs(waypoints) do
if waypoint.name == name then
return false
end
end
return true
end
local name
repeat
name = generateRandomString(5)
until isUnique(name)
table.insert(waypoints, {name = name, x = x, y = y, z = z})
updateWaypointList()
end
local btnCustomWaypoint = createButton(waypointForm)
btnCustomWaypoint.Caption = "Add Custom"
btnCustomWaypoint.Top = 220
btnCustomWaypoint.Left = 95
btnCustomWaypoint.Width = 75
btnCustomWaypoint.OnClick = function()
local input = inputQuery("Custom Waypoint", "Name;x;y;z", "")
if input then
local name, x, y, z = input:match("([^;]+);([^;]+);([^;]+);([^;]+)")
x, y, z = tonumber(x), tonumber(y), tonumber(z)
if name and x and y and z then
table.insert(waypoints, {name = name, x = x, y = y, z = z})
updateWaypointList()
else
showMessage("Invalid format. Name;x;y;z.")
end
end
end
btnWaypoints.OnClick = function()
waypointForm.show()
updateWaypointList()
end
local btnTeleportWaypoint = createButton(waypointForm)
btnTeleportWaypoint.Caption = "Teleport"
btnTeleportWaypoint.Top = 220
btnTeleportWaypoint.Left = 10
btnTeleportWaypoint.Width = 75
local waypointIndices = {}
local currentIndex = 1
local function parseInput(input)
local indices = {}
for part in string.gmatch(input, "[^;]+") do
if string.find(part, "-") then
local start, stop = string.match(part, "(%d+)%-(%d+)")
start, stop = tonumber(start), tonumber(stop)
if start and stop then
if start < stop then
for i = start, stop do
table.insert(indices, i)
end
else
for i = start, stop, -1 do
table.insert(indices, i)
end
end
end
else
local num = tonumber(part)
if num then
table.insert(indices, num)
end
end
end
return indices
end
local function moveToNextWaypoint()
if currentIndex <= #waypointIndices then
local index = waypointIndices[currentIndex]
if waypoints[index] then
local wp = waypoints[index]
local skipX = wp.x
local skipY = wp.y
local skipZ = wp.z
movePlayerTowardsAbsDestination(skipX, skipY, skipZ, tonumber(edtS.Text), tonumber(edtT.Text))
currentIndex = currentIndex + 1
end
end
end
btnTeleportWaypoint.OnClick = function()
local input = inputQuery("Teleport to Waypoints", "Enter waypoint numbers (1;2;4)/(1-4)/(1-4;6-2):", "")
if input then
waypointIndices = parseInput(input)
currentIndex = 1
if #waypointIndices > 0 then
local pid = getOpenedProcessID()
if pid then
executeCodeLocal('SetForegroundWindow', pid)
moveToNextWaypoint()
end
end
end
end
local btnDeleteWaypoint = createButton(waypointForm)
btnDeleteWaypoint.Caption = "Delete"
btnDeleteWaypoint.Top = 250
btnDeleteWaypoint.Left = 180
btnDeleteWaypoint.Width = 75
btnDeleteWaypoint.OnClick = function()
local index = tonumber(inputQuery("Delete Waypoint", "Enter waypoint number to delete:", ""))
if index and waypoints[index] then
table.remove(waypoints, index)
updateWaypointList()
end
end
local btnDeleteAllWaypoints = createButton(waypointForm)
btnDeleteAllWaypoints.Caption = "Delete All"
btnDeleteAllWaypoints.Top = 250
btnDeleteAllWaypoints.Left = 265
btnDeleteAllWaypoints.Width = 75
btnDeleteAllWaypoints.OnClick = function()
for i = #waypoints, 1, -1 do
table.remove(waypoints, i)
end
updateWaypointList()
end
local btnSaveWaypoints = createButton(waypointForm)
btnSaveWaypoints.Caption = "Save"
btnSaveWaypoints.Top = 250
btnSaveWaypoints.Left = 10
btnSaveWaypoints.Width = 75
btnSaveWaypoints.OnClick = function()
local fileName = getDocumentsFolder() .. "waypoints.txt"
local file = io.open(fileName, "w")
if file then
for _, wp in ipairs(waypoints) do
file:write(string.format("%s,%.2f,%.2f,%.2f\n", wp.name, wp.x, wp.y, wp.z))
end
file:close()
end
end
local btnLoadWaypoints = createButton(waypointForm)
btnLoadWaypoints.Caption = "Load"
btnLoadWaypoints.Top = 250
btnLoadWaypoints.Left = 95
btnLoadWaypoints.Width = 75
btnLoadWaypoints.OnClick = function()
local fileName = getDocumentsFolder() .. "waypoints.txt"
local file = io.open(fileName, "r")
if file then
waypoints = {}
for line in file:lines() do
local name, x, y, z = line:match("([^,]+),([^,]+),([^,]+),([^,]+)")
if name and x and y and z then
table.insert(waypoints, {name = name, x = tonumber(x), y = tonumber(y), z = tonumber(z)})
end
end
file:close()
updateWaypointList()
end
end
waypointForm.OnClose = function()
closeAction = 0
waypointForm.Visible = false
end
updateWaypointList()
waypointForm.hide()
local timer = createTimer(nil, false)
local stepSize = tonumber(edtS.Text)
local currentX, currentY, currentZ
local destX, destY, destZ
local stepX, stepY, stepZ
local stepsRemaining
function getPlayerCoordinates()
local success, x, y, z = pcall(function()
local x = readFloat(xCoordAddr)
local y = readFloat(yCoordAddr)
local z = readFloat(zCoordAddr)
if not (x and y and z) then
error("One or more position records are missing")
end
return x, y, z
end)
if not success then
print("Error getting player coordinates: " .. tostring(x))
return nil, nil, nil
end
return x, y, z
end
function setPlayerCoordinates(x, y, z)
local success, error = pcall(function()
local posX = readFloat(xCoordAddr)
local posY = readFloat(yCoordAddr)
local posZ = readFloat(zCoordAddr)
if not (posX and posY and posZ) then
error("One or more position records are missing")
end
writeFloat(xCoordAddr, x)
writeFloat(yCoordAddr, y)
writeFloat(zCoordAddr, z)
end)
if not success then
print("Error setting player coordinates: " .. tostring(error))
return false
end
return true
end
local previousFlyOn = false
local previousNoclipActive = false
function stopTP()
timer.Enabled = false
flyOn = previousFlyOn
-- noclip.Active = previousNoclipActive
isTeleporting = false
end
local function isAnyVelocityNonZero()
return readFloat(xVelAddr) ~= 0 or readFloat(yVelAddr) ~= 0 or readFloat(zVelAddr) ~= 0
end
local function isAnyCoordNonNil()
return readFloat(xCoordAddr) ~= nil or readFloat(yCoordAddr) ~= nil or readFloat(zCoordAddr) ~= nil
end
function preciseSleep(ms)
if ms <= 0 then return end
local start = os.clock()
local duration = ms / 1000
while os.clock() - start < duration do end
end
function teleportStep()
local thread = createThread(function()
while isTeleporting do
if not isTeleporting then
stopTP()
return
end
if not isAnyCoordNonNil() then
stopTP()
return
end
currentX, currentY, currentZ = getPlayerCoordinates()
stepSize = tonumber(edtS.Text)
stepDelay = tonumber(edtT.Text)
local success, distance = pcall(function()
return math.sqrt((destX - currentX)^2 + (destY - currentY)^2 + (destZ - currentZ)^2)
end)
if not success or not distance or distance ~= distance then
stopTP()
return
end
if distance > stepSize then
local success, error = pcall(function()
local directionX = (destX - currentX) / distance
local directionY = (destY - currentY) / distance
local directionZ = (destZ - currentZ) / distance
local newX = currentX + directionX * stepSize
local newY = currentY + directionY * stepSize
local newZ = currentZ + directionZ * stepSize
setPlayerCoordinates(newX, newY, newZ)
end)
if not success then
stopTP()
return
end
else
if not isTeleporting then
stopTP()
return
end
if not isAnyCoordNonNil() then
stopTP()
return
end
local success, error = pcall(function()
setPlayerCoordinates(destX, destY, destZ)
stopTP()
moveToNextWaypoint()
end)
if not success then
stopTP()
end
return
end
preciseSleep(stepDelay)
end
end)
end
function movePlayerTowardsAbsDestination(skipX, skipY, skipZ, stepSize, stepDelay)
if isTeleporting then
stopTP()
return
end
previousFlyOn = flyOn
-- previousNoclipActive = noclip.Active
destX = skipX
destY = skipY
destZ = skipZ
flyOn = true
-- noclip.Active = true
isTeleporting = true
teleportStep()
end
local followedPlayerName = nil
function followPlayer()
if not isTeleporting or not followedPlayerName then
stopTP()
return
end
if not isAnyCoordNonNil() then
stopTP()
return
end
currentX, currentY, currentZ = getPlayerCoordinates()
stepSize = tonumber(edtS.Text)
stepDelay = tonumber(edtT.Text)
local distance = math.sqrt((targX - currentX)^2 + (targY - currentY)^2 + (targZ - currentZ)^2)
if not distance or distance ~= distance then
stopTP()
return
end
if distance > stepSize then
local directionX = (targX - currentX) / distance
local directionY = (targY - currentY) / distance
local directionZ = (targZ - currentZ) / distance
local newX = currentX + directionX * stepSize
local newY = currentY + directionY * stepSize
local newZ = currentZ + directionZ * stepSize
setPlayerCoordinates(newX, newY, newZ)
else
if not isTeleporting then
stopTP()
return
end
if not isAnyCoordNonNil() then
stopTP()
return
end
setPlayerCoordinates(targX, targY, targZ)
end
end
local overlay = createForm(true)
overlay.Width = 768
overlay.Height = 560
overlay.Left = (1920 - overlay.Width) / 2.02
overlay.Top = (1080 - overlay.Height) / 2.32
overlay.Caption = ''
overlay.AlphaBlend = true
overlay.AlphaBlendValue = 200
overlay.FormStyle = 'fsSystemStayOnTop'
btnoverlay = createButton(form)
btnoverlay.Caption = "Map Overlay"
btnoverlay.Top = btnMove.Top
btnoverlay.Left = lblStatus.Left - 30
btnoverlay.Width = 100
overlay.Hide()
function getGridSize(zoomValue)
local baseZoomValue = 2.0
local baseGridWidth = 800
local baseGridHeight = baseGridWidth / 1.3333333
local zoomRatio = 0.93
local widthRatio = 1.075
local zoomLevel = math.log(zoomValue / baseZoomValue) / math.log(zoomRatio)
local gridWidth = baseGridWidth * (widthRatio ^ zoomLevel)
local gridHeight = gridWidth / 1.3333333
return gridWidth, gridHeight
end
function mapToWorldCoordinates(x, y)
local playerX, playerY, playerZ = getPlayerCoordinates()
local zoomValue = readFloat(zoomAddr)
local gridWidth, gridHeight = getGridSize(zoomValue)
local scaleX = gridWidth / overlay.Width
local scaleZ = gridHeight / overlay.Height
local mapX = (x - overlay.Width / 2) * scaleX
local mapZ = (y - overlay.Height / 2) * scaleZ
local worldX = playerX + mapX
local worldZ = playerZ + mapZ
return worldX, playerY, worldZ
end
overlay.OnMouseDown = function(sender, button, x, y)
if button == 0 then
local worldX, worldY, worldZ = mapToWorldCoordinates(x, y)
movePlayerTowardsAbsDestination(worldX, worldY, worldZ, tonumber(edtS.Text), tonumber(edtT.Text))
elseif button == 1 then
local worldX, worldY, worldZ = mapToWorldCoordinates(x, y)
local name = inputQuery("Enter Waypoint Name", "Name:", "")
if name and name ~= "" then
table.insert(waypoints, {name = name, x = worldX, y = worldY, z = worldZ})
updateWaypointList()
end
end
end
function getPlayers(index)
local basePlrPtr = string.format("[[[%s]+FC]+00]+%X", worldBasePtr, (index * 4))
local name_addr = getAddress(string.format("[[%s]+1D0]+00", basePlrPtr))
local x_addr = getAddress(string.format("[[[%s]+C4]+04]+80", basePlrPtr))
local y_addr = getAddress(string.format("[[[%s]+C4]+04]+84", basePlrPtr))
local z_addr = getAddress(string.format("[[[%s]+C4]+04]+88", basePlrPtr))
local name = readString(name_addr)
local x = readFloat(x_addr)
local y = readFloat(y_addr)
local z = readFloat(z_addr)
return name, x, y, z
end
local refreshTimer = createTimer(overlay, false)
refreshTimer.Interval = 250
function renderPlayers()
overlay.Canvas.clear()
if not isAnyCoordNonNil() then
refreshTimer.Enabled = false
return
end
local playerCount = readInteger(plrCountAddr)
local playerX, playerY, playerZ = getPlayerCoordinates()
local zoomValueMap = readFloat(zoomAddr)
local gridWidth, gridHeight = getGridSize(zoomValueMap)
local scaleX = gridWidth / overlay.Width
local scaleZ = gridHeight / overlay.Height
for _, waypoint in ipairs(waypoints) do
local name, wx, wz = waypoint.name, waypoint.x, waypoint.z
local relativeX = (wx - playerX) / scaleX
local relativeZ = (wz - playerZ) / scaleZ
local screenX = (overlay.Width / 2) + relativeX
local screenY = (overlay.Height / 2) + relativeZ
if screenX >= 0 and screenX <= overlay.Width and screenY >= 0 and screenY <= overlay.Height then
local iconSize = 8
overlay.Canvas.Pen.Color = 0x00CCFF
overlay.Canvas.Pen.Width = 1
overlay.Canvas.Brush.Color = 0x000000
overlay.Canvas.Ellipse(screenX - iconSize / 2, screenY - iconSize - 2, screenX + iconSize / 2, screenY - 2)
overlay.Canvas.TextOut(screenX, screenY + 2, name)
end
end
for i = 0, playerCount - 1 do
local name, x, y, z = getPlayers(i)
local relativeX = (x - playerX) / scaleX
local relativeZ = (z - playerZ) / scaleZ
local screenX = (overlay.Width / 2) + relativeX
local screenY = (overlay.Height / 2) + relativeZ
if screenX >= 0 and screenX <= overlay.Width and screenY >= 0 and screenY <= overlay.Height then
local iconSize = 10
overlay.Canvas.Pen.Color = 0x00FF00
overlay.Canvas.Pen.Width = 1
overlay.Canvas.Brush.Color = 0x000000
overlay.Canvas.Ellipse(screenX - iconSize / 2, screenY - iconSize - 2, screenX + iconSize / 2, screenY - 2)
overlay.Canvas.TextOut(screenX, screenY + 2, name)
else
local centerX, centerY = overlay.Width / 2, overlay.Height / 2
local dx, dy = screenX - centerX, screenY - centerY
local angle = math.atan2(dy, dx)
local edgeX, edgeY
if math.abs(dx) > math.abs(dy) then
if dx > 0 then
edgeX = overlay.Width - 5
else
edgeX = 5
end
edgeY = centerY + (edgeX - centerX) * dy / dx
else
if dy > 0 then
edgeY = overlay.Height - 5
else
edgeY = 5
end
edgeX = centerX + (edgeY - centerY) * dx / dy
end
overlay.Canvas.Pen.Color = 0x0000FF
overlay.Canvas.Pen.Width = 2
overlay.Canvas.Brush.Color = 0x000000
overlay.Canvas.MoveTo(edgeX, edgeY)
local arrowSize = 10
overlay.Canvas.LineTo(edgeX - arrowSize * math.cos(angle + math.pi / 4), edgeY - arrowSize * math.sin(angle + math.pi / 4))
overlay.Canvas.MoveTo(edgeX, edgeY)
overlay.Canvas.LineTo(edgeX - arrowSize * math.cos(angle - math.pi / 4), edgeY - arrowSize * math.sin(angle - math.pi / 4))
-- render the player name under the arrow
--overlay.Canvas.TextOut(edgeX + 5 * math.cos(angle), edgeY + 5 * math.sin(angle) + 2, name)
end
end
end
refreshTimer.OnTimer = function(timer)
renderPlayers()
end
overlay.OnClose = function()
closeAction = 0
overlay.Visible = false
refreshTimer.Enabled = false
end
btnoverlay.OnClick = function()
if not overlay.Visible then
overlay.Show()
refreshTimer.Enabled = true
else
overlay.Visible = false
refreshTimer.Enabled = false
end
end
btnlist = createButton(form)
btnlist.Caption = "Player List"
btnlist.Top = btnMove.Top + 30
btnlist.Left = lblStatus.Left + 50
btnlist.Width = 80
btnlist.OnClick = function()
pform = createForm()
pform.Caption = "Player List"
pform.Width = 425
pform.Height = 500
pform.FormStyle = 'fsSystemStayOnTop'
pform.ShowInTaskBar = 'stAlways'
pform.BorderStyle = 'bsSizeable'
pform.AlphaBlend = true
pform.AlphaBlendValue = form.AlphaBlendValue
local playerCountLabel = createLabel(pform)
playerCountLabel.Caption = "Player Count: "
playerCountLabel.Left = 10
playerCountLabel.Top = 10
local controls = {}
local function updatePlayerList()
if not isAnyCoordNonNil() then
if #controls == 0 then
local noDataLabel = createLabel(pform)
noDataLabel.Caption = "No valid player data available."
noDataLabel.Left = 10
noDataLabel.Top = 30
table.insert(controls, noDataLabel)
end
return
end
local playerCount = readInteger(plrCountAddr)
playerCountLabel.Caption = "Player Count: " .. playerCount
while #controls < playerCount * 4 do
local nameLabel = createLabel(pform)
table.insert(controls, nameLabel)
local coordLabel = createLabel(pform)
table.insert(controls, coordLabel)
local teleportButton = createButton(pform)
table.insert(controls, teleportButton)
local followButton = createButton(pform)
table.insert(controls, followButton)
end
for i = 0, playerCount - 1 do
local name, x, y, z = getPlayers(i)
local yPos = 30 + i * 30
local nameLabel = controls[i * 4 + 1]
nameLabel.Caption = name
nameLabel.Left = 10
nameLabel.Top = yPos
local function safeFloor(value)
return value and math.floor(value) or 0
end
local coordLabel = controls[i * 4 + 2]
coordLabel.Caption = string.format("X: %d | Y: %d | Z: %d", safeFloor(x), safeFloor(y), safeFloor(z))
coordLabel.Left = 150
coordLabel.Top = yPos
local teleportButton = controls[i * 4 + 3]
teleportButton.Caption = "Teleport"
teleportButton.Left = 275
teleportButton.Top = yPos - 5
teleportButton.OnClick = function()
movePlayerTowardsAbsDestination(x, y, z)
end
if name == followedPlayerName then
targX, targY, targZ = x, y, z
end
local followButton = controls[i * 4 + 4]
followButton.Caption = followedPlayerName == name and "Stop" or "Follow"
followButton.Left = 350
followButton.Top = yPos - 5
followButton.OnClick = function()
if followedPlayerName == name then
stopTP()
followedPlayerName = nil
followButton.Caption = "Follow"
else
followedPlayerName = name
isTeleporting = true
local followThread = createThread(function()
while isTeleporting do
followPlayer()
preciseSleep(tonumber(edtT.Text))
end
end)
followButton.Caption = "Stop"
end
end
end
for i = playerCount * 4 + 1, #controls do
controls[i].Visible = false
end
end
local timer = createTimer(pform, true)
timer.Interval = 100
timer.OnTimer = updatePlayerList
updatePlayerList()
pform.Show()
end
slider.OnChange = function(s)
if form then
form.AlphaBlendValue = slider.Position
end
if pform then
pform.AlphaBlendValue = slider.Position
end
if waypointForm then
waypointForm.AlphaBlendValue = slider.Position
end
end
local function parseCoordinate(input, current)
if input:sub(1, 1) == "~" then
local offset = tonumber(input:sub(2))
if offset then
return current + offset
else
return current
end
else
return tonumber(input)
end
end
tphotkeyfunc = function()
local pid = getOpenedProcessID()
local fpid = getForegroundProcess()
if someBool then
if fpid == pid then
currentX, currentY, currentZ = getPlayerCoordinates()
destX = parseCoordinate(edtX.Text, currentX)
destY = parseCoordinate(edtY.Text, currentY)
destZ = parseCoordinate(edtZ.Text, currentZ)
StepSize = tonumber(edtS.Text)
StepDelay = tonumber(edtT.Text)
if destX and destY and destZ then
movePlayerTowardsAbsDestination(destX, destY, destZ, StepSize, StepDelay)
end
end
else
currentX, currentY, currentZ = getPlayerCoordinates()
destX = parseCoordinate(edtX.Text, currentX)
destY = parseCoordinate(edtY.Text, currentY)
destZ = parseCoordinate(edtZ.Text, currentZ)
StepSize = tonumber(edtS.Text)
StepDelay = tonumber(edtT.Text)
if destX and destY and destZ then
movePlayerTowardsAbsDestination(destX, destY, destZ, StepSize, StepDelay)
end
end
end
btnMove.OnClick = function()
local pid = getOpenedProcessID()
if pid then
executeCodeLocal('SetForegroundWindow', pid)
currentX, currentY, currentZ = getPlayerCoordinates()
destX = parseCoordinate(edtX.Text, currentX)
destY = parseCoordinate(edtY.Text, currentY)
destZ = parseCoordinate(edtZ.Text, currentZ)
StepSize = tonumber(edtS.Text)
StepDelay = tonumber(edtT.Text)
if destX and destY and destZ then
movePlayerTowardsAbsDestination(destX, destY, destZ, StepSize, StepDelay)
end
end
end
btnLoad.OnClick = function()
edtX.Text, edtY.Text, edtZ.Text = getPlayerCoordinates()
end
speedOn = false
flyOn = false
local function speedSwitch()
speedOn = not speedOn
if speedOn then
flyOn = false
end
end
local function flySwitch()
flyOn = not flyOn
if flyOn then
speedOn = false
end
end
local function ncSwitch()
local pid = getOpenedProcessID()
local fpid = getForegroundProcess()
if someBool then
if fpid == pid then
if noclip then
noclip = false
autoAssemble(disableNoclipScript)
else
noclip = true
autoAssemble(noclipScript)
end
end
else
if noclip then
noclip = false
autoAssemble(disableNoclipScript)
else
noclip = true
autoAssemble(noclipScript)
end
end
end
local function isCtrlPressed()
return isKeyPressed(0x11)
end
local function isWPressed()
return isKeyPressed(0x57)
end
local function isAPressed()
return isKeyPressed(0x41)
end
local function isSPressed()
return isKeyPressed(0x53)
end
local function isDPressed()
return isKeyPressed(0x44)
end
local function isSpacePressed()
return isKeyPressed(0x20)
end
local function isZPressed()
return isKeyPressed(0x5A)
end
local function isShiftPressed()
return isKeyPressed(0x10)
end
local function isAnyKeyPressed()
local pid = getOpenedProcessID()
local fpid = getForegroundProcess()
if (isWPressed() or isAPressed() or isSPressed() or isDPressed() or isZPressed() or isShiftPressed() or isCtrlPressed() or isSpacePressed()) and fpid == pid then
return true
else return false
end
end
local flyTimer = createTimer(nil, false)
flyTimer.Interval = 10
flyTimer.OnTimer = function(flyTimer)
local pid = getOpenedProcessID()
local fpid = getForegroundProcess()
if flyOn then
local success, error = pcall(function()
local xper = readFloat(xPerAddr)
local yper = readFloat(yPerAddr)
local zper = readFloat(zPerAddr)
local xvel = readFloat(xVelAddr)
local yvel = readFloat(yVelAddr)
local zvel = readFloat(zVelAddr)
if not (xper and yper and zper and xvel and yvel and zvel) then
return
end
local xFlyNewVel = 0
local yFlyNewVel = 0.39
local zFlyNewVel = 0
local flySpeed = edtFly.Text
local hrzMagnitude = math.sqrt(xper * xper + zper * zper)
local xMagnitude = xper / hrzMagnitude
local zMagnitude = zper / hrzMagnitude
if isWPressed() and fpid == pid then
xFlyNewVel = xFlyNewVel + xMagnitude * flySpeed
zFlyNewVel = zFlyNewVel + zMagnitude * flySpeed
end
if isAPressed() and fpid == pid then
xFlyNewVel = xFlyNewVel + zMagnitude * flySpeed
zFlyNewVel = zFlyNewVel - xMagnitude * flySpeed
end
if isSPressed() and fpid == pid then
xFlyNewVel = xFlyNewVel - xMagnitude * flySpeed
zFlyNewVel = zFlyNewVel - zMagnitude * flySpeed
end
if isDPressed() and fpid == pid then
xFlyNewVel = xFlyNewVel - zMagnitude * flySpeed
zFlyNewVel = zFlyNewVel + xMagnitude * flySpeed
end
if isSpacePressed() and fpid == pid then
yFlyNewVel = yFlyNewVel + flySpeed
end
if isShiftPressed() and fpid == pid then
yFlyNewVel = yFlyNewVel - flySpeed
end
writeFloat(xVelAddr, xFlyNewVel)
writeFloat(yVelAddr, yFlyNewVel)
writeFloat(zVelAddr, zFlyNewVel)
end)
end
end
local accelSpeedTimer = createTimer(nil, false)
accelSpeedTimer.Interval = 10
accelSpeedTimer.OnTimer = function(accelSpeedTimer)
local pid = getOpenedProcessID()
local fpid = getForegroundProcess()
if speedOn then
local success, error = pcall(function()
local xper = readFloat(xPerAddr)
local yper = readFloat(yPerAddr)
local zper = readFloat(zPerAddr)
local xvel = readFloat(xVelAddr)
local yvel = readFloat(yVelAddr)
local zvel = readFloat(zVelAddr)
if not (xper and yper and zper and xvel and yvel and zvel) then
return
end
local xAccelNewVel = 0
local zAccelNewVel = 0
local accelSpeed = edtSpeed.Text
local hrzMagnitude = math.sqrt(xper * xper + zper * zper)
local xMagnitude = xper / hrzMagnitude
local zMagnitude = zper / hrzMagnitude
if isWPressed() and fpid == pid then
xAccelNewVel = xAccelNewVel + xMagnitude * accelSpeed
zAccelNewVel = zAccelNewVel + zMagnitude * accelSpeed
end
if isAPressed() and fpid == pid then
xAccelNewVel = xAccelNewVel + zMagnitude * accelSpeed
zAccelNewVel = zAccelNewVel - xMagnitude * accelSpeed
end
if isSPressed() and fpid == pid then
xAccelNewVel = xAccelNewVel - xMagnitude * accelSpeed
zAccelNewVel = zAccelNewVel - zMagnitude * accelSpeed
end
if isDPressed() and fpid == pid then
xAccelNewVel = xAccelNewVel - zMagnitude * accelSpeed
zAccelNewVel = zAccelNewVel + xMagnitude * accelSpeed
end
if isSpacePressed() and fpid == pid then
writeFloat(yVelAddr, 25)
end
if isShiftPressed() and fpid == pid then
writeFloat(yVelAddr, 0)
end
writeFloat(xVelAddr, xAccelNewVel)
writeFloat(zVelAddr, zAccelNewVel)
end)
end
end
autoAssemble(uncapScript)
autoAssemble(antigravScript)
local permaLoop = createTimer(nil, true)
permaLoop.Interval = 100
permaLoop.OnTimer = function()
local bpOn = bpAlwaysOn.State == 1
local found = false
local currentPID = getOpenedProcessID()
local processList = getProcessList()
if isAnyKeyPressed() or isTeleporting or isAnyVelocityNonZero() or bpOn or flyOn then
if not bypass then
bypass = true
autoAssemble(bS)
end
else
if bypass then
bypass = false
autoAssemble(disablebS)
end
end
someBool = smBool.State == 1
smBool.Caption = "PID Check | Attached: " .. currentPID
for ppid, name in pairs(processList) do
if ppid == currentPID then
found = true
break
end
end
if not found then
for ppid, name in pairs(processList) do
if name:lower() == "trove.exe" then
openProcess(ppid)
autoAssemble(registerSymbols)
autoAssemble(antigravScript)
if uncapFPS then
autoAssemble(uncapScript)
end
if bpOn then
autoAssemble(bS)
end
return
end
end
end
end
accelSpeedTimer.setEnabled(true)
flyTimer.setEnabled(true)
function skip()
local pid = getOpenedProcessID()
local fpid = getForegroundProcess()
if fpid == pid then
local xper = readFloat(xPerAddr)
local yper = readFloat(yPerAddr)
local zper = readFloat(zPerAddr)
local xcoord = readFloat(xCoordAddr)
local ycoord = readFloat(yCoordAddr)
local zcoord = readFloat(zCoordAddr)
if not (xper and yper and zper and xcoord and ycoord and zcoord) then
return
end
local skipdist = tonumber(edtDist.Text)
local skipdelay = tonumber(edtT.Text)
local skipsize = tonumber(edtS.Text)
local xadd = xper * skipdist
local yadd = yper * skipdist
local zadd = zper * skipdist
local xdest = xcoord + xadd
local ydest = ycoord + yadd
local zdest = zcoord + zadd
local distance = math.sqrt(xadd^2 + yadd^2 + zadd^2)
if distance < 5 then
writeFloat(xCoordAddr, xdest)
writeFloat(yCoordAddr, ydest)
writeFloat(zCoordAddr, zdest)
else
movePlayerTowardsAbsDestination(xdest, ydest, zdest, skipdist, skipdelay)
end
end
end
local btnSaveConfig = createButton(form)
btnSaveConfig.Caption = "Save Config"
btnSaveConfig.Top = btnMove.Top
btnSaveConfig.Left = 250
btnSaveConfig.Width = 100
btnSaveConfig.OnClick = function()
if skipHotkey then skipHotkey.destroy() end
if teleportHotkey then teleportHotkey.destroy() end
if savePosHotkey then savePosHotkey.destroy() end
if speedHotkey then speedHotkey.destroy() end
if saveWPHotkey then saveWPHotkey.destroy() end
if flyHotkey then flyHotkey.destroy() end
if ncHotkey then ncHotkey.destroy() end
if aahotkey then aahotkey.destroy() end
if edtSkipHotkey.Text ~= "" then skipHotkey = createHotkey(skip, edtSkipHotkey.Text) end
if edtTeleportHotkey.Text ~= "" then teleportHotkey = createHotkey(tphotkeyfunc, edtTeleportHotkey.Text) end
if edtSavePosHotkey.Text ~= "" then savePosHotkey = createHotkey(btnLoad.OnClick, edtSavePosHotkey.Text) end
if edtSpeedHotkey.Text ~= "" then speedHotkey = createHotkey(speedSwitch, edtSpeedHotkey.Text) end
if edtSaveWPHotkey.Text ~= "" then saveWPHotkey = createHotkey(btnAddWaypoint.OnClick, edtSaveWPHotkey.Text) end
if edtFlyHotkey.Text ~= "" then flyHotkey = createHotkey(flySwitch, edtFlyHotkey.Text) end
if edtNcHotkey.Text ~= "" then ncHotkey = createHotkey(ncSwitch, edtNcHotkey.Text) end
if edtaahotkey.Text ~= "" then aahotkey = createHotkey(btnaahotkey.OnClick, edtaahotkey.Text) end
local fileName = getDocumentsFolder() .. "config.txt"
local file = io.open(fileName, "w")
if file then
file:write("delay=" .. edtT.Text .. "\n")
file:write("step=" .. edtS.Text .. "\n")
file:write("skipDistance=" .. edtDist.Text .. "\n")
file:write("flySpeed=" .. edtFly.Text .. "\n")
file:write("accelSpeed=" .. edtSpeed.Text .. "\n")
file:write("skipHotkey=" .. edtSkipHotkey.Text .. "\n")
file:write("teleportHotkey=" .. edtTeleportHotkey.Text .. "\n")
file:write("savePosHotkey=" .. edtSavePosHotkey.Text .. "\n")
file:write("speedHotkey=" .. edtSpeedHotkey.Text .. "\n")
file:write("saveWPHotkey=" .. edtSaveWPHotkey.Text .. "\n")
file:write("flyHotkey=" .. edtFlyHotkey.Text .. "\n")
file:write("ncHotkey=" .. edtNcHotkey.Text .. "\n")
file:write("aahotkey=" .. edtaahotkey.Text .. "\n")
file:close()
else
showMessage("Error saving configuration to file.")
end
end
function LoadConfig()
local fileName = getDocumentsFolder() .. "config.txt"
local file = io.open(fileName, "r")
if file then
for line in file:lines() do
local key, value = line:match("([^+)=([^
+)")
if key and value then
if key == "delay" then edtT.Text = value end
if key == "step" then edtS.Text = value end
if key == "skipDistance" then edtDist.Text = value end
if key == "flySpeed" then edtFly.Text = value end
if key == "accelSpeed" then edtSpeed.Text = value end
if key == "skipHotkey" then edtSkipHotkey.Text = value end
if key == "teleportHotkey" then edtTeleportHotkey.Text = value end
if key == "savePosHotkey" then edtSavePosHotkey.Text = value end
if key == "speedHotkey" then edtSpeedHotkey.Text = value end
if key == "saveWPHotkey" then edtSaveWPHotkey.Text = value end
if key == "flyHotkey" then edtFlyHotkey.Text = value end
if key == "ncHotkey" then edtNcHotkey.Text = value end
if key == "aahotkey" then edtaahotkey.Text = value end
end
end
file:close()
if edtSkipHotkey.Text ~= "" then skipHotkey = createHotkey(skip, edtSkipHotkey.Text) end
if edtTeleportHotkey.Text ~= "" then teleportHotkey = createHotkey(tphotkeyfunc, edtTeleportHotkey.Text) end
if edtSavePosHotkey.Text ~= "" then savePosHotkey = createHotkey(btnLoad.OnClick, edtSavePosHotkey.Text) end
if edtSpeedHotkey.Text ~= "" then speedHotkey = createHotkey(speedSwitch, edtSpeedHotkey.Text) end
if edtSaveWPHotkey.Text ~= "" then saveWPHotkey = createHotkey(btnAddWaypoint.OnClick, edtSaveWPHotkey.Text) end
if edtFlyHotkey.Text ~= "" then flyHotkey = createHotkey(flySwitch, edtFlyHotkey.Text) end
if edtNcHotkey.Text ~= "" then ncHotkey = createHotkey(ncSwitch, edtNcHotkey.Text) end
if edtaahotkey.Text ~= "" then aahotkey = createHotkey(btnaahotkey.OnClick, edtaahotkey.Text) end
else
showMessage("Error loading configuration from file.")
end
end
local speedHotkeyCode = 0x39 -- Default '9'
local noclipHotkeyCode = 0x38 -- Default '8'
_G.updateHotkeyCodes = function()
local function getVKCode(hotkeyText)
return string.byte(hotkeyText:upper()) -- Convert to ASCII value
end
-- Update hotkey codes based on input fields
if edtSpeedHotkey.Text ~= "" then
speedHotkeyCode = getVKCode(edtSpeedHotkey.Text)
end
if edtNcHotkey.Text ~= "" then
noclipHotkeyCode = getVKCode(edtNcHotkey.Text)
end
end
local function hotkeyLoop()
while true do
if isKeyPressed(speedHotkeyCode) then
speedSwitch()
sleep(100) -- Prevent multiple triggers
end
if isKeyPressed(noclipHotkeyCode) then
ncSwitch()
sleep(100)
end
sleep(10) -- Reduce CPU usage
end
end
-- Update hotkey codes initially and on save
btnSaveConfig.OnClick = function()
-- Call this function after creating hotkeys
updateHotkeyCodes()
-- Other save config logic here...
end
-- Run the hotkey detection in a separate thread
createThread(hotkeyLoop)
local btnLoadConfig = createButton(form)
btnLoadConfig.Caption = "Load Config"
btnLoadConfig.Top = btnMove.Top
btnLoadConfig.Left = 360
btnLoadConfig.Width = 100
btnLoadConfig.OnClick = function()
LoadConfig()
end
LoadConfig()
</LuaScript>
</CheatTable>
Last edited by itsmistertest; 4 Weeks Ago at 11:42 AM.
Tcheck: https://www.virustotal.com/gui/file/...af05/detection
Need Cheat Engine Installed , and Lua script On
Last edited by meme; 3 Weeks Ago at 02:02 AM.
blex2014 (2 Weeks Ago),FFFeras (3 Weeks Ago),htszt04kan (3 Weeks Ago),IXN3RD3MXN (3 Weeks Ago),joni223 (1 Week Ago),omertokoz (3 Days Ago),pingaso (4 Days Ago),Polka123312 (3 Weeks Ago),SIDJEY (1 Week Ago)
Need Cheat Engine installed for USE
Main Cheats on this CT
-SpeedHack
-Fly
-Skip
-Player List / Option to follow or tp on them
And some other available in table
2CPDonkeys (1 Week Ago),3rd (2 Weeks Ago),Angiexx (2 Weeks Ago),aruserious (2 Weeks Ago),blex2014 (2 Weeks Ago),DarkHorse27 (2 Weeks Ago),frankyz (2 Weeks Ago),Gibby_ (1 Week Ago),KnightAnime (6 Days Ago),pingaso (2 Days Ago),Polka123312 (1 Day Ago),seenaka (2 Weeks Ago),tarnishedsoulz (1 Week Ago)
//approved
Reputation power: 57Achievements:
If I helped you in any way or shape of form, it's always appreciated to thank or give a rep!
| [ Rules ] | [ Market Place ] | [ Scammers Grave ] | [ Report a scammer ] |
News Force - 08-23-2018 - 10-02-2018
Middleman - 05-09-20 - 19-12-2020
Former Staff - 19-12-2020 - 09-09-2024
Steam Minion (steam) - 09-09-2024 - 09-12-2024
Minion Plus 12-09-2024 - On going
can you do this to monitor not only the person, but also the coordinates, I want to overcome the repulsion
I found the basic pointer (0x01099CC0), I changed it, skip and fly worked, but speed does not work correctly,The "Player List / Option to follow or tp on them" is also not working correctly. I found that there is another pointer where to get it, I do not understand, does anyone know where to get the second pointer?
Last edited by A9ne; 1 Week Ago at 11:40 AM.
I see people in the playlist, but when I try to follow it, it keeps bringing me back. Also, the speed becomes very fast and uncontrollable in the lua script, I now use the usual multiplication script *4 speed it works correctly, skip and fly I fixed they work
- - - Updated - - -
local SpeedOffsets = {0xC, 0x28, 0x54, 0x88, 0xD0, 0x2DC, 0x1E4}
is this code correct?