Sukenah

KHUSUS VIP

Nov 8th, 2025 (edited)
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 22.36 KB | None | 0 0
  1. gg.alert("SEDANG DI UPDATE")
  2. os.exit()
  3.  
  4. local CONFIG = {
  5.   url = "https://pastebin.com/raw/JgufseDe"
  6. }
  7.  
  8. -- Fungsi untuk trim spasi
  9. local function trim(s)
  10.   if not s then return s end
  11.   return s:match("^%s*(.-)%s*$")
  12. end
  13.  
  14. -- Fungsi untuk ambil atau buat Device ID
  15. local function get_stored_device_id()
  16.   local path = "/storage/emulated/0/.gg_device_id.txt"
  17.   local f = io.open(path, "r")
  18.   if f then
  19.     local id = trim(f:read("*a") or "")
  20.     f:close()
  21.     if id ~= "" then return id end
  22.   end
  23.  
  24.   math.randomseed(os.time() + (os.clock() * 1000))
  25.   local seed = tostring(os.time()) .. tostring(math.random(1000, 9999))
  26.   local id = ""
  27.   for i = 1, #seed do
  28.     id = id .. string.format("%02x", seed:byte(i))
  29.   end
  30.   id = id:sub(1, 16)
  31.  
  32.   local w = io.open(path, "w")
  33.   if w then w:write(id); w:close() end
  34.   return id
  35. end
  36.  
  37. -- Fungsi ambil data dari server
  38. local function fetch_raw(url)
  39.   if type(gg) ~= "table" or type(gg.makeRequest) ~= "function" then
  40.     return nil, "no-gg-http"
  41.   end
  42.   local ok, res = pcall(gg.makeRequest, url)
  43.   if not ok or not res then return nil, "no-response" end
  44.   if type(res) == "table" then return res.content or "", res.code or 200 end
  45.   return tostring(res), 200
  46. end
  47.  
  48. -- Parsing JSON user manual sederhana
  49. local function parse_users(text)
  50.   if not text then return nil end
  51.   local users = {}
  52.   local users_block = text:match('"users"%s*:%s*%[([^%]]+)%]')
  53.   if not users_block then users_block = text end
  54.   for obj in users_block:gmatch("%{(.-)%}") do
  55.     local username = obj:match('"username"%s*:%s*"([^"]+)"')
  56.     local device = obj:match('"device"%s*:%s*"([^"]*)"') or ""
  57.     local expired = obj:match('"expired"%s*:%s*"([^"]+)"') or ""
  58.     if username then
  59.       table.insert(users, {
  60.         username = trim(username),
  61.         device = trim(device),
  62.         expired = trim(expired)
  63.       })
  64.     end
  65.   end
  66.   return users
  67. end
  68.  
  69. -- ✅ Fungsi expired sudah diperbaiki
  70. local function not_expired(exp)
  71.   if not exp or exp == "" then
  72.     return false
  73.   end
  74.  
  75.   local y, m, d = exp:match("^(%d%d%d%d)%-(%d%d)%-(%d%d)$")
  76.   if not y then
  77.     return false
  78.   end
  79.  
  80.   local exp_t = os.time({
  81.     year = tonumber(y),
  82.     month = tonumber(m),
  83.     day = tonumber(d),
  84.     hour = 23,
  85.     min = 59,
  86.     sec = 59
  87.   })
  88.  
  89.   local now = os.time()
  90.   if now > exp_t then
  91.     return false -- Sudah expired
  92.   else
  93.     return true -- Masih aktif
  94.   end
  95. end
  96.  
  97. -- Fungsi salin ID
  98. local function safe_copy(text)
  99.   local ok = pcall(function() gg.copyText(text) end)
  100.   if ok then
  101.     gg.toast("✅ Device ID disalin ke clipboard.")
  102.   else
  103.     gg.alert("⚠ Tidak bisa akses clipboard otomatis.\n\nDevice ID:\n\n" .. text .. "\n\nSilakan salin manual.")
  104.   end
  105. end
  106.  
  107. -- Tampilkan ID untuk user belum daftar
  108. local function show_device_id(device)
  109.   gg.alert("⚠ Id belum terdaftar!\n\nɪᴅ ᴋᴀᴍᴜ : " .. device .. "\n\nKirim ID ini ke admin untuk didaftarkan.","SALIN ID")
  110.   safe_copy(device)
  111. end
  112.  
  113. -- Main program
  114. local function main()
  115.   gg.toast("🔄 Menghubungkan ke server...")
  116.   local raw, code = fetch_raw(CONFIG.url)
  117.   if not raw or raw == "" then
  118.     gg.alert("⚠ Gagal ambil data dari server: " .. tostring(code) .. "\nPeriksa koneksi atau URL Pastebin.")
  119.     return
  120.   end
  121.  
  122.   local users = parse_users(raw)
  123.   if not users or #users == 0 then
  124.     gg.alert("⚠ Format server tidak valid atau kosong.\nPastikan JSON mengandung array 'users' dengan fields username/device/expired.")
  125.     return
  126.   end
  127.  
  128.   local device = get_stored_device_id()
  129.  
  130.   while true do
  131.     local input = gg.prompt({"ᴍᴀꜱᴜᴋᴀɴ ᴜꜱᴇʀ :"}, {""}, {"text"})
  132.     if not input then
  133.       gg.toast("Dibatalkan.")
  134.       return
  135.     end
  136.  
  137.     local in_user = trim(input[1] or "")
  138.     if in_user == "" then
  139.       gg.alert("ᴍᴀꜱᴜᴋᴀɴ ᴜꜱᴇʀ ɴʏᴀ ᴅᴜʟᴜ","Kembali")
  140.       goto continue
  141.     end
  142.  
  143.     local found = nil
  144.     for _, u in ipairs(users) do
  145.       if u.username == in_user then
  146.         found = u
  147.         break
  148.       end
  149.     end
  150.  
  151.     if not found then
  152.       local choice = gg.alert("ᴜꜱᴇʀ ꜱᴀʟᴀʜ ᴀᴛᴀᴜ ʙᴇʟᴜᴍ ᴛᴇʀᴅᴀꜰᴛᴀʀ.", " Coba lagi", " Keluar")
  153.       if choice == 1 then goto continue else return end
  154.     end
  155.  
  156.     if not not_expired(found.expired) then
  157.       gg.alert("⏰ Masa berlaku user telah habis pada " .. (found.expired or "unknown"))
  158.       return
  159.     end
  160.  
  161.     if not found.device or found.device == "" then
  162.       show_device_id(device)
  163.       return
  164.     end
  165.  
  166.     if device ~= found.device then
  167.       gg.alert("ᴜꜱᴇʀ ᴛᴇʀᴅᴀꜰᴛᴀʀ ᴅɪ :\n\nTERDAFTAR : " .. found.device .. "\n\nɪᴅ ᴋᴀᴍᴜ : " .. device,"SALIN ID")
  168.       safe_copy(device)
  169.       return
  170.     end
  171.    
  172.         gg.alert("✅ Login berhasil. ID : " .. found.username, "Lanjutkan")
  173.  
  174.  
  175. --========================================================--
  176. --  🔥 AIMBOT / FOV / SPEED / NO RECOIL - Script by HariBy Gaming
  177. --  Version: 1.0
  178. --  Note: Buka overlay GameGuardian untuk mengakses menu
  179. --========================================================--
  180.  
  181. -- Default settings
  182. local FOV_status = false
  183. local FOV_value = -1
  184. local Speed_status = false
  185. local Speed_value = 20
  186. local Recoil_status = false
  187. local Recoil_value = 30
  188. local Aimbot_status = false
  189. local Aimbot_value = 20
  190.  
  191. -- =========================
  192. -- Tambahan: Mengambang (tidak mengubah yang lain)
  193. -- =========================
  194. local Fly_status = false
  195. local Fly_value = 50
  196. local Fly_active_value = false
  197.  
  198. local Camera_status = false
  199. local Camera_value = 15
  200. local Camera_active_value = false
  201. -- =========================
  202.  
  203. local Offsets = {
  204.   FOV = {FirstOffset = {}, SecondOffset = {}, FinalResults = {}},
  205.   Speed = {FirstOffset = {}, SecondOffset = {}, FinalResults = {}},
  206.   Recoil = {FirstOffset = {}, SecondOffset = {}, FinalResults = {}},
  207.   Aimbot = {FinalResults = {}},
  208.   Fly = {FinalResults = {}},
  209.   Camera = {FinalResults = {}}
  210. }
  211.  
  212. -- Helper: hide UI then wait
  213. local function uiHideWait()
  214.   gg.setVisible(false)
  215.   gg.sleep(250)
  216. end
  217.  
  218. gg.alert("↔️SILAHKAN INSTALL MODUL NYA TERLEBIH DAHULU↔️"," INSTALL ")
  219. gg.setVisible(false)
  220.  
  221. -- ========== PENCARIAN OFFSET UTAMA (tetap seperti skripmu) ==========
  222. -- TERBANG (FOV)
  223. gg.clearResults()
  224. gg.setRanges(32)
  225. gg.searchNumber(4970285139793595597, gg.TYPE_QWORD)
  226. local HackersHouse = gg.getResults(250000)
  227. Offsets.FOV.FirstOffset = {}
  228. Offsets.FOV.SecondOffset = {}
  229. Offsets.FOV.FinalResults = {}
  230. local i = 1
  231. for index = 1, #HackersHouse do
  232.   Offsets.FOV.FirstOffset[i] = {address = HackersHouse[index].address - 4, flags = gg.TYPE_QWORD}
  233.   Offsets.FOV.SecondOffset[i] = {address = HackersHouse[index].address - 40, flags = gg.TYPE_QWORD}
  234.   i = i + 1
  235. end
  236. if #Offsets.FOV.FirstOffset > 0 then
  237.   Offsets.FOV.FirstOffset = gg.getValues(Offsets.FOV.FirstOffset)
  238.   Offsets.FOV.SecondOffset = gg.getValues(Offsets.FOV.SecondOffset)
  239.   local idx = 1
  240.   for j = 1, #Offsets.FOV.FirstOffset do
  241.     if (Offsets.FOV.FirstOffset[j].value == 4453159313435745321)
  242.       and (Offsets.FOV.SecondOffset[j].value == 4901886720461294797) then
  243.       Offsets.FOV.FinalResults[idx] = Offsets.FOV.FirstOffset[j]
  244.       idx = idx + 1
  245.     end
  246.   end
  247.   for k = 1, #Offsets.FOV.FinalResults do
  248.     Offsets.FOV.FinalResults[k].address = Offsets.FOV.FinalResults[k].address - 8
  249.     Offsets.FOV.FinalResults[k].flags = 16 -- gg.TYPE_FLOAT
  250.   end
  251. end
  252. gg.clearResults()
  253.  
  254. -- ANALOG (Speed)
  255. gg.setRanges(32)
  256. gg.searchNumber(4597274501545826714, gg.TYPE_QWORD)
  257. local HackersHouse = gg.getResults(250000)
  258. Offsets.Speed.FirstOffset = {}
  259. Offsets.Speed.SecondOffset = {}
  260. Offsets.Speed.FinalResults = {}
  261. i = 1
  262. for index, v in ipairs(HackersHouse) do
  263.   Offsets.Speed.FirstOffset[i] = {address = v.address + 4, flags = gg.TYPE_QWORD}
  264.   Offsets.Speed.SecondOffset[i] = {address = v.address - 4, flags = gg.TYPE_QWORD}
  265.   i = i + 1
  266. end
  267. if #Offsets.Speed.FirstOffset > 0 then
  268.   Offsets.Speed.FirstOffset = gg.getValues(Offsets.Speed.FirstOffset)
  269.   Offsets.Speed.SecondOffset = gg.getValues(Offsets.Speed.SecondOffset)
  270.   local idx = 1
  271.   for j = 1, #Offsets.Speed.FirstOffset do
  272.     if (Offsets.Speed.FirstOffset[j].value == 4618891780619553997)
  273.       and (Offsets.Speed.SecondOffset[j].value == 4582862983593879142) then
  274.       Offsets.Speed.FinalResults[idx] = Offsets.Speed.FirstOffset[j]
  275.       idx = idx + 1
  276.     end
  277.   end
  278.   for k = 1, #Offsets.Speed.FinalResults do
  279.     Offsets.Speed.FinalResults[k].address = Offsets.Speed.FinalResults[k].address + 84
  280.     Offsets.Speed.FinalResults[k].flags = 16
  281.   end
  282. end
  283. gg.clearResults()
  284.  
  285. -- TANPA ANALOG (Recoil)
  286. gg.setRanges(32)
  287. gg.searchNumber(4597274501545826714, gg.TYPE_QWORD)
  288. local HackersHouse = gg.getResults(250000)
  289. Offsets.Recoil.FirstOffset = {}
  290. Offsets.Recoil.SecondOffset = {}
  291. i = 1
  292. for index, value in ipairs(HackersHouse) do
  293.   Offsets.Recoil.FirstOffset[i] = {address = value.address + 240, flags = gg.TYPE_QWORD}
  294.   Offsets.Recoil.SecondOffset[i] = {address = value.address + 236, flags = gg.TYPE_QWORD}
  295.   i = i + 1
  296. end
  297. if #Offsets.Recoil.FirstOffset > 0 then
  298.   Offsets.Recoil.FirstOffset = gg.getValues(Offsets.Recoil.FirstOffset)
  299.   Offsets.Recoil.SecondOffset = gg.getValues(Offsets.Recoil.SecondOffset)
  300.   i = 1
  301.   for index, value in ipairs(Offsets.Recoil.FirstOffset) do
  302.     if (value.value == 4649516254660604723)
  303.       and (Offsets.Recoil.SecondOffset[index].value == 4644111935963398144) then
  304.       Offsets.Recoil.FinalResults[i] = value
  305.       i = i + 1
  306.     end
  307.   end
  308.   for index, value in ipairs(Offsets.Recoil.FinalResults) do
  309.     value.address = value.address - 248
  310.     value.flags = 16
  311.   end
  312. end
  313. gg.clearResults()
  314.  
  315. -- AIMBOT
  316. gg.setRanges(32)
  317. gg.searchNumber(4611686019494418842, gg.TYPE_QWORD)
  318. local HackersHouse = gg.getResults(250000)
  319. Offsets.Aimbot.FinalResults = {}
  320. local OffsetsIndex = 1
  321. if HackersHouse and #HackersHouse > 0 then
  322.   for index, v in ipairs(HackersHouse) do
  323.     local a = { address = v.address + 8, flags = gg.TYPE_QWORD }
  324.     local b = { address = v.address - 60, flags = gg.TYPE_QWORD }
  325.     local vals = gg.getValues({a, b})
  326.     if vals and vals[1] and vals[2] then
  327.       if (vals[1].value == 4644111935963398144) and (vals[2].value == 1085276160) then
  328.         Offsets.Aimbot.FinalResults[OffsetsIndex] = vals[1]
  329.         OffsetsIndex = OffsetsIndex + 1
  330.       end
  331.     end
  332.   end
  333.   for i = 1, #Offsets.Aimbot.FinalResults do
  334.     Offsets.Aimbot.FinalResults[i].address = Offsets.Aimbot.FinalResults[i].address + 8
  335.     Offsets.Aimbot.FinalResults[i].flags = 16 -- gg.TYPE_FLOAT
  336.   end
  337.   if #Offsets.Aimbot.FinalResults > 0 then
  338.     gg.loadResults(Offsets.Aimbot.FinalResults)
  339.     gg.toast("10% " .. #Offsets.Aimbot.FinalResults)
  340.   else
  341.     gg.toast("")
  342.   end
  343. else
  344.   gg.toast("")
  345. end
  346. gg.clearResults()
  347.  
  348. -- ========== OFFSETS MENGAMBANG (Dual-block) ==========
  349. function findFly()
  350.   Offsets.Fly.FinalResults = {}
  351.   local tempResults = {}
  352.  
  353.   -- BLOK 1
  354.   gg.clearResults()
  355.   gg.setRanges(32)
  356.   gg.searchNumber(4582862983593879142, gg.TYPE_QWORD)
  357.   local result1 = gg.getResults(250000)
  358.   if result1 and #result1 > 0 then
  359.     local first1, second1 = {}, {}
  360.     for i, v in ipairs(result1) do
  361.       first1[i] = {address = v.address + 484, flags = gg.TYPE_QWORD}
  362.       second1[i] = {address = v.address + 488, flags = gg.TYPE_QWORD}
  363.     end
  364.     if #first1 > 0 then
  365.       first1 = gg.getValues(first1)
  366.       second1 = gg.getValues(second1)
  367.       for i = 1, #first1 do
  368.         if first1[i].value == 4597274501545826714 and second1[i].value == 4618891780619553997 then
  369.           local res = {}
  370.           res.address = first1[i].address - 312
  371.           res.flags = gg.TYPE_FLOAT
  372.           table.insert(tempResults, res)
  373.         end
  374.       end
  375.     end
  376.   end
  377.  
  378.   -- BLOK 2
  379.   gg.clearResults()
  380.   gg.setRanges(32)
  381.   gg.searchNumber(4618891780619553997, gg.TYPE_QWORD)
  382.   local result2 = gg.getResults(250000)
  383.   if result2 and #result2 > 0 then
  384.     local first2, second2 = {}, {}
  385.     for i, v in ipairs(result2) do
  386.       first2[i] = {address = v.address - 248, flags = gg.TYPE_QWORD}
  387.       second2[i] = {address = v.address + 480, flags = gg.TYPE_QWORD}
  388.     end
  389.     if #first2 > 0 then
  390.       first2 = gg.getValues(first2)
  391.       second2 = gg.getValues(second2)
  392.       for i = 1, #first2 do
  393.         if first2[i].value == 4644111935963398144 and second2[i].value == 4618891780619553997 then
  394.           local res = {}
  395.           res.address = first2[i].address + 392
  396.           res.flags = gg.TYPE_FLOAT
  397.           table.insert(tempResults, res)
  398.         end
  399.       end
  400.     end
  401.   end
  402.  
  403.   if #tempResults > 0 then
  404.     Offsets.Fly.FinalResults = tempResults
  405.     gg.toast("20%" .. #Offsets.Fly.FinalResults .. " aktif")
  406.   else
  407.     gg.toast("")
  408.   end
  409.   gg.clearResults()
  410. end
  411.  
  412. function setFlyValue(value)
  413.   if not Offsets.Fly.FinalResults or #Offsets.Fly.FinalResults == 0 then
  414.     findFly()
  415.   end
  416.   if not Offsets.Fly.FinalResults or #Offsets.Fly.FinalResults == 0 then
  417.     gg.toast("")
  418.     return
  419.   end
  420.   local newVals = {}
  421.   for i = 1, #Offsets.Fly.FinalResults do
  422.     newVals[i] = {
  423.       address = Offsets.Fly.FinalResults[i].address,
  424.       flags = gg.TYPE_FLOAT,
  425.       value = value
  426.     }
  427.   end
  428.   gg.setValues(newVals)
  429.   gg.toast("JUMP V2 diatur ke "..value.." ("..#newVals.." offset)")
  430. end
  431.  
  432. -- ========== CAMERA (DIPERBAIKI - hanya bagian ini diperbarui) ==========
  433. -- ========== CAMERA (DIPERBAIKI DENGAN OFFSET BARU) ==========
  434. function findCamera()
  435.   Offsets.Camera.FinalResults = {}
  436.   gg.clearResults()
  437.   gg.setRanges(32)
  438.   gg.searchNumber(4510805388496472272, gg.TYPE_QWORD)
  439.   local HackersHouse = gg.getResults(250000)
  440.   if not HackersHouse or #HackersHouse == 0 then
  441.     gg.toast("⚠️ CAMERA tidak ditemukan, coba ulangi di area aktif game")
  442.     gg.clearResults()
  443.     return
  444.   end
  445.   local firstTbl, secondTbl = {}, {}
  446.   for i, v in ipairs(HackersHouse) do
  447.     firstTbl[i] = { address = v.address + 4, flags = gg.TYPE_QWORD }
  448.     secondTbl[i] = { address = v.address - 4, flags = gg.TYPE_QWORD }
  449.   end
  450.  
  451.   firstTbl = gg.getValues(firstTbl)
  452.   secondTbl = gg.getValues(secondTbl)
  453.  
  454.   local temp = {}
  455.   for i = 1, #firstTbl do
  456.     if (firstTbl[i].value == 4688247213142940058)
  457.        and (secondTbl[i].value == 18024088992533709) then
  458.       local res = {}
  459.       res.address = firstTbl[i].address - 104
  460.       res.flags = gg.TYPE_FLOAT
  461.       table.insert(temp, res)
  462.     end
  463.   end
  464.  
  465.   if #temp > 0 then
  466.     Offsets.Camera.FinalResults = temp
  467.     gg.toast("✅ CAMERA ditemukan: " .. #temp .. " offset")
  468.   else
  469.     gg.toast("⚠️ CAMERA tidak ditemukan")
  470.   end
  471.   gg.clearResults()
  472. end
  473.  
  474. function setCameraValue(value)
  475.   if not Offsets.Camera.FinalResults or #Offsets.Camera.FinalResults == 0 then
  476.     findCamera()
  477.   end
  478.   if not Offsets.Camera.FinalResults or #Offsets.Camera.FinalResults == 0 then
  479.     gg.toast("✖ Tidak ada offset Camera ditemukan")
  480.     return
  481.   end
  482.   local newVals = {}
  483.   for i = 1, #Offsets.Camera.FinalResults do
  484.     newVals[i] = {
  485.       address = Offsets.Camera.FinalResults[i].address,
  486.       flags = gg.TYPE_FLOAT,
  487.       value = value
  488.     }
  489.   end
  490.   gg.setValues(newVals)
  491.   gg.toast(" Camera diatur ke " .. value .. " (" .. #newVals .. " offset)")
  492. end
  493.  
  494. -- ========== Placeholder find functions (tetap ada, tidak diubah) ==========
  495. function findFOV()
  496.   -- placeholder (tidak merubah skrip asli)
  497. end
  498.  
  499. function findSpeed()
  500.   -- placeholder (tidak merubah skrip asli)
  501. end
  502.  
  503. function findRecoil()
  504.   -- placeholder (tidak merubah skrip asli)
  505. end
  506.  
  507. function findAimbot()
  508.   -- placeholder (tidak merubah skrip asli)
  509. end
  510.  
  511. -- ========== SUBMENUS (sama gaya skrip kamu) ==========
  512. function fovMenu()
  513.   uiHideWait()
  514.   local input = gg.prompt({"Atur Jump V1", "Aktifkan Jump V1"},
  515.                          {FOV_value, FOV_status},
  516.                          {"number", "checkbox"})
  517.   if input == nil then return end
  518.   FOV_value = tonumber(input[1]) or FOV_value
  519.   FOV_status = input[2] == true
  520.  
  521.   if FOV_status then
  522.     if #Offsets.FOV.FinalResults == 0 then findFOV() end
  523.     if #Offsets.FOV.FinalResults > 0 then
  524.       gg.loadResults(Offsets.FOV.FinalResults)
  525.       for i, v in ipairs(Offsets.FOV.FinalResults) do v.value = FOV_value end
  526.       gg.setValues(Offsets.FOV.FinalResults)
  527.       gg.clearResults()
  528.       gg.toast("✅Jump V1 AKTIF ("..FOV_value..")")
  529.     else
  530.       gg.toast(" Modul Belum Terinstall")
  531.     end
  532.   else
  533.     if #Offsets.FOV.FinalResults == 0 then findFOV() end
  534.     if #Offsets.FOV.FinalResults > 0 then
  535.       gg.loadResults(Offsets.FOV.FinalResults)
  536.       for i, v in ipairs(Offsets.FOV.FinalResults) do v.value = -15 end
  537.       gg.setValues(Offsets.FOV.FinalResults)
  538.       gg.clearResults()
  539.       gg.toast("❎Jump V1 NONAKTIF ")
  540.     end
  541.   end
  542. end
  543.  
  544. -- ✅ MENU BARU: MENGAMBANG DI UDARA (disisipkan persis)
  545. function flyMenu()
  546.   uiHideWait()
  547.   local input = gg.prompt({"Atur Jump V2", "Aktifkan Jump V2"},
  548.                          {Fly_value, Fly_status},
  549.                          {"number", "checkbox"})
  550.   if input == nil then return end
  551.   Fly_value = tonumber(input[1]) or Fly_value
  552.   Fly_status = input[2] == true
  553.  
  554.   if Fly_status then
  555.     setFlyValue(Fly_value)
  556.     gg.toast("✅JUMP V2 AKTIF ("..Fly_value..")")
  557.   else
  558.     setFlyValue(5.5)
  559.     gg.toast("❎JUMP V2 NONAKTIF")
  560.   end
  561. end
  562.  
  563. function cameraMenu()
  564.   uiHideWait()
  565.   local input = gg.prompt({"Atur Camera", "Aktifkan Camera (ON/OFF)"},
  566.                          {Camera_value, Camera_status},
  567.                          {"number", "checkbox"})
  568.   if input == nil then return end
  569.   Camera_value = tonumber(input[1]) or Camera_value
  570.   Camera_status = input[2] == true
  571.  
  572.   if Camera_status then
  573.     setCameraValue(Camera_value)
  574.     gg.toast("✅Camera AKTIF ("..Camera_value..")")
  575.   else
  576.     setCameraValue(5.5)
  577.     gg.toast("❎Camera NORMAL (1.0)")
  578.   end
  579. end
  580.  
  581. function speedMenu()
  582.   uiHideWait()
  583.   local input = gg.prompt({"Atur Speed Jump V1:", "Aktifkan Speed Jump V1"},
  584.                          {Speed_value, Speed_status},
  585.                          {"number", "checkbox"})
  586.   if input == nil then return end
  587.   Speed_value = tonumber(input[1]) or Speed_value
  588.   Speed_status = input[2] == true
  589.  
  590.   if Speed_status then
  591.     if #Offsets.Speed.FinalResults == 0 then findSpeed() end
  592.     if #Offsets.Speed.FinalResults > 0 then
  593.       gg.loadResults(Offsets.Speed.FinalResults)
  594.       for i, v in ipairs(Offsets.Speed.FinalResults) do v.value = Speed_value end
  595.       gg.setValues(Offsets.Speed.FinalResults)
  596.       gg.clearResults()
  597.       gg.toast("✅SPEED JUMP V1 AKTIF ("..Speed_value..")")
  598.     else
  599.       gg.toast("Modul Belum Terinstall")
  600.     end
  601.   else
  602.     if #Offsets.Speed.FinalResults == 0 then findSpeed() end
  603.     if #Offsets.Speed.FinalResults > 0 then
  604.       gg.loadResults(Offsets.Speed.FinalResults)
  605.       for i, v in ipairs(Offsets.Speed.FinalResults) do v.value = 4.40000009537 end
  606.       gg.setValues(Offsets.Speed.FinalResults)
  607.       gg.clearResults()
  608.       gg.toast("❎SPEED JUMP V1 NONAKTIF")
  609.     end
  610.   end
  611. end
  612.  
  613. function recoilMenu()
  614.   uiHideWait()
  615.   local input = gg.prompt({"Atur Speed Jump V2", "Aktifkan Speed JumpV2"},
  616.                          {Recoil_value, Recoil_status},
  617.                          {"number", "checkbox"})
  618.   if input == nil then return end
  619.   Recoil_value = tonumber(input[1]) or Recoil_value
  620.   Recoil_status = input[2] == true
  621.  
  622.   if Recoil_status then
  623.     if #Offsets.Recoil.FinalResults == 0 then findRecoil() end
  624.     if #Offsets.Recoil.FinalResults > 0 then
  625.       gg.loadResults(Offsets.Recoil.FinalResults)
  626.       for i, v in ipairs(Offsets.Recoil.FinalResults) do v.value = Recoil_value end
  627.       gg.setValues(Offsets.Recoil.FinalResults)
  628.       gg.clearResults()
  629.       gg.toast("✅SPEED JUMP V2 AKTIF ("..Recoil_value..")")
  630.     else
  631.       gg.toast("Modul Belum Terinstall")
  632.     end
  633.   else
  634.     if #Offsets.Recoil.FinalResults == 0 then findRecoil() end
  635.     if #Offsets.Recoil.FinalResults > 0 then
  636.       gg.loadResults(Offsets.Recoil.FinalResults)
  637.       for i, v in ipairs(Offsets.Recoil.FinalResults) do v.value = 0.80000001192 end
  638.       gg.setValues(Offsets.Recoil.FinalResults)
  639.       gg.clearResults()
  640.       gg.toast("❎SPEED JUMP V2 NONAKTIF)")
  641.     end
  642.   end
  643. end
  644.  
  645. function aimbotMenu()
  646.   uiHideWait()
  647.   local input = gg.prompt({"Atur Speed UP", "Aktifkan Speed UP"},
  648.                          {Aimbot_value, Aimbot_status},
  649.                          {"number", "checkbox"})
  650.   if input == nil then return end
  651.   Aimbot_value = tonumber(input[1]) or Aimbot_value
  652.   Aimbot_status = input[2] == true
  653.  
  654.   if Aimbot_status then
  655.     if #Offsets.Aimbot.FinalResults == 0 then findAimbot() end
  656.     if #Offsets.Aimbot.FinalResults > 0 then
  657.       gg.loadResults(Offsets.Aimbot.FinalResults)
  658.       for i, v in ipairs(Offsets.Aimbot.FinalResults) do v.value = Aimbot_value end
  659.       gg.setValues(Offsets.Aimbot.FinalResults)
  660.       gg.clearResults()
  661.       gg.toast("✅SPEED UP AKTIF ("..Aimbot_value..")")
  662.     else
  663.       gg.toast("Modul Belum Terinstall ")
  664.     end
  665.   else
  666.     if #Offsets.Aimbot.FinalResults == 0 then findAimbot() end
  667.     if #Offsets.Aimbot.FinalResults > 0 then
  668.       gg.loadResults(Offsets.Aimbot.FinalResults)
  669.       for i, v in ipairs(Offsets.Aimbot.FinalResults) do v.value = 4.19999980927 end
  670.       gg.setValues(Offsets.Aimbot.FinalResults)
  671.       gg.clearResults()
  672.       gg.toast("❎SPEED UP NONAKTIF")
  673.     end
  674.   end
  675. end
  676.  
  677. -- =========================
  678. -- MAIN MENU (gg.choice) - URUTAN SESUAI PERMINTAAN
  679. -- =========================
  680. function mainMenu()
  681.   local choice = gg.choice({
  682.     "📂 Menu Terbang V1",
  683.     "📂 Menu Terbang V2", -- Mengambang (flyMenu)
  684.     "📂 Menu Camera",
  685.     "📂 Menu Speed Jump V1",
  686.     "📂 Menu Speed Jump v2",
  687.     "📂 Menu Speed UP",
  688.     "❌ Exit Script"
  689.   }, nil, "𝚄𝚂𝙴𝚁 𝙸𝙳 𝙰𝙽𝙳𝙰 : ".. found.username,"")
  690.  
  691.   if choice == 1 then fovMenu()
  692.   elseif choice == 2 then flyMenu()
  693.   elseif choice == 3 then cameraMenu()
  694.   elseif choice == 4 then speedMenu()
  695.   elseif choice == 5 then recoilMenu()
  696.   elseif choice == 6 then aimbotMenu()
  697.   elseif choice == 7 then
  698.     gg.toast("↩️Menghapus Semua Modul......l")
  699.     os.exit()
  700.   end
  701. end
  702.  
  703. -- =========================
  704. -- Loop utama
  705. -- =========================
  706. gg.clearResults()
  707. gg.toast("✅INSTALASI SUKSES")
  708.  
  709. -- Cari offsets awal untuk Fly & Camera (biar langsung ada saat menu dibuka)
  710. findFly()
  711. findCamera()
  712.  
  713. while true do
  714.   if gg.isVisible(true) then
  715.     gg.setVisible(false)
  716.     mainMenu()
  717.   end
  718.   gg.sleep(100)
  719. end
  720.     ::continue::
  721.   end
  722. end
  723.  
  724. main()
  725.  
Advertisement
Add Comment
Please, Sign In to add comment