This repository has been archived by the owner on Oct 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPb2Chts.min.lua
23 lines (18 loc) · 61 KB
/
Pb2Chts.min.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--[[
This is a minified version of Payback2_CHEATus.lua (v2.4.2)
please note that this script might be slightly outdated.
i only prioritize the normal version.
original source:
https://github.com/ABJ4403/Payback2_CHEATus
Minified using:
https://mothereff.in/lua-minifier
Developer note:
if you're minifying using this tool,
you will need to manually fix the faulty
`"string":function(args)` code to
`("string"):function(args)`.
and optionally `MENU` to `M`
Licensed under GPL v3 license (https://gnu.org/licenses)
Any violation related to sharing this script in closed-source form will be taken seriously.
]]
gg.getFile,gg.getTargetInfo,gg.getTargetPackage,gg.getLocale=gg.getFile():gsub("%.lua$",""),gg.getTargetInfo(),gg.getTargetPackage(),gg.getLocale();local gg,io,os,a,b,c,d,e,g,h,i,j,k,l,m=gg,io,os,gg.getFile..'.suspend.json',gg.getFile..'.conf',{},{},{};function M()local h=gg.choice({"1. "..f"Cheat_WallHack","2. Floodspawn + others","3. "..f"Cheat_C4AutoRig","4. "..f"Cheat_GodModes","5. "..f"Cheat_GodModes"..' bulk',"6. Pistol/SG Knockback","7. "..f"Cheat_CSD","8. Match modifier","——",f"Settings","__about__","__exit__",f"Suspend"},nil,f"Title_Version")if h==1 then cheat_wallhack()elseif h==2 then cheat_floodspawn()elseif h==3 then cheat_c4autorigg()elseif h==4 then M_godmode()elseif h==5 then M_godmode_bulk()elseif h==6 then cheat_pistolknockback()elseif h==7 then M_CSD()elseif h==8 then M_matchmode()elseif h==10 then M_settings()elseif h==11 then show_about()elseif h==12 then exit()elseif h==13 then suspend()end;h,c=nil,{}end;function M_CSD()local h=gg.choice({f"Cheat_CSD".."\n"..f"Cheat_CSD_Notice","1. Running speed modifier","2. Strong vehicle","3. No blast damage","4. XP,Coin,etc","5. Explosion Power","6. Explosion Direction","7. Particle interval (Slow/Fast explosion)","8. Reflection Graphics","9. Colored trees","10. Autoshoot Rocket","11. Car drift","12. Walk animation Wonkyness (visual)","13. Change Name (EXPERIMENTAL)","14. Change Name Color (EXPERIMENTAL)","15. Big body","16. Big Flamethrower (Visual item)","17. Shadows","18. Entity X-Ray (visual)","19. Delete All Names","——","__back__"},nil,f"Title_Version")if h==2 then cheat_runspeedmod()elseif h==3 then cheat_strongvehicle()elseif h==4 then cheat_noblastdamage()elseif h==5 then cheat_mtcScrnfx()elseif h==6 then cheat_explodepow()elseif h==7 then cheat_explodedir()elseif h==8 then cheat_prtclintrvl()elseif h==9 then cheat_reflectiongraphics()elseif h==10 then cheat_coloredtree()elseif h==11 then cheat_autoshootrocket()elseif h==12 then cheat_cardrift()elseif h==13 then cheat_walkwonkyness()elseif h==14 then cheat_changeplayername()elseif h==15 then cheat_changeplayernamecolor()elseif h==16 then cheat_bigbody()elseif h==17 then cheat_bigflamethroweritem()elseif h==18 then cheat_shadowfx()elseif h==19 then cheat_plyxray()elseif h==20 then cheat_deleteingameplaytext()elseif h==22 then M()end end;function M_settings()local h=gg.choice({"Clear result & some list items","——","Change default & custom player name","Change __language__","Change entity anchor searching method","——","__save__ settings","Reset settings","__back__"},nil,f"Title_Version")if h==9 then M()elseif h==1 then gg.clearResults()gg.clearList()toast('Cleared!')elseif h==3 then h=gg.prompt({'Default player name:','Default custom player name:'},{i.PlayerCurrentName,i.PlayerCustomName},{'text','text'})if h then if h[1]~=""then i.PlayerCurrentName=h[1]end;if h[2]~=""then i.PlayerCustomName=h[2]end end;M_settings()elseif h==4 then h=gg.choice({["en_US"]="🇺🇸️ English",["in"]="🇮🇩️ Indonesia",["auto"]="Auto-detect (uses GameGuardian API, uses English as fallback)"},i.Language,f"Title_Version")if h then i.Language=h;update_language()end;M_settings()elseif h==5 then if i.entityAnchrSearchMethod=="holdWeapon"then h=1 elseif i.entityAnchrSearchMethod=="abjAutoAnchor"then h=2 elseif i.entityAnchrSearchMethod=="abjAutoBatchAnchor2"then h=3 end;h=gg.choice({"1. Hold weapon (Hold pistol/knife. ~6 seconds)","2. Auto anchor (Hold pistol, dont shoot. Faster, rarely fails)","3. Auto anchor 2 (finds any player/ai/vehicle)","__back__"},h,f"Title_Version")if h then if h==1 then i.entityAnchrSearchMethod="holdWeapon"elseif h==2 then i.entityAnchrSearchMethod="abjAutoAnchor"elseif h==3 then i.entityAnchrSearchMethod="abjAutoBatchAnchor2"end;M_settings()end elseif h==7 then saveConfig()M_settings()elseif h==8 then i.clearAllList=false;i.enableAutoMemRangeOpti=true;i.enableLogging=false;i.entityAnchrSearchMethod="abjAutoAnchor"i.Language="auto"i.PlayerCurrentName=":Player"i.PlayerCustomName=":CoolFoe"toast("Current settings was reset.\n- If you accidentally clicked it, interrupt the script with the floating stop button and rerun the script.\n- If you sure to reset, save the setting")M_settings()end;h=nil end;function M_godmode()local h=gg.multiChoice({"1. Top 10 Essentials (2,3,6,8,12,15,18,19,20,21,23)","——","2. Weapon Ammo","3. Rel0ad Pistol,SG,Rocket,C4s","4. Rel0ad Grenade","5. Prevent car stealing","6. Immortality","7. Immortality (Self-explode)","8. C4 Drawing","9. Speed Sliding","10 Float","11. Ragdoll","12. Anti-Burn body","13. Burned body","14. Burning body","15. Dr0wned","16. Clone","17. Vehicle color","18. Vehicle jet","19. Fast car speed (+ other tweaks?)","20. Translucent vehicle","21. Disable vehicle noise","22. Car wheel height","23. Wanted star","24. Win rampage (not instant)","25. AI Control","26. Auto unstuck car"},{true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true},f"Cheat_GodModes".."\n"..f"Cheat_GodModes_Notice")if h then local n,o=findEntityAnchr()if n then o=#n;for p=1,o do toast('Applying god modes to '..p..'/'..o..' Entities...')cheat_godmode(h,n[p])end;toast('Selected operations done')n=nil else toast(f"ErrNotFound"..'. Try different entity anchor search method on settings, and disable memory optimization in config file.\nNothing worked? report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues')end end end;function M_matchmode()local h=gg.multiChoice({"Weapon Ammo","void mode + no time limit","Win CTS (client-side)","——","__back__"},nil,"Match mode modifier\nPS: Make sure you're on the main menu, not on match (this doesnt work while in match)")if h then if h[5]then return M()end;gg.setRanges(gg.REGION_ANONYMOUS|gg.REGION_OTHER)local q=handleMemOzt('MatchOffset',1217115234,nil,gg.TYPE_DWORD,1,i.memZones.Common_RegionOther)if q[1]then e={}q=q[1].address;q={q+0xB4,q+0x1C4,q}if h[1]then table.append(e,{{a=0x58,value=3e4,flags=gg.TYPE_DWORD},{a=0x5C,value=3e4,flags=gg.TYPE_DWORD},{a=0x60,value=3e4,flags=gg.TYPE_DWORD},{a=0x64,value=3e4,flags=gg.TYPE_DWORD},{a=0x68,value=3e4,flags=gg.TYPE_DWORD},{a=0x6C,value=3e4,flags=gg.TYPE_DWORD},{a=0x70,value=3e4,flags=gg.TYPE_DWORD},{a=0x74,value=1e3,flags=gg.TYPE_DWORD}})end;if h[2]then table.append(e,{{a=0,value=9,flags=gg.TYPE_DWORD},{a=0x1C,value=6,flags=gg.TYPE_DWORD}})end;for p=1,#e do e[p].address=q[1]+e[p].a;e[p+#e]={address=q[2]+e[p].a,value=e[p].value,flags=e[p].flags}end;if h[3]then table.append(e,{{address=q[3]+0x10F4,value=0,freeze=true,flags=gg.TYPE_WORD},{address=q[3]+0x10F6,value=0,freeze=true,flags=gg.TYPE_WORD}})end;gg.setValues(e)gg.addListItems(e)gg.clearResults()toast('Selected operations done')else toast(f"ErrNotFound_Report")end end end;function M_godmode_bulk()local h=gg.choice({"1. Fix broken vehicle","2. Clear all player dupes (this will remove some duplicates, useful if you use ABJ4403 auto anchor method)"},nil,"God mode bulk, PS: some can be useful but some can harm other innocent players!")if h then if h==1 then searchType='blownUp'elseif h==2 then searchType='player'end;local n,o=findEntityAnchr_custom(searchType)if n then o=#n;toast('Preparing...')for p=1,o do if h==1 then table.append(e,{{address=n[p]-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [EntityBurning]: Antiburn"},{address=n[p]+0x8,flags=gg.TYPE_WORD,value=800,freeze=true,name="Pb2Chts [Health]"},{address=n[p]+0xDB,flags=gg.TYPE_BYTE,value=4,name="Pb2Chts [CtrlCode]"}})elseif h==2 then table.append(e,{{address=n[p]-0x4,flags=gg.TYPE_DWORD,value=99,name="Pb2Chts [EntityBurning]: Antiburn"},{address=n[p]+0x8,flags=gg.TYPE_WORD,value=-501,name="Pb2Chts [Health]"},{address=n[p]+0xDB,flags=gg.TYPE_BYTE,value=6,name="Pb2Chts [CtrlCode]"},{address=n[p]+0x158,flags=gg.TYPE_WORD,value=1,name="Pb2Chts [RespawnInterval]"}})end end;toast('Applied to '..o..' Entities!\nSelected operations done')gg.setValues(e)gg.addListItems(e)n=nil else toast(f"ErrNotFound"..'. Try different entity anchor search method on settings, and disable memory optimization in config file.\nNothing worked? report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues')end end end;function cheat_godmode(h,r)e={}if h[3]or h[1]then c.a={{a=0x1C,n='Shotgun'},{a=0x1E,n='Rocket'},{a=0x20,n='Flamethrower'},{a=0x22,n='Grenade'},{a=0x24,n='Minigun'},{a=0x26,n='Explosives'},{a=0x28,n='Turret'},{a=0x2A,n='Laser'}}for p=1,#c.a do c.a[p].address=r+c.a[p].a;c.a[p].name='Pb2Chts [Weapon]: '..c.a[p].n;c.a[p].flags=gg.TYPE_WORD;c.a[p].value=3e4;c.a[p].a=nil;c.a[p].n=nil end;gg.setValues(c.a)c.a=nil end;if h[4]or h[5]or h[1]then c.a={{address=r+0x84,flags=gg.TYPE_WORD,value=0,freeze=true,name="Pb2Chts [Rel0adTimer]"}}if h[5]then local s=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]"},{1},{"number"})if s and s[1]and s[1]~="0"then toast("Wait for it")c.a[1].value=s[1]gg.setValues({{address=r+0x18,flags=gg.TYPE_WORD,value=3,name="Pb2Chts [HoldWeapon]: Grenade"}})gg.setValues(c.a)gg.addListItems(c.a)sleep(999)end;c.a[1].value=-63 end;table.append(e,c.a)end;if h[6]or h[7]or h[8]or h[1]then c.isNoSteal=h[6]c.isImmortal=h[7]c.isDestroy=h[8]table.append(e,{{address=r+0x8,flags=gg.TYPE_WORD,freeze=true,value=c.isNoSteal and-501 or 800,name="Pb2Chts [Health]"},{address=r+0x158,flags=c.isDestroy and gg.TYPE_WORD or gg.TYPE_FLOAT,freeze=true,value=(c.isImmortal or c.isDestroy)and 1 or 0,name="Pb2Chts [RespawnInterval]"}})c.isNoSteal,c.isImmortal,c.isDestroy=nil,nil,nil end;if h[9]or h[1]then table.append(e,{{address=r+0x2C,flags=gg.TYPE_WORD,value=-1,freeze=true,name="Pb2Chts [C4PosX]"},{address=r+0x2E,flags=gg.TYPE_WORD,value=-1,freeze=true,name="Pb2Chts [C4PosY]"}})end;if h[10]then table.append(e,{{address=r+0x86,flags=gg.TYPE_WORD,value=300,freeze=true,name="Pb2Chts [SpeedSlide]"}})end;if h[11]then table.append(e,{{address=r-0x408,flags=gg.TYPE_WORD,value=1,freeze=true,name="Pb2Chts [Float]"}})end;if h[12]then table.append(e,{{address=r-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [Ragdoll]"},{address=r+0x128,flags=gg.TYPE_DWORD,value=0,freeze=true,freezeType=gg.FREEZE_IN_RANGE,freezeFrom=0,freezeTo=120,name="Pb2Chts [Ragdoll]"}})end;if h[13]or h[7]or h[1]then table.append(e,{{address=r-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [EntityBurn]: Antiburn"}})end;if h[14]then table.append(e,{{address=r-0x4,flags=gg.TYPE_DWORD,value=1,freeze=true,name="Pb2Chts [EntityBurn]: Burned"}})end;if h[15]then table.append(e,{{address=r-0x4,flags=gg.TYPE_DWORD,value=99,freeze=true,name="Pb2Chts [EntityBurn]: Fire"}})end;if h[16]or h[1]then table.append(e,{{address=r-0x60E,flags=gg.TYPE_WORD,value=0,freeze=true,name="Pb2Chts [Dr0wned]"}})end;if h[19]or h[1]then table.append(e,{{address=r-0x1AC,flags=gg.TYPE_WORD,value=1,freeze=true,name="Pb2Chts [Enable jet]"}})end;if h[20]or h[1]then table.append(e,{{address=r-0x210,flags=gg.TYPE_BYTE,value=3,freeze=true,name="Pb2Chts [CarAccelEngType]"},{address=r-0x208,flags=gg.TYPE_FLOAT,value=0,freeze=true,name="Pb2Chts [CarSpeed]"},{address=r-0x202,flags=gg.TYPE_WORD,value=31000,freeze=true,name="Pb2Chts [CarSpeed]"},{address=r+0x192,flags=gg.TYPE_WORD,value=1,freeze=true,name="Pb2Chts [VehicleLight]"}})end;if h[21]or h[1]then table.append(e,{{address=r-0x10,flags=gg.TYPE_WORD,value=1,name="Pb2Chts [TransparentVehicle]"}})end;if h[22]or h[1]then table.append(e,{{address=r+0xDD,flags=gg.TYPE_BYTE,value=-1,freeze=true,name="Pb2Chts [Noise]: Disable"}})end;if h[24]or h[1]then table.append(e,{{address=r-0x11,flags=gg.TYPE_BYTE,value=127,name="Pb2Chts [Wanted level]"}})end;if h[25]then table.append(e,{{address=r+0x30,flags=gg.TYPE_DWORD,value=9e8,name="Pb2Chts [WinRampage] (remove after won match)"}})end;if h[26]then table.append(e,{{address=r+0xDB,flags=gg.TYPE_BYTE,value=1,freeze=true,name="Pb2Chts [CtrlMode]"}})end;if h[27]then table.append(e,{{address=r-0x72A,flags=gg.TYPE_WORD,value=16255,freeze=true,name="Pb2Chts [WheelSuspensionY]"}})end;if h[23]then local t=gg.prompt({"Set your custom wheel height [0;200]"},{190},{"number"})if t then t=t[1]table.append(e,{{address=r-0x3EB,flags=gg.TYPE_FLOAT,value=t,name="Pb2Chts [CarWheelFLZ]"},{address=r-0x3DF,flags=gg.TYPE_FLOAT,value=t,name="Pb2Chts [CarWheelFRZ]"},{address=r-0x3D3,flags=gg.TYPE_FLOAT,value=t,name="Pb2Chts [CarWheelBLZ]"},{address=r-0x3C7,flags=gg.TYPE_FLOAT,value=t,name="Pb2Chts [CarWheelBRZ]"},{address=r-0x3BB,flags=gg.TYPE_FLOAT,value=t,name="Pb2Chts [CarWheelMLZ]"},{address=r-0x3AF,flags=gg.TYPE_FLOAT,value=t,name="Pb2Chts [CarWheelMRZ]"}})end end;if h[17]then toast("[ClonePlayer] Change the weapon you want before you can\'t change it anymore")c[1]={{address=r+0xDB,flags=gg.TYPE_BYTE,value=7,freeze=true,name="Pb2Chts [ControlMode]"}}sleep(3e3)gg.setValues(c[1])c[1][1].value=2;table.append(e,c[1])sleep(1e3)end;if h[18]then local h=({0,1,2,3,4,5,6,7,8,16,48,50,59,65,-1})[gg.choice({"1. Black (0)","2. Blue (1)","3. Green (2)","4. Brown (3)","5. Red (4)","6. Gray (5)","7. Yellow (6)","8. White (7)","9. Bold red (8)","10. Exteme black (16)","11. Rare green (48)","12. Dark green (50)","13. Dark red (59)","14. Tomato red (65)","15. Rainbow"},nil,"Select the color you want")]if h then if h>=0 then table.append(e,{{address=r+0x94,flags=gg.TYPE_BYTE,freeze=true,value=h,name="Pb2Chts [Vehicle color]"}})elseif h==-1 then toast("Click GG icon to stop. you can't access GG while rainbow animation is playing")c.rnbwCurClr=1;c.rainbowCar={{address=r+0x94,flags=gg.TYPE_BYTE,name="Pb2Chts [Vehicle color]"}}gg.setValues(e)gg.addListItems(e)gg.clearResults()gg.setVisible(false)while not gg.isVisible()do if c.rnbwCurClr>8 then c.rnbwCurClr=1 end;c.rainbowCar[1].value=c.rnbwCurClr;gg.setValues(c.rainbowCar)sleep(77)c.rnbwCurClr=c.rnbwCurClr+1 end;gg.setVisible(false)end end end;gg.setValues(e)gg.addListItems(e)end;function cheat_pistolknockback()local h=gg.choice({"Grapple gun/Pull (-20)","Knockback/Push (20)","Default (0.25)","Off (0.00001)","Custom","——","Change current knockback value","Clear memory buffer","__back__"},nil,"Pistol/Shotgun knockback modifier\nCurrent: "..g.PstlSgKnckbck.."\nHint: recommended value is -20 to 20 if you use pistol")if h then if h==9 then return M()elseif h==1 then PISTOL_KNOCKBACK_VALUE=-20 elseif h==2 then PISTOL_KNOCKBACK_VALUE=20 elseif h==3 then PISTOL_KNOCKBACK_VALUE=0.25 elseif h==4 then PISTOL_KNOCKBACK_VALUE=1e-5 elseif h==5 then local h=gg.prompt({'Knockback value:'})if h and h[1]then PISTOL_KNOCKBACK_VALUE=h[1]else return cheat_pistolknockback()end elseif h==7 then local h=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'},{g.PstlSgKnckbck},{'number'})if h and h[1]then g.PstlSgKnckbck=h[1]d.PistolKnockback=nil end;return cheat_pistolknockback()elseif h==8 then d.PistolKnockback=nil;return cheat_pistolknockback()end;if PISTOL_KNOCKBACK_VALUE then gg.setRanges(gg.REGION_C_ALLOC)if not d.PistolKnockback then gg.searchNumber(1067869798,gg.TYPE_DWORD)c[1]=gg.getResults(5e3)for p=1,#c[1]do c[1][p].address=c[1][p].address-0xC;c[1][p].flags=gg.TYPE_FLOAT end;gg.loadResults(c[1])gg.refineNumber(g.PstlSgKnckbck)end;handleMemOzt("PistolKnockback",g.PstlSgKnckbck,nil,gg.TYPE_FLOAT,2)if gg.getResultCount()==0 then d.PistolKnockback=nil;toast(f"ErrNotFound"..". if you changed the knockback value and reopened the script, restore the actual current number using 'Change current knockback value' menu")else for p=1,#d.PistolKnockback do d.PistolKnockback[p].value=PISTOL_KNOCKBACK_VALUE end;g.PstlSgKnckbck=PISTOL_KNOCKBACK_VALUE;toast("Pistol/SG Knockback "..g.PstlSgKnckbck)gg.setValues(d.PistolKnockback)end end;PISTOL_KNOCKBACK_VALUE=nil end end;function cheat_wallhack()local h,c=gg.choice({"GKTV, ON","GKTV, Entity only","GKTV, OFF","AGH, ON","AGH, OFF","——","Help","Clear memory buffer","__back__"},nil,f"Cheat_WallHack"..". "..f"Cheat_WallHack_Notice"),nil;if h==9 then M()elseif h==1 then c={1,1e-3,-1,"ON"}elseif h==2 then c={1,1e-3,nil,"Entity only"}elseif h==3 then c={1,-1,1e-3,"OFF"}elseif h==4 then c={2,1140457472,-1,"ON"}elseif h==5 then c={2,-1,1140457472,"OFF"}elseif h==7 then alert("Wall hack allows you to pass through walls.\nGKTV (known as Pumpkin Hacker) Wallhack is a recommended, it's Xa-based, fast to turn on/off.\nYou can optionally choose to only wallhack entities, makes entities can't push you.\n\nAGH (AlphaGGHacker) method has better physics but is Ca-based,\nneeds to be applied every match and took longer than GKTV.\n\nXa = GG CodeApp memory region marked with purple color, small and fast.\nCa = GG C Alloc memory region marked with yellow color, quite big, takes couple seconds.")elseif h==8 then h,d.wallhack_agh,d.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 d.wallhack_gktv then toast('Previous result found, using previous result.')else toast('No buffer found, creating new buffer.')gg.searchNumber("3472W;5W;"..c[2].."F;-17789W::15")gg.refineNumber(c[2],gg.TYPE_FLOAT)c[6]=gg.getResults(1)gg.clearResults()gg.searchNumber("2W;16256W;"..c[2].."F;24W::9")gg.refineNumber(c[2],gg.TYPE_FLOAT)table.insert(c[6],gg.getResults(1)[1])d.wallhack_gktv=c[6]end;gg.loadResults(d.wallhack_gktv)if#d.wallhack_gktv==0 then toast(f"ErrNotFound_Report")else if h~=2 and#d.wallhack_gktv==1 then log("Only found 1 instead of 2 results.\n Wallhack might partially or not working\n try to play on build 121.")end;if h==2 then if d.wallhack_gktv[1]then d.wallhack_gktv[1].value=1e-3 end;if d.wallhack_gktv[2]then d.wallhack_gktv[2].value=-1 end else for p=1,#d.wallhack_gktv do d.wallhack_gktv[p].value=c[3]end end;gg.setValues(d.wallhack_gktv)toast("Wall Hack "..c[4])end else gg.setRanges(gg.REGION_C_ALLOC)if not d.wallhack_agh then gg.searchNumber(576,gg.TYPE_FLOAT)e=gg.getResults(1e3)for p=1,#e do e[p].address=e[p].address+0x8 end;gg.loadResults(e)gg.refineNumber(576)e=gg.getResults(1e3)for p=1,#e do e[p].address=e[p].address-0x4;e[p].flags=gg.TYPE_DWORD end;gg.loadResults(e)gg.refineNumber(c[2])e=nil end;handleMemOzt("wallhack_agh",c[2],nil,gg.TYPE_DWORD,1e3)if gg.getResultCount()==0 then toast(f"ErrNotFound_Report")else for p=1,#d.wallhack_agh do d.wallhack_agh[p].value=c[3]end;gg.setValues(d.wallhack_agh)toast("Wall Hack "..c[4])end end end end;function cheat_bigbody()local h=gg.choice({"ON","OFF","Use custom value","__back__"},nil,"Big body\nPS: client-side only")if h then local e;if h==4 then M()elseif h==1 then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("bigbody",4.30000019073,nil,gg.TYPE_FLOAT,22)if gg.getResultCount()==0 then toast(f"ErrNotFound_Report")else gg.editAll(g.BigBody+0.00000019073,gg.TYPE_FLOAT)toast("Big Body ON")end elseif h==2 then gg.setRanges(gg.REGION_CODE_APP)handleMemOzt("bigbody",g.BigBody+0.00000019073,nil,gg.TYPE_FLOAT,22)if gg.getResultCount()==0 then toast(f"ErrNotFound_Report")else gg.editAll(4.30000019073,gg.TYPE_FLOAT)toast("Big body OFF")end elseif h==3 then h=gg.prompt({'Put your custom value (Game default: 4.3,Cheatus default: 5.9, offset: .00000019073)'},{g.BigBody},{'number'})if h and h[1]~=""then g.BigBody=h[1]end;h=nil;cheat_bigbody()end;e=nil end end;function cheat_strongvehicle()local h=gg.choice({"Strong (30000)","Default (125)","Fragile (1)","Burnt (-1)","Custom","——","Clear memory buffer","__back__"},nil,"Vehicle default health modifier")if h then if h==8 then M()elseif h==1 then CAR_HEALTH_VALUE=3e4 elseif h==2 then CAR_HEALTH_VALUE=125 elseif h==3 then CAR_HEALTH_VALUE=1 elseif h==4 then CAR_HEALTH_VALUE=-1 elseif h==5 then local h=gg.prompt({'Input your custom Vehicle default health value'})if h and h[1]then CAR_HEALTH_VALUE=h[1]else return cheat_strongvehicle()end elseif h==7 then h,d.CarHealth=nil,nil;return cheat_strongvehicle()end;if CAR_HEALTH_VALUE then gg.setRanges(gg.REGION_CODE_APP)if not d.CarHealth then gg.searchNumber(1,gg.TYPE_FLOAT)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0x4;c[p].flags=gg.TYPE_DWORD end;gg.loadResults(c)gg.refineNumber(4)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0x10 end;gg.loadResults(c)d.CarHealth=gg.getResults(99)end;if not d.CarHealth[1]then d.CarHealth=nil;toast(f"ErrNotFound")else for p=1,#d.CarHealth do d.CarHealth[p].flags=gg.TYPE_WORD;d.CarHealth[p].value=CAR_HEALTH_VALUE end;g.CrDfltHlth=CAR_HEALTH_VALUE;gg.setValues(d.CarHealth)toast("Vehicles default health "..g.CrDfltHlth)end end;CAR_HEALTH_VALUE=nil end end;function cheat_noblastdamage()local h=gg.choice({"None (0)","Default (300)","Far (3.000.000, dead with almost any explosed explosion)","——","Clear memory buffer","__back__"},nil,"Blast damage intensity modifier")if h then if h==6 then M()elseif h==1 then DAMAGE_INTENSITY_VALUE=0 elseif h==2 then DAMAGE_INTENSITY_VALUE=300 elseif h==3 then DAMAGE_INTENSITY_VALUE=3e6 elseif h==5 then h,d.NoBlastDamage=nil,nil;cheat_noblastdamage()end;if DAMAGE_INTENSITY_VALUE then gg.setRanges(gg.REGION_CODE_APP)if not d.NoBlastDamage then gg.searchNumber(2e9,gg.TYPE_FLOAT)c=gg.getResults(1)c[1].address=c[1].address-0x4;gg.loadResults(c)d.NoBlastDamage=gg.getResults(1)end;if not d.NoBlastDamage[1]then d.NoBlastDamage=nil;toast(f"ErrNotFound")else for p=1,#d.NoBlastDamage do d.NoBlastDamage[p].value=DAMAGE_INTENSITY_VALUE end;g.DmgIntnsty=DAMAGE_INTENSITY_VALUE;toast("Blast damage intensity "..g.DmgIntnsty)gg.setValues(d.NoBlastDamage)end end;DAMAGE_INTENSITY_VALUE=nil end end;function cheat_floodspawn()h=gg.choice({"Activate","Activate (Clear buffer)","Activate v2 (edit-all values)","Clear memory buffer","Back"},nil,"Floodspawn")if h then if h==5 then M()end;if h==2 or h==4 then d.floodspawn=nil;if h==4 then cheat_floodspawn()end end;if h==1 or h==2 or h==3 then gg.setRanges(i.memRange.general)if h==1 or h==2 then toast("Please wait... after the search is done, you should get automatically respawned")c[1]=handleMemOzt("matchBackendAnchor",359697,nil,gg.TYPE_DWORD,1,i.memZones.Common_RegionOther)c[1]=c[1][1]and c[1][1].address or nil;gg.clearResults()e=handleMemOzt("floodspawn",52428800,nil,gg.TYPE_DWORD,5e3,i.memZones.Common_RegionOther)else gg.clearResults()gg.searchNumber(52428800,gg.TYPE_DWORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))e=gg.getResults(5e3)end;if#e>1 and(h==1 or h==2)then if c[1]then gg.setValues({{address=c[1]-0x41,value=1,flags=gg.TYPE_BYTE}})c[2]="Trying to find your entity ID... If you dont get respawned, respawn from pause menu"else c[2]="Unable to automatically respawn, you need to respawn from pause menu"end;searchWatchdog(c[2],"52428801~52429000","floodspawn")msg=nil end;if gg.getResultCount()>0 then h=gg.prompt({"RC Car Spam","Increase score (client-side, wins Brawl&Kingpin)","Swag Delivery no timer","Lock entity ID (prevents player takeover)","Disable AI & respawn","Win Race/Sprint/Knockout","Respawn duration (in seconds)\n0:No duration\n-1:Floodspawn off\n\nWARNING:\n- DONT USE THIS TO HARM OTHER PLAYERS!\n- THIS CHEAT IS TECHINCALLY POWERFUL, BECAUSE IT INCREASE HOST LATENCY AND LAG PLAYERS. ONLY USE IT OFFLINE!!\n- if you use this for race, consider lowering your freeze range to ~40.000 if after reaching checkpoint wont move to next checkpoint. [-1;20]"},{true,false,false,false,false,true,-1},{"checkbox","checkbox","checkbox","checkbox","checkbox","checkbox","number"})if h then local q={}for p=1,#e do e[p].value=52428801;e[p].freeze=true;e[p].name="Pb2Chts [RespawnTimer]"if h[2]then table.append(q,{{address=e[p].address-0x14,flags=gg.TYPE_DWORD,value=9e6,freeze=true,name="Pb2Chts [MatchScore]"},{address=e[p].address-0x8,flags=gg.TYPE_DWORD,value=9e6,freeze=true,name="Pb2Chts [MatchKilled]"},{address=e[p].address-0x4,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [MatchDied]"}})end;if h[3]then table.append(q,{{address=e[p].address+0xE,flags=gg.TYPE_WORD,value=0,freeze=true,name="Pb2Chts [SwagDeliverTim0r]"}})end;if h[5]then table.append(q,{{address=e[p].address-0x20,flags=gg.TYPE_BYTE,value=0,name="Pb2Chts [EnableAICtrl+Respawn]"}})end;if h[6]then table.append(q,{{address=e[p].address-0x34,flags=gg.TYPE_BYTE,value=11,freeze=true,name="Pb2Chts [RaceCurrentLap]"}})end end;if h[1]then table.append(q,{{address=e[1].address-0xE,flags=gg.TYPE_WORD,value=-1,freeze=true,name="Pb2Chts [RCCarSpam]"}})end;if h[4]and h[7]=="-1"then gg.loadResults({{address=e[1].address-0x10,flags=gg.TYPE_WORD}})table.append(q,{{address=e[1].address-0x10,flags=gg.TYPE_WORD,value=gg.getResults(1)[1].value,freeze=true,name="Pb2Chts [EntityCamID]"}})gg.clearResults()end;h=h[7]if q[1]then gg.setValues(q)gg.addListItems(q)end;if h~="-1"then gg.setValues(e)gg.addListItems(e)end;if h=="0"then toast("Flood Respawn ON\nRemember to turn off again by using \"Clear list items\" button in settings")elseif h~="-1"then toast("Flood Respawn ON for "..h.." seconds, click the gg icon to disable")for p=1,h do if gg.isVisible()then gg.setVisible(false)break end;sleep(1e3)end;gg.removeListItems(e)toast("Flood Respawn OFF")end end else toast(f"ErrNotFound_Report")end end end;h=nil end;function cheat_c4autorigg()anchors=findEntityAnchr_custom('blowables')if anchors then e={}for p=1,#anchors do table.append(e,{{address=anchors[p]+0x8,flags=gg.TYPE_WORD,value=0}})end;gg.setValues(e)gg.toast(#anchors.." C4s rigged!")else gg.toast("Can't find any C4s...")end end;function cheat_runspeedmod()h=gg.choice({[15120]="120 (Default)",[15400]="400",[33001]="——",[33002]="Clear memory buffer",[33003]="Back"},nil,"Running speed modifier")if h==33003 then M()elseif h==33002 then h,d.runSpeed=nil,nil;cheat_runspeedmod()elseif h~=33001 then gg.setRanges(gg.REGION_CODE_APP)if not d.runSpeed then gg.searchNumber(985158124,gg.TYPE_DWORD)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0x4;c[p].flags=gg.TYPE_FLOAT end;gg.loadResults(c)gg.refineNumber(24000)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address+0xA;c[p].flags=gg.TYPE_WORD end;gg.loadResults(c)gg.refineNumber(17008)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0xC end;gg.loadResults(c)d.runSpeed=gg.getResults(1)end;if d.runSpeed[1]then for p=1,#d.runSpeed do d.runSpeed[p].flags=gg.TYPE_WORD;d.runSpeed[p].value=h end;gg.setValues(d.runSpeed)gg.toast("Running speed "..h)else gg.toast(f"ErrNotFound")end end end;function cheat_mtcScrnfx()gg.setRanges(i.memRange.general)local h=gg.prompt({'Modify XP to (max 999999)','Modify coin to (max 30000, temporary, not recommend if you have infinite coin coz it might get reset)','Freeze XP','Freeze Coin','Skip match intro','Override current controlled player [-1;16]','Win CTS match (0:disable,-1/1 one of the teams) [-1;1]','Increase 2P Win count','Disable (some) screen effects (Shake,Red screen,Grain)','Disable timers and increase kills/score','Fix blank screen when slammed into void'},{999999,-1,true,false,false,-1,0,false,false,false,false},{'number','number','checkbox','checkbox','checkbox','number','number','checkbox','checkbox','checkbox','checkbox'})if h then c[1]=handleMemOzt("xpAnchor",1014817001,nil,gg.TYPE_DWORD,1)[1]c[2]=handleMemOzt("matchBackendAnchor",359697,nil,gg.TYPE_DWORD,1,i.memZones.Common_RegionOther)[1]if c[1]and c[2]then e={}c[1]=c[1].address;c[2]=c[2].address;if h[1]and h[1]~=""and h[1]~="-1"then table.append(e,{{address=c[1]-0x804,flags=gg.TYPE_DWORD,value=h[1],freeze=h[3],name="Pb2Chts [CurrentXP]"}})end;if h[2]and h[2]~=""and h[2]~="-1"then if i.memRange.general==gg.REGION_C_BSS then toast("[!] There is a known bug where the game will crash for C-BSS Users, if the game does crash, do not issue any bug report, we're working on it!")gg.sleep(3e3)end;table.append(e,{{address=c[1]-0x608,flags=gg.TYPE_DWORD,value=h[2],freeze=h[4],name="Pb2Chts [CurrentCoin]"}})end;if h[5]then table.append(e,{{address=c[2]-0xC,flags=gg.TYPE_WORD,value=0,freeze=true,name="Pb2Chts [SkipSlowAnimation]"}})end;if h[6]and h[6]~="-1"then table.append(e,{{address=c[2]+0x18,flags=gg.TYPE_WORD,value=h[6],name="Pb2Chts [OverrideControlledPlayer]"}})end;if h[7]then if h[7]=="-1"then table.append(e,{{address=c[2]+0x140,flags=gg.TYPE_WORD,value=999,freeze=true,name="Pb2Chts [WinCTS]"}})elseif h[7]=="1"then table.append(e,{{address=c[2]+0x13C,flags=gg.TYPE_WORD,value=999,freeze=true,name="Pb2Chts [WinCTS]"}})end end;if h[8]then table.append(e,{{address=c[2]-0x18,flags=gg.TYPE_WORD,value=99,freeze=true,name="Pb2Chts [2PWinCount]"}})end;if h[9]then table.append(e,{{address=c[2]+0x54,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [Camshake]: Disable"},{address=c[2]+0x88,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [MatchFinishGrainFX]: Disable"},{address=c[2]+0xA8,flags=gg.TYPE_DWORD,value=0,freeze=true,name="Pb2Chts [Redfilter]: Disable"}})end;if h[10]then table.append(e,{{address=c[2]-0x8,flags=gg.TYPE_DWORD,value=9e7,freeze=true,name="Pb2Chts [MatchDistance]"},{address=c[2]+0x38,flags=gg.TYPE_DWORD,value=-1,freeze=true,name="Pb2Chts [MatchTimeout]"},{address=c[2]+0x3C,flags=gg.TYPE_FLOAT,value=2.8250177e-43,freeze=true,name="Pb2Chts [MatchTimer]"}})end;if h[11]then table.append(e,{{address=c[2]+0xF3,flags=gg.TYPE_BYTE,value=0,freeze=true,name="Pb2Chts [isScrnBlank]: No"}})end;gg.setValues(e)gg.addListItems(e)toast('Selected operations done')else toast(f"ErrNotFound")end end end;function cheat_changeplayername()local h=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))','Method (TODO):\n1:Change all (slow, but changes name in match too)\n2:Fast (but name wont be changed in match)\n3:2P Match (Changes your name on multiplayer match) [1;3]'},{g.PlayerCurrentName,i.PlayerCustomName,1},{"text","text","number"})if h and h[1]and h[1]~=":"then h[3]=tonumber(h[3])if h[3]==1 then gg.setRanges(gg.REGION_C_ALLOC|i.memRange.general)gg.searchNumber(h[1],gg.TYPE_BYTE)elseif h[3]==2 then gg.setRanges(i.memRange.general)gg.searchNumber(h[1],gg.TYPE_BYTE,nil,nil,table.unpack(i.memZones.Common_RegionOther))end;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.getResults(gg.getResultCount())gg.editAll(h[2],gg.TYPE_BYTE)g.PlayerCurrentName=h[2]toast(f('"%s" changed to "%s"\nWarn: this is still in testing, it might only applied to your client and not others',h[1],h[2]))end end end;function cheat_changeplayernamecolor()gg.setRanges(gg.REGION_C_ALLOC|gg.REGION_ANONYMOUS|gg.REGION_OTHER)local h,u,v=gg.choice({"Invisible name (all values 1 byte, Experimental)","Red (2)","Blue (3)","White (4)","Yellow (5,9)","Green (6h)","Coin (7h)","Player (8h)","Corrupted (10h)","——","Remove all color/icon","__back__"},nil,"Select the color you want (Experimental)"),gg.prompt({'Put your current player name (case-sensitive)'},{g.PlayerCurrentName},{'text'})if h then if h==1 then v=1 elseif h==2 then v=2 elseif h==3 then v=3 elseif h==4 then v=4 elseif h==5 then v=5 elseif h==6 then v=6 elseif h==7 then v=7 elseif h==8 then v=8 elseif h==9 then v=10 elseif h==11 then v=0 elseif h==12 then M()end;if v then gg.searchNumber(u[1],gg.TYPE_BYTE)local e,w=gg.getResults(5e3),0;if gg.getResultCount()==0 then toast('Can\'t find the player name, this cheat is still in experimentation phase')else if v==0 then for p=1,#e do if e[p].value>=0 and e[p].value<11 then e[p]=nil;w=w+1 else e[p].address=e[p].address-w end end else for p=1,#e do e[p].address=e[p].address+1 end;table.insert(e,1,{address=e[1].address-1,freeze=false,flags=gg.TYPE_BYTE,value=v})end;g.PlayerCurrentName=table.concat(e)gg.setValues(e)toast('Color set to '..v..'. PS: still in experimental phase, might not work')end end;v=nil end end;function cheat_walkwonkyness()local h=gg.choice({"Default (0.004)","ON (1)","OFF (0)","__back__"},nil,"Walk Wonkyness (fancy-cheat)")gg.setRanges(gg.REGION_CODE_APP)if h==3 then M()elseif h==1 then handleMemOzt("walkwonkyness","0.004~1;0.00999999978::5",nil,gg.TYPE_FLOAT,1)gg.editAll(0.004,gg.TYPE_FLOAT)toast("Walk Wonkyness Default")elseif h==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 h==3 then handleMemOzt("walkwonkyness","1.004;0.00999999978::5",nil,gg.TYPE_FLOAT,1)gg.editAll(0,gg.TYPE_FLOAT)toast("Walk Wonkyness OFF")end end;function cheat_coloredtree()local h=gg.choice({"ON","OFF","__back__"},nil,"Colored trees\nThis will change some shader stuff (actually idk wut this does lol) that affects trees")if h==3 then M()elseif h then if h==1 then c={.04,-999,"ON"}elseif h==2 then c={-999,.04,"OFF"}end;if c then gg.setRanges(gg.REGION_CODE_APP)local e=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(f"ErrNotFound_Report")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("Colored trees "..c[3])end end end end;function cheat_bigflamethroweritem()local h=gg.choice({"ON","OFF","__back__"},nil,"Big flamethrower (Item)\nPS: this will not make the flame burst bigger")if h==3 then M()elseif h then if h==1 then c={0.9,5.1403,"ON"}elseif h==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(f"ErrNotFound")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("Big flamethrower "..c[3])end end end end;function cheat_autoshootrocket()local h,x,e=gg.choice({"ON","ON (Only if holding rocket, better to use with Rel0ad)","OFF","__back__"},nil,"Autoshoot rocket. PS:\n- This will make everyone shoot rocket no matter what weapon they hold\n- To use this, use the machine gun, or use Rel0ad (will be quirky if using this)")if h==4 then M()elseif h then if h==1 then c={0,0,"ON"}elseif h==2 then c={754,0,"ON"}elseif h==3 then c={754,752,"OFF"}end;if c then gg.setRanges(gg.REGION_CODE_APP)gg.searchNumber(5000,gg.TYPE_FLOAT)e=gg.getResults(1)if gg.getResultCount()==0 then toast(f"ErrNotFound")else e=e[1].address;x={{address=e+0x80,flags=gg.TYPE_WORD,value=c[1]},{address=e+0x88,flags=gg.TYPE_WORD,value=c[2]}}gg.setValues(x)gg.addListItems(x)toast("Autoshoot rocket "..c[3])end;x=nil end end end;function cheat_shadowfx()local h=gg.choice({"OFF","ON","__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 h==3 then M()elseif h then if h==1 then c={1e-4,-1.0012,"Disabled"}elseif h==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(f"ErrNotFound_Report")else gg.editAll(c[2],gg.TYPE_FLOAT)toast("Shadow "..c[3])end end end end;function cheat_plyxray()local h,c=gg.choice({"ON","OFF","__back__"},nil,"Player X-Ray\nPS: Doesn't work on latest version"),nil;if h==3 then M()elseif h==1 then c={0.08,436,"ON"}elseif h==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(f"ErrNotFound")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 p=1,#c do gg.searchNumber(":"..c[p])gg.getResults(99)gg.editAll(0,gg.TYPE_BYTE)gg.clearResults()end;toast("Gameplay texts cleared! to restore, restart the game\nPS: This might not work, idk why though..")end;function cheat_reflectiongraphics()local h=gg.choice({"ON","OFF","__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 h==3 then M()elseif h==1 then c={49,1,"ON"}elseif h==2 then c={1,49,"OFF"}end;if h and c[3]then gg.setRanges(gg.REGION_OTHER)if not d.RfTgraphics then gg.searchNumber(144,gg.TYPE_DWORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))c[4]=gg.getResults(5e3)for p=1,#c[4]do c[4][p].address=c[4][p].address+0x8 end;gg.loadResults(c[4])gg.refineNumber(50)c[4]=gg.getResults(5e3)for p=1,#c[4]do c[4][p].address=c[4][p].address-0x4 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(f"ErrNotFound_Report")else d.RfTgraphics[1].value=c[2]toast("Reflection Graphics "..c[3])gg.setValues(d.RfTgraphics)end end;e=nil end;function cheat_explodepow()local h=gg.choice({"Modify Explosion power","Clear memory buffer","__back__"},nil,"Explosion power modifier\nCurrent: "..g.XplodPow.."\n")if h then if h==3 then M()elseif h==1 then local h=gg.prompt({'Put your explosion power. Lower is more powerful\nSet to -1 to disable explosion\n PS:only applies to you'},{g.XplodPow},{'number'})if h and h[1]then EXPLOSION_POWER=h[1]else cheat_explodepow()end elseif h==2 then d.explodePower=nil;cheat_explodepow()end;if EXPLOSION_POWER then gg.setRanges(gg.REGION_CODE_APP)if not d.explodePower then gg.searchNumber(1051260355,gg.TYPE_DWORD)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0xC end;gg.loadResults(c)gg.refineNumber(990904320)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address+0x4;c[p].flags=gg.TYPE_FLOAT end;gg.loadResults(c)d.explodePower=gg.getResults(1)end;if not d.explodePower[1]then d.explodePower=nil;toast(f"ErrNotFound")else d.explodePower[1].value,g.XplodPow=EXPLOSION_POWER,EXPLOSION_POWER;toast("Explosion power modified to "..EXPLOSION_POWER)gg.setValues(d.explodePower)end end;EXPLOSION_POWER=nil end end;function cheat_explodedir()local h=gg.choice({"Default (50000)","OFF (0)","Attractive/magnet (-50000)","Custom","——","Clear memory buffer","__back__"},nil,"Explode direction")if h==8 then M()elseif h==1 then XPLODIR_VAL=5e4 elseif h==2 then XPLODIR_VAL=0 elseif h==3 then XPLODIR_VAL=-5e4 elseif h==4 then local h=gg.prompt({'Input your custom damage intensity'})if h and h[1]then XPLODIR_VAL=h[1]else cheat_explodedir()end elseif h==6 then h,d.explodeDir=nil,nil;cheat_explodedir()end;if XPLODIR_VAL then gg.setRanges(gg.REGION_CODE_APP)if not d.explodeDir then gg.searchNumber(1051260355,gg.TYPE_DWORD)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0xC end;gg.loadResults(c)gg.refineNumber(990904320)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address+0x8;c[p].flags=gg.TYPE_FLOAT end;gg.loadResults(c)d.explodeDir=gg.getResults(1)end;if not d.explodeDir[1]then d.explodeDir=nil;toast(f"ErrNotFound")else for p=1,#d.explodeDir do d.explodeDir[p].value=XPLODIR_VAL end;g.XplodDir=XPLODIR_VAL;toast("Explosion direction is set to "..(g.XplodDir>0 and"default"or g.XplodDir<0 and"magnet"or g.XplodDir==0 and"none"))gg.setValues(d.explodeDir)end end;XPLODIR_VAL=nil end;function cheat_prtclintrvl()local h=gg.choice({"No particle (0ms, increases FPS)","Faster (9ms)","Fast (20ms)","Default (120ms)","Slow (2s)","Custom","——","Clear memory buffer","__back__"},nil,"Particle interval modifier\nCurrent: "..g.PrtclAnmtnIntrvl)if h==9 then M()elseif h==1 then PARTICLE_INT=0 elseif h==2 then PARTICLE_INT=9 elseif h==3 then PARTICLE_INT=20 elseif h==4 then PARTICLE_INT=120 elseif h==5 then PARTICLE_INT=2e3 elseif h==6 then local h=gg.prompt({'Input your custom interval value (in miliseconds)'})if h and h[1]then PARTICLE_INT=h[1]else cheat_prtclintrvl()end elseif h==8 then d.PrtclAnmtnIntrvl=nil;cheat_prtclintrvl()end;if PARTICLE_INT then gg.setRanges(gg.REGION_CODE_APP)if not d.PrtclAnmtnIntrvl then gg.searchNumber(-5377,gg.TYPE_WORD)c=gg.getResults(9e3)for p=1,#c do c[p].address=c[p].address+0x6;c[p].flags=gg.TYPE_FLOAT end;gg.loadResults(c)gg.refineNumber(4.3)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0x4 end;gg.loadResults(c)d.PrtclAnmtnIntrvl=gg.getResults(1)end;if not d.PrtclAnmtnIntrvl[1]then d.PrtclAnmtnIntrvl=nil;toast(f"ErrNotFound")else for p=1,#d.PrtclAnmtnIntrvl do d.PrtclAnmtnIntrvl[p].value=PARTICLE_INT end;g.PrtclAnmtnIntrvl=PARTICLE_INT;toast("Particle interval "..g.PrtclAnmtnIntrvl.."ms")gg.setValues(d.PrtclAnmtnIntrvl)end;PARTICLE_INT=nil end end;function cheat_cardrift()local h=gg.choice({"Modify drifting speed","Clear memory buffer","__back__"},nil,"Drifting speed modifier\nCurrent: "..g.DrftSpd.."\n")if h==3 then M()elseif h==1 then local h=gg.prompt({'How fast you want the drifting rotation? Higher value is more powerful\nDefault:1 (1.3) [1;20]'},{g.DrftSpd},{'number'})if h and h[1]then DRIFT_SPEED=h[1]..".3"else cheat_cardrift()end elseif h==2 then d.DrftSpd=nil;cheat_cardrift()end;if DRIFT_SPEED then gg.setRanges(gg.REGION_CODE_APP)if not d.DrftSpd then gg.searchNumber(-712,gg.TYPE_WORD)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address-0x8;c[p].flags=gg.TYPE_FLOAT end;gg.loadResults(c)gg.refineNumber(120)c=gg.getResults(99)for p=1,#c do c[p].address=c[p].address+0x4 end;gg.loadResults(c)d.DrftSpd=gg.getResults(1)end;if not d.DrftSpd[1]then d.DrftSpd=nil;toast(f"ErrNotFound_Report")else d.DrftSpd[1].value,g.DrftSpd=DRIFT_SPEED,DRIFT_SPEED;gg.setValues(d.DrftSpd)toast("Car drifting roration modified to "..g.DrftSpd)end end;DRIFT_SPEED=nil end;function show_about()local h=gg.choice({"__about__",f"Disclaimmer",f"License",f"Credits","__back__"},nil,f"Title_Version")if h==1 then alert(f"About_Text")show_about()elseif h==2 then alert(f"Disclaimmer_Text")show_about()elseif h==3 then alert(f"License_Text")show_about()elseif h==4 then alert(f"Credits_Text")show_about()elseif h==5 then M()end end;function table.tostring(e,y)local x,z='{\n'y=y or 0;for A,B in pairs(e)do x=x..('\t'):rep(y+1)z=type(B)if type(A)=='string'then x=x..A..' = 'end;if z=='table'then x=x..table.tostring(B,y+1)elseif z=='number'and#tostring(B)>7 then x=x..'0x'..("%x"):format(B):gsub("%l",string.upper)elseif z=='boolean'or z=='number'then x=x..tostring(B)else x=x..'"'..B..'"'end;x=x..',\n'end;return x..('\t'):rep(y)..'}'end;function table.merge(...)local x={}for C,e in ipairs{...}do for A,B in pairs(e)do x[A]=type(x[A])=="table"and table.merge(x[A],B)or B end end;return x end;function table.copy(e)local D={}for A,B in pairs(e)do D[A]=type(B)=="table"and table.copy(B)or B end;return D end;function table.append(E,D)for p=1,#D do E[#E+1]=D[p]end end;function searchWatchdog(msg,F,G)local H=gg.getResults(100)if#H<2 then return H elseif msg then toast(msg.."\nClick GG Icon to abort the search")end;repeat gg.loadResults(H)sleep(100)gg.refineNumber(F)until gg.isVisible()or gg.getResultCount()>0;gg.setVisible(false)e=gg.getResults(1)d[G]=e;return e end;function handleMemOzt(I,J,K,L,M,N)N=N or{0,-1}M=M or 1;if d[I]then toast('Previous result found, using previous result')gg.loadResults(d[I])else toast('No buffer found, creating new buffer')gg.searchNumber(J,L,nil,nil,table.unpack(N))if K then gg.refineNumber(K,L)end;if gg.getResultCount()>0 then d[I]=gg.getResults(M)end end;return gg.getResults(M)end;function optimizeRange(O)local e={table.unpack(gg.getRangesList('/data/app/'..gg.getTargetPackage..'-*/base.apk')),table.unpack(gg.getRangesList('/data/app/'..gg.getTargetPackage..'-*/split_config.*.apk'))}local P={O[2],O[1]}O[3]=O[2]-O[1]for p=1,#e do if e[p].start<O[1]or e[p]['end']>O[2]or e[p]['end']-e[p].start>O[3]or not(e[p].state=="O"or e[p].state=="Xa")then e[p]=nil else P[1]=math.min(P[1],e[p].start)P[2]=math.max(P[2],e[p]['end'])end end;table.remove(O,3)log("[AutoMemOpti] Reduced scanned memory zone: "..("%x"):format(O[1]):gsub("%l",string.upper).."—"..("%x"):format(O[2]):gsub("%l",string.upper).." → "..("%x"):format(P[1]):gsub("%l",string.upper).."—"..("%x"):format(P[2]):gsub("%l",string.upper))return next(e)and P or O end;function findEntityAnchr()gg.setRanges(i.memRange.general)local c,Q;if i.entityAnchrSearchMethod=="abjAutoAnchor"then toast(f"eAchA_wait")gg.searchNumber(32000,gg.TYPE_WORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address-0x48 end;gg.loadResults(c)gg.refineNumber(120)c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address+0xEF;c[p].flags=gg.TYPE_BYTE end;gg.loadResults(c)gg.refineNumber(2)c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address-0xC7;c[p].flags=gg.TYPE_QWORD end;gg.loadResults(c)gg.refineNumber(55834574848)c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address-0xC;c[p].flags=gg.TYPE_WORD end;gg.loadResults(c)gg.refineNumber('-501~30000')c=gg.getResults(5e3)for p=1,#c do Q=("%x"):format(c[p].address)if Q:find('508$')or Q:find('d08$')or Q:find('5f4$')or Q:find('df4$')then c[p].address=c[p].address-0x8 else c[p]=nil end end;gg.loadResults(c)gg.refineNumber(20)c=gg.getResults(5e3)Q=#c;if Q>0 then if Q>1 then toast(f("eAchA_dupe",Q))for p=1,Q do c[p].address=c[p].address+0x14;c[p].flags=gg.TYPE_QWORD end;gg.loadResults(c)sleep(2e3)gg.refineNumber(0)c=gg.getResults(1)Q=c[1]and c[1].address-0x14 or nil else Q=c[1].address end;c=nil;gg.clearResults()return{Q}end elseif i.entityAnchrSearchMethod=="holdWeapon"then toast(f"eAchB_hold1")sleep(1e3)gg.searchNumber(13,gg.TYPE_DWORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))e=gg.getResults(200)for p=1,#e do Q=("%x"):format(e[p].address)if not(Q:find('518$')or Q:find('d18$')or Q:find('604$')or Q:find('e04$'))then e[p]=nil end end;Q=#e;while Q>1 do toast(f"eAchB_hold2")sleep(1e3)gg.refineNumber(0)e=gg.getResults(200)Q=#e;if Q==1 then break elseif Q==0 then return elseif Q==2 then e=gg.getResults(2)if e[1].value==e[2].value then e={e[1]}break end end;toast(f"eAchB_hold1")sleep(1e3)gg.refineNumber(13)e=gg.getResults(200)Q=#e;if Q==1 then break elseif Q==0 then return elseif Q==2 then e=gg.getResults(2)if e[1].value==e[2].value then e={e[1]}break end end;Q=#e end;c,Q=nil,nil;gg.clearResults()return e and e[1]and{e[1].address-0x18}or nil elseif i.entityAnchrSearchMethod=="abjAutoBatchAnchor2"then toast(f"eAchC_wait")gg.searchNumber(32000,gg.TYPE_WORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address-0x48;c[p].flags=gg.TYPE_BYTE end;gg.loadResults(c)gg.refineNumber('0~256')c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address+0xEF end;gg.loadResults(c)gg.refineNumber(i.abjAutoAnchor2_EntityTypeRangeFrom..'~'..i.abjAutoAnchor2_EntityTypeRangeTo)c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address-0xC3;c[p].flags=gg.TYPE_WORD end;gg.loadResults(c)gg.refineNumber('0~101')c=gg.getResults(5e3)for p=1,#c do c[p].address=c[p].address-0x10 end;gg.loadResults(c)gg.refineNumber('-501~30000')c=gg.getResults(5e3)for p=1,#c do Q=("%x"):format(c[p].address)if Q:find('508$')or Q:find('d08$')or Q:find('5f4$')or Q:find('df4$')then c[p].address=c[p].address-0x8 else c[p]=nil end end;gg.loadResults(c)gg.refineNumber(20)c=gg.getResults(5e3)if#c>0 then gg.clearResults()for p=1,#c do c[p]=c[p].address end;return c end else toast(f("ErrToastNotice","invalidConf"))print("[Error.InvalidConf]: Configuration value for \"cfg.entityAnchrSearchMethod\" ("..i.entityAnchrSearchMethod..") is invalid.\n Possible values: abjAutoAnchor, holdWeapon, abjAutoBatchAnchor2")log("Your Configuration:\n",i)end end;function findEntityAnchr_custom(searchType)gg.setRanges(i.memRange.general)local c,Q;if not searchType then return nil end;toast(f"eAchC_wait")if searchType=='blowables'then gg.searchNumber(32000,gg.TYPE_WORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))c=gg.getResults(5e3)Q=table.copy(c)log(1,gg.getResultCount())for p=1,#c do c[p].address=c[p].address+0xA4;c[p].flags=gg.TYPE_DWORD end;gg.loadResults(c)gg.refineNumber(83886336)c=gg.getResults(5e3)log(2,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0xD0 end;gg.loadResults(c)gg.refineNumber(100)c=gg.getResults(5e3)log(3,gg.getResultCount())gg.clearResults()for p=1,#Q do Q[p].address=Q[p].address+0xA4;Q[p].flags=gg.TYPE_DWORD end;gg.loadResults(Q)gg.refineNumber(67109120)Q=gg.getResults(5e3)log(2,gg.getResultCount())for p=1,#Q do Q[p].address=Q[p].address-0xD0 end;gg.loadResults(Q)gg.refineNumber('1~30000')Q=gg.getResults(5e3)log(3,gg.getResultCount())table.append(c,Q)for p=1,#c do Q=("%x"):format(c[p].address)if Q:find('508$')or Q:find('d08$')or Q:find('5f4$')or Q:find('df4$')then c[p].address=c[p].address-0x8 else c[p]=nil end end;gg.loadResults(c)gg.refineNumber(20)c=gg.getResults(5e3)log(4,gg.getResultCount())elseif searchType=='blownUp'then gg.searchNumber(32000,gg.TYPE_WORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))c=gg.getResults(5e3)log(1,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0x48;c[p].flags=gg.TYPE_BYTE end;gg.loadResults(c)gg.refineNumber(120)c=gg.getResults(5e3)log(2,gg.getResultCount())for p=1,#c do c[p].address=c[p].address+0xEF end;gg.loadResults(c)gg.refineNumber('4~7')c=gg.getResults(5e3)log(3,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0xC3;c[p].flags=gg.TYPE_WORD end;gg.loadResults(c)gg.refineNumber('0~101')c=gg.getResults(5e3)log(4,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0x10 end;gg.loadResults(c)gg.refineNumber('-500~0')c=gg.getResults(5e3)log(5,gg.getResultCount())for p=1,#c do Q=("%x"):format(c[p].address)if Q:find('508$')or Q:find('d08$')or Q:find('5f4$')or Q:find('df4$')then c[p].address=c[p].address-0x8 else c[p]=nil end end;gg.loadResults(c)gg.refineNumber(20)c=gg.getResults(5e3)log(6,gg.getResultCount())elseif searchType=='player'then gg.searchNumber(32000,gg.TYPE_WORD,nil,nil,table.unpack(i.memZones.Common_RegionOther))c=gg.getResults(5e3)log(1,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0x48 end;gg.loadResults(c)gg.refineNumber(120)c=gg.getResults(5e3)log(2,gg.getResultCount())for p=1,#c do c[p].address=c[p].address+0xEF;c[p].flags=gg.TYPE_BYTE end;gg.loadResults(c)gg.refineNumber(2)c=gg.getResults(5e3)log(3,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0xC7;c[p].flags=gg.TYPE_QWORD end;gg.loadResults(c)gg.refineNumber(55834574848)c=gg.getResults(5e3)log(4,gg.getResultCount())for p=1,#c do c[p].address=c[p].address-0xC;c[p].flags=gg.TYPE_WORD end;gg.loadResults(c)gg.refineNumber('-501~30000')c=gg.getResults(5e3)log(5,gg.getResultCount())for p=1,#c do Q=("%x"):format(c[p].address)if Q:find('508$')or Q:find('d08$')or Q:find('5f4$')or Q:find('df4$')then c[p].address=c[p].address-0x8 else c[p]=nil end end;gg.loadResults(c)gg.refineNumber(20)c=gg.getResults(5e3)log(6,gg.getResultCount())end;if gg.getResultCount()>0 then gg.clearResults()for p=1,#c do c[p]=c[p].address end;return c end end;function exit()saveConfig()gg.clearResults()print(f"Exit_ThankYouMsg")os.exit()end;function suspend()gg.saveVariable({cfg=i,memOzt=d,pid=gg.getTargetInfo.pid},a)print(f"Suspend_Text")os.exit()end;function update_language()k=i.Language=="auto"and(m[gg.getLocale]and gg.getLocale or"en_US")or i.Language;l=m[k]end;function saveConfig()i.memZones=j.memZones;log("[saveConfig] Saving configuration to "..b)io.open(b,'w'):write("-- This is the configuration file for Payback2_CHEATus.\n-- You can customize any settings and parameters you want here (w/o messing that 'HUGE' script)\n-- Make sure you have a backup of this config file, because even a tiny bit of error/typo here results in config reader failed and your config file got reset\n-- Refer to my GitHub Wiki for some explanation (TODO)\n-- btw, please ignore the return thingy below :)\n\nreturn "..table.tostring(i)):close()end;function loadConfig()i={memZones={Common_RegionOther={0xB0000000,0xCFFFFFFF}},memRange={general=gg.REGION_C_BSS|gg.REGION_ANONYMOUS|gg.REGION_OTHER},clearAllList=false,enableAutoMemRangeOpti=true,enableLogging=false,entityAnchrSearchMethod="abjAutoAnchor",Language="auto",PlayerCurrentName=":Player",PlayerCustomName=":CoolFoe",VERSION="2.4.2"}j=i;local R=loadfile(b)if R then R=R()R.VERSION=i.VERSION;i=table.merge(i,R)j=table.copy(i)else toast("No configuration files detected, Creating new one... 💾️\nHi There! ️Looks like you're new here 👋")saveConfig()end;R=nil;g.PlayerCurrentName=i.PlayerCurrentName end;function restoreSuspend()local S=loadfile(a)if S then S=S()os.remove(a)if S.pid==gg.getTargetInfo.pid then toast(f"Suspend_Detected")i=S.cfg;d=S.memOzt end end;S=nil end;function log(...)if i.enableLogging then print("[Debug]",...)end end;print=(function()local T,U=print;return function(...)U={...}for p=1,#U do if type(U[p])=="table"then U[p]=table.tostring(U[p])end end;return T(table.unpack(U))end end)()alert=function(V,...)gg.alert(f(V),...)end;toast=function(W,f)gg.toast(W,true)end;sleep=gg.sleep;isVisible=gg.isVisible;gg.sleepUntilGgGuiChanged=function(X,B,Y)X=X or 500;if Y then toast(Y)Y=nil end;if B==nil then B=true end;gg.setVisible(B)while isVisible()==B do sleep(X)end;gg.setVisible(not B)end;g={PstlSgKnckbck=.25,CrDfltHlth=125,DmgIntnsty=300,DrftSpd=1.3,BigBody=5.9,XplodPow=1e7,XplodDir=5e4,PrtclAnmtnIntrvl=120}loadConfig()if i.enableAutoMemRangeOpti then i.memZones.Common_RegionOther=optimizeRange(i.memZones.Common_RegionOther)end;if not i.clearAllList then gg.clearList=function()for C,B in ipairs(gg.getListItems())do if B.name and B.name:find"Pb2Chts"then gg.removeListItems({B})end end end end;m={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\n\nImportant PS: Some or most of the cheats fail to work on 64bit devices, or version above 2.104.12.4 (build 121)\n\nThis cheat is part of FOSS (Free and Open-Source Software)",Credits="Credits",Credits_Text="Credit:\n• mdp43140 - Main Contributor\n• Mangyu - Original inspiration\n• MisterCuteX - Mega Explosion,Respawn Hack\n• tehtmi - unluac Creator (and decompile helper)\n• Crystal_Mods100x - ICE Menu\n• Latic AX & ToxicCoder - providing removed script via YT & MediaFire\n• AGH - Wall Hack,Car Health GG Values\n• GKTV - PB2 GG script (wall hack,big body,colored tree,big flamethower item,shadow,esp)\n• XxGabriel5HRxX - Car wheel height and acceleration GG Offsets\n• JokerGGS - No Blast Damage,Rel0ad,Rel0ad grenade,RTX,Immortal,Float,Ragdoll,C4,Autoshoot rocket Drawing GG Values\n• antonyROOTlegendMAXx - Transparent vehicle GG Offsets.\n• MinFRE - 6 star police GG Offsets.",Disclaimmer="Disclaimmer (please read)",Disclaimmer_Text="DISCLAIMMER:\n Please DO NOT misuse the script to harm other Payback2 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=" Report a bug: https://github.com/ABJ4403/Payback2_CHEATus/issues\n Discussion: at https://github.com/ABJ4403/Payback2_CHEATus/discussions\n FAQ: https://github.com/ABJ4403/Payback2_CHEATus/wiki",License="License",License_Text="Payback2 CHEATus, Cheat LUA Script for GameGuardian\n© 2021-2023 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="Session file detected, continuing from suspend...",Suspend_Text="Script suspended. Continue your current session by rerunning the script.",Title_Version="Payback2 CHEATus v"..i.VERSION..", by ABJ4403.",ErrToastNotice="An error occured (%s): Exit out of script and see print log for more details.",ErrNotFound="Can't find the specific set of number",ErrNotFound_Report="Can't find the specific set of number, report this issue on my GitHub page: https://github.com/ABJ4403/Payback2_CHEATus/issues",Cheat_WallHack="Wall Hack",Cheat_WallHack_Notice="Warn:\n- Careful w/ holes behind walls\n- using the GKTV wallhack is recommended cause its wonky physics can prevent helicopter from falling",Cheat_C4AutoRig="C4 auto-trigger",Cheat_GodModes="God Modes",Cheat_GodModes_Notice="WARN: DON'T USE THIS TO HARM INNOCENT PLAYERS IN ANY WAY!!",Cheat_CSD="Client-side cheats",Cheat_CSD_Notice="Some cheats won't affect other player",eAchA_wait="Please wait... don't shoot, hold pistol 🔫",eAchA_dupe="%d Duplicate results! hold knife 🔪",eAchB_hold1="Hold pistol 🔫",eAchB_hold2="Hold knife 🔪",eAchC_wait="Please wait, finding all entities..."},['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\n\nPesan penting: Beberapa atau kebanyakan dari cheat tidak bekerja di perangkat 64bit, atau versi diatas 2.104.12.4 (build 121)\n\nCheat ini termasuk bagian dari FOSS (Perangkat lunak Gratis dan bersumber-terbuka)",Credits="Kredit",Credits_Text="Kredit:\n• mdp43140 - Kontributor Utama\n• Mangyu - Inspirasi original\n• MisterCuteX - Mega Explosion,Respawn Hack\n• tehtmi - Pembuat unluac (dan helper dekompilasi)\n• Crystal_Mods100x - Menu ICE\n• Latic AX & ToxicCoder - menyediakan skrip yang dihapus via YT & MediaFire\n• AGH - Value WallHack,CarHealth GG\n• GKTV - Skrip GG Payback2 (wall hack,big body,pohon berwarna,item flamethower besar,bayangan,esp)\n• XxGabriel5HRxX - offset Tinggi roda mobil dan akselerasi mobil GG\n• JokerGGS - Value No Blast Damage,Rel0ad,Rel0ad grenade,RTX,Immortal,Float,Ragdoll,C4 Drawing,Autoshoot roket GG\n• antonyROOTlegendMAXx - Offset kendaraan tembus pandang GG.\n• MinFRE - Offset 6 star police 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=" Laporkan bug: https://github.com/ABJ4403/Payback2_CHEATus/issues\n Diskusi: https://github.com/ABJ4403/Payback2_CHEATus/discussions\n Pertanyaan yang sering ditanyakan: https://github.com/ABJ4403/Payback2_CHEATus/wiki",License="Lisensi",License_Text="Payback2 CHEATus, Cheat Skrip LUA untuk GameGuardian\n© 2021-2023 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 sesi terdeteksi, melanjutkan dari suspensi...",Suspend_Text="Skrip Disuspensi. Lanjutkan sesi saat ini dengan menjalankan ulang skrip ini.",Title_Version="Payback2 CHEATus v"..i.VERSION..", oleh ABJ4403.",ErrToastNotice="Galat terjadi (%s): Keluar dari skrip dan lihat log print untuk lebih detail.",ErrNotFound="Tidak bisa menemukan angka tertentu",ErrNotFound_Report="Tidak bisa menemukan angka tertentu, laporkan isu ini di laman GitHub saya: https://github.com/ABJ4403/Payback2_CHEATus/issues",Cheat_WallHack="Tembus Dinding",Cheat_WallHack_Notice="Perhatian:\n- Hati-hati dengan lubang dibelakang dinding\n- Saat menggunakan helikopter, direkomendasikan mengunnakan cheat tembus dinding GKTV karena fisik wonkynya bisa mencegah helikopter jatuh ke void",Cheat_C4AutoRig="Auto-rig C4",Cheat_GodModes="Mode tuhan",Cheat_GodModes_Notice="PERINGATAN: JANGAN MENGGUNAKAN INI UNTUK MENCURANGI PEMAIN LAIN DENGAN CARA APAPUN!!",Cheat_CSD="Cheat sisi-klien",Cheat_CSD_Notice="Beberapa cheat tidak akan memengaruhi pemain lain",eAchA_wait="Mohon tunggu... jangan menembak, pegang pistol 🔫",eAchA_dupe="%d Hasil duplikat! pegang pisau 🔪",eAchB_hold1="Pegang pistol 🔫",eAchB_hold2="Pegang pisau 🔪",eAchC_wait="Mohon tunggu, menemukan semua entitas..."}}function f(p,...)return string.format(l[p]or p,...)end;update_language()restoreSuspend()while true do while not isVisible()do sleep(100)end;gg.setVisible(false)M()gg.clearResults()collectgarbage()end