-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathPb2Chts.min.lua
More file actions
14 lines (10 loc) · 55.8 KB
/
Copy pathPb2Chts.min.lua
File metadata and controls
14 lines (10 loc) · 55.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
--[[
This is a minified version of Payback2_CHEATus.lua (v2.1.8c)
please note that this script might be slightly outdated.
i only prioritize the normal version.
original source:
https://github.com/ABJ4403/Payback2_CHEATus
Licensed under GPL v3 license (https://gnu.org/licenses)
Any violation related to sharing this script in closed-source form will be taken seriously.
]]
local gg,a,b,c,d,e,g,h,i,j=gg,gg.getFile()..'.suspend',gg.getFile()..'.conf',{},{},{},{},{}function MENU()local j=gg.choice({"1. Wall Hack","2. Strong veichle","3. No blast damage","4. Pistol/SG Knockback","5. Flood Respawn","---\nOther cheats:","6. God modes","7. Client-side cheats","8. Other cheats","---",f"Settings",f"__about__",f"__exit__",f"Suspend"},nil,f"Title_Version")if j==1 then cheat_wallhack()elseif j==2 then cheat_strongveichle()elseif j==3 then cheat_noblastdamage()elseif j==4 then cheat_pistolknockback()elseif j==5 then cheat_floodspawn()elseif j==7 then MENU_godmode()elseif j==8 then MENU_CSD()elseif j==9 then MENU_other()elseif j==11 then MENU_settings()elseif j==12 then show_about()elseif j==13 then exit()elseif j==14 then suspend()end;j=nil;if type(c)=="table"then for k in pairs(c)do c[k]=nil end else c={}end end;function MENU_CSD()local j=gg.choice({"Client-side cheats\nSome cheats won't affect other player","1. Walk animation Wonkyness (client-side only)","2. Change Name (EXPERIMENTAL)","3. Change Name Color (EXPERIMENTAL)","4. Change XP/Coin","5. Explosion Power","6. Explosion Direction","7. Particle interval (Slow/Fast explosion)","8. Reflection Graphics","9. Colored trees","10. Car drift","11. Big body","12. Big Flamethrower (Item)","13. Shadows","14. Colored Peoples (ESP)","15. Delete All Names","---",f"__back__"},nil,f"Title_Version")if j==2 then cheat_walkwonkyness()elseif j==3 then cheat_changeplayername()elseif j==4 then cheat_changeplayernamecolor()elseif j==5 then cheat_xpmodifier()elseif j==6 then cheat_explodepow()elseif j==7 then cheat_explodedir()elseif j==8 then cheat_prtclintrvl()elseif j==9 then cheat_reflectiongraphics()elseif j==10 then cheat_coloredtree()elseif j==11 then cheat_cardrift()elseif j==12 then cheat_bigbody()elseif j==13 then cheat_bigflamethroweritem()elseif j==14 then cheat_shadowfx()elseif j==15 then cheat_clrdpplsp()elseif j==16 then cheat_deleteingameplaytext()elseif j==18 then MENU()end end;function MENU_other()local j=gg.choice({"1. Weapon ammo","2. void mode",f"__back__"},nil,"Other cheats\nmost of these cheats might be experiment, or uncategorized or whatnot...")if j==1 then cheat_weaponammo()elseif j==2 then cheat_voidmatchmode()elseif j==3 then MENU()end end;function MENU_settings()local j=gg.choice({"Change default player name and custom name","Change language","Change entity anchor searching method","---","Clear results","Clear list items","Clear results & list items","Remove suspend file","---","Save settings","Reset settings",f"__back__"},nil,f"Title_Version")if j==12 then MENU()elseif j==1 then local j=gg.prompt({'Put your new default player name','Put your new default custom player name'},{cfg.PlayerCurrentName,cfg.PlayerCustomName},{'text','text'})if j then if j[1]~=""then cfg.PlayerCurrentName=j[1]end;if j[2]~=""then cfg.PlayerCustomName=j[1]end end;j=nil;MENU_settings()elseif j==2 then if cfg.Language=="en_US"then c=1 elseif cfg.Language=="in"then c=2 elseif cfg.Language=="auto"then c=3 end;local j=gg.choice({"🇺🇸️ English","🇮🇩️ Indonesia","Auto-detect (uses GameGuardian API, will use English as fallback if your language didn't exist)",f"__back__"},c,f"Title_Version")if j then if j==4 then MENU_settings()elseif j==1 then cfg.Language="en_US"elseif j==2 then cfg.Language="in"elseif j==3 then cfg.Language="auto"end;update_language()MENU_settings()end elseif j==3 then c=nil;if cfg.cheatSettings.findEntityAnchr.searchMethod=="wordWeaponAmmo"then c=1 elseif cfg.cheatSettings.findEntityAnchr.searchMethod=="holdWeapon"then c=2 elseif cfg.cheatSettings.findEntityAnchr.searchMethod=="mangyuFloatAnchor"then c=3 end;local j=gg.choice({"1. Use word weapon ammo (simply finds the weapon ammo, slow for low-end phones especially when typing the numbers)","2. Hold Weapon (tell you do hold pistol/knife and find those values, no typing lag involved)","3. Mangyu's float anchor (Hold pistol but dont shoot, have a max health, little bit Hold-Weapon-like. Can't be used on cars, slow, fail sometimes)",f"__back__"},c,f"Title_Version")if j then if j==5 then MENU_settings()elseif j==1 then cfg.cheatSettings.findEntityAnchr.searchMethod="wordWeaponAmmo"elseif j==2 then cfg.cheatSettings.findEntityAnchr.searchMethod="holdWeapon"elseif j==3 then cfg.cheatSettings.findEntityAnchr.searchMethod="mangyuFloatAnchor"end;update_language()MENU_settings()end elseif j==5 then gg.clearResults()MENU_settings()elseif j==6 then gg.clearList()MENU_settings()elseif j==7 then gg.clearResults()gg.clearList()MENU_settings()elseif j==8 then os.remove(a)MENU_settings()elseif j==10 then gg.saveVariable(cfg,b)toast("your current settings is saved")MENU_settings()elseif j==11 then cfg={enableLogging=false,Language="auto",PlayerCurrentName=":Player",PlayerCustomName=":CoolFoe",removeSuspendAfterRestoredSession=true,VERSION=cfg.VERSION}toast("your current settings was reset.\n- If you accidentally reset the settings, interrupt the script using the floating stop button and relaunch then script.\n- If you sure to reset, save the setting")MENU_settings()end end;function MENU_godmode()local j=gg.multiChoice({"1. Weapon Ammo (No Freeze)","2. Weapon Ammo (Freeze)","3. Rel0ad Pistol,SG,Rocket,C4s","4. Rel0ad Grenade","5. Disable veichle stealing","6. Immortality ON","7. Immortality (Self-explode)","8. C4 Drawing ON","9. Speed Slide ON","10 Float Hack ON","11. Ragdoll Hack ON","12. Anti-Burn body","13. Burned body","14. Burning body","15. Dr0wned","---","16. Clone player","17. Change vehicle color","18. Enable veichle jet","19. Fast car acceleration time","20. Win (known to work on Rampage, others not tested yet)","---","20. Rel0ad OFF","21. Immortality OFF","22. C4 Drawing OFF","23. Speed Slide OFF","24. Float Hack OFF","25. Ragdoll Hack OFF","26. Normal body","27. Normal drowned","28. Disable veichle jet","---",f"__back__"},nil,"God modes (idk wut to call this)\n\nWARNING:\n- DO NOT USE THIS TO ABUSE OTHER PLAYER!!! (eg. killing them continously)\n- DO NOT PvP with non-cheater!!\n- If you play 2P, only do it in isolated area")if j then if j[32]then MENU()end;gg.setRanges(gg.REGION_OTHER+gg.REGION_ANONYMOUS)local l=findEntityAnchr()if not l then toast('Can\'t find the value, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues')else h={}c.nca=l;if j[1]or j[2]then c.a={{address=c.nca+0x1C,name="Shotgun"},{address=c.nca+0x1E,name="Rocket"},{address=c.nca+0x20,name="Flamethrower"},{address=c.nca+0x22,name="Grenade"},{address=c.nca+0x24,name="Minigun"},{address=c.nca+0x26,name="Explosives"},{address=c.nca+0x28,name="Turret"},{address=c.nca+0x2A,name="Laser"}}for m=1,#c.a do c.a[m].name="Pb2Chts [Weapon]: "..c.a[m].name;c.a[m].flags=gg.TYPE_WORD;c.a[m].freeze=j[2]c.a[m].value=3e4 end;h=table.append(h,c.a)c.a=nil end;if j[3]then h=table.append(h,{{address=c.nca+0x84,flags=gg.TYPE_WORD,value=0,freeze=true,name="Pb2Chts [Rel0adTimer]: Default"}})end;if j[4]then c.a={{address=c.nca+0x84,flags=gg.TYPE_WORD,freeze=true,name="Pb2Chts [Rel0adTimer]: Grenade"}}local n=gg.prompt({"Put your grenade range\nHold your grenade if you use this setting\nignore the throw range and disables delay by setting this to 0 [0;100]"},{100},{"number"})if n and n[1]and n[1]~="0"then toast("Wait for it")c.a[1].value=n[1]gg.setValues({{address=c.nca+0x18,flags=gg.TYPE_WORD,value=3,name="Pb2Chts [CurrentlyHoldWeapon]: Grenade"}})gg.setValues(h)gg.addListItems(h)sleep(999)end;c.a[1].value=-63;h=table.append(h,c.a)end;if j[5]then c.isImmortal=j[6]and 1 or 0;h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [BodyBurningStateAndTimer]: Antiburn"},{address=c.nca+0x08,flags=gg.TYPE_WORD,freeze=true,value=-501,name="Pb2Chts [Health]"},{address=c.nca+0x158,flags=gg.TYPE_FLOAT,freeze=true,value=c.isImmortal,name="Pb2Chts [RespawnInterval]"}})c.isImmortal=0 elseif j[6]then h=table.append(h,{{address=c.nca+0x08,flags=gg.TYPE_WORD,freeze=true,value=800,name="Pb2Chts [Health]"},{address=c.nca+0x158,flags=gg.TYPE_FLOAT,freeze=true,value=9,name="Pb2Chts [RespawnInterval] (Immortal)"}})elseif j[7]then h=table.append(h,{{address=c.nca+0x08,flags=gg.TYPE_WORD,freeze=true,value=3e4,name="Pb2Chts [Health]"},{address=c.nca+0x158,flags=gg.TYPE_WORD,freeze=true,value=1,name="Pb2Chts [RespawnInterval] (Immortal Self-explode)"}})end;if j[8]then h=table.append(h,{{address=c.nca+0x2C,flags=gg.TYPE_WORD,value=-1,freeze=true,name="Pb2Chts [C4Position]: X"},{address=c.nca+0x2E,flags=gg.TYPE_WORD,value=-1,freeze=true,name="Pb2Chts [C4Position]: Y"}})end;if j[9]then h=table.append(h,{{address=c.nca+0x86,flags=gg.TYPE_WORD,value=300,freeze=true,name="Pb2Chts [SpeedSlide]"}})end;if j[10]then h=table.append(h,{{address=c.nca-0x408,flags=gg.TYPE_DWORD,value=1,freeze=true,name="Pb2Chts [Float]"}})end;if j[11]then h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [Ragdoll]"},{address=c.nca+0x128,flags=gg.TYPE_DWORD,value=0,freeze=true,freezeType=gg.FREEZE_IN_RANGE,freezeFrom=0,freezeTo=120,name="Pb2Chts [Ragdoll]"}})end;if j[12]then h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [BodyBurningStateAndTimer]: Antiburn"}})end;if j[13]then h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=1,freeze=true,name="Pb2Chts [BodyBurningStateAndTimer]: Burned"}})end;if j[14]then h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=99,freeze=true,name="Pb2Chts [BodyBurningStateAndTimer]: Fire"}})end;if j[15]then h=table.append(h,{{address=c.nca-0x610,flags=gg.TYPE_DWORD,value=1,freeze=true,name="Pb2Chts [Dr0wned]"}})end;if j[17]then toast("[Clone Player] Change your weapon to your wanted weapon before you can\'t change it anymore")sleep(3e3)c.a={{address=c.nca+0xDA,flags=gg.TYPE_WORD,value=2e3}}gg.setValues(c.a)gg.addListItems(c.a)sleep(2e3)h=table.append(h,{{address=c.nca+0xDA,flags=gg.TYPE_WORD,value=512,freeze=true,name="Pb2Chts [ControlState]"}})end;if j[19]then h=table.append(h,{{address=c.nca-0x1AC,flags=gg.TYPE_WORD,value=1,name="Pb2Chts [Enable jet]"}})end;if j[20]then h=table.append(h,{{address=c.nca-0x208,flags=gg.TYPE_FLOAT,freeze=true,value=1,name="Pb2Chts [Veichle Speed]"},{address=c.nca-0x204,flags=gg.TYPE_FLOAT,freeze=true,value=1,name="Pb2Chts [Veichle Speed]"}})end;if j[21]then h=table.append(h,{{address=c.nca+0x30,flags=gg.TYPE_DWORD,value=9e8,freeze=true,name="Pb2Chts [Win] (remove this after you win match)"}})end;if j[23]then h=table.append(h,{{address=c.nca+0x84,flags=gg.TYPE_WORD,freeze=false,value=0,name="Pb2Chts [Rel0adTimer]"}})end;if j[24]then h=table.append(h,{{address=c.nca+0x08,flags=gg.TYPE_WORD,freeze=false,value=999,name="Pb2Chts [Health]"},{address=c.nca+0x158,flags=gg.TYPE_FLOAT,freeze=false,value=0,name="Pb2Chts [RespawnInterval] (Immortal)"}})end;if j[25]then h=table.append(h,{{address=c.nca+0x2C,flags=gg.TYPE_WORD,value=-1,freeze=false,name="Pb2Chts [C4Position]: X"},{address=c.nca+0x2E,flags=gg.TYPE_WORD,value=-1,freeze=false,name="Pb2Chts [C4Position]: Y"}})end;if j[26]then h=table.append(h,{{address=c.nca+0x86,flags=gg.TYPE_WORD,freeze=false,value=0,name="Pb2Chts [SpeedSlide]"}})end;if j[27]then h=table.append(h,{{address=c.nca-0x408,flags=gg.TYPE_DWORD,value=0,freeze=false,value=0,name="Pb2Chts [Float]"}})end;if j[28]then h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=0,freeze=false,name="Pb2Chts [Ragdoll]"},{address=c.nca+0x128,flags=gg.TYPE_DWORD,value=65536,freeze=false,name="Pb2Chts [Ragdoll]"}})end;if j[29]then h=table.append(h,{{address=c.nca-0x4,flags=gg.TYPE_DWORD,value=0,freeze=false,value=0,name="Pb2Chts [BodyBurningStateAndTimer]: Normal"}})end;if j[30]then h=table.append(h,{{address=c.nca-0x610,flags=gg.TYPE_DWORD,value=1,freeze=false,value=0,name="Pb2Chts [Dr0wned]"}})end;if j[31]then h=table.append(h,{{address=c.nca-0x1AC,flags=gg.TYPE_WORD,value=0,name="Pb2Chts [Enable jet]"}})end;if j[18]then local j,o=gg.choice({"1. Black (256)","2. Blue (257)","3. Green (258)","4. Brown (259)","5. Red (260)","6. Gray (261)","7. Yellow (262)","8. White (263)","9. Bold red (264)","10. Exteme black (272)","11. Rare green (304)","12. Dark green (306)","13. Dark red (315)","14. Tomato red (321)","----- [Click here to "..f"__cancel__".."]","15. Rainbow (Experimental)"},nil,"Select the color you want")if j==1 then o=256 elseif j==2 then o=257 elseif j==3 then o=258 elseif j==4 then o=259 elseif j==5 then o=260 elseif j==6 then o=261 elseif j==7 then o=262 elseif j==8 then o=263 elseif j==9 then o=264 elseif j==10 then o=272 elseif j==11 then o=304 elseif j==12 then o=306 elseif j==13 then o=315 elseif j==14 then o=321 elseif j==16 then o=-1 end;if o and o>=0 then h=table.append(h,{{address=c.nca+0x94,flags=gg.TYPE_WORD,freeze=false,value=o,name="Pb2Chts [Vehicle color]"}})elseif o and o==-1 then toast("Still in building phase, click GG to stop. while the rainbow animation playing, you cannot access GG until its stopped\nand this will not apply other cheats you select, make sure you activate cheat choice of yours before activating this")c.rnbwCurClr=257;c.rainbowCar={{address=c.nca+0x94,flags=gg.TYPE_WORD,freeze=false,name="Pb2Chts [Vehicle color]"}}gg.setValues(h)gg.addListItems(h)gg.clearResults()gg.setVisible(false)while not gg.isVisible()do if c.rnbwCurClr>264 then c.rnbwCurClr=256 end;c.rainbowCar[1].value=c.rnbwCurClr;gg.setValues(c.rainbowCar)sleep(77)c.rnbwCurClr=c.rnbwCurClr+1 end;gg.setVisible(false)end end;gg.setValues(h)gg.addListItems(h)gg.clearResults()toast('Selected operations done')end end end;function cheat_weaponammo()gg.setRanges(gg.REGION_ANONYMOUS+gg.REGION_OTHER)gg.searchNumber(1217115234,gg.TYPE_DWORD,nil,nil,table.unpack(cfg.memZones.Common_RegionOtherB))h=gg.getResults(1)if gg.getResultCount()==0 then toast("Can't find the specific set of number")else h=h[1].address;gg.setValues({{address=h+0x10C,value=30000,flags=gg.TYPE_DWORD},{address=h+0x110,value=30000,flags=gg.TYPE_DWORD},{address=h+0x114,value=30000,flags=gg.TYPE_DWORD},{address=h+0x118,value=30000,flags=gg.TYPE_DWORD},{address=h+0x11C,value=30000,flags=gg.TYPE_DWORD},{address=h+0x120,value=30000,flags=gg.TYPE_DWORD},{address=h+0x124,value=30000,flags=gg.TYPE_DWORD},{address=h+0x128,value=999,flags=gg.TYPE_DWORD},{address=h+0x21C,value=30000,flags=gg.TYPE_DWORD},{address=h+0x220,value=30000,flags=gg.TYPE_DWORD},{address=h+0x224,value=30000,flags=gg.TYPE_DWORD},{address=h+0x228,value=30000,flags=gg.TYPE_DWORD},{address=h+0x22C,value=30000,flags=gg.TYPE_DWORD},{address=h+0x230,value=30000,flags=gg.TYPE_DWORD},{address=h+0x234,value=30000,flags=gg.TYPE_DWORD},{address=h+0x238,value=999,flags=gg.TYPE_DWORD}})end end;function cheat_pistolknockback()local j=gg.choice({"Grapple gun/Pull (-20)","Knockback/Push (20)","Default (0.25)","None (0.00001)","Custom","---","Change current Knockback variable","Restore previous value","Clear memory buffer",f"__back__"},nil,"Pistol/Shotgun knockback modifier\nCurrent: "..i.PstlSgKnckbck.."\nHint: recommended value is -20 to 20 if you use pistol")if j then if j==10 then MENU()elseif j==1 then PISTOL_KNOCKBACK_VALUE=-20 elseif j==2 then PISTOL_KNOCKBACK_VALUE=20 elseif j==3 then PISTOL_KNOCKBACK_VALUE=0.25 elseif j==4 then PISTOL_KNOCKBACK_VALUE=1e-5 elseif j==5 then local j=gg.prompt({'Input your custom knockback value'})if j and j[1]then PISTOL_KNOCKBACK_VALUE=j[1]else cheat_pistolknockback()end elseif j==7 then local j=gg.prompt({'If you think the current knockback value is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current pistol/shotgun knockback value'},{i.PstlSgKnckbck},{'number'})if j and j[1]then i.PstlSgKnckbck=j[1]end;cheat_pistolknockback()elseif j==8 then d.PistolKnockback=nil;cheat_pistolknockback()elseif j==9 then e.PistolKnockback=nil;cheat_pistolknockback()end;if PISTOL_KNOCKBACK_VALUE then gg.setRanges(gg.REGION_C_ALLOC)if not e.PistolKnockback then gg.searchNumber(1067869798,gg.TYPE_DWORD)c[1]=gg.getResults(5e3)for m=1,#c[1]do c[1][m].address=c[1][m].address-0xC;c[1][m].flags=gg.TYPE_FLOAT end;gg.loadResults(c[1])gg.refineNumber(i.PstlSgKnckbck)end;handleMemOzt("PistolKnockback",i.PstlSgKnckbck,nil,gg.TYPE_FLOAT,2)if gg.getResultCount()==0 then e.PistolKnockback,d.PistolKnockback=nil,nil;toast("Can't find the specific set of number. if you changed the knockback value and reopened the script, restore the actual current number using 'Change current knockback value' menu")else for m=1,#e.PistolKnockback do e.PistolKnockback[m].value=PISTOL_KNOCKBACK_VALUE end;i.PstlSgKnckbck,PISTOL_KNOCKBACK_VALUE=PISTOL_KNOCKBACK_VALUE,nil;toast("Pistol/SG Knockback "..i.PstlSgKnckbck)gg.setValues(e.PistolKnockback)end end end end;function cheat_wallhack()local j=gg.choice({"ON (GKTV, wonky physics, fast to enable, survives multiple match, and can wallhack other entities not just a wall)","ON (AGH, physics works best. need to reapplied every match, takes some time)","OFF (GKTV)","OFF (AGH, Not recommended if buffer is empty)","---","Restore previous value","Use custom value","Clear memory buffer",f"__back__"},nil,"Wall Hack. Warn:\n- some walls have holes behind them\n- Dont use Wall Hack if you use Helicopter (if you respawn, the helicopter will sunk down due to less power to pull helicopter up),\n- Don't use Wall Hack if you do racing\n- Best use cases are for CTS in Metropolis, because there\'s less holes there")if j then if j==9 then MENU()elseif j==1 then c={1,{"3472W;5W;1e-3F;14979W::11","2W;16256W;1e-3F;14979W::7",1e-3},i.WallResist[2],"ON"}elseif j==2 then c={2,"1140457472D;500F::",i.WallResist[1],"ON"}elseif j==3 then c={1,{"3472W;5W;"..i.WallResist[2].."F;-16512W::15","2W;16256W;"..i.WallResist[2].."F;-16512W::7",i.WallResist[2]},1e-3,"OFF"}elseif j==4 then c={2,i.WallResist[1],1140457472,"OFF"}elseif j==6 then gg.setValues(d.wallhack)gg.setValues(d.wallhack_gktv)d.wallhack,d.wallhack_gktv=nil,nil;toast("Previous value restored, be warned though this will cause instability")cheat_wallhack()elseif j==7 then local j=gg.prompt({'Put your custom value for Default method (Game default:1140457472,Cheatus default:-500)','Put your custom value for Alternative method (Game default:0.001,Cheatus default:-1.00001)'},i.WallResist,{'number','number'})if j then if j[1]~=""then i.WallResist[1]=j[1]end;if j[2]~=""then i.WallResist[2]=j[2]end;if j[3]~=""then i.WallResist[3]=j[3]end end;j=nil;cheat_wallhack()elseif j==8 then j,e.wallhack,e.wallhack_gktv=nil,nil,nil;toast("Memory buffer cleared")cheat_wallhack()end;if c then if c[1]==1 then gg.setRanges(gg.REGION_CODE_APP)if not e.wallhack_gktv then toast('No previous memory buffer found, creating new buffer.')gg.searchNumber(c[2][1])gg.refineNumber(c[2][3],gg.TYPE_FLOAT)c[5]=gg.getResults(1)gg.clearResults()gg.searchNumber(c[2][2])gg.refineNumber(c[2][3],gg.TYPE_FLOAT)c[5]={c[5][1],gg.getResults(1)[1]}e.wallhack_gktv,d.wallhack_gktv=c[5],c[5]else toast('Previous result found, using previous result.\nif it fails, clear the buffer using "clear buffer" option')end;gg.loadResults(e.wallhack_gktv)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else for m=1,#e.wallhack_gktv do e.wallhack_gktv[m].value=c[3]end;gg.setValues(e.wallhack_gktv)toast("Wall Hack "..c[4])end elseif c[1]==2 then gg.setRanges(gg.REGION_C_ALLOC)handleMemOzt("wallhack",c[2],nil,gg.TYPE_DWORD,50)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else for m=1,#e.wallhack do e.wallhack[m].value=c[3]end;gg.setValues(e.wallhack)toast("Wall Hack "..c[3])end end end end end;function cheat_bigbody()local j=gg.choice({"ON (Default, based on Mangyu original script)","ON (Alternative, client-side only. affects everyone you see, not just you)","OFF (Default)","OFF (Alternative)","Restore previous value","Use custom value",f"__back__"},nil,"Big body")if j then local h;if j==7 then MENU()elseif j==1 then gg.setRanges(gg.REGION_C_BSS+gg.REGION_C_ALLOC)h=handleMemOzt("bigbody_mangyu",1.09500002861,nil,gg.TYPE_FLOAT,555)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else for m=1,#h do h[m].value=i.BigBody[1]+0.09500002861;h[m].freeze=true end;toast("Big Body ON")end;gg.setValues(h)elseif j==2 then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("bigbody_gktv",4.30000019073,nil,gg.TYPE_FLOAT,22)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else gg.editAll(i.BigBody[2]+0.00000019073,gg.TYPE_FLOAT)toast("Big Body ON")end elseif j==3 then gg.setRanges(gg.REGION_C_BSS+gg.REGION_C_ALLOC)h=handleMemOzt("bigbody_mangyu",i.BigBody[1]+0.09500002861,nil,gg.TYPE_FLOAT,555)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else for m=1,#h do h[m].value=1.09500002861 end;toast("Big body OFF")end;gg.setValues(h)elseif j==4 then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("bigbody_gktv",i.BigBody[2]+0.00000019073,nil,gg.TYPE_FLOAT,22)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else gg.editAll(4.30000019073,gg.TYPE_FLOAT)toast("Big body OFF")end elseif j==5 then if d.bigbody_gktv or d.bigbody_mangyu then gg.setValues(d.bigbody_gktv)gg.setValues(d.bigbody_mangyu)toast("Big body previous value restored")else toast("No values to restore")end;d.bigbody_gktv,d.bigbody_mangyu=nil,nil elseif j==6 then local j=gg.prompt({'Put your custom value for Default method (Game default: 1,Cheatus default: 3, offset: .09500002861)','Put your custom value for Alternative method (Game default: 4.3,Cheatus default: 5.9, offset: .00000019073)'},{i.BigBody[1],i.BigBody[2]},{'number','number'})if j then if j[1]~=""then i.BigBody[1]=j[1]end;if j[2]~=""then i.BigBody[2]=j[2]end end;j=nil;cheat_bigbody()end;h=nil end end;function cheat_strongveichle()local j=gg.choice({"ON (30000)","OFF (125)","Destroy (-1)","Custom","---","Change current health variable","Restore previous value","Clear memory buffer",f"__back__"},nil,"Veichle default health modifier")if j then if j==9 then MENU()elseif j==1 then CAR_HEALTH_VALUE=3e4 elseif j==2 then CAR_HEALTH_VALUE=125 elseif j==3 then CAR_HEALTH_VALUE=-1 elseif j==4 then local j=gg.prompt({'Input your custom Veichle default health value'})if j and j[1]then CAR_HEALTH_VALUE=j[1]else cheat_strongveichle()end elseif j==6 then local j=gg.prompt({'If you think the current Veichle default health value is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current Veichle default health value'},{i.CrDfltHlth},{'number'})if j and j[1]then i.CrDfltHlth=j[1]end;cheat_strongveichle()elseif j==7 then j,d.CarHealth=nil,nil;cheat_strongveichle()elseif j==8 then j,e.CarHealth=nil,nil;cheat_strongveichle()end;if CAR_HEALTH_VALUE then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("CarHealth",i.CrDfltHlth.."D;4D;1F::21",i.CrDfltHlth,gg.TYPE_DWORD,50)if gg.getResultCount()==0 then e.CarHealth,d.CarHealth=nil,nil;toast("Can't find the specific set of number. if you changed the veichle health value, and reopened the script, restore the actual current number using 'Change current health variable' menu")else for m=1,#e.CarHealth do e.CarHealth[m].flags=gg.TYPE_WORD;e.CarHealth[m].value=CAR_HEALTH_VALUE end;i.CrDfltHlth,CAR_HEALTH_VALUE=CAR_HEALTH_VALUE,nil;gg.setValues(e.CarHealth)toast("Veichles default health "..i.CrDfltHlth)end end end end;function cheat_noblastdamage()local j=gg.choice({"ON (0)","Default (300)","Feather death (3.000.000, dead with almost any explosed explosion)","---","Change current damage value","Restore previous value","Clear memory buffer",f"__back__"},nil,"No blast damage")if j then if j==8 then MENU()elseif j==1 then DAMAGE_INTENSITY_VALUE=0 elseif j==2 then DAMAGE_INTENSITY_VALUE=300 elseif j==3 then DAMAGE_INTENSITY_VALUE=3e6 elseif j==5 then local j=gg.prompt({'If you think the current Damage intensity is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current Damage intensity'},{i.DmgIntnsty},{'number'})if j and j[1]then i.DmgIntnsty=j[1]end;cheat_noblastdamage()elseif j==6 then j,d.NoBlastDamage=nil,nil;cheat_noblastdamage()elseif j==7 then j,e.NoBlastDamage=nil,nil;cheat_noblastdamage()end;if DAMAGE_INTENSITY_VALUE then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("NoBlastDamage",i.DmgIntnsty..";2e9::5",i.DmgIntnsty,gg.TYPE_FLOAT,9)if gg.getResultCount()==0 then e.NoBlastDamage,d.NoBlastDamage=nil,nil;toast("Can't find the specific set of number. if you changed the blast intensity value and reopened the script, restore the actual current number using 'Change current damage value' menu")else for m=1,#e.NoBlastDamage do e.NoBlastDamage[m].value=DAMAGE_INTENSITY_VALUE end;i.DmgIntnsty,DAMAGE_INTENSITY_VALUE=DAMAGE_INTENSITY_VALUE,nil;toast("Blast damage intensity "..i.DmgIntnsty)gg.setValues(e.NoBlastDamage)end end end end;function cheat_floodspawn()j=gg.choice({"Activate","Clear memory buffer","Clear buffer and Activate","Back"},nil,"Flood Respawn\nDISCLAIMMER:\n- DO NOT USE THIS TO ABUSE OTHER PLAYER!!!\n- THIS CHEAT IS TECHINCALLY POWERFUL, BECAUSE IT DROPS SERVER TPS AND LAG PLAYERS. ONLY USE IT OFFLINE!!")if j then if j==4 then MENU()end;if j==2 or j==3 then e.respawnCheat=nil;cheat_floodspawn()end;if j==1 or j==3 then gg.setRanges(gg.REGION_OTHER)h=handleMemOzt("respawnCheat",52428800,nil,gg.TYPE_DWORD,10,cfg.memZones.Common_RegionOtherB)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else searchWatchdog("Now trigger respawn animation (by respawning yourself through pause menu)","52428801~52429000","respawnCheat")if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else local p=gg.prompt({"Put the respawn duration (in seconds), set to 0 to disable duration [0;20]"},{1},{"number"})if p and p[1]then h[1].value=52428801;h[1].freeze=true;h[1].name="Pb2Chts [RespawnHack]"gg.setValues(h)gg.addListItems(h)p=p[1]if p=="0"then toast("Flood Respawn ON\nRemember to turn off again by suspending the script (press suspend button, below exit button), go to listItems, and unfreeze \"Pb2Chts [RespawnHack]\"")else toast("Flood Respawn ON for "..p.." seconds")sleep(1000*p)h[1].freeze=false;gg.addListItems(h)toast("Flood Respawn OFF")end end end end end end end;function cheat_voidmatchmode()gg.setRanges(gg.REGION_ANONYMOUS+gg.REGION_OTHER)gg.searchNumber(1217115234,gg.TYPE_DWORD,nil,nil,table.unpack(cfg.memZones.Common_RegionOtherB))h=gg.getResults(1)if gg.getResultCount()==0 then toast("Can't find the specific set of number, be noted that this cheat its kinda quirky so it might (not) work")else h=h[1].address;gg.setValues({{address=h+0xB4,value=9,flags=gg.TYPE_DWORD},{address=h+0xD0,value=6,flags=gg.TYPE_DWORD},{address=h+0x1C4,value=9,flags=gg.TYPE_DWORD},{address=h+0x1E0,value=6,flags=gg.TYPE_DWORD}})end;toast('void mode is set. to restore, simply change to any mode you desire\nbe noted that this cheat its kinda quirky so it might (not) work')end;function cheat_xpmodifier()gg.setRanges(gg.REGION_ANONYMOUS+gg.REGION_OTHER)local j=gg.prompt({'Put your new XP (Play Game limit is 999999, while DWORD limit is 1.999.999.998)','Put your new coin (maximum 32767, temporary, not recommend if you have infinite coin coz it might get reset)','Freeze XP','Freeze Coin'},{999999,-1,true,false},{'number','number','checkbox','checkbox'})if j and j[1]and j[2]then c[1]=handleMemOzt("CustomXP",1014817001,nil,gg.TYPE_DWORD,1)if gg.getResultCount()==0 then toast('Can\'t find the specific number.')else if j[1]~="-1"then h={{address=c[1].address-0x804,value=j[1],freeze=j[3],name="Pb2Chts [PlayerCurrentXP]"}}end;if j[2]~="-1"then h=table.append(h,{{address=c[1].address-0x608,value=j[2],freeze=j[4],name="Pb2Chts [PlayerCurrentCoin]"}})end;gg.setValues(h)gg.addListItems(h)toast('XP changed to '..j[1]..'\nWarn: XP won\'t applied permanently. to change it permanently, you have to modify Payback.sav file, which is impossible because it\'s encrypted')end end end;function cheat_changeplayername()gg.setRanges(gg.REGION_C_ALLOC+gg.REGION_ANONYMOUS+gg.REGION_OTHER)local q=gg.prompt({'Put your current player name (case-sensitive, ":" or ";" is required at the beginning, because how GameGuardian search works)','Put new player name (cant be longer than current name, you can change color/add icon by copy-pasting custom name edited using hex-editor (use hex 1-9 for color))'},{i.PlayerCurrentName,cfg.PlayerCustomName},{"text","text"})if q and q[1]and q[1]~=":"then gg.searchNumber(q[1],gg.TYPE_BYTE)d.PlayerName=gg.getResults(5e3)if gg.getResultCount()==0 then toast('Can\'t find the player name, this cheat is still in experimentation phase. report issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues')else gg.editAll(q[2],gg.TYPE_BYTE)i.PlayerCurrentName=q[2]toast('"'..q[1]..'" changed to "'..q[2]..'"\nWarn: this is still in experimentation phase, the name might only apply on your client and not others')end end end;function cheat_changeplayernamecolor()gg.setRanges(gg.REGION_C_ALLOC+gg.REGION_ANONYMOUS+gg.REGION_OTHER)local j,q,r=gg.choice({"Invisible name (all values 1 byte, Experimental)","Red (2)","Blue (3)","White (4)","Yellow (5,9)","Green (6h)","Coin (7h)","Man icon (8h)","Corrupted (10h)","---","Remove all color/icon",f"__back__"},nil,"Select the color you want (Experimental)"),gg.prompt({'Put your current player name (case-sensitive)'},{i.PlayerCurrentName},{'text'})if j then if j==1 then r=1 elseif j==2 then r=2 elseif j==3 then r=3 elseif j==4 then r=4 elseif j==5 then r=5 elseif j==6 then r=6 elseif j==7 then r=7 elseif j==8 then r=8 elseif j==9 then r=10 elseif j==11 then r=0 elseif j==12 then MENU()end;if r then gg.searchNumber(q[1],gg.TYPE_BYTE)local h,s=gg.getResults(5e3),0;d.PlayerName=gg.getResults(5e3)if gg.getResultCount()==0 then toast('Can\'t find the player name, this cheat is still in experimentation phase')else if r==0 then for m=1,#h do if h[m].value>=0 and h[m].value<11 then h[m]=nil;s=s+1 else h[m].address=h[m].address-s end end else for m=1,#h do h[m].address=h[m].address+1 end;table.insert(h,1,{address=h[1].address-1,freeze=false,flags=gg.TYPE_BYTE,value=r})end;i.PlayerCurrentName=table.concat(h)gg.setValues(h)toast('Color set to '..r..'. PS: still in experimental phase, might not work')end end end end;function cheat_walkwonkyness()local j=gg.choice({"Default (0.004)","ON (1)","OFF (0)","Restore","Clear memory buffer",f"__back__"},nil,"Walk Wonkyness (fancy-cheat)")gg.setRanges(gg.REGION_CODE_APP)if j==5 then MENU()elseif j==1 then handleMemOzt("walkwonkyness","0~1;0.00999999978::5",nil,gg.TYPE_FLOAT,1)gg.editAll(0.004,gg.TYPE_FLOAT)toast("Walk Wonkyness Default")elseif j==2 then handleMemOzt("walkwonkyness","0.004;0.00999999978::5",nil,gg.TYPE_FLOAT,1)gg.editAll(1.004,gg.TYPE_FLOAT)toast("Walk Wonkyness ON")elseif j==3 then handleMemOzt("walkwonkyness","1.004;0.00999999978::5",nil,gg.TYPE_FLOAT,1)gg.editAll(0,gg.TYPE_FLOAT)toast("Walk Wonkyness OFF")elseif j==4 then gg.setValues(d.walkwonkyness)d.walkwonkyness=nil elseif j==5 then d.walkwonkyness=nil end end;function cheat_coloredtree()local j=gg.choice({"ON","OFF",f"__back__"},nil,"Colored trees\nThis will change some shader stuff (actually idk wut this does lol) that affects trees")if j==3 then MENU()elseif j==1 then c={0.04,-999,"ON"}elseif j==2 then c={-999,0.04,"OFF"}end;if c then gg.setRanges(gg.REGION_CODE_APP)local h=handleMemOzt("clrdtree","4.06176449e-39;0.06;"..c[1]..";-0.04;-0.02::17",c[1],gg.TYPE_FLOAT,1)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("Colored trees "..c[3])end end end;function cheat_bigflamethroweritem()local j=gg.choice({"ON","OFF",f"__back__"},nil,"Big flamethrower (Item)\nInfo: this will not make the flame burst bigger")if j==3 then MENU()elseif j==1 then c={0.9,5.1403,"ON"}elseif j==2 then c={5.1403,0.9,"OFF"}end;if c then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("bigflmthrwritm","0.4;0.2;"..c[1]..";24e3::13",c[1],gg.TYPE_FLOAT,9)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("Big flamethrower "..c[3])end end end;function cheat_shadowfx()local j=gg.choice({"OFF","ON",f"__back__"},nil,"Shadow effects\nInfo: this wont affect your game performance at all (not making it lag/fast)\ndont use this for performance purpose :)")if j==3 then MENU()elseif j==1 then c={1e-4,-1.0012,"Disabled"}elseif j==2 then c={-1.0012,1e-4,"Enabled"}end;if c then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("shadow",c[1]..";-5.96152076e27;-2.55751098e30;-1.11590087e28;-5.59128595e24:17",c[1],gg.TYPE_FLOAT,1)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("Shadow "..c[3])end end end;function cheat_clrdpplsp()local j=gg.choice({"ON","OFF",f"__back__"},nil,"Colored people ESP (ExtraSensoryPerception. i guess this is X-Ray Hack)\nPS: Not work on latest version")if j==3 then MENU()elseif j==1 then c={0.08,436,"ON"}elseif j==2 then c={436,0.08,"OFF"}end;if c then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("clrdpplsp",c[1],nil,gg.TYPE_FLOAT,9)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("ESP "..c[3])end end end;function cheat_deleteingameplaytext()gg.setRanges(gg.REGION_C_ALLOC)c={"Toasted","Wasted","Nuked","Drowned","OBLITERATED","Your team won","You scored","You finished","You team scored","DEFEND","STEAL","BASE","SPLATTERED","DELIVER","DOMINATE","CAPTURE","KILL"}for m=1,#c do gg.searchNumber(":"..c[m])gg.getResults(99)gg.editAll(0,gg.TYPE_BYTE)gg.clearResults()end;toast("In-gameplay-text cleared, to restore, you have to restart the game\nPS: This might not work, idk why though..")end;function cheat_reflectiongraphics()local j=gg.choice({"ON","OFF",f"__back__"},nil,"Reflection graphics\nWARNING: this can cause rendering issue that requires restart to fix it\nDont forget to disable this before you get in/out-of match\ni only recommend using this in offline mode so you can easily disable the reflection graphics before getting out of match")if j==3 then MENU()elseif j==1 then c={49,1,"ON",true}elseif j==2 then c={1,49,"OFF",true}end;if j and c[3]then gg.setRanges(gg.REGION_OTHER)if not e.RfTgraphics then gg.searchNumber(144,gg.TYPE_DWORD,nil,nil,table.unpack(cfg.memZones.Common_RegionOtherB))c[4]=gg.getResults(5e3)for m=1,#c[4]do c[4][m].address=c[4][m].address+0x8;c[4][m].flags=gg.TYPE_DWORD end;gg.loadResults(c[4])gg.refineNumber(50)c[4]=gg.getResults(5e3)for m=1,#c[4]do c[4][m].address=c[4][m].address-0x4;c[4][m].flags=gg.TYPE_DWORD end;gg.loadResults(c[4])gg.refineNumber(c[1])end;handleMemOzt("RfTgraphics",c[1],nil,gg.TYPE_DWORD,1)if gg.getResultCount()==0 then toast("Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues")else e.RfTgraphics[1].value=c[2]toast("Reflection Graphics "..c[3])gg.setValues(e.RfTgraphics)end end;h=nil end;function cheat_explodepow()local j=gg.choice({"Modify Explosion power","---","Change current Explosion power","Restore previous value","Clear memory buffer",f"__back__"},nil,"Explosion power modifier\nCurrent: "..i.XplodPow.."\n")if j then if j==6 then MENU()elseif j==1 then local j=gg.prompt({'Put your explosion power. Lower is more powerful\nSet to -1 to disable explosion\n PS:only applies to you'},{i.XplodPow},{'number'})if j and j[1]then EXPLOSION_POWER=j[1]else cheat_explodepow()end elseif j==3 then local j=gg.prompt({'If you think the current explosion power is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current explosion power'},{i.PstlSgKnckbck},{'number'})if j and j[1]then i.XplodPow=j[1]end;cheat_explodepow()elseif j==4 then d.explodePower=nil;cheat_explodepow()elseif j==5 then e.explodePower=nil;cheat_explodepow()end;if EXPLOSION_POWER then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("explodePower","15120W;"..i.XplodPow.."F::3",i.XplodPow,gg.TYPE_FLOAT,1)if gg.getResultCount()==0 then e.explodePower,d.explodePower=nil,nil;toast("Can't find the specific set of number. if you changed the explosion power and reopened the script, restore current number using 'Change current explosion power' menu")else e.explodePower[1].value,i.XplodPow,EXPLOSION_POWER=EXPLOSION_POWER,EXPLOSION_POWER,nil;toast("Explosion power modified to "..i.XplodPow)gg.setValues(e.explodePower)end end end end;function cheat_explodedir()local j=gg.choice({"Default (50000)","OFF (0)","Attractive/magnet (-50000)","Custom","---","Change current value","Restore previous value","Clear memory buffer",f"__back__"},nil,"No blast damage")if j then if j==8 then MENU()elseif j==1 then XPLODIR_VAL=5e4 elseif j==2 then XPLODIR_VAL=0 elseif j==3 then XPLODIR_VAL=-5e4 elseif j==4 then local j=gg.prompt({'Input your custom damage intensity'})if j and j[1]then XPLODIR_VAL=j[1]else cheat_explodedir()end elseif j==6 then local j=gg.prompt({'If you think the current Damage intensity is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current Damage intensity'},{i.DmgIntnsty},{'number'})if j and j[1]then i.XplodDir=j[1]end;cheat_explodedir()elseif j==7 then j,d.explodeDir=nil,nil;cheat_explodedir()elseif j==8 then j,e.explodeDir=nil,nil;cheat_explodedir()end;if XPLODIR_VAL then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("explodeDir","1259902592D;"..i.XplodDir.."F::5",i.XplodDir,gg.TYPE_FLOAT,9)if gg.getResultCount()==0 then e.explodeDir,d.explodeDir=nil,nil;toast("Can't find the specific set of number. if you changed the value and reopened the script, restore the actual current number using 'Change current value' menu")else for m=1,#e.explodeDir do e.explodeDir[m].value=XPLODIR_VAL end;i.XplodDir,XPLODIR_VAL=XPLODIR_VAL,nil;toast("Explosion direction is set to "..(i.XplodDir>0 and"default"or i.XplodDir<0 and"magnet"or i.XplodDir==0 and"none"))gg.setValues(e.explodeDir)end end end end;function cheat_prtclintrvl()local j=gg.choice({"No particle (0ms, recommended if too much particle/explosion caused lag)","Fast (9ms)","Default (120ms)","Slow (2s)","Custom","---","Change current interval variable","Restore previous value","Clear memory buffer",f"__back__"},nil,"Particle interval modifier\nCurrent: "..i.PrtclAnmtnIntrvl)if j then if j==10 then MENU()elseif j==1 then PARTICLE_INT=0 elseif j==2 then PARTICLE_INT=9 elseif j==3 then PARTICLE_INT=120 elseif j==4 then PARTICLE_INT=2000 elseif j==5 then local j=gg.prompt({'Input your custom interval value (in miliseconds)'})if j and j[1]then PARTICLE_INT=j[1]else cheat_prtclintrvl()end elseif j==7 then local j=gg.prompt({'If you think the current interval value is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current interval'},{i.PrtclAnmtnIntrvl},{'number'})if j and j[1]then i.PrtclAnmtnIntrvl=j[1]end;cheat_prtclintrvl()elseif j==8 then d.PrtclAnmtnIntrvl=nil;cheat_prtclintrvl()elseif j==9 then e.PrtclAnmtnIntrvl=nil;cheat_prtclintrvl()end;if PARTICLE_INT then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("PrtclAnmtnIntrvl","-352321693D;"..i.PrtclAnmtnIntrvl.."F::5",i.PrtclAnmtnIntrvl,gg.TYPE_FLOAT,1)if gg.getResultCount()==0 then e.PrtclAnmtnIntrvl,d.PrtclAnmtnIntrvl=nil,nil;toast("Can't find the specific set of number. if you changed the interval and reopened the script, restore the actual current number using 'Change current interval' menu")else for m=1,#e.PrtclAnmtnIntrvl do e.PrtclAnmtnIntrvl[m].value=PARTICLE_INT end;i.PrtclAnmtnIntrvl,PARTICLE_INT=PARTICLE_INT,nil;toast("Particle interval "..i.PrtclAnmtnIntrvl.."ms")gg.setValues(e.PrtclAnmtnIntrvl)end end end end;function cheat_cardrift()local j=gg.choice({"Modify drifting speed","---","Change current drifting speed","Restore previous value","Clear memory buffer",f"__back__"},nil,"Drifting speed modifier\nCurrent: "..i.DrftSpd.."\n")if j then if j==6 then MENU()elseif j==1 then local j=gg.prompt({'How fast you want the drifting rotation? Higher value is more powerful\nDefault:1 (1.3) [-1;20]'},{i.DrftSpd},{'number'})if j and j[1]then DRIFT_SPEED=j[1]else cheat_cardrift()end elseif j==3 then local j=gg.prompt({'If you think the current explosion power is wrong, or get reset due to quiting from script, you can change it here\n\nPut the current explosion power'},{i.DrftSpd},{'number'})if j and j[1]then i.DrftSpd=j[1]end;cheat_cardrift()elseif j==4 then d.DrftSpd=nil;cheat_cardrift()elseif j==5 then e.DrftSpd=nil;cheat_cardrift()end;if DRIFT_SPEED then DRIFT_SPEED=tonumber(DRIFT_SPEED..".3")gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("DrftSpd",i.DrftSpd,nil,gg.TYPE_FLOAT,1)if gg.getResultCount()==0 then e.DrftSpd,d.DrftSpd=nil,nil;toast("Can't find the specific set of number. if you changed the drift speed and reopened the script, restore current number using 'Change current drift speed' menu")else e.DrftSpd[1].value,i.DrftSpd,DRIFT_SPEED=DRIFT_SPEED,DRIFT_SPEED,nil;toast("Explosion power modified to "..i.DrftSpd)gg.setValues(e.explodePower)end end end end;function show_about()local j=gg.choice({f"__about__","---",f"Disclaimmer",f"License",f"Credits",f"__back__"},nil,f"__about__")if j==1 then alert(f"About_Text")show_about()elseif j==3 then alert(f"Disclaimmer_Text")show_about()elseif j==4 then alert(f"License_Text")show_about()elseif j==5 then alert(f"Credits_Text")show_about()elseif j==6 then j=nil;MENU()end end;function table.merge(...)local t={}for u,h in ipairs{...}do for k,v in pairs(h)do if type(t[k])=="table"then t[k]=table.merge(t[k],v)else t[k]=v end end end;return t end;function table.mergeContents(w,x)for m=1,#w do for k,v in pairs(x)do w[m][k]=x[k]end end;return w end;function table.append(y,z)for u,v in ipairs(z)do y[#y+1]=v end;return y end;function searchWatchdog(A,B,C)if gg.getResultCount()<2 then return gg.getResults(1)elseif A then toast(A.."\nClick GG Icon to abort the search")end;local D,E=gg.getResults(100)while not E do if gg.isVisible()then gg.setVisible(false)E=1 end;gg.refineNumber(B)if gg.getResultCount()>0 then E=1 else gg.loadResults(D)end;sleep(100)end;h=gg.getResults(1)D,E,e[C],d[C]=nil,nil,h,h;return h end;function handleMemOzt(F,G,H,I,J,K)K=K or{0,-1}J=J or 1;if e[F]then toast('Previous result found, using previous result')gg.loadResults(e[F])else toast('No buffer found, creating new buffer')gg.searchNumber(G,I,nil,nil,K[1],K[2])if H then gg.refineNumber(H,I)end;e[F],d[F]=gg.getResults(J),gg.getResults(J)end;return gg.getResults(J)end;function loopSearch(J,L,M,N)local O,h=gg.prompt({M})N=N or{}if O and O[1]then gg.searchNumber(O[1],L,nil,nil,N[1],N[2])if gg.getResultCount()>0 then while gg.getResultCount()>J do c[1]=gg.getResultCount()toast('3 seconds to change ammo value')sleep(3e3)O=gg.prompt({'Put your weapon ammo\nCurrently found: '..c},{O[1]})if not(O and O[1])then break end;gg.refineNumber(O[1])c[1]=gg.getResultCount()if c[1]==2 then h=gg.getResults(2)if h[1].value==h[2].value then return{h[1]}end elseif c[1]==0 then if not N[1]then break else toast("Oh, this is weird 🤔️... We don't find the value you're searching for 🔍️. We will try again, but without memory restriction")return loopSearch(J,L,M)end end end;return gg.getResults(J)end end end;function findEntityAnchr()gg.setRanges(gg.REGION_OTHER+gg.REGION_ANONYMOUS)if cfg.cheatSettings.findEntityAnchr.searchMethod=="holdWeapon"then toast("Hold your pistol")sleep(1e3)gg.searchNumber(13,gg.TYPE_DWORD,nil,nil,table.unpack(cfg.memZones.HldWpn))h=gg.getResults(200)while gg.getResultCount()>1 do toast("Hold your knife")sleep(2e3)gg.refineNumber(0)h=gg.getResults(200)if gg.getResultCount()==1 then break elseif gg.getResultCount()==0 then return elseif gg.getResultCount()==2 then h=gg.getResults(2)if h[1].value==h[2].value then h={h[1]}break end end;toast("Hold your pistol")sleep(2e3)gg.refineNumber(13)h=gg.getResults(200)if gg.getResultCount()==0 then return elseif gg.getResultCount()==2 then h=gg.getResults(2)if h[1].value==h[2].value then h={h[1]}break end end end;gg.clearResults()return h[1].address-0x18 elseif cfg.cheatSettings.findEntityAnchr.searchMethod=="wordWeaponAmmo"then h=loopSearch(1,gg.TYPE_WORD,'Put one of your weapon ammo',cfg.memZones.WpnAmmWrd)if gg.getResultCount()==0 then return end;h=h[1]h.value=3e4;gg.setValues({h})gg.clearResults()gg.searchNumber(20,gg.TYPE_WORD,nil,nil,h.address-0x2A,h.address)if gg.getResultCount()>0 then return gg.getResults(1)[1].address end elseif cfg.cheatSettings.findEntityAnchr.searchMethod=="mangyuFloatAnchor"then toast("Please wait for ~3 seconds... Don't shoot, Keep your health at max, Hold pistol.")local c=nil;gg.searchNumber(1.68155816e-43,gg.TYPE_FLOAT,nil,nil,table.unpack(cfg.memZones.Common_RegionOtherB))c=gg.getResults(5e3)for m=1,#c do c[m].address=c[m].address+0x1C;c[m].flags=gg.TYPE_DWORD end;gg.loadResults(c)gg.refineNumber("-501~30000")c=gg.getResults(5e3)for m=1,#c do c[m].address=c[m].address+0x10;c[m].flags=gg.TYPE_DWORD end;gg.loadResults(c)gg.refineNumber(13)c=gg.getResults(5e3)for m=1,#c do c[m].address=c[m].address+0xC2;c[m].flags=gg.TYPE_WORD end;gg.loadResults(c)gg.refineNumber("512~513")c=gg.getResults(5e3)for m=1,#c do c[m].address=c[m].address-0xDA;c[m].flags=gg.TYPE_FLOAT end;gg.loadResults(c)gg.refineNumber(2.80259693e-44)c=nil;if gg.getResultCount()>0 then return gg.getResults(1)[1].address end else toast("An error occured (InvalidConf): Exit out of script and see print log for more details.")print("[Error.InvalidConf]: Configuration value for \"cfg.cheatSettings.findEntityAnchr.searchMethod\" ("..cfg.cheatSettings.findEntityAnchr.searchMethod..") is invalid.\n Possible values: wordWeaponAmmo, holdWeapon, mangyuFloatAnchor\n Your Configuration:\n",cfg)end end;function exit()gg.saveVariable(cfg,b)gg.clearResults()print(f"Exit_ThankYouMsg")os.exit()end;function suspend()gg.saveVariable({revert=d,memOzt=e,cfg=cfg},a)print(f"Suspend_Text")os.exit()end;function update_language()if cfg.Language=="auto"then curr_lang=gg.getLocale()if curr_lang~="in"then curr_lang="en_US"end else curr_lang=cfg.Language end end;function loadConfig()cfg={cheatSettings={noreload={displayFallback=false,useSearch20=true},c4paint={useSearch20=true},findEntityAnchr={searchMethod="holdWeapon"}},memZones={Common_RegionOther={0xB0000000,0xD0000000},Common_RegionOtherB={0xB0000000,0xBFFFFFFF},WpnAmmWrd={0xB000051C,0xCD0FFD2A},HldWpn={0xB0000518,0xCDFFFD18}},Language="auto",PlayerCurrentName=":Player",PlayerCustomName=":CoolFoe",VERSION="2.1.8c",clearAllList=false}local P=loadfile(b)if P then P=P()P.VERSION=cfg.VERSION;cfg=table.merge(cfg,P)else toast("No configuration files detected, Creating new one... 💾️\nHi There! 👋️ Looks like You're new here.")gg.saveVariable(cfg,b)end;P=nil;i.PlayerCurrentName=cfg.PlayerCurrentName;update_language()end;function restoreSuspend()local Q=loadfile(a)if Q then toast(f"Suspend_Detected")Q=Q()cfg=Q.cfg;d=Q.revert;e=Q.memOzt;os.remove(a)end;Q=nil end;alert=function(R,...)gg.alert(f(R),...)end;toast=function(R,S)if S==nil then S=true end;gg.toast(R,S)end;sleep=gg.sleep;i={PstlSgKnckbck=0.25,CrDfltHlth=125,DmgIntnsty=300,DrftSpd=1,WallResist={-500,-1e-5},BigBody={3,5.9},XplodPow=1e7,XplodDir=5e4,PrtclAnmtnIntrvl=120}loadConfig()do if not cfg.clearAllList then local T=gg.clearList;gg.clearList=function()c[1]=gg.getListItems()for m=1,#c[1]do if c[1][m].name and c[1][m].name:find"Pb2Chts"then c[1][m]=nil end end;T()gg.addListItems(c[1])c[1]=nil end end end;local U={en_US={Automatic="Automatic",About_Text="Payback2 CHEATus, created by ABJ4403.\nThis cheat is Open-source on GitHub (unlike any other cheats some cheater bastards not showing at all! they make it beyond proprietary)\nGitHub: https://github.com/ABJ4403/Payback2_CHEATus\nReport issues here: https://github.com/ABJ4403/Payback2_CHEATus/issues\nLicense: GPLv3\nTested on:\n- Payback2 v2.104.12.4\n- GameGuardian v101.0\nThis cheat is part of FOSS (Free and Open-Source Software)\n\n\nWhy i make this?\nBecause i see Payback 2 players (notably cheaters) are very rude, and did'nt want to share their cheat script at all. This ofcourse violates open-source philosophy, we need to see the source code to make sure its safe and not malware. Just take a look at Hydra YouTube videos for example (Payback gamer name: HYDRAofINDONESIA). he's hiding every technique of cheating, the hiding is SO EXTREME (alot of sticker/text/zoom-censor, speedup, especially something related with memory address/value, or well... any number, even cheat menu which didnt show any numbers at all). even if he gives download link of one cheat (wall-hack),\nits still proprietary, i cant read any single code to make sure its not malware (and also if i look correctly in the code, theres word \"[LOCKED]\" and on the video description which he provides, theres garbled text that says \"7o31kql9p\", which means double-encryption! what the fucking hell dude?! get some mental health!), and also its whopping 200kb! I'm done. This is why the \"Payback2 CHEATus\" project comes",Credits="Credits",Credits_Text="Credit:\n+ Mangyu - Original script author\n+ mdp43140 - Main Contributor\n+ MisterCuteX - Mega Explosion,Respawn Hack\n+ tehtmi - unluac Creator (and decompile helper)\n+ Crystal_Mods100x - ICE Menu\n+ Latic AX & ToxicCoder - for providing removed script through YT & MediaFire\n+ AGH - for Wall Hack,Car Health GG Values (no thanks for ridicilous encrypted script though...)\n+ GKTV - PB2 GG script (wall hack,big body,colored tree,big flamethower item,shadow,esp)\n+ JokerGGS - for No Blast Damage,Rel0ad,Rel0ad grenade,RTX,Immortal,Float,Ragdoll,C4 Drawing GG Values",Disclaimmer="Disclaimmer (please read)",Disclaimmer_Text="DISCLAIMMER:\n Please DO NOT misuse the script to abuse other players.\n I'm NOT RESPONSIBLE for your action with using this script.\n Remember to keep your patience out of other players.\n i recommend ONLY using this script in offline mode.\n I made this because no one would share their cheat script.",Exit_ThankYouMsg=" If you experienced a bug, report it on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues\n If you have something to ask, you can start a discussion at https://github.com/ABJ4403/Payback2_CHEATus/discussions\n If you want to know more about this cheat, or other FAQ stuff, go to https://github.com/ABJ4403/Payback2_CHEATus/wiki",License="License",License_Text="Payback2 CHEATus, Cheat LUA Script for GameGuardian\n© 2021-2022 ABJ4403\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see https://gnu.org/licenses",Settings="Settings",Suspend="Suspend",Suspend_Detected="Suspend file detected, continuing from suspend...",Suspend_Text="You quit the program through suspend option. you can continue your current session by relaunching the script, If you restart the game, previous session wont be useful (Launch script and select exit, or remove the suspend file to purge suspended session)",Title_Version="Payback2 CHEATus v"..cfg.VERSION..", by ABJ4403."},['in']={Automatic="Otomatis",About_Text="Payback2 CHEATus, dibuat oleh ABJ4403.\nCheat ini bersumber-terbuka (Tidak seperti cheat lain yang cheater tidak menampilkan sama sekali! mereka membuatnya diluar proprietri)\nGitHub: https://github.com/ABJ4403/Payback2_CHEATus\nLaporkan isu disini: https://github.com/ABJ4403/Payback2_CHEATus/issues\nLisensi: GPLv3\nDiuji di:\n- Payback2 v2.104.12.4\n- GameGuardian v101.0\nCheat ini termasuk bagian dari FOSS (Perangkat lunak Gratis dan bersumber-terbuka)\n\n\nKenapa saya membuat ini?\nKarena saya melihat pemain Payback 2 (terutama cheater) sangat rude, dan tidak membagikan skrip cheat mereka sama sekali. Tentu ini melanggar filosofi open-source, kita perlu melihat sumber kode untuk memastikan bahwa cheat ini aman dan tidak ada malware. Lihat saja video YouTube Hydra untuk contohnya (Nama gamer Payback: HydraAssasins/HYDRAofINDONESIA). Dia menyembunyikan setiap teknik cheat, menyembuyikannya sangat ekstrim (banyak sensor stiker/teks/zoom-in, speedup, apalagi sesuatu yang berkaitan dengan alamat memory, atau ya... nomor apapun, bahkan menu cheat yang tidak menampilkan nomor sama sekali). Bahkan jika ia memberikan tautan unduhan dari satu cheat (hack wall),\nitu masih proprietri, saya tidak dapat membaca sumber kode satupun untuk memastikan itu bukan malware, dan juga sebesar 200kb! saya selesai. Inilah sebabnya mengapa proyek \"Payback2 CHEATus\" datang",Credits="Kredit",Credits_Text="Kredit:\n+ Mangyu - Pembuat skrip original\n+ mdp43140 - Kontributor Utama\n+ MisterCuteX - Mega Explosion, Respawn Hack\n+ tehtmi - Pembuat unluac (dan helper dekompilasi)\n+ Crystal_Mods100x - Menu ICE\n+ Latic AX & ToxicCoder - untuk menyediakan skrip yang telah dihapus melalui YT & MediaFire\n+ AGH - Value WallHack,CarHealth GG (tidak terimakasih untuk enkripsi yang sangggat giilaaa)\n+ GKTV - Skrip GG Payback2 (wall hack,big body,colored tree,big flamethower item,shadow,esp)\n+ JokerGGS - Value No Blast Damage,Rel0ad,Rel0ad grenade,RTX,Immortal,Float,Ragdoll,C4 Drawing GG",Disclaimmer="Disklaimmer (mohon untuk dibaca)",Disclaimmer_Text="DISKLAIMMER:\n TOLONG JANGAN menyalahgunakan skrip ini untuk menjahili pemain lain.\n Saya TIDAK BERTANGGUNG JAWAB atas kerusakan yang anda sebabkan karena MENGGUNAKAN skrip ini.\n Ingat untuk menjaga kesabaran anda dari pemain lain.\n Saya merekomendasikan menggunakan skrip ini HANYA di mode offline.\n Saya membuat ini karena tidak ada orang lain yang membagikan skrip cheat mereka.",Exit_ThankYouMsg=" Jika Anda mengalami bug, laporkan pada laman GitHub saya: https://github.com/ABJ4403/Payback2_CHEATus/issues\n Jika Anda memiliki sesuatu untuk ditanyakan, Anda dapat memulai diskusi di https://github.com/ABJ4403/Payback2_CHEATus/discussions\n Jika Anda ingin tahu lebih banyak tentang cheat ini, atau hal-hal FAQ lainnya, kunjungi https://github.com/ABJ4403/Payback2_CHEATus/wiki",License="Lisensi",License_Text="Payback2 CHEATus, Cheat Skrip LUA untuk GameGuardian\n© 2021-2022 ABJ4403\n\nProgram ini adalah perangkat lunak gratis: Anda dapat mendistribusikan kembali dan/atau memodifikasi\ndi bawah ketentuan lisensi publik umum GNU seperti yang diterbitkan oleh\nFree Software Foundation, baik lisensi versi 3, atau\n(pada opsi Anda) versi yang lebih baru.\n\nProgram ini didistribusikan dengan harapan bahwa itu akan berguna,\nTETAPI TANPA JAMINAN; bahkan tanpa jaminan tersirat dari\nKELAYAKAN JUAL atau KELAYAKAN UNTUK KEGUNAAN TERTENTU. Lihat\nGNU Lisensi Publik Umum untuk detail lebih lanjut.\n\nAnda seharusnya menerima salinan Lisensi Publik Umum GNU\nbersama dengan program ini. Jika tidak, lihat https://gnu.org/licenses",Settings="Pengaturan",Suspend="Suspensi",Suspend_Detected="File suspensi terdeteksi, melanjutkan dari suspensi...",Suspend_Text="Anda keluar dari program melalui opsi suspensi. Anda bisa melanjutkan sesi saat ini dengan meluncurkan skrip ini, Jika anda memulai ulang game, sesi sebelumya tidak akan berguna (Luncurkan skrip dan pilih keluar, atau hapus file suspensi untuk membuang sesi suspensi)",Title_Version="Payback2 CHEATus v"..cfg.VERSION..", oleh ABJ4403."}}function f(m,...)return U[curr_lang][m]or string.format(m,...)end;restoreSuspend()while true do if gg.isVisible()then gg.setVisible(false)MENU()gg.clearResults()collectgarbage()end;sleep(100)end