----------------------------------------------------------------------------------- -- Guns Of Boom -- Game Code Cheat Menu Template v2.5 -- By saiaapiz ----------------------------------------------------------------------------------- -- Section : Config -- Description : This is script setting. local MemRange = gg.REGION_CODE_APP local ScriptSpeed = 350 local DefaultLobby = {1, 2, 3, 6, 7, 9, 10, 11, 12} local ShowWarning = true local StrongAim = true -- Section : Hack List -- Description : In this section, You can declare what hack you want to put. -- Note : If Hack.region not set, assume it as heap hack. local Hack = {"ESP", "AIM", "HS", "FOV", "AIMV", "AIMVX", "AIMVY", "WEAPON", "WP_1", "WP_2", "WP_3", "ADMIN"} Hack["ESP"] = {} Hack["ESP"].name = " ESP" Hack["ESP"].switch = "On" Hack["ESP"].address = 0 Hack["ESP"].on = 0x01 Hack["ESP"].type = gg.TYPE_BYTE Hack["ESP"].sig = "01h;90h;A0h;E3h;00h;00h;50h;E3h;08h;00h;00h;1Ah::12" Hack["ESP"].list = 5 Hack["ESP"].desc = "Make sure you use this cheat before getting into match." Hack["AIM"] = {} Hack["AIM"].name = " EasyAim" Hack["AIM"].switch = "On" Hack["AIM"].address = 0 Hack["AIM"].on = 0xEA Hack["AIM"].type = gg.TYPE_BYTE Hack["AIM"].sig = "C1h;0Ah;B4h;EEh;10h;FAh;F1h;EEh;09h;00h;00h;5Ah::12" Hack["AIM"].list = 12 Hack["HS"] = {} Hack["HS"].name = " Always Headshot" Hack["HS"].switch = "On" Hack["HS"].address = 0 Hack["HS"].on = "E3A06002h" Hack["HS"].type = gg.TYPE_DWORD Hack["HS"].sig = "10h;00h;C4h;E5h;04h;00h;A0h;E1h;00h;10h;A0h;E3h;03h;50h;A0h;E1h;02h;60h;A0h;E1h::20" Hack["HS"].list = 17 Hack["FOV"] = {} Hack["FOV"].name = " FOV Changer" Hack["FOV"].address = 0 Hack["FOV"].sig = "35h;FAh;8Eh;3Ch;00h;00h;00h;3Fh::8" Hack["FOV"].list = 9 Hack["AIMV"] = {} Hack["AIMV"].name = " Aim Base" Hack["AIMV"].address = 0 Hack["AIMV"].sig = "0Dh;1Ah;94h;EDh;00h;0Ah;22h;EEh;01h;8Ah;9Dh;EDh;01h;9Ah;20h;EEh::16" Hack["AIMV"].list = 13 Hack["AIMVX"] = {} Hack["AIMVX"].name = " Aim Velocity" Hack["AIMVX"].switch = "On" Hack["AIMVX"].address = 0 Hack["AIMVX"].on = "E3A0043Fh" Hack["AIMVX"].type = gg.TYPE_DWORD Hack["AIMVY"] = {} Hack["AIMVY"].name = " Aim_Velocity_2" Hack["AIMVY"].switch = "On" Hack["AIMVY"].address = 0 Hack["AIMVY"].on = "E3A0043Fh" Hack["AIMVY"].type = gg.TYPE_DWORD Hack["WEAPON"] = {} Hack["WEAPON"].name = " Weapon Hack" Hack["WEAPON"].address = 0 Hack["WEAPON"].sig = "10h;2Bh;43h;ECh;08h;0Bh;80h;EDh;1Eh;FFh;2Fh;E1h;0Ah;0Bh;90h;EDh;10h;0Bh;51h;ECh::20" Hack["WEAPON"].list = 21 Hack["WP_1"] = {} Hack["WP_1"].name = " Max Ammo" Hack["WP_1"].switch = "On" Hack["WP_1"].address = 0 Hack["WP_1"].on = "E30005DCh" Hack["WP_1"].type = gg.TYPE_DWORD Hack["WP_1"].desc = "Make sure you use this cheat before getting into match." Hack["WP_2"] = {} Hack["WP_2"].name = " MaxAmmo_2" Hack["WP_2"].switch = "On" Hack["WP_2"].address = 0 Hack["WP_2"].on = "E30005DCh" Hack["WP_2"].type = gg.TYPE_DWORD Hack["WP_3"] = {} Hack["WP_3"].name = " MaxAmmo_3" Hack["WP_3"].switch = "On" Hack["WP_3"].address = 0 Hack["WP_3"].on = "E30005DCh" Hack["WP_3"].type = gg.TYPE_DWORD Hack["ADMIN"] = {} Hack["ADMIN"].name = " Admin Panel" Hack["ADMIN"].switch = "On" Hack["ADMIN"].address = 0 Hack["ADMIN"].on = 0xEA Hack["ADMIN"].type = gg.TYPE_BYTE Hack["ADMIN"].sig = "05h;00h;00h;1Ah;00h;00h;A0h;E3h;00h;00h;54h;E3h::12" Hack["ADMIN"].list = 4 -- Section : Function Declaration -- Description : This is where hand, leg, mouth, nose a.k.a Important part of the script. function ShowChangelog() PopupBox( "-- 📜 Changelog --", [[ ○ v1 - First upload, ESP Hack only, fixed bug. ... ○ v3.7.5 - Added Options, Toggle Lobby Cheats, Fixed bugs. ○ v3.7.6 - Fixed EasyAim. ]]) end function Int2Hex(int) return string.format("%X", int) end function PopupBox(Caption, Text) gg.alert('🔔 ' .. Caption .. ' 🔔\n' .. Text) end function SetMemoryValue(address, ggtype, data) while(address) and (address ~= 0) do t = {} t[1] = {} t[1].address = address t[1].flags = ggtype t[1].value = data if gg.setValues(t) then return true else return false end end return false end function GetMemoryValue(address, ggtype) while(address) and (address ~= 0) do t = {} t[1] = {} t[1].address = address t[1].flags = ggtype res = gg.getValues(t) if type(res) ~= "string" then if ggtype == gg.TYPE_BYTE then result = res[1].value & 0xFF elseif ggtype == gg.TYPE_WORD then result = res[1].value & 0xFFFF elseif ggtype == gg.TYPE_DWORD then result = res[1].value & 0xFFFFFFFF elseif ggtype == gg.TYPE_QWORD then result = res[1].value & 0xFFFFFFFFFFFFFFFF elseif ggtype == gg.TYPE_XOR then result = res[1].value & 0xFFFFFFFF else result = res[1].value end return result else return nil end end return nil end HackErr = 0 function ScanArrayOfByte(h) gg.clearResults(); gg.searchNumber(h.sig, gg.TYPE_BYTE) rCount = gg.getResultCount() while(rCount) and (rCount >= h.list) do rAddress = gg.getResults(rCount)[h.list].address gg.clearResults(); if rAddress then h.address = rAddress gg.toast("ℹī¸ "..h.name .. " is ready.", true) if h.on ~= nil then h.off = GetMemoryValue(h.address, h.type) end return rAddress end break end gg.clearResults(); PopupBox("Oops, An Error Occured !", "Failed searching" ..h.name.. ", it will be disabled.") HackErr = HackErr + 1 sXs = "Unstable: " .. tostring(HackErr) return false end function HeapHandler(h) gg.clearResults() oRange = gg.getRanges() if oRange ~= h.region then gg.setRanges(h.region) end gg.searchNumber(sValue, h.type) rCount = gg.getResultCount() while (rCount) and (rCount >= h.pull) do gg.getResults(h.pull) gg.editAll(mValue, h.type) break end gg.setRanges(oRange) gg.clearResults() end function CheatHandler(h) if h.desc ~= nil and h.desc ~= 1 and ShowWarning == true then PopupBox("Notice:".. h.name, h.desc); h.desc = 1 end while(h.address) and (h.address ~= 0) do if h.on == nil then return true end if h.off == nil then h.off = GetMemoryValue(h.address, h.type) end if h.switch ~= nil then gg.toast("♋ "..h.name.." -> "..h.switch, true) if h.switch == "On" then mValue = h.on sValue = h.off h.switch = "Off" elseif h.switch == "Off" then mValue = h.off sValue = h.on h.switch = "On" end if h.region ~= nil then return HeapHandler(h) end -- If region not set, assume it as heap hack. SetMemoryValue(h.address, h.type, mValue) return false end end PopupBox("Error", h.name .. " has been disabled.") return true end function RestoreValue(h) if h.switch ~= nil then h.switch = "Off" end if h.desc ~= nil then h.desc = 1 end CheatHandler(h) end local cFOV = 0 function ChangeFOV(h) nFOV = gg.prompt({"FOV Value (Default: 57.296)"}, {cFOV}, {"number"}) if nFOV ~= nil then SetMemoryValue(h.address, gg.TYPE_FLOAT, nFOV[1]) gg.toast(cFOV .."->".. nFOV[1]) end end -- Section : Main Code -- Description : This where first code get executed known as Main code. gg.setVisible(false) gg.setRanges(MemRange) CfgFile = gg.getFile()..".apizcfg" Chunk = loadfile(CfgFile) if Chunk ~= nil then local CfgTable = Chunk() DefaultLobby = CfgTable[1] ShowWarning = CfgTable[2] StrongAim = CfgTable[3] end sXs = "Stable" gg.toast("⚙ī¸ Initializing script...", true) -- Get address of cheat, Using AOB Scan. ScanArrayOfByte(Hack["ESP"]) ScanArrayOfByte(Hack["AIM"]) ScanArrayOfByte(Hack["HS"]) ScanArrayOfByte(Hack["ADMIN"]) --Hack["FOV"].address = ScanArrayOfByte(Hack["FOV"]) + 0xC Hack["AIMVX"].address = ScanArrayOfByte(Hack["AIMV"]) + 0x4 Hack["AIMVY"].address = Hack["AIMVX"].address + 0x28 WpnBase = ScanArrayOfByte(Hack["WEAPON"]) if WpnBase ~= 1 then --Hack["WP_1"].address = WpnBase + 0x2F4 --Hack["WP_2"].address = WpnBase + 0x64 --Hack["WP_3"].address = WpnBase + 0x74 end HackList = {} for _ in ipairs(Hack) do HackList[_] = Hack[_] end PopupBox("Warning !", "I will not responsible for any ban, by using this script means you ready to get ban anytime.\n- saiaapiz -") gg.setVisible(true) while(true) do if gg.isVisible(true) then gg.setVisible(false) -- Refresh FOV value when opening menu, saving battery :D cFOV = GetMemoryValue(Hack["FOV"].address, gg.TYPE_FLOAT) i = gg.choice({ -- Menu Of Cheats, Each cheat separated by "," "â€ĸ 🎛ī¸ Toggle Lobby Cheats", "â€ĸ 🔍 Turn " .. Hack["ESP"].switch .. Hack["ESP"].name, "â€ĸ đŸŽ¯ Turn " .. Hack["AIM"].switch .. Hack["AIM"].name, "â€ĸ 🤕 Turn " .. Hack["HS"].switch .. Hack["HS"].name, "â€ĸ đŸ”Ģ Turn " .. Hack["WP_1"].switch .. Hack["WP_1"].name, "â€ĸ 👩‍đŸ’ģ Turn " .. Hack["ADMIN"].switch .. Hack["ADMIN"].name, --"â€ĸ 🛤ī¸ Change Field Of View (".. cFOV ..")", "â€ĸ 🛠ī¸ Options", "â€ĸ đŸšĒ Quit Script" }, nil, -- Menu Of Cheat Header ".: Guns Of Boom ("..sXs..") :." ) if i == 1 then for _=1, #DefaultLobby do CheatHandler(Hack[HackList[DefaultLobby[_]]]) end end if i == 2 then CheatHandler(Hack["ESP"]) end if i == 3 then CheatHandler(Hack["AIM"]) if StrongAim == true then CheatHandler(Hack["AIMVX"]) CheatHandler(Hack["AIMVY"]) end end if i == 4 then CheatHandler(Hack["HS"]) end if i == 5 then CheatHandler(Hack["WP_1"]) CheatHandler(Hack["WP_2"]) CheatHandler(Hack["WP_3"]) end if i == 6 then CheatHandler(Hack["ADMIN"]) end if i == 7 then ChangeFOV(Hack["FOV"]) end if i == 8 then -- Options Start !! while(true) do o = gg.choice({ "🎛ī¸ Lobby Cheat Configuration", "⚠ī¸ Show Warning: "..tostring(ShowWarning), "đŸ’Ē Strong Aim (Buggy): "..tostring(StrongAim), "📑 Changelog", "↩ī¸ Back"}, nil, "Options") if o == 1 then HackName = {} ToggleVar = {} for _=1, #HackList do table.insert(HackName, Hack[HackList[_]].name) end for _=1, #HackList do for __ = 1, #DefaultLobby do Var = false if DefaultLobby[__] == _ then Var = true break end end table.insert(ToggleVar, Var) end Enabled = gg.multiChoice(HackName, ToggleVar, "📝 Lobby Cheat Configuration") if Enabled ~= nil then NewLobbyData = {} for _=1, #HackList do if Enabled[_] == true then table.insert(NewLobbyData, _) end end Str = "" for _=1, #NewLobbyData do Str = Str .. string.format("%d. %s\n", _, Hack[HackList[NewLobbyData[_]]].name) end if gg.alert("🗜ī¸ Apply Modification ?\n\n"..Str, "🔨 Apply", "⚔ī¸ Cancel") == 1 then DefaultLobby = NewLobbyData gg.toast("🛡ī¸ Applied !") else gg.toast("🛡ī¸ Cancelled !") end end end if o == 2 then ShowWarning = not ShowWarning end if o == 3 then StrongAim = not StrongAim end if o == 4 then ShowChangelog() end if o == 5 then gg.saveVariable({DefaultLobby, ShowWarning, StrongAim}, CfgFile) gg.toast("⚒ī¸ Config Saved !") gg.setVisible(true) break end end -- Options End !! end if i == 9 then break end end gg.sleep(ScriptSpeed) end -- Section : Cleaning -- Description : In case you need to disable hack before quitting script. _ = "Don't forget to <3 me at GameGuardian Forum." if gg.alert("đŸ¤¯ Keep in background ?\n\nLeaving hack running in background will cause this script unstable when it executed again.\nTurn off all hack ?", "🔔 Yes", "⚠ī¸ No") == 1 then for _=1, #HackList do RestoreValue(Hack[HackList[_]]) end gg.toast("📷 All hack turn off. " .. _) else gg.toast("📸 You have been warned. " .. _) end -- Section : End Of Code -- Description : Happy Ending ! print([[ If you enjoyed using this, Don't forget to give me <3 at forum :D saiaapiz@GG ]]) os.exit()