361 views
Description
This is a universal script; it contains many diverse functions such as aimbot, ESp. also its an open source script. press the right alt key to show or hide the menu.
Features
- + Player
- + Aim
- + Esp
- + Chams
- + Graphics
- + Main
- + Settings
Supported Executors
Xeno
--[[ Script Glebasa V2 (Xeno) - Right Alt = show/hide menu ]]
local Pl,UIS,RS,Li,TP,HS=game:GetService("Players"),game:GetService("UserInputService"),game:GetService("RunService"),game:GetService("Lighting"),game:GetService("TeleportService"),game:GetService("HttpService")
local LP=Pl.LocalPlayer
local Cam=workspace.CurrentCamera
local mouse=LP:GetMouse()
if getgenv and getgenv().__GV2 then pcall(getgenv().__GV2) end
local c3=Color3.fromRGB
local W=c3(255,255,255)
local conns,toggles,draws,refresh,cards={},{},{},{},{}
local run=true
local function on(s,f) conns[#conns+1]=s:Connect(f) end
local function char() return LP.Character end
local function hum() local c=LP.Character return c and c:FindFirstChildOfClass("Humanoid") end
local function hrp() local c=LP.Character return c and c:FindFirstChild("HumanoidRootPart") end
local function mk(cl,p,par) local o=Instance.new(cl) for k,v in pairs(p or {}) do o[k]=v end o.Parent=par return o end
local function rnd(o,r) mk("UICorner",{CornerRadius=UDim.new(0,r or 8)},o) return o end
local function ptr(i) return i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch end
local function mount(g)
for _,f in ipairs{function() return gethui and gethui() end,function() return game:GetService("CoreGui") end,function() return LP:WaitForChild("PlayerGui",5) end} do
local ok,p=pcall(f)
if ok and p and pcall(function() g.Parent=p end) and g.Parent==p then return end
end
end
-- ===== State =====
local S={
speed=false,speedVal=50,spin=false,spinVal=600,gravity=false,gravVal=50,jump=false,jumpVal=100,
fly=false,flyVal=60,flyBtns=false,infJump=false,noclip=false,autoHeal=false,antiRagdoll=false,noFall=false,bhop=false,
aim=false,aimSpeed=30,aimKey="Right mouse",aimPart="Head",aimMode="Closest to cursor",aimTeam=true,aimWall=true,aimMax=1000,
aimPred=false,aimPredVal=30,aimSticky=false,aimFriends=false,aimHit=100,aimJitter=0,aimShowFov=true,aimFov=150,colFov=W,
aimLine=false,colAimLine=c3(255,60,60),trigger=false,trigDelay=50,
esp=false,espMax=2000,espBox=true,colBox=W,espSkeleton=false,colSkel=W,espTracers=false,colTracer=W,espDist=true,colDist=W,
espName=true,colName=W,espLook=false,espHealth=false,espTool=false,colTool=W,espTeamCol=false,espArrows=false,colArrow=W,
espNpc=false,colNpc=c3(255,150,40),espItem=false,colItem=c3(255,230,60),radar=false,radarSize=130,radarRange=300,
chams=false,chamsFill=c3(255,60,60),chamsFillT=50,chamsOutline=W,chamsOutT=0,chamsWalls=true,chamsRainbow=false,chamsRainSpeed=5,
chamsSelf=false,chamsNeon=false,chamsNeonCol=c3(60,230,255),
antiAfk=true,clickTP=false,autoRejoin=false,sprint=false,sprintVal=80,antiVoid=false,antiFling=false,invis=false,invisVal=100,
autoClick=false,clickCps=10,clickDel=false,fpsCap=false,fpsCapVal=144,fov=false,fovVal=100,zoom=false,zoomVal=300,
fullbright=false,fbBright=2,timeOn=false,timeVal=14,ambient=false,ambCol=W,noFog=false,noShadows=false,noFx=false,
satOn=false,satVal=0,conOn=false,conVal=0,ambRainbow=false,expOn=false,expVal=0,tintOn=false,tintCol=c3(255,150,40),
fogOn=false,fogVal=300,fogCol=W,bloomOn=false,bloomVal=30,sunOn=false,sunVal=30,blurOn=false,blurVal=10,
zoomHold=false,zoomHoldFov=25,potato=false,fpsBoost=false,crossOn=false,crossStyle="Cross",crossSize=12,colCross=c3(70,255,110),
menuAlpha=20,theme="Gray",menuKey="RightAlt",keyFly="None",keyNoclip="None",keySpeed="None",keySpin="None",keyAim="None",keyEsp="None",
}
-- ===== Originals / helpers =====
local OG,OF,OZ=workspace.Gravity,Cam.FieldOfView,LP.CameraMaxZoomDistance
local LO={} for _,k in ipairs{"Brightness","ClockTime","FogEnd","GlobalShadows","Ambient","OutdoorAmbient","ExposureCompensation","FogStart","FogColor"} do LO[k]=Li[k] end
local function restoreLight() for k,v in pairs(LO) do pcall(function() Li[k]=v end) end end
local cc=mk("ColorCorrectionEffect",{Enabled=false,Name="GV2CC"},Li)
local bloom=mk("BloomEffect",{Enabled=false,Name="GV2Bloom"},Li)
local sun=mk("SunRaysEffect",{Enabled=false,Name="GV2Sun"},Li)
local blur=mk("BlurEffect",{Enabled=false,Size=0,Name="GV2Blur"},Li)
local fxo={}
local function noFx(v)
if v then
for _,e in ipairs(Li:GetDescendants()) do
if (e:IsA("BlurEffect") or e:IsA("BloomEffect") or e:IsA("SunRaysEffect") or e:IsA("DepthOfFieldEffect")) and e.Name:sub(1,3)~="GV2" then
if fxo[e]==nil then fxo[e]=e.Enabled end
e.Enabled=false
end
end
else
for e,o in pairs(fxo) do pcall(function() e.Enabled=o end) end
fxo={}
end
end
local oq,od
local function fpsBoost(v)
if v then
pcall(function() oq=settings().Rendering.QualityLevel settings().Rendering.QualityLevel=Enum.QualityLevel.Level01 end)
pcall(function() od=workspace.Terrain.Decoration workspace.Terrain.Decoration=false end)
noFx(true)
else
pcall(function() if oq then settings().Rendering.QualityLevel=oq end end)
pcall(function() if od~=nil then workspace.Terrain.Decoration=od end end)
noFx(S.noFx)
end
end
local potO={}
local function potato(v)
if v then
task.spawn(function()
local n=0
for _,d in ipairs(workspace:GetDescendants()) do
if not S.potato then break end
if d:IsA("BasePart") then
local m=d:FindFirstAncestorOfClass("Model")
if not potO[d] and not(m and m:FindFirstChildOfClass("Humanoid")) then potO[d]={d.Material} d.Material=Enum.Material.SmoothPlastic end
elseif (d:IsA("Decal") or d:IsA("Texture")) and not potO[d] then
potO[d]={d.Transparency} d.Transparency=1
end
n+=1 if n%1500==0 then task.wait() end
end
end)
else
for o,x in pairs(potO) do
if o.Parent then pcall(function() if o:IsA("BasePart") then o.Material=x[1] else o.Transparency=x[1] end end) end
end
potO={}
end
end
local function ragdoll(en)
local h=hum()
if h then pcall(function() h:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,en) h:SetStateEnabled(Enum.HumanoidStateType.FallingDown,en) end) end
end
local sel,specOn,specB
local function stopSpec() specOn=false local h=hum() if h then Cam.CameraSubject=h end if specB then specB.Text="Spectate" end end
local function tpSel()
local r,t=hrp(),sel and sel.Character and sel.Character:FindFirstChild("HumanoidRootPart")
if r and t then r.CFrame=t.CFrame*CFrame.new(0,0,3) end
end
local saved
local function respawnHere()
local r=hrp() if not r then return end
local cf,conn=r.CFrame
conn=LP.CharacterAdded:Connect(function(c)
conn:Disconnect()
local hr=c:WaitForChild("HumanoidRootPart",5)
if hr then task.wait(.2) hr.CFrame=cf end
end)
local h=hum() if h then h.Health=0 end
end
-- ===== Fly =====
local fbv,fbg,flyUp,flyDn
local function flyOff()
if fbv then fbv:Destroy() fbv=nil end
if fbg then fbg:Destroy() fbg=nil end
local h=hum() if h then h.PlatformStand=false end
end
local function flyOn()
local r,h=hrp(),hum()
if not(r and h) then return end
flyOff()
fbv=mk("BodyVelocity",{MaxForce=Vector3.one*1e9,Velocity=Vector3.zero},r)
fbg=mk("BodyGyro",{MaxTorque=Vector3.one*1e9,P=9e4},r)
h.PlatformStand=true
end
on(RS.RenderStepped,function()
if not(S.fly and fbv and hrp()) then return end
local d,l,rt=Vector3.zero,Cam.CFrame.LookVector,Cam.CFrame.RightVector
local function k(c) return UIS:IsKeyDown(c) end
if k(Enum.KeyCode.W) then d+=l end
if k(Enum.KeyCode.S) then d-=l end
if k(Enum.KeyCode.D) then d+=rt end
if k(Enum.KeyCode.A) then d-=rt end
if k(Enum.KeyCode.Space) or flyUp then d+=Vector3.yAxis end
if k(Enum.KeyCode.LeftControl) or flyDn then d-=Vector3.yAxis end
local h=hum()
if h and d.Magnitude==0 and h.MoveDirection.Magnitude>0 then
local rel=Cam.CFrame:VectorToObjectSpace(h.MoveDirection)
d=l*-rel.Z+rt*rel.X
end
fbv.Velocity=d.Magnitude>0 and d.Unit*S.flyVal or Vector3.zero
fbg.CFrame=Cam.CFrame
end)
on(LP.CharacterAdded,function() task.wait(.5) if S.fly then flyOn() end end)
-- ===== Main loop (movement, survival, world) =====
local wasZ,wasSp,lastSafe,clickT,capApplied=false,false,nil,0,nil
local rp=RaycastParams.new() rp.FilterType=Enum.RaycastFilterType.Exclude
local neonO,neonT={},0
local function neonRestore() for p,o in pairs(neonO) do if p.Parent then pcall(function() p.Material=o[1] p.Color=o[2] end) end end neonO={} end
local invO={}
local function invisRestore() for pt,v in pairs(invO) do if pt.Parent then pt.Transparency=v end end invO={} end
on(RS.Heartbeat,function(dt)
local h,r=hum(),hrp()
if h then
if S.speed then h.WalkSpeed=S.speedVal end
if S.sprint and UIS:IsKeyDown(Enum.KeyCode.LeftShift) then h.WalkSpeed=S.sprintVal wasSp=true
elseif wasSp then wasSp=false if not S.speed then h.WalkSpeed=16 end end
if S.jump then h.UseJumpPower=true h.JumpPower=S.jumpVal end
if S.autoHeal and h.Health>0 then h.Health=h.MaxHealth end
if S.antiRagdoll then
ragdoll(false)
local st=h:GetState()
if st==Enum.HumanoidStateType.Ragdoll or st==Enum.HumanoidStateType.FallingDown then h:ChangeState(Enum.HumanoidStateType.GettingUp) end
end
if S.bhop and UIS:IsKeyDown(Enum.KeyCode.Space) and h.FloorMaterial~=Enum.Material.Air then h:ChangeState(Enum.HumanoidStateType.Jumping) end
end
if r then
if h and h.FloorMaterial~=Enum.Material.Air then lastSafe=r.CFrame end
if S.antiVoid and lastSafe and r.Position.Y<workspace.FallenPartsDestroyHeight+80 then
r.CFrame=lastSafe r.AssemblyLinearVelocity=Vector3.zero
end
if S.spin then r.CFrame=r.CFrame*CFrame.Angles(0,math.rad(S.spinVal)*dt,0) end
if S.noFall and not S.fly and r.AssemblyLinearVelocity.Y<-60 then
rp.FilterDescendantsInstances={char()}
if workspace:Raycast(r.Position,Vector3.new(0,-14,0),rp) then
local v=r.AssemblyLinearVelocity r.AssemblyLinearVelocity=Vector3.new(v.X,0,v.Z)
end
end
end
if S.gravity then workspace.Gravity=S.gravVal end
if S.zoomHold and UIS:IsKeyDown(Enum.KeyCode.Z) then Cam.FieldOfView=S.zoomHoldFov wasZ=true
elseif S.fov then Cam.FieldOfView=S.fovVal wasZ=false
elseif wasZ then Cam.FieldOfView=OF wasZ=false end
if S.zoom then LP.CameraMaxZoomDistance=S.zoomVal end
if S.fullbright then Li.Brightness=S.fbBright Li.Ambient=W Li.OutdoorAmbient=W Li.GlobalShadows=false end
if S.expOn then Li.ExposureCompensation=S.expVal/10 end
if S.fogOn then Li.FogStart=0 Li.FogEnd=S.fogVal Li.FogColor=S.fogCol end
if S.noFog then Li.FogEnd=1e6 end
if S.ambient then Li.Ambient=S.ambCol Li.OutdoorAmbient=S.ambCol end
if S.ambRainbow then local rc=Color3.fromHSV(os.clock()*.2%1,.6,1) Li.Ambient=rc Li.OutdoorAmbient=rc end
if S.noShadows or S.fpsBoost then Li.GlobalShadows=false end
if S.timeOn then Li.ClockTime=S.timeVal end
cc.Saturation=S.satOn and S.satVal/100 or 0
cc.Contrast=S.conOn and S.conVal/100 or 0
cc.TintColor=S.tintOn and S.tintCol or W
cc.Enabled=S.satOn or S.conOn or S.tintOn
bloom.Enabled=S.bloomOn bloom.Intensity=S.bloomVal/25
sun.Enabled=S.sunOn sun.Intensity=S.sunVal/100
blur.Enabled=S.blurOn blur.Size=S.blurVal
if specOn and sel and sel.Character then
local th=sel.Character:FindFirstChildOfClass("Humanoid")
if th and Cam.CameraSubject~=th then Cam.CameraSubject=th end
end
clickT+=dt
if S.autoClick and mouse1click and clickT>=1/S.clickCps then clickT=0 pcall(mouse1click) end
if S.fpsCap and setfpscap and capApplied~=S.fpsCapVal then capApplied=S.fpsCapVal pcall(setfpscap,S.fpsCapVal) end
neonT+=dt
if neonT>.25 then
neonT=0
if S.invis and char() then
for _,pt in ipairs(char():GetDescendants()) do
if (pt:IsA("BasePart") and pt.Name~="HumanoidRootPart") or pt:IsA("Decal") then
if invO[pt]==nil then invO[pt]=pt.Transparency end
pt.Transparency=S.invisVal/100
end
end
end
if S.chamsNeon then
for _,p in ipairs(Pl:GetPlayers()) do
if p~=LP and p.Character then
for _,pt in ipairs(p.Character:GetDescendants()) do
if pt:IsA("BasePart") and pt.Name~="HumanoidRootPart" then
if not neonO[pt] then neonO[pt]={pt.Material,pt.Color} end
pt.Material=Enum.Material.Neon pt.Color=S.chamsNeonCol
end
end
end
end
end
end
end)
on(RS.Stepped,function()
if S.noclip and char() then for _,p in ipairs(char():GetDescendants()) do if p:IsA("BasePart") then p.CanCollide=false end end end
end)
on(UIS.JumpRequest,function() local h=hum() if S.infJump and h then h:ChangeState(Enum.HumanoidStateType.Jumping) end end)
on(LP.Idled,function() if S.antiAfk then local v=game:GetService("VirtualUser") v:CaptureController() v:ClickButton2(Vector2.new()) end end)
on(mouse.Button1Down,function()
if S.clickTP and UIS:IsKeyDown(Enum.KeyCode.LeftControl) and mouse.Hit and hrp() then hrp().CFrame=CFrame.new(mouse.Hit.Position+Vector3.new(0,3,0)) end
end)
on(RS.Stepped,function()
if not S.antiFling then return end
for _,pl in ipairs(Pl:GetPlayers()) do
if pl~=LP and pl.Character then
for _,pt in ipairs(pl.Character:GetDescendants()) do if pt:IsA("BasePart") then pt.CanCollide=false end end
end
end
end)
on(mouse.Button1Down,function()
local t=mouse.Target
if S.clickDel and t and UIS:IsKeyDown(Enum.KeyCode.X) and not(char() and t:IsDescendantOf(char())) then pcall(function() t:Destroy() end) end
end)
-- ===== Chams =====
local chl,rb={},0
on(RS.RenderStepped,function(dt)
rb+=dt*S.chamsRainSpeed*.1
local rc=Color3.fromHSV(rb%1,1,1)
for _,p in ipairs(Pl:GetPlayers()) do
local c=p.Character
if S.chams and c and (p~=LP or S.chamsSelf) then
local hl=chl[p]
if not(hl and hl.Parent and hl.Adornee==c) then
if hl then hl:Destroy() end
hl=mk("Highlight",{Name="GV2Cham",Adornee=c},c) chl[p]=hl
end
hl.FillColor=S.chamsRainbow and rc or S.chamsFill
hl.OutlineColor=S.chamsRainbow and rc or S.chamsOutline
hl.FillTransparency=S.chamsFillT/100
hl.OutlineTransparency=S.chamsOutT/100
hl.DepthMode=S.chamsWalls and Enum.HighlightDepthMode.AlwaysOnTop or Enum.HighlightDepthMode.Occluded
elseif chl[p] then chl[p]:Destroy() chl[p]=nil end
end
end)
-- ===== ESP (frame based) =====
local eg=mk("ScreenGui",{Name="GV2ESP",ResetOnSpawn=false,IgnoreGuiInset=true,DisplayOrder=5}) mount(eg)
local function line() return mk("Frame",{AnchorPoint=Vector2.new(.5,.5),BorderSizePixel=0,BackgroundColor3=W,Visible=false},eg) end
local function setLine(f,a,b)
local d=b-a
f.Size=UDim2.fromOffset(d.Magnitude,1.5) f.Position=UDim2.fromOffset((a.X+b.X)/2,(a.Y+b.Y)/2)
f.Rotation=math.deg(math.atan2(d.Y,d.X)) f.Visible=true
end
local function txt(ay) return mk("TextLabel",{AnchorPoint=Vector2.new(.5,ay),Size=UDim2.fromOffset(160,14),BackgroundTransparency=1,TextColor3=W,TextStrokeTransparency=0,Font=Enum.Font.GothamBold,TextSize=13,Visible=false},eg) end
local function w2s(p) local v=Cam:WorldToViewportPoint(p) return Vector2.new(v.X,v.Y),v.Z>0 end
local function pcol(p,b) if S.espTeamCol and p.Team then return p.TeamColor.Color end return b end
local R15={{"Head","UpperTorso"},{"UpperTorso","LowerTorso"}}
for _,s in ipairs{"Left","Right"} do
for _,v in ipairs{{"UpperTorso",s.."UpperArm"},{s.."UpperArm",s.."LowerArm"},{s.."LowerArm",s.."Hand"},{"LowerTorso",s.."UpperLeg"},{s.."UpperLeg",s.."LowerLeg"},{s.."LowerLeg",s.."Foot"}} do R15[#R15+1]=v end
end
local R6={{"Head","Torso"},{"Torso","Left Arm"},{"Torso","Right Arm"},{"Torso","Left Leg"},{"Torso","Right Leg"}}
local esp={}
local function mkEsp(p)
if p==LP or esp[p] then return end
local a,o={},{}
local function r(i) a[#a+1]=i return i end
o.box=r(mk("Frame",{BackgroundTransparency=1,BorderSizePixel=0,Visible=false},eg))
o.st=mk("UIStroke",{Thickness=1.5},o.box)
o.name=r(txt(1)) o.dist=r(txt(0)) o.tool=r(txt(0))
o.hp=r(mk("Frame",{BackgroundColor3=Color3.new(0,0,0),BorderSizePixel=0,Visible=false},eg))
o.hpf=mk("Frame",{AnchorPoint=Vector2.new(0,1),Position=UDim2.new(0,0,1,0),BorderSizePixel=0},o.hp)
o.tr=r(line()) o.lk=r(line())
o.bones={} for i=1,14 do o.bones[i]=r(line()) end
o.ar=r(txt(.5)) o.ar.Text=">" o.ar.TextSize=26 o.ar.Size=UDim2.fromOffset(30,30)
o.all=a esp[p]=o
end
local function hide(o) for _,g in ipairs(o.all) do g.Visible=false end end
local function rmEsp(p) local o=esp[p] if o then for _,g in ipairs(o.all) do g:Destroy() end esp[p]=nil end end
local function upEsp(p,o)
local c=p.Character
local root,head,h=c and c:FindFirstChild("HumanoidRootPart"),c and c:FindFirstChild("Head"),c and c:FindFirstChildOfClass("Humanoid")
if not(S.esp and root and head and h and h.Health>0) then return hide(o) end
local dist=(Cam.CFrame.Position-root.Position).Magnitude
if dist>S.espMax then return hide(o) end
local top,onT=w2s(head.Position+Vector3.new(0,.7,0))
local bot,onB=w2s(root.Position-Vector3.new(0,3.2,0))
if not(onT and onB) then
hide(o)
if S.espArrows then
local rel=Cam.CFrame:PointToObjectSpace(root.Position)
local d=Vector2.new(rel.X,-rel.Y) if d.Magnitude<.01 then d=Vector2.new(0,1) end
local vs=Cam.ViewportSize
local pos=vs/2+d.Unit*(math.min(vs.X,vs.Y)/2-50)
o.ar.Position=UDim2.fromOffset(pos.X,pos.Y) o.ar.Rotation=math.deg(math.atan2(d.Y,d.X))
o.ar.TextColor3=pcol(p,S.colArrow) o.ar.Visible=true
end
return
end
o.ar.Visible=false
local ht=math.abs(bot.Y-top.Y) local wd=ht*.55 local cx=(top.X+bot.X)/2
o.st.Color=pcol(p,S.colBox)
o.box.Visible=S.espBox
if S.espBox then o.box.Size=UDim2.fromOffset(wd,ht) o.box.Position=UDim2.fromOffset(cx-wd/2,top.Y) end
o.hp.Visible=S.espHealth
if S.espHealth then
local f=math.clamp(h.Health/math.max(h.MaxHealth,1),0,1)
o.hp.Size=UDim2.fromOffset(4,ht) o.hp.Position=UDim2.fromOffset(cx-wd/2-7,top.Y)
o.hpf.Size=UDim2.new(1,0,f,0) o.hpf.BackgroundColor3=Color3.fromHSV(f*.33,1,1)
end
o.name.Visible=S.espName
if S.espName then o.name.Text=p.DisplayName o.name.TextColor3=pcol(p,S.colName) o.name.Position=UDim2.fromOffset(cx,top.Y-2) end
o.dist.Visible=S.espDist
if S.espDist then o.dist.Text=math.floor(dist).." studs" o.dist.TextColor3=pcol(p,S.colDist) o.dist.Position=UDim2.fromOffset(cx,bot.Y+2) end
local tl=S.espTool and c:FindFirstChildOfClass("Tool")
o.tool.Visible=tl and true or false
if tl then o.tool.Text=tl.Name o.tool.TextColor3=S.colTool o.tool.Position=UDim2.fromOffset(cx,bot.Y+(S.espDist and 16 or 2)) end
if S.espTracers then
local vs=Cam.ViewportSize o.tr.BackgroundColor3=pcol(p,S.colTracer)
setLine(o.tr,Vector2.new(vs.X/2,vs.Y),Vector2.new(cx,bot.Y))
else o.tr.Visible=false end
if S.espLook then
local mh=char() and char():FindFirstChild("Head")
local tm=(mh and mh.Position or Cam.CFrame.Position)-head.Position
local lk=tm.Magnitude>0 and head.CFrame.LookVector:Dot(tm.Unit)>.96
o.lk.BackgroundColor3=lk and c3(255,40,40) or c3(255,140,0)
local a,oa=w2s(head.Position) local b,ob=w2s(head.Position+head.CFrame.LookVector*10)
if oa and ob then setLine(o.lk,a,b) else o.lk.Visible=false end
else o.lk.Visible=false end
local prs=c:FindFirstChild("UpperTorso") and R15 or R6
for i,l in ipairs(o.bones) do
local pr=S.espSkeleton and prs[i]
local pa,pb=pr and c:FindFirstChild(pr[1]),pr and c:FindFirstChild(pr[2])
if pa and pb then
local a,oa=w2s(pa.Position) local b,ob=w2s(pb.Position)
if oa and ob then l.BackgroundColor3=pcol(p,S.colSkel) setLine(l,a,b) else l.Visible=false end
else l.Visible=false end
end
end
for _,p in ipairs(Pl:GetPlayers()) do mkEsp(p) end
on(Pl.PlayerAdded,mkEsp)
on(RS.RenderStepped,function() for p,o in pairs(esp) do upEsp(p,o) end end)
-- ===== NPC / item ESP =====
local wl,wlb={},{}
task.spawn(function()
while run do
pcall(function()
local l={}
if S.espNpc or S.espItem then
for _,d in ipairs(workspace:GetDescendants()) do
if #l>=80 then break end
if S.espNpc and d:IsA("Humanoid") then
local m=d.Parent
if m and d.Health>0 and not Pl:GetPlayerFromCharacter(m) then
local r=m:FindFirstChild("HumanoidRootPart") or m:FindFirstChild("Torso") or m:FindFirstChild("Head")
if r then l[#l+1]={r,m.Name,true} end
end
elseif S.espItem and d:IsA("Tool") then
local pa=d.Parent
if pa and not pa:IsA("Backpack") and not pa:FindFirstChildOfClass("Humanoid") then
local hd=d:FindFirstChild("Handle") or d:FindFirstChildWhichIsA("BasePart")
if hd then l[#l+1]={hd,d.Name,false} end
end
end
end
end
wl=l
end)
task.wait(3)
end
end)
on(RS.RenderStepped,function()
local n=0
for _,e in ipairs(wl) do
if e[1] and e[1].Parent then
local sp,os=w2s(e[1].Position)
local d=(Cam.CFrame.Position-e[1].Position).Magnitude
if os and d<=S.espMax then
n+=1
local lb=wlb[n] or txt(.5) wlb[n]=lb
lb.Text=e[2].." ["..math.floor(d).."]" lb.TextColor3=e[3] and S.colNpc or S.colItem
lb.Position=UDim2.fromOffset(sp.X,sp.Y) lb.Visible=true
end
end
end
for i=n+1,#wlb do wlb[i].Visible=false end
end)
-- ===== Aim =====
local fc=rnd(mk("Frame",{AnchorPoint=Vector2.new(.5,.5),BackgroundTransparency=1,Visible=false},eg),999)
local fcs=mk("UIStroke",{Thickness=1.5},fc)
local aimL=line()
local rayP=RaycastParams.new() rayP.FilterType=Enum.RaycastFilterType.Exclude
local frc={}
local function skip(p)
if S.aimTeam and LP.Team and p.Team==LP.Team then return true end
if S.aimFriends then
if frc[p]==nil then local ok,r=pcall(function() return LP:IsFriendsWith(p.UserId) end) frc[p]=(ok and r) and true or false end
return frc[p]
end
return false
end
local function partOf(c)
if S.aimPart=="Head" then return c:FindFirstChild("Head") end
return c:FindFirstChild("UpperTorso") or c:FindFirstChild("Torso") or c:FindFirstChild("HumanoidRootPart")
end
local function seen(pt,c)
rayP.FilterDescendantsInstances={char() or workspace.Terrain}
local o=Cam.CFrame.Position
local r=workspace:Raycast(o,pt.Position-o,rayP)
return r==nil or r.Instance:IsDescendantOf(c)
end
local function eval(p,m)
local c=p.Character
if p==LP or not c or skip(p) then return end
local h,pt=c:FindFirstChildOfClass("Humanoid"),partOf(c)
if not(h and h.Health>0 and pt) then return end
local sp,os=w2s(pt.Position)
local d3=(Cam.CFrame.Position-pt.Position).Magnitude
if not os or d3>S.aimMax then return end
local d2=(sp-m).Magnitude
if d2>S.aimFov or (S.aimWall and not seen(pt,c)) then return end
return pt,S.aimMode=="Closest distance" and d3 or d2
end
local sticky
local function target(m,lock)
if lock and S.aimSticky and sticky then
local pt=eval(sticky,m)
if pt then return sticky,pt end
sticky=nil
end
local bp,bpt,bs
for _,p in ipairs(Pl:GetPlayers()) do
local pt,sc=eval(p,m)
if pt and (not bs or sc<bs) then bp,bpt,bs=p,pt,sc end
end
if lock and S.aimSticky then sticky=bp end
return bp,bpt
end
local function aimActive()
if S.aimKey=="Always" then return true end
return UIS:IsMouseButtonPressed(S.aimKey=="Left mouse" and Enum.UserInputType.MouseButton1 or Enum.UserInputType.MouseButton2)
end
local off,nextR=Vector3.zero,0
pcall(function() RS:UnbindFromRenderStep("GV2Aim") end)
RS:BindToRenderStep("GV2Aim",Enum.RenderPriority.Camera.Value+1,function()
local m=UIS:GetMouseLocation()
fc.Visible=S.aim and S.aimShowFov
if fc.Visible then fc.Size=UDim2.fromOffset(S.aimFov*2,S.aimFov*2) fc.Position=UDim2.fromOffset(m.X,m.Y) fcs.Color=S.colFov end
aimL.Visible=false
if not S.aim then sticky=nil return end
local act=aimActive()
if not act then sticky=nil end
local p,pt=target(m,act)
if not p then return end
local pos=pt.Position
if S.aimPred then pos+=pt.AssemblyLinearVelocity*(S.aimPredVal/1000) end
if S.aimLine then
local tp,o=w2s(pos)
if o then aimL.BackgroundColor3=S.colAimLine setLine(aimL,m,tp) end
end
if act then
if tick()>nextR then
nextR=tick()+.25
local mag=math.random(1,100)>S.aimHit and 4 or S.aimJitter/10
local v=Vector3.new(math.random()-.5,math.random()-.5,math.random()-.5)
off=v.Magnitude>0 and v.Unit*mag or Vector3.zero
end
Cam.CFrame=Cam.CFrame:Lerp(CFrame.lookAt(Cam.CFrame.Position,pos+off),math.clamp(S.aimSpeed/100,.01,1))
end
end)
local lastShot=0
on(RS.Heartbeat,function()
if not(S.trigger and mouse1click) then return end
local t=mouse.Target
local m=t and t:FindFirstAncestorOfClass("Model")
local p=m and Pl:GetPlayerFromCharacter(m)
if not p or p==LP or skip(p) then return end
local h=m:FindFirstChildOfClass("Humanoid")
if h and h.Health>0 and (tick()-lastShot)*1000>=S.trigDelay then lastShot=tick() pcall(mouse1click) end
end)
-- ===== Server =====
local function rejoin()
pcall(function()
if #Pl:GetPlayers()<=1 then TP:Teleport(game.PlaceId,LP) else TP:TeleportToPlaceInstance(game.PlaceId,game.JobId,LP) end
end)
end
local function hop()
local ok=pcall(function()
local d=HS:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100"))
local ids={}
for _,sv in ipairs(d.data) do if sv.id~=game.JobId and sv.playing<sv.maxPlayers then ids[#ids+1]=sv.id end end
if #ids==0 then error("none") end
TP:TeleportToPlaceInstance(game.PlaceId,ids[math.random(1,#ids)],LP)
end)
if not ok then pcall(function() TP:Teleport(game.PlaceId,LP) end) end
end
pcall(function()
on(game:GetService("GuiService").ErrorMessageChanged,function() if S.autoRejoin then task.wait(2) rejoin() end end)
end)
-- ===== GUI =====
local C={bg=c3(38,38,42),bar=c3(8,8,8),card=c3(14,14,16),off=c3(85,85,90),dim=c3(185,185,190)}
local PAL={c3(255,255,255),c3(255,60,60),c3(255,150,40),c3(255,230,60),c3(70,255,110),c3(60,230,255),c3(70,120,255),c3(170,90,255),c3(255,110,200)}
local GB=Enum.Font.GothamBold
local function lab(par,t,pos,size,col,sz,font)
return mk("TextLabel",{Text=t,Position=pos,Size=size,BackgroundTransparency=1,TextXAlignment=Enum.TextXAlignment.Left,TextColor3=col,Font=font or Enum.Font.Gotham,TextSize=sz},par)
end
local gui=mk("ScreenGui",{Name="GV2",ResetOnSpawn=false,ZIndexBehavior=Enum.ZIndexBehavior.Sibling,DisplayOrder=10}) mount(gui)
local WW,HH=420,470
local main=rnd(mk("Frame",{Size=UDim2.fromOffset(WW,HH),Position=UDim2.new(.5,-WW/2,.5,-HH/2),BackgroundColor3=C.bg,BackgroundTransparency=.2,BorderSizePixel=0,ClipsDescendants=true},gui),12)
mk("UIStroke",{Color=W,Transparency=.75,Thickness=1.5},main)
local bar=mk("Frame",{Size=UDim2.new(1,0,0,38),BackgroundColor3=C.bar,BackgroundTransparency=.1,BorderSizePixel=0},main)
lab(bar,"Script Glebasa V2",UDim2.new(0,14,0,0),UDim2.new(1,-90,1,0),W,14,GB)
local function bb(t,x) return rnd(mk("TextButton",{Size=UDim2.fromOffset(26,26),Position=UDim2.new(1,x,.5,-13),BackgroundColor3=C.off,Text=t,TextColor3=W,Font=GB,TextSize=14},bar),6) end
local minB,clsB=bb("-",-62),bb("X",-32)
local ICONS={
Player={{"f",6,1,6,6,99},{"f",3,9,12,8,5}},
Aim={{"r",3,3,12,12,99},{"f",8.25,0,1.5,18},{"f",0,8.25,18,1.5}},
Esp={{"r",1,3.5,16,11,99},{"f",6,6,6,6,99}},
Chams={{"r",3.5,3.5,11,11,2,45},{"f",6.5,6.5,5,5,1,45}},
Graphics={{"r",1,2,16,11,2},{"f",7.5,13.5,3,2},{"f",4,15.5,10,1.5}},
Main={{"f",1,3,16,1.5},{"f",1,8.25,16,1.5},{"f",1,13.5,16,1.5},{"f",10,1.25,5,5,99},{"f",3,6.5,5,5,99},{"f",8,11.75,5,5,99}},
Settings={{"r",4,4,10,10,99},{"f",8,0,2,3},{"f",8,15,2,3},{"f",0,8,3,2},{"f",15,8,3,2},{"f",7.5,7.5,3,3,99}},
}
local tabBar=mk("Frame",{Position=UDim2.new(0,10,0,46),Size=UDim2.new(1,-20,0,44),BackgroundTransparency=1},main)
mk("UIListLayout",{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.new(0,6)},tabBar)
local holder=mk("Frame",{Position=UDim2.new(0,0,0,98),Size=UDim2.new(1,0,1,-102),BackgroundTransparency=1},main)
local pages,tabs,curTab={},{},"Player"
local function pick(n)
curTab=n
for k,pg in pairs(pages) do
local a=k==n
pg.Visible=a
local t=tabs[k]
t.b.BackgroundColor3=a and W or C.card
t.b.BackgroundTransparency=a and 0 or .3
local col=a and C.bar or C.dim
t.l.TextColor3=col
for _,e in ipairs(t.p) do if e.f then e.f.BackgroundColor3=col else e.s.Color=col end end
end
end
local function addTab(n)
local b=rnd(mk("TextButton",{Size=UDim2.new(1/7,-6,1,0),BackgroundColor3=C.card,Text="",AutoButtonColor=false},tabBar))
local ic=mk("Frame",{Size=UDim2.fromOffset(18,18),Position=UDim2.new(.5,-9,0,5),BackgroundTransparency=1},b)
local ps={}
for _,s in ipairs(ICONS[n]) do
local f=mk("Frame",{Position=UDim2.fromOffset(s[2],s[3]),Size=UDim2.fromOffset(s[4],s[5]),BorderSizePixel=0,BackgroundColor3=C.dim,Rotation=s[7] or 0},ic)
if s[6] then rnd(f,s[6]) end
if s[1]=="r" then f.BackgroundTransparency=1 ps[#ps+1]={s=mk("UIStroke",{Thickness=1.5,Color=C.dim},f)} else ps[#ps+1]={f=f} end
end
local l=lab(b,n,UDim2.new(0,0,1,-17),UDim2.new(1,0,0,14),C.dim,11,GB) l.TextXAlignment=Enum.TextXAlignment.Center
tabs[n]={b=b,l=l,p=ps}
local pg=mk("ScrollingFrame",{Size=UDim2.new(1,0,1,0),BackgroundTransparency=1,BorderSizePixel=0,ScrollBarThickness=3,ScrollBarImageColor3=W,CanvasSize=UDim2.new(),AutomaticCanvasSize=Enum.AutomaticSize.Y,Visible=false},holder)
mk("UIListLayout",{Padding=UDim.new(0,6),HorizontalAlignment=Enum.HorizontalAlignment.Center},pg)
mk("UIPadding",{PaddingTop=UDim.new(0,2),PaddingBottom=UDim.new(0,10)},pg)
pages[n]=pg
b.MouseButton1Click:Connect(function() pick(n) end)
return pg
end
-- rows
local function row(pg,h) local f=rnd(mk("Frame",{Size=UDim2.new(1,-20,0,h or 34),BackgroundColor3=C.card,BackgroundTransparency=.3},pg)) cards[#cards+1]=f return f end
local function sbtn(par,t,size,pos) return rnd(mk("TextButton",{Size=size,Position=pos,BackgroundColor3=C.off,TextColor3=W,Font=GB,TextSize=12,Text=t},par),6) end
local function sec(pg,t) lab(pg,t:upper(),UDim2.new(),UDim2.new(1,-24,0,18),C.dim,11,GB) end
local dragFn
on(UIS.InputChanged,function(i) if dragFn and (i.UserInputType==Enum.UserInputType.MouseMovement or i.UserInputType==Enum.UserInputType.Touch) then dragFn(i.Position.X) end end)
on(UIS.InputEnded,function(i) if ptr(i) then dragFn=nil end end)
-- card = toggle (+ slider) (+ color palette). sl={label,key,min,max}
local function card(pg,name,key,fn,sl,col)
local y0=34+(sl and 38 or 0)
local f=row(pg,y0+(col and 36 or 0))
local b=mk("TextButton",{Size=UDim2.new(1,0,0,34),BackgroundTransparency=1,Text="",AutoButtonColor=false},f)
lab(b,name,UDim2.new(0,12,0,0),UDim2.new(1,-60,1,0),W,13)
if key then
local sw=rnd(mk("Frame",{Size=UDim2.fromOffset(38,20),Position=UDim2.new(1,-48,.5,-10)},b),10)
local kn=rnd(mk("Frame",{Size=UDim2.fromOffset(16,16)},sw),8)
local function draw(anim)
local v=S[key]
sw.BackgroundColor3=v and W or C.off kn.BackgroundColor3=v and C.bar or W
local p=v and UDim2.new(1,-18,.5,-8) or UDim2.new(0,2,.5,-8)
if anim then kn:TweenPosition(p,"Out","Quad",.15,true) else kn.Position=p end
end
draw() draws[key]=draw
toggles[key]=function(v) S[key]=v draw(true) if fn then fn(v) end end
b.MouseButton1Click:Connect(function() toggles[key](not S[key]) end)
end
if sl or col then mk("Frame",{Size=UDim2.new(1,-24,0,1),Position=UDim2.new(0,12,0,34),BackgroundColor3=C.off,BorderSizePixel=0},f) end
if sl then
local lb=lab(f,"",UDim2.new(0,12,0,39),UDim2.new(1,-24,0,18),C.dim,12)
local tr=rnd(mk("Frame",{Size=UDim2.new(1,-24,0,6),Position=UDim2.new(0,12,0,60),BackgroundColor3=C.off,BorderSizePixel=0},f),3)
local fl=rnd(mk("Frame",{BackgroundColor3=W,BorderSizePixel=0},tr),3)
local k,mn,mx=sl[2],sl[3],sl[4]
local function set(v) v=math.clamp(math.floor(v+.5),mn,mx) S[k]=v lb.Text=sl[1]..": "..v fl.Size=UDim2.new((v-mn)/(mx-mn),0,1,0) end
set(S[k]) refresh[#refresh+1]=function() set(S[k]) end
local function up(x) set(mn+(mx-mn)*math.clamp((x-tr.AbsolutePosition.X)/tr.AbsoluteSize.X,0,1)) end
tr.InputBegan:Connect(function(i) if ptr(i) then dragFn=up up(i.Position.X) end end)
end
if col then
local rw=mk("Frame",{Position=UDim2.new(0,12,0,y0+5),Size=UDim2.new(1,-24,0,24),BackgroundTransparency=1},f)
mk("UIListLayout",{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.new(0,5)},rw)
local ss={}
local function mark() for c,s in pairs(ss) do s.Thickness=S[col]==c and 2 or 0 end end
for _,c in ipairs(PAL) do
local sb=rnd(mk("TextButton",{Size=UDim2.fromOffset(24,24),BackgroundColor3=c,Text="",AutoButtonColor=false},rw),12)
ss[c]=mk("UIStroke",{Color=c3(120,170,255),Thickness=0,ApplyStrokeMode=Enum.ApplyStrokeMode.Border},sb)
sb.MouseButton1Click:Connect(function() S[col]=c mark() end)
end
mark() refresh[#refresh+1]=mark
end
end
local function choice(pg,n,k,opts)
local f=row(pg) lab(f,n,UDim2.new(0,12,0,0),UDim2.new(.4,0,1,0),W,13)
local b=sbtn(f,S[k],UDim2.new(.55,-12,0,24),UDim2.new(.45,0,0,5))
b.MouseButton1Click:Connect(function() S[k]=opts[(table.find(opts,S[k]) or 0)%#opts+1] b.Text=S[k] end)
refresh[#refresh+1]=function() b.Text=S[k] end
end
local cap
local function keybind(pg,n,k)
local f=row(pg) lab(f,n,UDim2.new(0,12,0,0),UDim2.new(.4,0,1,0),W,13)
local b=sbtn(f,S[k],UDim2.new(.55,-12,0,24),UDim2.new(.45,0,0,5))
b.MouseButton1Click:Connect(function() cap={k,b} b.Text="press a key..." end)
refresh[#refresh+1]=function() b.Text=S[k] end
end
local function button(pg,t,fn)
local b=sbtn(row(pg),t,UDim2.new(1,-16,0,26),UDim2.new(0,8,.5,-13))
b.MouseButton1Click:Connect(function() fn(b) end)
end
local function pickCard(pg)
local f=row(pg,74) lab(f,"Player",UDim2.new(0,12,0,0),UDim2.new(.4,0,0,34),W,13)
local nb=sbtn(f,"none",UDim2.new(.55,-12,0,24),UDim2.new(.45,0,0,5))
nb.MouseButton1Click:Connect(function()
local l={} for _,p in ipairs(Pl:GetPlayers()) do if p~=LP then l[#l+1]=p end end
sel=#l>0 and l[(table.find(l,sel) or 0)%#l+1] or nil
nb.Text=sel and sel.DisplayName or "none"
end)
sbtn(f,"Teleport",UDim2.new(.5,-14,0,26),UDim2.new(0,8,0,40)).MouseButton1Click:Connect(tpSel)
specB=sbtn(f,"Spectate",UDim2.new(.5,-14,0,26),UDim2.new(.5,6,0,40))
specB.MouseButton1Click:Connect(function() if specOn then stopSpec() elseif sel then specOn=true specB.Text="Stop spectate" end end)
end
-- theme / alpha / config
local THEMES={Gray={c3(38,38,42),c3(8,8,8),c3(14,14,16)},Black={c3(14,14,16),c3(0,0,0),c3(28,28,32)},Blue={c3(13,20,42),c3(5,7,14),c3(8,11,22)}}
local function applyAlpha()
local t=S.menuAlpha/100
main.BackgroundTransparency=t bar.BackgroundTransparency=t*.5
for _,f in ipairs(cards) do f.BackgroundTransparency=math.clamp(t+.1,0,.95) end
end
local function applyTheme(n)
local t=THEMES[n] or THEMES.Gray
C.bg,C.bar,C.card=t[1],t[2],t[3]
main.BackgroundColor3=C.bg bar.BackgroundColor3=C.bar
for _,f in ipairs(cards) do f.BackgroundColor3=C.card end
for _,d in pairs(draws) do d() end
pick(curTab) applyAlpha()
end
local lastA,lastT=-1,""
on(RS.Heartbeat,function()
if S.theme~=lastT then lastT=S.theme lastA=S.menuAlpha applyTheme(S.theme)
elseif S.menuAlpha~=lastA then lastA=S.menuAlpha applyAlpha() end
end)
local CFG="GlebasaV2_config.json"
local function save()
if not writefile then return "No file API" end
local t={} for k,v in pairs(S) do t[k]=typeof(v)=="Color3" and {r=v.R,g=v.G,b=v.B} or v end
return pcall(function() writefile(CFG,HS:JSONEncode(t)) end) and "Saved!" or "Save failed"
end
local function load()
if not(readfile and isfile) then return "No file API" end
if not isfile(CFG) then return "No saved config" end
local ok,d=pcall(function() return HS:JSONDecode(readfile(CFG)) end)
if not ok or type(d)~="table" then return "Load failed" end
for k,v in pairs(d) do
if S[k]~=nil then
if typeof(S[k])=="Color3" then if type(v)=="table" and v.r then S[k]=Color3.new(v.r,v.g,v.b) end
elseif type(v)==type(S[k]) then S[k]=v end
end
end
for k,fn in pairs(toggles) do pcall(fn,S[k]) end
for _,fn in ipairs(refresh) do pcall(fn) end
return "Loaded!"
end
-- ===== Tabs =====
local p=addTab("Player")
card(p,"Speed","speed",function(v) if not v and hum() then hum().WalkSpeed=16 end end,{"Speed value","speedVal",16,300})
card(p,"Spin","spin",nil,{"Spin speed","spinVal",50,3000})
card(p,"Gravity","gravity",function(v) if not v then workspace.Gravity=OG end end,{"Gravity value","gravVal",0,196})
card(p,"Jump","jump",function(v) if not v and hum() then hum().JumpPower=50 end end,{"Jump value","jumpVal",50,400})
card(p,"Fly (WASD / Space / Ctrl)","fly",function(v) if v then flyOn() else flyOff() end end,{"Fly speed","flyVal",10,300})
card(p,"Fly buttons on screen (mobile)","flyBtns")
card(p,"Infinite Jump","infJump")
card(p,"Noclip","noclip")
card(p,"Invisible (only you see it)","invis",function(v) if not v then invisRestore() end end,{"Transparency %","invisVal",0,100})
sec(p,"Survival")
card(p,"Auto heal","autoHeal")
card(p,"Anti ragdoll","antiRagdoll",function(v) if not v then ragdoll(true) end end)
card(p,"No fall damage","noFall")
card(p,"Bunny hop (hold Space)","bhop")
sec(p,"Players")
pickCard(p)
p=addTab("Aim")
sec(p,"Aimbot")
card(p,"Aimbot","aim",nil,{"Aim speed (100 = instant)","aimSpeed",1,100})
choice(p,"Aim key","aimKey",{"Right mouse","Left mouse","Always"})
choice(p,"Target part","aimPart",{"Head","Torso"})
choice(p,"Target mode","aimMode",{"Closest to cursor","Closest distance"})
sec(p,"Filters")
card(p,"Team check","aimTeam")
card(p,"Wall check (visible only)","aimWall")
card(p,"Max distance",nil,nil,{"Distance","aimMax",50,5000})
card(p,"Prediction (moving targets)","aimPred",nil,{"Prediction strength","aimPredVal",0,100})
card(p,"Sticky target","aimSticky")
card(p,"Ignore friends","aimFriends")
card(p,"Hit chance",nil,nil,{"Hit chance %","aimHit",1,100})
card(p,"Random offset",nil,nil,{"Offset (tenths of a stud)","aimJitter",0,50})
sec(p,"FOV circle")
card(p,"Show FOV circle","aimShowFov",nil,{"Radius","aimFov",20,600},"colFov")
sec(p,"Extras")
card(p,"Target line","aimLine",nil,nil,"colAimLine")
card(p,"Triggerbot (auto click)","trigger",nil,{"Delay (ms)","trigDelay",0,500})
p=addTab("Esp")
card(p,"ESP","esp",nil,{"Max distance","espMax",100,5000})
card(p,"Box","espBox",nil,nil,"colBox")
card(p,"Skeleton","espSkeleton",nil,nil,"colSkel")
card(p,"Lines (tracers)","espTracers",nil,nil,"colTracer")
card(p,"Distance","espDist",nil,nil,"colDist")
card(p,"Nickname","espName",nil,nil,"colName")
card(p,"Look line (orange / red = looking at you)","espLook")
card(p,"Health bar","espHealth")
card(p,"Tool / weapon name","espTool",nil,nil,"colTool")
card(p,"Team colors","espTeamCol")
card(p,"Offscreen arrows","espArrows",nil,nil,"colArrow")
sec(p,"World")
card(p,"NPC ESP","espNpc",nil,nil,"colNpc")
card(p,"Item ESP (tools on the ground)","espItem",nil,nil,"colItem")
sec(p,"Radar")
card(p,"Radar","radar",nil,{"Radar size","radarSize",80,260})
card(p,"Radar range",nil,nil,{"Range (studs)","radarRange",50,1000})
p=addTab("Chams")
sec(p,"Chams")
card(p,"Chams (players)","chams")
card(p,"Fill color",nil,nil,{"Fill transparency %","chamsFillT",0,100},"chamsFill")
card(p,"Outline color",nil,nil,{"Outline transparency %","chamsOutT",0,100},"chamsOutline")
card(p,"See through walls","chamsWalls")
card(p,"Rainbow","chamsRainbow",nil,{"Rainbow speed","chamsRainSpeed",1,30})
card(p,"Self chams (my character)","chamsSelf")
sec(p,"Material")
card(p,"Neon body","chamsNeon",function(v) if not v then neonRestore() end end,nil,"chamsNeonCol")
p=addTab("Graphics")
local function rl(v) if not v then restoreLight() end end
sec(p,"Lighting")
card(p,"Fullbright","fullbright",rl,{"Brightness","fbBright",1,10})
card(p,"Time of day","timeOn",rl,{"Hour (0-24)","timeVal",0,24})
card(p,"Exposure","expOn",rl,{"Exposure (x0.1)","expVal",-30,30})
card(p,"Custom ambient light","ambient",rl,nil,"ambCol")
card(p,"Rainbow ambient","ambRainbow",rl)
card(p,"Color tint","tintOn",nil,nil,"tintCol")
card(p,"Saturation","satOn",nil,{"Saturation (-100 gray, +100 vivid)","satVal",-100,100})
card(p,"Contrast","conOn",nil,{"Contrast","conVal",-100,100})
sec(p,"Fog and shadows")
card(p,"No fog","noFog",rl)
card(p,"Custom fog","fogOn",rl,{"Fog distance","fogVal",20,2000},"fogCol")
card(p,"No shadows","noShadows",rl)
sec(p,"Effects")
card(p,"Bloom (glow)","bloomOn",nil,{"Intensity","bloomVal",0,100})
card(p,"Sun rays","sunOn",nil,{"Intensity","sunVal",0,100})
card(p,"Blur","blurOn",nil,{"Blur size","blurVal",0,40})
card(p,"Disable game effects","noFx",noFx)
sec(p,"Camera")
card(p,"Custom FOV","fov",function(v) if not v then Cam.FieldOfView=OF end end,{"FOV","fovVal",40,120})
card(p,"Zoom (hold Z)","zoomHold",nil,{"Zoom FOV","zoomHoldFov",5,60})
card(p,"Max zoom","zoom",function(v) if not v then LP.CameraMaxZoomDistance=OZ end end,{"Zoom distance","zoomVal",10,2000})
sec(p,"Performance")
card(p,"FPS booster","fpsBoost",fpsBoost)
card(p,"Potato graphics (plain textures)","potato",potato)
sec(p,"HUD")
card(p,"Custom crosshair","crossOn",nil,{"Size","crossSize",4,40},"colCross")
choice(p,"Crosshair style","crossStyle",{"Cross","Dot","Circle","Cross+Dot"})
p=addTab("Main")
sec(p,"General")
card(p,"Anti AFK","antiAfk")
card(p,"Click TP (Ctrl + click)","clickTP")
card(p,"Auto rejoin on disconnect","autoRejoin")
sec(p,"Movement helpers")
card(p,"Sprint (hold Shift)","sprint",nil,{"Sprint speed","sprintVal",16,300})
card(p,"Anti void (back to last safe spot)","antiVoid")
card(p,"Anti fling (no player collisions)","antiFling")
sec(p,"Utility")
card(p,"Auto clicker","autoClick",nil,{"Clicks per second","clickCps",1,30})
card(p,"Click delete (hold X + click)","clickDel")
card(p,"FPS cap","fpsCap",function(v) if not v then capApplied=nil if setfpscap then pcall(setfpscap,60) end end end,{"FPS limit","fpsCapVal",30,360})
sec(p,"Position")
button(p,"Save position",function(b) local r=hrp() if r then saved=r.CFrame b.Text="Saved!" else b.Text="No character" end task.delay(1.5,function() b.Text="Save position" end) end)
button(p,"Teleport to saved position",function(b) local r=hrp() if r and saved then r.CFrame=saved b.Text="Teleported!" else b.Text="Nothing saved" end task.delay(1.5,function() b.Text="Teleport to saved position" end) end)
button(p,"Reset character",function() local h=hum() if h then h.Health=0 end end)
button(p,"Respawn at same spot",respawnHere)
sec(p,"Info")
local info=lab(row(p),"",UDim2.new(0,12,0,0),UDim2.new(1,-24,1,0),C.dim,12)
do
local t0,ia=os.clock(),1
on(RS.Heartbeat,function(dt)
ia+=dt
if ia>=1 then
ia=0
local t=math.floor(os.clock()-t0)
info.Text="Players: "..#Pl:GetPlayers().."/"..Pl.MaxPlayers.." Session: "..math.floor(t/60)..":"..string.format("%02d",t%60)
end
end)
end
local function copyBtn(t,val)
button(p,t,function(b)
local clip=setclipboard or toclipboard
b.Text=clip and (pcall(clip,tostring(val)) and "Copied!" or "Copy failed") or "No clipboard API"
task.delay(1.5,function() b.Text=t end)
end)
end
copyBtn("Copy Place ID",game.PlaceId)
copyBtn("Copy Job ID (server)",game.JobId)
sec(p,"Server")
button(p,"Rejoin",function(b) b.Text="Rejoining..." rejoin() end)
button(p,"Server hop",function(b) b.Text="Searching server..." hop() end)
p=addTab("Settings")
sec(p,"Menu")
card(p,"Menu transparency",nil,nil,{"Transparency %","menuAlpha",0,80})
choice(p,"Theme","theme",{"Gray","Black","Blue"})
keybind(p,"Menu key","menuKey")
sec(p,"Hotkeys (toggle features)")
for _,v in ipairs{{"Fly","keyFly"},{"Noclip","keyNoclip"},{"Speed","keySpeed"},{"Spin","keySpin"},{"Aimbot","keyAim"},{"ESP","keyEsp"}} do keybind(p,v[1],v[2]) end
sec(p,"Config")
button(p,"Save config",function(b) b.Text=save() task.delay(1.5,function() b.Text="Save config" end) end)
button(p,"Load config",function(b) b.Text=load() task.delay(1.5,function() b.Text="Load config" end) end)
pick("Player")
-- ===== Overlays: FPS/ping, fly buttons, crosshair, radar =====
local sg=mk("ScreenGui",{Name="GV2Stats",ResetOnSpawn=false,IgnoreGuiInset=true,DisplayOrder=20}) mount(sg)
local sf=rnd(mk("Frame",{AnchorPoint=Vector2.new(1,0),Position=UDim2.new(1,-10,0,10),Size=UDim2.fromOffset(170,26),BackgroundColor3=C.bar,BackgroundTransparency=.35,BorderSizePixel=0},sg))
mk("UIStroke",{Color=W,Transparency=.8},sf)
local stx=mk("TextLabel",{Size=UDim2.new(1,0,1,0),BackgroundTransparency=1,TextColor3=W,Font=GB,TextSize=12,Text="FPS: -- | Ping: --"},sf)
local function fb(t,y)
local b=rnd(mk("TextButton",{AnchorPoint=Vector2.new(1,1),Position=UDim2.new(1,-110,1,y),Size=UDim2.fromOffset(64,44),BackgroundColor3=C.bar,BackgroundTransparency=.3,Text=t,TextColor3=W,Font=GB,TextSize=14,Visible=false},sg),10)
return b
end
local fU,fD=fb("UP",-130),fb("DOWN",-76)
local function hold(b,set)
b.InputBegan:Connect(function(i) if ptr(i) then set(true) end end)
b.InputEnded:Connect(function(i) if ptr(i) then set(false) end end)
end
hold(fU,function(v) flyUp=v end) hold(fD,function(v) flyDn=v end)
local function bx() return mk("Frame",{AnchorPoint=Vector2.new(.5,.5),BorderSizePixel=0,Visible=false},sg) end
local ch={bx(),bx(),bx(),bx()} local dot=bx()
local ring=rnd(mk("Frame",{AnchorPoint=Vector2.new(.5,.5),BackgroundTransparency=1,Visible=false},sg),999)
local rst=mk("UIStroke",{Thickness=1.5},ring)
local rad=rnd(mk("Frame",{Position=UDim2.fromOffset(10,90),BackgroundColor3=C.bar,BackgroundTransparency=.4,BorderSizePixel=0,Visible=false},sg),999)
mk("UIStroke",{Color=W,Transparency=.7},rad)
rnd(mk("Frame",{AnchorPoint=Vector2.new(.5,.5),Position=UDim2.fromScale(.5,.5),Size=UDim2.fromOffset(6,6),BackgroundColor3=c3(255,230,60),BorderSizePixel=0},rad),3)
local rd={}
local Stats=game:GetService("Stats")
local acc,fr=0,0
on(RS.RenderStepped,function(dt)
acc+=dt fr+=1
if acc>=.5 then
local ping=0
pcall(function() ping=math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()+.5) end)
stx.Text="FPS: "..math.floor(fr/acc+.5).." | Ping: "..ping.." ms"
acc,fr=0,0
end
local sf2=S.fly and S.flyBtns
fU.Visible=sf2 fD.Visible=sf2
if not sf2 then flyUp=false flyDn=false end
local st,sz,cl=S.crossStyle,S.crossSize,S.colCross
local ln=S.crossOn and (st=="Cross" or st=="Cross+Dot")
local g=3+sz/2
local ps={{-g,0,sz,2},{g,0,sz,2},{0,-g,2,sz},{0,g,2,sz}}
for i,f in ipairs(ch) do
local q=ps[i]
f.Visible=ln f.BackgroundColor3=cl f.Position=UDim2.new(.5,q[1],.5,q[2]) f.Size=UDim2.fromOffset(q[3],q[4])
end
dot.Visible=S.crossOn and (st=="Dot" or st=="Cross+Dot" or st=="Circle")
dot.BackgroundColor3=cl dot.Size=UDim2.fromOffset(4,4) dot.Position=UDim2.fromScale(.5,.5)
ring.Visible=S.crossOn and st=="Circle"
ring.Size=UDim2.fromOffset(sz*2,sz*2) ring.Position=UDim2.fromScale(.5,.5) rst.Color=cl
rad.Visible=S.radar
if not S.radar then return end
rad.Size=UDim2.fromOffset(S.radarSize,S.radarSize)
local R=S.radarSize/2
for _,pl in ipairs(Pl:GetPlayers()) do
if pl~=LP then
local d=rd[pl]
if not d then d=rnd(mk("Frame",{AnchorPoint=Vector2.new(.5,.5),Size=UDim2.fromOffset(6,6),BorderSizePixel=0},rad),3) rd[pl]=d end
local c=pl.Character
local root,h=c and c:FindFirstChild("HumanoidRootPart"),c and c:FindFirstChildOfClass("Humanoid")
if root and h and h.Health>0 then
local rel=Cam.CFrame:PointToObjectSpace(root.Position)
local v=Vector2.new(rel.X,rel.Z)/S.radarRange*R
if v.Magnitude>R-4 then v=v.Unit*(R-4) end
d.Position=UDim2.fromOffset(R+v.X,R+v.Y) d.BackgroundColor3=pcol(pl,c3(255,60,60)) d.Visible=true
else d.Visible=false end
end
end
end)
on(Pl.PlayerRemoving,function(pl)
if chl[pl] then chl[pl]:Destroy() chl[pl]=nil end
if rd[pl] then rd[pl]:Destroy() rd[pl]=nil end
if sel==pl then if specOn then stopSpec() end sel=nil end
rmEsp(pl)
end)
-- ===== Drag / minimize / close / hotkeys =====
do
local dg,sp,si
bar.InputBegan:Connect(function(i) if ptr(i) then dg,si,sp=true,i.Position,main.Position end end)
on(UIS.InputChanged,function(i)
if dg and (i.UserInputType==Enum.UserInputType.MouseMovement or i.UserInputType==Enum.UserInputType.Touch) then
local d=i.Position-si
main.Position=UDim2.new(sp.X.Scale,sp.X.Offset+d.X,sp.Y.Scale,sp.Y.Offset+d.Y)
end
end)
on(UIS.InputEnded,function(i) if ptr(i) then dg=false end end)
end
local mini=false
minB.MouseButton1Click:Connect(function() mini=not mini main:TweenSize(UDim2.fromOffset(WW,mini and 38 or HH),"Out","Quad",.2,true) end)
local function destroy()
run=false
for k,v in pairs(S) do if type(v)=="boolean" then S[k]=false end end
pcall(stopSpec) pcall(function() ragdoll(true) end) fpsBoost(false) potato(false) flyOff() neonRestore() invisRestore() noFx(false) restoreLight()
workspace.Gravity=OG Cam.FieldOfView=OF LP.CameraMaxZoomDistance=OZ
pcall(function() RS:UnbindFromRenderStep("GV2Aim") end)
local h=hum() if h then h.WalkSpeed=16 h.JumpPower=50 end
if setfpscap and capApplied then pcall(setfpscap,60) end
for _,c in ipairs(conns) do pcall(function() c:Disconnect() end) end
for _,hl in pairs(chl) do hl:Destroy() end
cc:Destroy() bloom:Destroy() sun:Destroy() blur:Destroy() eg:Destroy() sg:Destroy() gui:Destroy()
end
clsB.MouseButton1Click:Connect(destroy)
if getgenv then getgenv().__GV2=destroy end
local HK={fly="keyFly",noclip="keyNoclip",speed="keySpeed",spin="keySpin",aim="keyAim",esp="keyEsp"}
on(UIS.InputBegan,function(i,gp)
if i.UserInputType~=Enum.UserInputType.Keyboard then return end
if cap then
local n=i.KeyCode==Enum.KeyCode.Escape and "None" or i.KeyCode.Name
S[cap[1]]=n cap[2].Text=n cap=nil
return
end
if gp then return end
local kn=i.KeyCode.Name
if kn==S.menuKey then gui.Enabled=not gui.Enabled return end
for f,k in pairs(HK) do if S[k]~="None" and kn==S[k] and toggles[f] then toggles[f](not S[f]) end end
end)
Script worked? 🚀 Boost it to #1 so others find it too.
Similar Scripts
2,767
12 days ago
Free
Universal
Samui Aimlock and FPS boost script keyless
2,948
12 days ago
Free
Universal
Universal Silent Aim - Zytra Hub
2,533
12 days ago
Free
Universal
Universal | ESP, Name Tags, Tracer and MORE!
2,937
16 days ago
Free
Universal
EZ hub ( script izheven ) Advanced script hub
2,787
18 days ago
Free
Universal
Blueberry Client 3.5 script | Animator, Modules
3,159
21 days ago
Free
Universal
Astro Universal script with Custom Char support (Keyless)
🚀
Log in to boost
Boosting rockets this script to #1 on the homepage. A free account takes 30 seconds.
Log in
🚀
Out of boosts!
Grab boosts and rocket your favorite scripts to the top — plus join the booster wall with the RGB ring.
⚡ Go Pro — 10 boosts/month + zero ads
🚀
Boost this script?
It jumps to #1 in Recent Scripts and your avatar joins the booster wall.
🚀
Boosted! You're awesome 💜
Comments (0)
Log in to add a comment.