local P,US,RS,TS,WS,CG=game:GetService("Players"),game:GetService("UserInputService"),game:GetService("RunService"),game:GetService("TweenService"),game:GetService("Workspace"),game:GetService("CoreGui") local plr,en,lck,lJT=P.LocalPlayer,false,false,0 local S={CD=0.33,JV=61,PD=true,VF=true} pcall(function()CG.WallhopGUI:Destroy()end)pcall(function()plr.PlayerGui.WallhopGUI:Destroy()end) local sg=Instance.new("ScreenGui",pcall(function()return CG end)and CG or plr.PlayerGui)sg.Name,sg.ResetOnSpawn,sg.ZIndexBehavior,sg.IgnoreGuiInset="WallhopGUI",false,Enum.ZIndexBehavior.Sibling,true local f=Instance.new("Frame",sg)f.Size,f.Position,f.BackgroundTransparency,f.BorderSizePixel=UDim2.new(0,60,0,60),UDim2.new(0.5,-30,0.2,0),1,0 Instance.new("UICorner",f).CornerRadius=UDim.new(1,0) local st=Instance.new("UIStroke",f)st.Color,st.Thickness=Color3.new(1,1,1),1.5 local tg=Instance.new("TextButton",f)tg.Size,tg.BackgroundTransparency,tg.Text=UDim2.new(1,0,1,0),1,"" Instance.new("UICorner",tg).CornerRadius=UDim.new(1,0) local sL=Instance.new("TextLabel",f)sL.Size,sL.BackgroundTransparency,sL.Text,sL.TextColor3,sL.TextSize,sL.Font=UDim2.new(1,0,1,0),1,"OFF",Color3.new(1,1,1),10,Enum.Font.GothamBold local lB=Instance.new("TextButton",f)lB.Size,lB.Position,lB.BackgroundTransparency,lB.Text,lB.TextColor3,lB.TextSize,lB.Font=UDim2.new(0,18,0,18),UDim2.new(0.5,-9,1,4),1,"×",Color3.new(1,1,1),14,Enum.Font.GothamBold local tF=Instance.new("Folder",f)tF.Name="CT"local tL={} local function sCT() tF:ClearAllChildren()table.clear(tL)local txt,rad,aS="WALL HOP",37,math.rad(11.5)local chars={}for i=1,#txt do chars[i]=txt:sub(i,i)end local startA=-((#chars-1)/2)*aS for i,c in ipairs(chars)do if c~=" " then local a=startA+(i-1)*aS local lb=Instance.new("TextLabel",tF)lb.Size,lb.BackgroundTransparency,lb.Text,lb.TextSize,lb.Font,lb.Rotation=UDim2.new(0,12,0,12),1,c,9,Enum.Font.GothamBold,math.deg(a)lb.Position=UDim2.new(0,30+rad*math.sin(a)-6,0,30-rad*math.cos(a)-6)tL[#tL+1]=lb end end end sCT() RS.Heartbeat:Connect(function()local bH=(tick()*0.25)%1 for i,l in ipairs(tL)do l.TextColor3=Color3.fromHSV((bH+i*0.07)%1,1,1)end end) local dH=Instance.new("TextButton",f)dH.Size,dH.Position,dH.BackgroundTransparency,dH.Text=UDim2.new(0,80,0,40),UDim2.new(0.5,-40,0,-38),1,"" local drg,dS,sP dH.InputBegan:Connect(function(inp)if not lck and(inp.UserInputType==Enum.UserInputType.Touch or inp.UserInputType==Enum.UserInputType.MouseButton1)then drg,dS,sP=true,inp.Position,f.Position inp.Changed:Connect(function()if inp.UserInputState==Enum.UserInputState.End then drg=false end end)end end) US.InputChanged:Connect(function(inp)if drg and not lck and(inp.UserInputType==Enum.UserInputType.Touch or inp.UserInputType==Enum.UserInputType.MouseMovement)then local d=inp.Position-dS f.Position=UDim2.new(sP.X.Scale,sP.X.Offset+d.X,sP.Y.Scale,sP.Y.Offset+d.Y)end end) lB.MouseButton1Click:Connect(function()lck=not lck lB.TextColor3=lck and Color3.fromRGB(255,60,60)or Color3.new(1,1,1)end) tg.MouseButton1Click:Connect(function()en=not en sL.Text=en and"ON"or"OFF"end) local fFr=Instance.new("Frame",sg)fFr.Size,fFr.BackgroundColor3,fFr.BackgroundTransparency,fFr.ZIndex=UDim2.new(1,0,1,0),Color3.new(1,1,1),1,100 local op=OverlapParams.new() local function gCC(ch,rt)if not rt then return 0 end op.FilterType,op.FilterDescendantsInstances=Enum.RaycastFilterType.Exclude,{ch}local cnt=0 for _,p in ipairs(WS:GetPartBoundsInBox(rt.CFrame*CFrame.new(0,-1.6,0),Vector3.new(3.8,3.2,3.8),op))do if p.CanCollide then cnt+=1 end end return cnt end local function gWN(ch,rt)local rp=RaycastParams.new()rp.FilterType,rp.FilterDescendantsInstances,rp.IgnoreWater=Enum.RaycastFilterType.Exclude,{ch},true local dirs={rt.CFrame.RightVector,-rt.CFrame.RightVector,rt.CFrame.LookVector,-rt.CFrame.LookVector}local bN,bD=nil,math.huge for _,d in ipairs(dirs)do local res=WS:Raycast(rt.Position,d*3.5,rp)if res and res.Instance and res.Instance.CanCollide and res.Distance=0.01 then wD=wD.Unit local hV=Vector3.new(rt.AssemblyLinearVelocity.X,0,rt.AssemblyLinearVelocity.Z)if hV.Magnitude>0.1 and hV:Dot(wD)<0 then wD=-wD end local hS=math.max(hV.Magnitude,8)rt.AssemblyLinearVelocity=Vector3.new(wD.X*hS,S.JV,wD.Z*hS)rt.CFrame=CFrame.lookAt(rt.Position,rt.Position+wD)if S.VF then TS:Create(fFr,TweenInfo.new(0.08),{BackgroundTransparency=0.92}):Play()task.delay(0.1,function()TS:Create(fFr,TweenInfo.new(0.2),{BackgroundTransparency=1}):Play()end)end end end) plr.CharacterRemoving:Connect(function()lJT=0 end)