return function()local Q,x,n,Z,N,g,T,y,V,W,r,d,e,p,F,E,X,w,j,G,K,m,O,C,P,q,v,H,Y,o,k,h,b,c,J,R,M,B,S,f,z,a,I,D,l,A,i,u,s,U,t,L,Qr,xr,nr,Zr,Nr,gr,Tr,yr=_G,game,script,getfenv,setfenv,workspace,getmetatable,setmetatable,loadstring,coroutine,rawequal,typeof,print,math,warn,error,pcall,xpcall,select,rawset,rawget,ipairs,pairs,next,Rect,Axes,os,tick,Faces,unpack,string,Color3,newproxy,tostring,tonumber,Instance,TweenInfo,BrickColor,NumberRange,ColorSequence,NumberSequence,ColorSequenceKeypoint,NumberSequenceKeypoint,PhysicalProperties,Region3int16,Vector3int16,elapsedTime,require,table,type,wait,Enum,UDim,UDim2,Vector2,Vector3,Region3,CFrame,Ray,delay local Vr=n local Wr=service local rr=client local dr,er,pr,Fr,Er,Xr,wr local function jr()Xr=rr.UI dr=rr.Anti er=rr.Core wr=rr.Variables pr=rr.Functions Fr=rr.Process Er=rr.Remote end;(Z()).client=nil;(Z()).service=nil;(Z()).script=nil rr.Functions={Init=jr,Kill=rr.Kill,GetRandom=function(Q)local x=U(Q)=="\110\117\109\098\101\114"and Q or p.random(10,15)local n={}for Q=1,x,1 do n[Q]=k.format("\037\048\050\120",p.random(255))end return s.concat(n)end,Round=function(Q)return p.floor(Q+.5)end,SetView=function(Q)if Q=="\114\101\115\101\116"then g.CurrentCamera.CameraType="\067\117\115\116\111\109"g.CurrentCamera.CameraSubject=Wr.Player.Character.Humanoid g.CurrentCamera.FieldOfView=70 else g.CurrentCamera.CameraSubject=Q end end,AddAlias=function(Q,x)wr.Aliases[Q:lower()]=x Er.Get("\085\112\100\097\116\101\065\108\105\097\115\101\115",wr.Aliases)spawn(function()Xr.MakeGui("\078\111\116\105\102\105\099\097\116\105\111\110",{Time=5,Title="\078\111\116\105\102\105\099\097\116\105\111\110";Message="\065\108\105\097\115 \097\100\100\101\100"})end)end;RemoveAlias=function(Q)if rr.Variables.Aliases[Q:lower()]then wr.Aliases[Q:lower()]=nil Er.Get("\085\112\100\097\116\101\065\108\105\097\115\101\115",wr.Aliases)spawn(function()Xr.MakeGui("\078\111\116\105\102\105\099\097\116\105\111\110",{Time=5;Title="\078\111\116\105\102\105\099\097\116\105\111\110";Message="\065\108\105\097\115 \114\101\109\111\118\101\100"})end)else spawn(function()Xr.MakeGui("\078\111\116\105\102\105\099\097\116\105\111\110",{Time=5,Title="\078\111\116\105\102\105\099\097\116\105\111\110",Message="\065\108\105\097\115 \110\111\116 \102\111\117\110\100"})end)end end,Dizzy=function(Q)Wr.StopLoop("\068\105\122\122\121\076\111\111\112")if Q then local x=g.CurrentCamera local n=H()local Z=0 local N=false Wr.StartLoop("\068\105\122\122\121\076\111\111\112","\082\101\110\100\101\114\083\116\101\112\112\101\100",function()local g=H()-n if N then Z=Z+p.rad(Q*g)else Z=Z-p.rad(Q*g)end if Z>=2.5 or Z<=-2.5 then end x.CoordinateFrame=x.CoordinateFrame*gr.Angles(0,.0,Z)n=H()end)end end;Base64Encode=function(Q)local x="\065\066\067\068\069\070\071\072\073\074\075\076\077\078\079\080\081\082\083\084\085\086\087\088\089\090\097\098\099\100\101\102\103\104\105\106\107\108\109\110\111\112\113\114\115\116\117\118\119\120\121\122\048\049\050\051\052\053\054\055\056\057\043\047"return(Q:gsub("\046",function(Q)local x,n="",k.byte(Q)for Q=8,1,-1 do x=x..(n%2^Q-n%2^(Q-1)>0 and"\049"or"\048")end return x end).."\048\048\048\048"):gsub("\037\100\037\100\037\100\063\037\100\063\037\100\063\037\100\063",function(Q)if#Q<6 then return""end local n=0 for x=1,6,1 do n=n+(k.sub(Q,x,x)=="\049"and 2^(6-x)or 0)end return k.sub(x,n+1,n+1)end)..({"","\061\061","\061"})[#Q%3+1]end;Base64Decode=function(Q)local x="\065\066\067\068\069\070\071\072\073\074\075\076\077\078\079\080\081\082\083\084\085\086\087\088\089\090\097\098\099\100\101\102\103\104\105\106\107\108\109\110\111\112\113\114\115\116\117\118\119\120\121\122\048\049\050\051\052\053\054\055\056\057\043\047"Q=k.gsub(Q,"\091\094"..(x.."\061\093"),"")return(Q:gsub("\046",function(Q)if Q=="\061"then return""end local n,Z="",k.find(x,Q)-1 for Q=6,1,-1 do n=n..(Z%2^Q-Z%2^(Q-1)>0 and"\049"or"\048")end return n end)):gsub("\037\100\037\100\037\100\063\037\100\063\037\100\063\037\100\063\037\100\063\037\100\063",function(Q)if#Q~=8 then return""end local x=0 for n=1,8,1 do x=x+(k.sub(Q,n,n)=="\049"and 2^(7-n)or 0)end return k.char(x)end)end,GetGuiData=function(Q)local x={"\065\098\115\111\108\117\116\101\080\111\115\105\116\105\111\110";"\065\098\115\111\108\117\116\101\083\105\122\101","\067\108\097\115\115\078\097\109\101","\078\097\109\101";"\080\097\114\101\110\116";"\065\114\099\104\105\118\097\098\108\101","\083\101\108\101\099\116\105\111\110\073\109\097\103\101\079\098\106\101\099\116";"\065\099\116\105\118\101","\066\097\099\107\103\114\111\117\110\100\067\111\108\111\114\051","\066\097\099\107\103\114\111\117\110\100\084\114\097\110\115\112\097\114\101\110\099\121","\066\111\114\100\101\114\067\111\108\111\114\051";"\066\111\114\100\101\114\083\105\122\101\080\105\120\101\108";"\080\111\115\105\116\105\111\110","\082\111\116\097\116\105\111\110";"\083\101\108\101\099\116\097\098\108\101";"\083\105\122\101","\083\105\122\101\067\111\110\115\116\114\097\105\110\116","\083\116\121\108\101";"\086\105\115\105\098\108\101";"\090\073\110\100\101\120","\067\108\105\112\115\068\101\115\099\101\110\100\097\110\116\115","\068\114\097\103\103\097\098\108\101","\078\101\120\116\083\101\108\101\099\116\105\111\110\068\111\119\110";"\078\101\120\116\083\101\108\101\099\116\105\111\110\076\101\102\116","\078\101\120\116\083\101\108\101\099\116\105\111\110\082\105\103\104\116","\078\101\120\116\083\101\108\101\099\116\105\111\110\085\112";"\065\117\116\111\066\117\116\116\111\110\067\111\108\111\114";"\077\111\100\097\108","\073\109\097\103\101";"\073\109\097\103\101\067\111\108\111\114\051";"\073\109\097\103\101\082\101\099\116\079\102\102\115\101\116","\073\109\097\103\101\082\101\099\116\083\105\122\101";"\073\109\097\103\101\084\114\097\110\115\112\097\114\101\110\099\121";"\083\099\097\108\101\084\121\112\101";"\083\108\105\099\101\067\101\110\116\101\114","\084\101\120\116","\084\101\120\116\067\111\108\111\114\051";"\070\111\110\116","\084\101\120\116\083\099\097\108\101\100";"\084\101\120\116\083\116\114\111\107\101\067\111\108\111\114\051","\084\101\120\116\083\116\114\111\107\101\084\114\097\110\115\112\097\114\101\110\099\121","\084\101\120\116\084\114\097\110\115\112\097\114\101\110\099\121","\084\101\120\116\087\114\097\112\112\101\100";"\084\101\120\116\088\065\108\105\103\110\109\101\110\116";"\084\101\120\116\089\065\108\105\103\110\109\101\110\116"}local n={"\083\099\114\101\101\110\071\117\105";"\071\117\105\077\097\105\110";"\070\114\097\109\101";"\084\101\120\116\066\117\116\116\111\110";"\084\101\120\116\076\097\098\101\108";"\073\109\097\103\101\066\117\116\116\111\110";"\073\109\097\103\101\076\097\098\101\108","\083\099\114\111\108\108\105\110\103\070\114\097\109\101";"\084\101\120\116\066\111\120";"\066\105\108\108\098\111\097\114\100\071\117\105","\083\117\114\102\097\099\101\071\117\105"}local Z={Properties={Name="\086\105\101\119\071\117\105\115";ClassName="\070\111\108\100\101\114"};Children={}}local N=false local g g=function(Q,Z)if not dr.ObjRLocked(Z)then local N=false for Q,x in C,n do if Z:IsA(x)then N=true end end if N then local n={Properties={};Children={}}for Q,x in C,x do X(function()n.Properties[x]=Z[x]end)end for Q,x in C,Z:GetChildren()do g(n,x)end s.insert(Q.Children,n)end else N=true end end for Q,x in C,Wr.PlayerGui:GetChildren()do X(g,Z,x)end return Z end;LoadGuiData=function(Q)local x x=function(Q)local n=Q.Properties local Z=Q.Children local N=Wr.New(n.ClassName)for Q,x in C,n do X(function()N[Q]=x end)end for Q,n in C,Z do X(function()local Q=x(n)if Q then Q.Parent=N end end)end return N end local n=R.new("\070\111\108\100\101\114")for Q,x in C,Wr.PlayerGui:GetChildren()do if not Xr.Get(x)then x.Parent=n end end wr.GuiViewFolder=n local Z=Wr.New("\070\111\108\100\101\114",{Parent=Wr.PlayerGui;Name="\076\111\097\100\101\100\071\117\105\115"})for Q,n in C,Q.Children do X(function()local Q=x(n)if Q then Q.Parent=Z end end)end end,UnLoadGuiData=function()for Q,x in C,Wr.PlayerGui:GetChildren()do if x.Name=="\076\111\097\100\101\100\071\117\105\115"then x:Destroy()end end if wr.GuiViewFolder then for Q,x in C,wr.GuiViewFolder:GetChildren()do x.Parent=Wr.PlayerGui end wr.GuiViewFolder:Destroy()wr.GuiViewFolder=nil end end;GetParticleContainer=function(Q)if Q then for x,n in C,(Wr.LocalContainer()):GetChildren()do if n.Name==Q:GetFullName().."\080\065\082\084\073\067\076\069\083"then local x=n:FindFirstChild("\095\079\066\074\069\067\084")if x.Value==Q then return n end end end end end;NewParticle=function(Q,x,n)local Z,N n.Parent=Q n.Enabled=wr.ParticlesEnabled Z=Wr.New(x,n)N=pr.GetRandom()wr.Particles[N]=Z s.insert(wr.Particles,Z)Z.Changed:Connect(function()if not Z or not Z.Parent or Z.Parent~=Q then X(function()Z:Destroy()end)wr.Particles[N]=nil end end)end,RemoveParticle=function(Q,x)for n,Z in C,wr.Particles do if Z.Parent==Q and Z.Name==x then Z:Destroy()wr.Particles[n]=nil end end end;EnableParticles=function(Q)for x,n in C,wr.Particles do if Q then n.Enabled=true else n.Enabled=false end end end;NewLocal=function(Q,x,n)local Z=Wr.New(Q)for Q,x in C,x do Z[Q]=x end if not n or n=="\076\111\099\097\108\067\111\110\116\097\105\110\101\114"then Z.Parent=Wr.LocalContainer()elseif n=="\067\097\109\101\114\097"then Z.Parent=Wr.Workspace.CurrentCamera elseif n=="\080\108\097\121\101\114\071\117\105"then Z.Parent=Wr.PlayerGui end end;MakeLocal=function(Q,x,n)if Q then local Z=Q if n then Z=Z:Clone()end if not x or x=="\076\111\099\097\108\067\111\110\116\097\105\110\101\114"then Z.Parent=Wr.LocalContainer()elseif x=="\067\097\109\101\114\097"then Z.Parent=Wr.Workspace.CurrentCamera elseif x=="\080\108\097\121\101\114\071\117\105"then Z.Parent=Wr.PlayerGui end end end,MoveLocal=function(Q,x,n)local Z if not x or x=="\076\111\099\097\108\067\111\110\116\097\105\110\101\114"then Z=Wr.LocalContainer()elseif x=="\067\097\109\101\114\097"then Z=Wr.Workspace.CurrentCamera elseif x=="\080\108\097\121\101\114\071\117\105"then Z=Wr.PlayerGui end for x,Z in C,Z:GetChildren()do if Z.Name==Q or Z==Z then Z.Parent=n end end end,RemoveLocal=function(Q,x,n)local Z if not x or x=="\076\111\099\097\108\067\111\110\116\097\105\110\101\114"then Z=Wr.LocalContainer()elseif x=="\067\097\109\101\114\097"then Z=Wr.Workspace.CurrentCamera elseif x=="\080\108\097\121\101\114\071\117\105"then Z=Wr.PlayerGui end for x,Z in C,Z:GetChildren()do if n and k.match(Z.Name,Q)or Z.Name==Q or Q==Z then Z:Destroy()end end end;NewCape=function(Q)local x=Q.Parent local n=Q.Material or"\078\101\111\110"local Z=Q.Color or"\087\104\105\116\101"local N=Q.Reflectance or 0 local g=J(Q.Decal or"")if x then pr.RemoveCape(x)local T=x:FindFirstChild("\084\111\114\115\111")or x:FindFirstChild("\085\112\112\101\114\084\111\114\115\111")or x:FindFirstChild("\072\117\109\097\110\111\105\100\082\111\111\116\080\097\114\116")local y=T.Name=="\085\112\112\101\114\084\111\114\115\111"if T then local x=Wr.New("\080\097\114\116")x.Name="\065\068\079\078\073\083\095\067\065\080\069"x.Anchored=false x.Position=T.Position x.Transparency=0 x.Material=n x.CanCollide=false x.TopSurface=0 x.BottomSurface=0 x.Size=Zr.new(2,4,.1)x.BrickColor=B.new(Z)or B.new("\087\104\105\116\101")x.Parent=Wr.LocalContainer()if N then x.Reflectance=N end local V=Wr.New("\077\111\116\111\114",x)V.Part0=x V.Part1=T V.MaxVelocity=.01 V.C0=gr.new(0,1.75,0)*gr.Angles(0,p.rad(90),0)V.C1=gr.new(0,1-(y and.2 or 0),T.Size.Z/2)*gr.Angles(0,p.rad(90),0)local W=Wr.New("\066\108\111\099\107\077\101\115\104",x)W.Scale=Zr.new(.9,.87,.1)local r if g and g~=0 then r=Wr.New("\068\101\099\097\108",x)r.Name="\068\101\099\097\108"r.Face=2 r.Texture="\104\116\116\112\058\047\047\119\119\119\046\114\111\098\108\111\120\046\099\111\109\047\097\115\115\101\116\047\063\105\100\061"..g r.Transparency=0 end local d=pr.GetRandom()wr.Capes[d]={Part=x,Motor=V;Enabled=true,Parent=Q.Parent;Torso=T,Decal=r,Data=Q;Wave=true,isR15=y}local e=Wr.Players:GetPlayerFromCharacter(Q.Parent)if e and e==Wr.Player then wr.Capes[d].isPlayer=true end if not wr.CapesEnabled then e.Transparency=1 if r then r.Transparency=1 end wr.Capes[d].Enabled=false end pr.MoveCapes()end end end,RemoveCape=function(Q)for x,n in C,wr.Capes do if n.Parent==Q or not n.Parent or not n.Parent.Parent then X(n.Part.Destroy,n.Part)wr.Capes[x]=nil end end end,HideCapes=function(Q)for x,n in C,wr.Capes do local Z=n.Torso local N=n.Parent local g=n.Part local T=n.Motor local y=n.Wave local V=n.Decal if N and(N.Parent and(Z and(Z.Parent and(g and g.Parent))))then if not Q then g.Transparency=0 if V then V.Transparency=0 end n.Enabled=true else g.Transparency=1 if V then V.Transparency=1 end n.Enabled=false end else X(g.Destroy,g)wr.Capes[x]=nil end end end;MoveCapes=function()Wr.StopLoop("\067\097\112\101\077\111\118\101\114")Wr.StartLoop("\067\097\112\101\077\111\118\101\114",.1,function()if pr.CountTable(wr.Capes)==0 or not wr.CapesEnabled then Wr.StopLoop("\067\097\112\101\077\111\118\101\114")else for Q,x in C,wr.Capes do local n=x.Torso local Z=x.Parent local N=x.isPlayer local g=x.isR15 local T=x.Part local y=x.Motor local V=x.Wave local W=x.Decal if Z and(Z.Parent and(n and(n.Parent and(T and T.Parent))))then if x.Enabled and wr.CapesEnabled then T.Transparency=0 if W then W.Transparency=0 end local Q=.1 if V then if n.Velocity.magnitude>1 then Q=(Q+(n.Velocity.magnitude/10)*.05)+.05 end x.Wave=false else x.Wave=true end Q=Q+p.min(n.Velocity.magnitude/11,.8)y.MaxVelocity=p.min(n.Velocity.magnitude/111,.04)+.002 if N then y.DesiredAngle=-Q else y.CurrentAngle=-Q end if y.CurrentAngle<-0.2 and y.DesiredAngle>-0.2 then y.MaxVelocity=.04 end else T.Transparency=1 if W then W.Transparency=1 end end else X(T.Destroy,T)wr.Capes[Q]=nil end end end end,true)end,CountTable=function(Q)local x=0 for Q,n in C,Q do x=x+1 end return x end;ClearAllInstances=function()local Q=Wr.GetAdonisObjects()for x in C,Q do x:Destroy()Q[x]=nil end end,PlayAnimation=function(Q)if Q==0 then return end local x=Wr.Player.Character local n=x:FindFirstChildOfClass("\072\117\109\097\110\111\105\100")local Z=n:FindFirstChildOfClass("\065\110\105\109\097\116\111\114")or n:WaitForChild("\065\110\105\109\097\116\111\114")for Q,x in O(Z:GetPlayingAnimationTracks())do x:Stop()end local N=Wr.New("\065\110\105\109\097\116\105\111\110")N.AnimationId="\114\098\120\097\115\115\101\116\105\100\058\047\047"..Q N.Name="\065\068\079\078\073\083\095\065\110\105\109\097\116\105\111\110"local g=Z:LoadAnimation(N)g:Play()end,SetLighting=function(Q,x)if Wr.Lighting[Q]~=nil then Wr.Lighting[Q]=x wr.LightingSettings[Q]=x end end;LocalLighting=function(Q)if Q then Wr.StartLoop("\076\111\099\097\108\076\105\103\104\116\105\110\103","\082\101\110\100\101\114\083\116\101\112\112\101\100",function()for Q,x in C,wr.LightingSettings do if Wr.Lighting[Q]~=nil then Wr.Lighting[Q]=x end end end)else Wr.StopLoop("\076\111\099\097\108\076\105\103\104\116\105\110\103")end end;ChatMessage=function(Q,x,n,Z)local N={}N.Text=Q if x then N.Color=x end if n then N.Font=n end if Z then N.Size=Z end Wr.StarterGui:SetCore("\067\104\097\116\077\097\107\101\083\121\115\116\101\109\077\101\115\115\097\103\101",N)if pr.SendToChat then pr.SendToChat({Name="\058\058\065\100\111\110\105\115\058\058"},Q,"\080\114\105\118\097\116\101")end end,SetCamProperty=function(Q,x)local n=g.CurrentCamera if n[Q]then n[Q]=x end end;SetFPS=function(Q)Wr.StopLoop("\083\101\116\070\080\083")local x=J(Q)if x then Wr.StartLoop("\083\101\116\070\080\083",.1,function()local Q=H()+1/x repeat until H()>=Q end)end end,RestoreFPS=function()Wr.StopLoop("\083\101\116\070\080\083")end,Crash=function()local Q=Wr.RunService local x=0 local n function n()Q:BindToRenderStep(c(x),100,function()e("\083\116\111\112\112\105\110\103")n()end)x=x+1 end n()end,HardCrash=function()local Q local x local n=Wr.New("\083\099\114\101\101\110\071\117\105",Wr.PlayerGui)local Z=Wr.New("\082\101\109\111\116\101\069\118\101\110\116",g.CurrentCamera)Q=function()for N=1,50,1 do Wr.Debris:AddItem(Wr.New("\080\097\114\116",g.CurrentCamera),2e1024)e("\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041\040\040\040\040\042\042\038\038\035\064\035\036\036\036\036\036\037\037\037\037\058\041")local T=Wr.New("\070\114\097\109\101",n)T.Size=xr.new(1,0,1,0)spawn(function()s.insert(x,k.rep(c(p.random()),100))end)Z:FireServer("\072\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105\105")spawn(function()spawn(function()spawn(function()spawn(function()spawn(function()e("\104\105")spawn(Q)end)end)end)end)end)end x={}end while t(.01)do for x=1,50000000,1 do cPcall(function()rr.GPUCrash()end)cPcall(function()Q()end)e(1)end end end;GPUCrash=function()local Q local x=Wr.New("\083\099\114\101\101\110\071\117\105",Wr.PlayerGui)Q=function()while t(.01)do for Q=1,500000,1 do local n=Wr.New("\070\114\097\109\101",x)n.Size=xr.new(1,0,1,0)end end end Q()end,RAMCrash=function()while t(.1)do for Q=1,10000,1 do Wr.Debris:AddItem(Wr.New("\080\097\114\116",g.CurrentCamera),2e1024)end end end,KillClient=function()rr.Kill("\075\105\108\108\067\108\105\101\110\116 \099\097\108\108\101\100")end,KeyBindListener=function()if not wr then t()end local Q=0 wr.KeyBinds=(Er.Get("\080\108\097\121\101\114\068\097\116\097")).Keybinds or{}Wr.UserInputService.InputBegan:Connect(function(x)local n=c(x.KeyCode.Value)local Z=Wr.UserInputService:GetFocusedTextBox()if wr.KeybindsEnabled and(not Z and(n and(wr.KeyBinds[n]and not wr.WaitingForBind)))then local x=Er.Get("\067\104\101\099\107\065\100\109\105\110")if(H()-Q>5 or x)and X(k.char,n)then Er.Send("\080\114\111\099\101\115\115\067\111\109\109\097\110\100",wr.KeyBinds[n],false,true)Xr.Make("\072\105\110\116",{Message="\091\082\097\110\093 \075\101\121\058 "..(k.char(n)..(" \124 \067\111\109\109\097\110\100\058 "..c(wr.KeyBinds[n])))})end Q=H()end end)end,AddKeyBind=function(Q,x)wr.KeyBinds[c(Q)]=x Er.Get("\085\112\100\097\116\101\075\101\121\098\105\110\100\115",wr.KeyBinds)Xr.Make("\072\105\110\116",{Message="\066\111\117\110\100 \""..(k.char(Q)..("\" \116\111 "..x))})end;RemoveKeyBind=function(Q)if wr.KeyBinds[c(Q)]~=nil then wr.KeyBinds[c(Q)]=nil Er.Get("\085\112\100\097\116\101\075\101\121\098\105\110\100\115",wr.KeyBinds)Routine(function()Xr.Make("\072\105\110\116",{Message="\082\101\109\111\118\101\100 \""..(k.char(Q).."\" \102\114\111\109 \107\101\121 \098\105\110\100\115")})end)end end,BrickBlur=function(Q,x,n)local Z=(Wr.LocalContainer()):FindFirstChild("\065\068\079\078\073\083\095\087\073\078\068\079\087\095\070\085\078\067\095\066\076\085\082")if Z then Z:Destroy()end if Q then local Q=R.new("\080\097\114\116",g.CurrentCamera)Q.Name="\065\068\079\078\073\083\095\087\073\078\068\079\087\095\070\085\078\067\095\066\076\085\082"Q.Material="\078\101\111\110"Q.BrickColor=n or B.Black()Q.Transparency=x or.5 Q.CanCollide=false Q.Anchored=true Q.FormFactor="\067\117\115\116\111\109"Q.Size=Zr.new(100,100,0)while Q and(Q.Parent and t(.025))do Q.CFrame=(g.CurrentCamera.CoordinateFrame*gr.new(0,0,-2.5))*gr.Angles(12.6,0,0)end else for Q,x in C,g.CurrentCamera:GetChildren()do if x.Name=="\065\068\079\078\073\083\095\087\073\078\068\079\087\095\070\085\078\067\095\066\076\085\082"then x:Destroy()end end end end,PlayAudio=function(Q,x,n,Z)if wr.localSounds[c(Q)]then wr.localSounds[c(Q)]:Stop()wr.localSounds[c(Q)]:Destroy()wr.localSounds[c(Q)]=nil end local N=Wr.New("\083\111\117\110\100")N.SoundId="\114\098\120\097\115\115\101\116\105\100\058\047\047"..Q if Z then N.Looped=true end if x then N.Volume=x end if n then N.Pitch=n end N.Name="\065\068\079\078\073\095\076\079\067\065\076\095\083\079\085\078\068 "..Q N.Parent=Wr.LocalContainer()wr.localSounds[c(Q)]=N N:Play()t(1)repeat t(.1)until not N.IsPlaying N:Destroy()wr.localSounds[c(Q)]=nil end,StopAudio=function(Q)if wr.localSounds[c(Q)]then wr.localSounds[c(Q)]:Stop()wr.localSounds[c(Q)]:Destroy()wr.localSounds[c(Q)]=nil elseif Q=="\097\108\108"then for Q,x in O(wr.localSounds)do wr.localSounds[Q]:Stop()wr.localSounds[Q]:Destroy()wr.localSounds[Q]=nil end end end;FadeAudio=function(Q,x,n,Z,N)if not x then local x=wr.localSounds[c(Q)]if x then for Q=x.Volume,0,-0.01 do x.Volume=Q t(N or.1)end pr.StopAudio(Q)end else pr.StopAudio(Q)pr.PlayAudio(Q,0,n,Z)local g=wr.localSounds[c(Q)]if g then for Q=0,x,.01 do g.Volume=Q t(N or.1)end end end end;KillAllLocalAudio=function()for Q,x in C,wr.localSounds do x:Stop()x:Destroy()s.remove(wr.localSounds,Q)end end,RemoveGuis=function()for Q,x in C,Wr.PlayerGui:GetChildren()do if not Xr.Get(x)then x:Destroy()end end end,SetCoreGuiEnabled=function(Q,x)Wr.StarterGui:SetCoreGuiEnabled(Q,x)end;UnCape=function()local Q=(Wr.LocalContainer()):FindFirstChild("\058\058\065\100\111\110\105\115\058\058\067\097\112\101")if Q then Q:Destroy()end end,Cape=function(Q,x,n,Z)local N=Wr.Player.Character:FindFirstChild("\072\117\109\097\110\111\105\100\082\111\111\116\080\097\114\116")if N then local g=Wr.New("\080\097\114\116",Wr.LocalContainer())g.Name="\058\058\065\100\111\110\105\115\058\058\067\097\112\101"g.Anchored=true g.Transparency=.1 g.Material=Q g.CanCollide=false g.TopSurface=0 g.BottomSurface=0 if U(x)=="\116\097\098\108\101"then x=h.new(x[1],x[2],x[3])end g.BrickColor=B.new(x)or B.new("\087\104\105\116\101")if Z then g.Reflectance=Z end if n and n~=0 then local Q=Wr.New("\068\101\099\097\108",g)Q.Face=2 Q.Texture="\104\116\116\112\058\047\047\119\119\119\046\114\111\098\108\111\120\046\099\111\109\047\097\115\115\101\116\047\063\105\100\061"..n Q.Transparency=0 end g.formFactor="\067\117\115\116\111\109"g.Size=Zr.new(.2,.2,.2)local T=Wr.New("\066\108\111\099\107\077\101\115\104",g)T.Scale=Zr.new(9,17.5,.5)t(.1)g.Anchored=false local y=Wr.New("\077\111\116\111\114",g)y.Part0=g y.Part1=N y.MaxVelocity=.01 y.C0=gr.new(0,1.75,0)*gr.Angles(0,p.rad(90),0)y.C1=gr.new(0,1,N.Size.Z/2)*gr.Angles(0,p.rad(90),0)local V=false repeat t(.022727272727273)local Q=.1 local x=N.Velocity.magnitude local n=.002 if V then Q=(Q+(N.Velocity.magnitude/10)*.05)+.05 V=false else V=true end Q=Q+p.min(N.Velocity.magnitude/11,.5)y.MaxVelocity=p.min(N.Velocity.magnitude/111,.04)+n y.DesiredAngle=-Q if y.CurrentAngle<-0.2 and y.DesiredAngle>-0.2 then y.MaxVelocity=.04 end repeat t()until y.CurrentAngle==y.DesiredAngle or p.abs(N.Velocity.magnitude-x)>=N.Velocity.magnitude/10+1 if N.Velocity.magnitude<.1 then t(.1)end until not g or not g.Parent or g.Parent~=Wr.LocalContainer()end end;TextToSpeech=function(Q)local n=296333956 local Z=R.new("\083\111\117\110\100",Wr.LocalContainer())Z.SoundId="\114\098\120\097\115\115\101\116\105\100\058\047\047"..n Z.Volume=1 local N=R.new("\083\111\117\110\100",Wr.LocalContainer())N.SoundId="\114\098\120\097\115\115\101\116\105\100\058\047\047"..n N.Volume=1 local g={{str="\037\115\111",func={17}},{str="\105\110\103",func={41}};{str="\111\111\116";func={4,26}};{str="\111\114";func={10}},{str="\111\111";func={3}};{str="\104\105";func={44;19}};{str="\105\101";func={1}},{str="\101\121\101";func={19}};{str="\036\083\117\121\037\115";real="\117\121";func={19}},{str="\037\083\101\121\037\115";func={1}};{str="\037\115\121\101",func={19}};{str="\116\104\101",func={25,15}},{str="\116\104";func={32;.2395}};{str="\111\119",func={20}},{str="\113\117",func={21;38}};{str="\101\101",func={1}};{str="\105\037\115";delay=.5,func={19}};{str="\101\097",func={1}},{str="\117\040\046\042\041\101";real="\117",capture=true,func={9}};{str="\099\104";func={24}};{str="\101\114\101",func={5}};{str="\097\105",func={6}},{str="\108\097";func={39;6}},{str="\111\121";func={8}},{str="\103\104",func={44}};{str="\115\104";func={22}},{str="\097\105\114",func={18}};{str="\097\114",func={16}};{str="\105\114";func={11}},{str="\101\114";func={12}};{str="\115\105\111";func={35}},{str="\099\107";func={21}},{str="\122\121";func={34,1}},{str="\110\121";func={42,1}},{str="\108\121";func={39;1}};{str="\101\121",func={1}};{str="\105\105";func={19}},{str="\105",func={2}};{str="\121",func={37}};{str="\121";func={37}};{str="\115",func={23}};{str="\101";func={13}},{str="\097";func={14}},{str="\120",func={21,23}},{str="\117";func={15}};{str="\111",func={17}},{str="\099",func={21}};{str="\107",func={21}};{str="\116",func={26}},{str="\102";func={27}},{str="\105",func={2}};{str="\112",func={28}},{str="\098";func={29}};{str="\118",func={30}};{str="\100",func={31}};{str="\106",func={33}};{str="\122",func={34}};{str="\103",func={36}},{str="\119";func={38}},{str="\108",func={39}},{str="\114",func={40}};{str="\110";func={42}},{str="\109";func={43}},{str="\104";func={44}},{str=" ";func="\119\097\105\116"},{str="\037\046";func="\119\097\105\116"},{str="\033",func="\119\097\105\116"},{str="\063",func="\119\097\105\116"},{str="\059";func="\119\097\105\116"};{str="\058";func="\119\097\105\116"}};(x:service("\067\111\110\116\101\110\116\080\114\111\118\105\100\101\114")):Preload("\114\098\120\097\115\115\101\116\105\100\058\047\047"..n)local function T(Q)local x={}local n=Q local function Z()for Q,N in m(g)do local g,y=k.find(k.lower(n),"\094"..N.str)if g then if N.capture then local Q=N.real local Z,y=k.find(k.lower(n),Q)local V=k.match(k.lower(n),N.str)if g>y then s.insert(x,N)T(V)else T(V)s.insert(x,N)end else s.insert(x,N)end n=k.sub(n,y+1)Z()end end end Z()return x end local y=T(Q)local V=false local function W(Q)local x=Z if V then x=N end x.TimePosition=Q end Z:Play()N:Play()for Q,x in m(y)do if U(x.func)=="\115\116\114\105\110\103"then t(.5)elseif U(x)=="\116\097\098\108\101"then for Q,n in m(x.func)do if V then V=false else V=true end W(n)if x.delay then t(x.delay)else t(.1)end end end end t(.5)Z:Stop()N:Stop()end}end

return function()
	local _G, game, script, getfenv, setfenv, workspace, 
	getmetatable, setmetatable, loadstring, coroutine, 
	rawequal, typeof, print, math, warn, error,  pcall, 
	xpcall, select, rawset, rawget, ipairs, pairs, 
	next, Rect, Axes, os, tick, Faces, unpack, string, Color3, 
	newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor, 
	NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint, 
	NumberSequenceKeypoint, PhysicalProperties, Region3int16, 
	Vector3int16, elapsedTime, require, table, type, wait, 
	Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, delay = 
		_G, game, script, getfenv, setfenv, workspace, 
	getmetatable, setmetatable, loadstring, coroutine, 
	rawequal, typeof, print, math, warn, error,  pcall, 
	xpcall, select, rawset, rawget, ipairs, pairs, 
	next, Rect, Axes, os, tick, Faces, unpack, string, Color3, 
	newproxy, tostring, tonumber, Instance, TweenInfo, BrickColor, 
	NumberRange, ColorSequence, NumberSequence, ColorSequenceKeypoint, 
	NumberSequenceKeypoint, PhysicalProperties, Region3int16, 
	Vector3int16, elapsedTime, require, table, type, wait, 
	Enum, UDim, UDim2, Vector2, Vector3, Region3, CFrame, Ray, delay

	local script = script
	local service = service
	local client = client
	local Anti, Core, Functions, Process, Remote, UI, Variables
	local function Init()
		UI = client.UI;
		Anti = client.Anti;
		Core = client.Core;
		Variables = client.Variables;
		Functions = client.Functions;
		Process = client.Process;
		Remote = client.Remote;
	end

	getfenv().client = nil
	getfenv().service = nil
	getfenv().script = nil

	client.Functions = {
		Init = Init;
		Kill = client.Kill;

		GetRandom = function(pLen)
			local Len = (type(pLen) == "number" and pLen) or math.random(10,15) --// reru
			local Res = {};
			for Idx = 1, Len do
				Res[Idx] = string.format('%02x', math.random(255));
			end;
			return table.concat(Res)
		end; 

		Round = function(num)
			return math.floor(num + 0.5)
		end;

		SetView = function(ob)
			if ob=='reset' then
				workspace.CurrentCamera.CameraType = 'Custom' 
				workspace.CurrentCamera.CameraSubject = service.Player.Character.Humanoid
				workspace.CurrentCamera.FieldOfView = 70
			else
				workspace.CurrentCamera.CameraSubject = ob
			end
		end;

		AddAlias = function(alias, command)
			Variables.Aliases[alias:lower()] = command;
			Remote.Get("UpdateAliases", Variables.Aliases)
			spawn(function()
				UI.MakeGui("Notification",{
					Time = 5;
					Title = "Notification";
					Message = "Alias added";
				}) 
			end)
		end;

		RemoveAlias = function(alias)
			if client.Variables.Aliases[alias:lower()] then
				Variables.Aliases[alias:lower()] = nil;
				Remote.Get("UpdateAliases", Variables.Aliases)
				spawn(function()
					UI.MakeGui("Notification",{
						Time = 5;
						Title = "Notification";
						Message = "Alias removed";
					})
				end)
			else
				spawn(function()
					UI.MakeGui("Notification",{
						Time = 5;
						Title = "Notification";
						Message = "Alias not found";
					})
				end)
			end
		end;

		Dizzy = function(speed)
			service.StopLoop("DizzyLoop")
			if speed then
				local cam = workspace.CurrentCamera
				local last = tick()
				local rot = 0
				local flip = false
				service.StartLoop("DizzyLoop","RenderStepped",function()
					local dt = tick() - last
					if flip then
						rot = rot+math.rad(speed*dt)
					else
						rot = rot-math.rad(speed*dt)
					end

					if rot >= 2.5 or rot <= -2.5 then
						--flip = not flip
					end
					cam.CoordinateFrame = cam.CoordinateFrame * CFrame.Angles(0, 0.00, rot)
					last = tick()
				end)
			end
		end;

		Base64Encode = function(data)
			local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
			return ((data:gsub('.', function(x) 
				local r,b='',string.byte(x)
				for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end
				return r;
			end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
				if (#x < 6) then return '' end
				local c=0
				for i=1,6 do c=c+(string.sub(x,i,i)=='1' and 2^(6-i) or 0) end
				return string.sub(b,c+1,c+1)
			end)..({ '', '==', '=' })[#data%3+1])
		end;

		Base64Decode = function(data)
			local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
			data = string.gsub(data, '[^'..b..'=]', '')
			return (data:gsub('.', function(x)
				if (x == '=') then return '' end
				local r,f='',(string.find(b,x)-1)
				for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
				return r;
			end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
				if (#x ~= 8) then return '' end
				local c=0
				for i=1,8 do c=c+(string.sub(x,i,i)=='1' and 2^(7-i) or 0) end
				return string.char(c)
			end))
		end;

		GetGuiData = function(args)
			local props = {
				"AbsolutePosition";
				"AbsoluteSize";
				"ClassName";
				"Name";
				"Parent";
				"Archivable";
				"SelectionImageObject";
				"Active";
				"BackgroundColor3";
				"BackgroundTransparency";
				"BorderColor3";
				"BorderSizePixel";
				"Position";
				"Rotation";
				"Selectable";
				"Size";
				"SizeConstraint";
				"Style";
				"Visible";
				"ZIndex";
				"ClipsDescendants";
				"Draggable";
				"NextSelectionDown";
				"NextSelectionLeft";
				"NextSelectionRight";
				"NextSelectionUp";
				"AutoButtonColor";
				"Modal";
				"Image";
				"ImageColor3";
				"ImageRectOffset";
				"ImageRectSize";
				"ImageTransparency";
				"ScaleType";
				"SliceCenter";
				"Text";
				"TextColor3";
				"Font";
				"TextScaled";
				"TextStrokeColor3";
				"TextStrokeTransparency";
				"TextTransparency";
				"TextWrapped";
				"TextXAlignment";
				"TextYAlignment";
			};

			local classes = {
				"ScreenGui";
				"GuiMain";
				"Frame";
				"TextButton";
				"TextLabel";
				"ImageButton";
				"ImageLabel";
				"ScrollingFrame";
				"TextBox";
				"BillboardGui";
				"SurfaceGui";
			}

			local guis = {
				Properties = {
					Name = "ViewGuis";
					ClassName = "Folder";
				};
				Children = {};
			}

			local rLockedFound = false

			local add; add = function(tab,child)
				if not Anti.ObjRLocked(child) then
					local good = false

					for i,v in next,classes do
						if child:IsA(v) then
							good = true
						end
					end

					if good then
						local new = {
							Properties = {};
							Children = {};
						}

						for i,v in next,props do
							pcall(function()
								new.Properties[v] = child[v]
							end)
						end

						for i,v in next,child:GetChildren()do
							add(new,v)
						end
						table.insert(tab.Children, new)
					end
				else
					rLockedFound = true
				end
			end
			for i,v in next,service.PlayerGui:GetChildren()do
				pcall(add,guis,v)
			end
			return guis
		end;

		LoadGuiData = function(data)
			local make; make = function(dat)
				local props = dat.Properties
				local children = dat.Children
				local gui = service.New(props.ClassName)

				for i,v in next,props do
					pcall(function() 
						gui[i] = v
					end)
				end

				for i,v in next,children do
					pcall(function()
						local g = make(v)
						if g then
							g.Parent = gui
						end
					end)
				end
				return gui
			end

			local temp = Instance.new("Folder")
			for i,v in next,service.PlayerGui:GetChildren()do
				if not UI.Get(v) then
					v.Parent = temp
				end
			end
			Variables.GuiViewFolder = temp
			local folder = service.New("Folder",{Parent = service.PlayerGui; Name = "LoadedGuis"})
			for i,v in next,data.Children do
				pcall(function()
					local g = make(v)
					if g then
						g.Parent = folder
					end
				end)
			end
		end;

		UnLoadGuiData = function()
			for i,v in next,service.PlayerGui:GetChildren()do
				if v.Name == "LoadedGuis" then
					v:Destroy()
				end
			end

			if Variables.GuiViewFolder then
				for i,v in next,Variables.GuiViewFolder:GetChildren()do
					v.Parent = service.PlayerGui
				end
				Variables.GuiViewFolder:Destroy()
				Variables.GuiViewFolder = nil
			end
		end;

		GetParticleContainer = function(target)
			if target then
				for i,v in next,service.LocalContainer():GetChildren()do
					if v.Name == target:GetFullName().."PARTICLES" then
						local obj = v:FindFirstChild("_OBJECT")
						if obj.Value == target then
							return v
						end
					end
				end
			end
		end;

		NewParticle = function(target, class, properties)
			local effect, index;

			properties.Parent = target;
			properties.Enabled = Variables.ParticlesEnabled;

			effect = service.New(class, properties);
			index = Functions.GetRandom();

			Variables.Particles[index] = effect;

			table.insert(Variables.Particles, effect);

			effect.Changed:Connect(function()
				if not effect or not effect.Parent or effect.Parent ~= target then
					pcall(function() effect:Destroy() end)
					Variables.Particles[index] = nil;
				end
			end)
		end;

		RemoveParticle = function(target, name)
			for i,effect in next,Variables.Particles do
				if effect.Parent == target and effect.Name == name then
					effect:Destroy();
					Variables.Particles[i] = nil;
				end
			end
		end;

		EnableParticles = function(enabled)
			for i,effect in next,Variables.Particles do
				if enabled then
					effect.Enabled = true
				else
					effect.Enabled = false
				end
			end
		end;

		NewLocal = function(class, props, parent)
			local obj = service.New(class)
			for prop,value in next,props do
				obj[prop] = value
			end

			if not parent or parent == "LocalContainer" then
				obj.Parent = service.LocalContainer()
			elseif parent == "Camera" then
				obj.Parent = service.Workspace.CurrentCamera
			elseif parent == "PlayerGui" then
				obj.Parent = service.PlayerGui
			end
		end;

		MakeLocal = function(object,parent,clone)
			if object then
				local object = object
				if clone then object = object:Clone() end
				if not parent or parent == "LocalContainer" then
					object.Parent = service.LocalContainer()
				elseif parent == "Camera" then
					object.Parent = service.Workspace.CurrentCamera
				elseif parent == "PlayerGui" then
					object.Parent = service.PlayerGui
				end
			end
		end;

		MoveLocal = function(object,parent,newParent)
			local par
			if not parent or parent == "LocalContainer" then
				par = service.LocalContainer()
			elseif parent == "Camera" then
				par = service.Workspace.CurrentCamera
			elseif parent == "PlayerGui" then
				par = service.PlayerGui
			end
			for ind,obj in next,par:GetChildren()do
				if obj.Name == object or obj == obj then
					obj.Parent = newParent
				end
			end
		end;

		RemoveLocal = function(object,parent,match)
			local par
			if not parent or parent == "LocalContainer" then
				par = service.LocalContainer()
			elseif parent == "Camera" then
				par = service.Workspace.CurrentCamera
			elseif parent == "PlayerGui" then
				par = service.PlayerGui
			end

			for ind,obj in next,par:GetChildren() do
				if (match and string.match(obj.Name,object)) or (obj.Name == object or object == obj) then
					obj:Destroy()
				end
			end
		end;

		NewCape = function(data)
			local char = data.Parent
			local material = data.Material or "Neon"
			local color = data.Color or "White"
			local reflect = data.Reflectance or 0
			local decal = tonumber(data.Decal or "")
			if char then
				Functions.RemoveCape(char)
				local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("HumanoidRootPart")
				local isR15 = (torso.Name == "UpperTorso")
				if torso then
					local p = service.New("Part")
					p.Name = "ADONIS_CAPE" 
					p.Anchored = false
					p.Position = torso.Position
					p.Transparency = 0
					p.Material = material
					p.CanCollide = false
					p.TopSurface = 0 
					p.BottomSurface = 0
					p.Size = Vector3.new(2,4,0.1)
					p.BrickColor = BrickColor.new(color) or BrickColor.new("White")
					p.Parent = service.LocalContainer()

					if reflect then
						p.Reflectance = reflect
					end

					local motor1 = service.New("Motor", p)
					motor1.Part0 = p
					motor1.Part1 = torso
					motor1.MaxVelocity = .01
					motor1.C0 = CFrame.new(0,1.75,0)*CFrame.Angles(0,math.rad(90),0)
					motor1.C1 = CFrame.new(0,1-((isR15 and 0.2) or 0),(torso.Size.Z/2))*CFrame.Angles(0,math.rad(90),0)

					local msh = service.New("BlockMesh", p) 
					msh.Scale = Vector3.new(0.9,0.87,0.1)

					local dec 
					if decal and decal ~= 0 then
						dec = service.New("Decal", p) 
						dec.Name = "Decal"
						dec.Face = 2 
						dec.Texture = "http://www.roblox.com/asset/?id="..decal 
						dec.Transparency = 0 
					end

					local index = Functions.GetRandom()
					Variables.Capes[index] = {
						Part = p;
						Motor = motor1;
						Enabled = true;
						Parent = data.Parent;
						Torso = torso;
						Decal = dec;
						Data = data;
						Wave = true;
						isR15 = isR15;
					}

					local p = service.Players:GetPlayerFromCharacter(data.Parent)
					if p and p == service.Player then
						Variables.Capes[index].isPlayer = true
					end

					if not Variables.CapesEnabled then
						p.Transparency = 1
						if dec then
							dec.Transparency = 1
						end
						Variables.Capes[index].Enabled = false
					end

					Functions.MoveCapes()
				end
			end
		end;
		RemoveCape = function(parent)
			for i,v in next,Variables.Capes do
				if v.Parent == parent or not v.Parent or not v.Parent.Parent then
					pcall(v.Part.Destroy,v.Part)
					Variables.Capes[i] = nil
				end
			end
		end;
		HideCapes = function(hide)
			for i,v in next,Variables.Capes do
				local torso = v.Torso
				local parent = v.Parent
				local part = v.Part
				local motor = v.Motor
				local wave = v.Wave
				local decal = v.Decal

				if parent and parent.Parent and torso and torso.Parent and part and part.Parent then
					if not hide then
						part.Transparency = 0

						if decal then
							decal.Transparency = 0
						end

						v.Enabled = true
					else
						part.Transparency = 1
						if decal then
							decal.Transparency = 1
						end
						v.Enabled = false
					end
				else
					pcall(part.Destroy,part)
					Variables.Capes[i] = nil
				end
			end
		end;

		MoveCapes = function()
			service.StopLoop("CapeMover")
			service.StartLoop("CapeMover",0.1,function()
				if Functions.CountTable(Variables.Capes) == 0 or not Variables.CapesEnabled then
					service.StopLoop("CapeMover")
				else
					for i,v in next,Variables.Capes do
						local torso = v.Torso
						local parent = v.Parent
						local isPlayer = v.isPlayer
						local isR15 = v.isR15
						local part = v.Part
						local motor = v.Motor
						local wave = v.Wave
						local decal = v.Decal

						if parent and parent.Parent and torso and torso.Parent and part and part.Parent then
							if v.Enabled and Variables.CapesEnabled then
								part.Transparency = 0

								if decal then
									decal.Transparency = 0
								end

								local ang = 0.1
								if wave then 
									if torso.Velocity.magnitude > 1 then
										ang = ang + ((torso.Velocity.magnitude/10)*.05)+.05 
									end
									v.Wave = false 
								else 
									v.Wave = true 
								end
								ang = ang + math.min(torso.Velocity.magnitude/11, .8)
								motor.MaxVelocity = math.min((torso.Velocity.magnitude/111), .04) + 0.002
								if isPlayer then
									motor.DesiredAngle = -ang
								else
									motor.CurrentAngle = -ang -- bugs
								end
								if motor.CurrentAngle < -.2 and motor.DesiredAngle > -.2 then 
									motor.MaxVelocity = .04 
								end
							else
								part.Transparency = 1
								if decal then
									decal.Transparency = 1
								end
							end
						else
							pcall(part.Destroy,part)
							Variables.Capes[i] = nil
						end
					end
				end
			end, true)
		end;

		CountTable = function(tab)
			local count = 0
			for i,v in next,tab do
				count = count+1
			end
			return count
		end;

		ClearAllInstances = function()
			local objects = service.GetAdonisObjects()
			for i in next,objects do
				i:Destroy()
				objects[i] = nil
			end
		end;

		PlayAnimation = function(animId)
			if animId == 0 then return end

			local char = service.Player.Character
			local human = char:FindFirstChildOfClass("Humanoid")
			local animator = human:FindFirstChildOfClass("Animator") or human:WaitForChild("Animator")

			for i,v in pairs(animator:GetPlayingAnimationTracks()) do
				v:Stop()
			end
			local anim = service.New('Animation')
			anim.AnimationId = 'rbxassetid://'..animId
			anim.Name = "ADONIS_Animation"
			local track = animator:LoadAnimation(anim)
			track:Play()
		end;

		SetLighting = function(prop,value)
			if service.Lighting[prop]~=nil then
				service.Lighting[prop] = value
				Variables.LightingSettings[prop] = value
			end
		end;

		LocalLighting = function(on)
			if on then
				service.StartLoop("LocalLighting","RenderStepped",function()
					for prop,value in next,Variables.LightingSettings do
						if service.Lighting[prop]~=nil then
							service.Lighting[prop] = value
						end
					end
				end)
			else
				service.StopLoop("LocalLighting")
			end
		end;

		ChatMessage = function(msg,color,font,size)
			local tab = {}

			tab.Text = msg

			if color then
				tab.Color = color
			end

			if font then
				tab.Font = font
			end

			if size then
				tab.Size = size
			end

			service.StarterGui:SetCore("ChatMakeSystemMessage",tab)

			if Functions.SendToChat then
				Functions.SendToChat({Name = "::Adonis::"},msg,"Private")
			end
		end;

		SetCamProperty = function(prop,value)
			local cam = workspace.CurrentCamera
			if cam[prop] then
				cam[prop] = value
			end
		end;

		SetFPS = function(fps)
			service.StopLoop("SetFPS")
			local fps = tonumber(fps)
			if fps then
				service.StartLoop("SetFPS",0.1,function() 
					local ender = tick()+1/fps
					repeat until tick()>=ender
				end)
			end
		end;

		RestoreFPS = function()
			service.StopLoop("SetFPS")
		end;

		Crash = function()
			--[[
			local load = function(f) return f() end 
			local s = string.rep("\n", 2^24) 
			print(load(function() return s end))--]]
			--print(string.find(string.rep("a", 2^20), string.rep(".?", 2^20)))
			--[[while true do
				spawn(function()
					spawn(function()
						spawn(function()
							spawn(function()
								spawn(function()
									spawn(function()
										spawn(function()
											spawn(function()
												spawn(function()
													spawn(function()
														spawn(function()
															print("Triangles.")
														end)
													end)
												end)
											end)
										end)
									end)
								end)
							end)
						end)
					end)
				end)
			end--]]

			local Run = service.RunService;
			local Lol = 0;

			local Thread; function Thread()
				Run:BindToRenderStep(tostring(Lol), 100, function() print"Stopping"; Thread(); end);
				Lol = Lol + 1;
			end;

			Thread();
			--local crash; crash = function() while true do repeat spawn(function() pcall(function() print(game[("%s|"):rep(100000)]) crash() end) end) until nil end end
			--crash()
		end;

		HardCrash = function()
			local crash
			local tab
			local gui = service.New("ScreenGui",service.PlayerGui)
			local rem = service.New("RemoteEvent",workspace.CurrentCamera)
			crash = function()
				for i=1,50 do
					service.Debris:AddItem(service.New("Part",workspace.CurrentCamera),2^4000)
					print("((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)((((**&&#@#$$$$$%%%%:)")
					local f = service.New('Frame',gui)
					f.Size = UDim2.new(1,0,1,0)
					spawn(function() table.insert(tab,string.rep(tostring(math.random()),100)) end)	
					rem:FireServer("Hiiiiiiiiiiiiiiii")	
					spawn(function()
						spawn(function()
							spawn(function()
								spawn(function()
									spawn(function()
										print("hi")
										spawn(crash)
									end)
								end)
							end)
						end)
					end)
					--print(game[("%s|"):rep(0xFFFFFFF)])
				end
				tab = {}
			end
			while wait(0.01) do
				for i = 1,50000000 do
					cPcall(function() client.GPUCrash() end)
					cPcall(function() crash() end)
					print(1)
				end
			end
		end;

		GPUCrash = function()
			local crash
			local gui = service.New("ScreenGui",service.PlayerGui)
			crash = function()
				while wait(0.01) do
					for i = 1,500000 do
						local f = service.New('Frame',gui)
						f.Size = UDim2.new(1,0,1,0)
					end
				end
			end
			crash()
		end;

		RAMCrash = function()
			while wait(0.1) do
				for i = 1,10000 do
					service.Debris:AddItem(service.New("Part",workspace.CurrentCamera),2^4000)
				end
			end
		end;

		KillClient = function()
			client.Kill("KillClient called")
		end;

		KeyBindListener = function()
			if not Variables then wait() end;
			local timer = 0
			Variables.KeyBinds = Remote.Get("PlayerData").Keybinds or {}

			service.UserInputService.InputBegan:Connect(function(input)
				local key = tostring(input.KeyCode.Value)
				local textbox = service.UserInputService:GetFocusedTextBox()

				if Variables.KeybindsEnabled and not (textbox) and key and Variables.KeyBinds[key] and not Variables.WaitingForBind then 
					local isAdmin = Remote.Get("CheckAdmin")
					if (tick() - timer > 5 or isAdmin) and pcall(string.char, key) then
						Remote.Send('ProcessCommand',Variables.KeyBinds[key],false,true)
						UI.Make("Hint",{
							Message = "[Ran] Key: "..string.char(key).." | Command: "..tostring(Variables.KeyBinds[key])
						})
					end
					timer = tick()
				end
			end)
		end;

		AddKeyBind = function(key, command)
			Variables.KeyBinds[tostring(key)] = command
			Remote.Get("UpdateKeybinds",Variables.KeyBinds)
			UI.Make("Hint",{
				Message = 'Bound "'..string.char(key)..'" to '..command
			})
		end;

		RemoveKeyBind = function(key)
			if Variables.KeyBinds[tostring(key)] ~= nil then
				Variables.KeyBinds[tostring(key)] = nil
				Remote.Get("UpdateKeybinds",Variables.KeyBinds)
				Routine(function()
					UI.Make("Hint",{
						Message = 'Removed "'..string.char(key)..'" from key binds'
					})
				end)
			end
		end;

		BrickBlur = function(on,trans,color)
			local exists = service.LocalContainer():FindFirstChild("ADONIS_WINDOW_FUNC_BLUR")
			if exists then exists:Destroy() end
			if on then
				local pa = Instance.new("Part",workspace.CurrentCamera)
				pa.Name = "ADONIS_WINDOW_FUNC_BLUR"
				pa.Material = "Neon"
				pa.BrickColor = color or BrickColor.Black()
				pa.Transparency = trans or 0.5
				pa.CanCollide = false
				pa.Anchored = true
				pa.FormFactor = "Custom"
				pa.Size=Vector3.new(100,100,0)
				while pa and pa.Parent and wait(1/40) do
					pa.CFrame = workspace.CurrentCamera.CoordinateFrame*CFrame.new(0,0,-2.5)*CFrame.Angles(12.6,0,0)
				end
			else
				for i,v in next,workspace.CurrentCamera:GetChildren()do
					if v.Name == "ADONIS_WINDOW_FUNC_BLUR" then
						v:Destroy() 
					end
				end
			end
		end;

		PlayAudio = function(audioId, volume, pitch, looped)
			if Variables.localSounds[tostring(audioId)] then Variables.localSounds[tostring(audioId)]:Stop() Variables.localSounds[tostring(audioId)]:Destroy() Variables.localSounds[tostring(audioId)]=nil end
			local sound = service.New("Sound")
			sound.SoundId = "rbxassetid://"..audioId
			if looped then sound.Looped = true end
			if volume then sound.Volume = volume end
			if pitch then sound.Pitch = pitch end
			sound.Name = "ADONI_LOCAL_SOUND "..audioId
			sound.Parent = service.LocalContainer()	
			Variables.localSounds[tostring(audioId)] = sound
			sound:Play()
			wait(1)
			repeat wait(0.1) until not sound.IsPlaying
			sound:Destroy()
			Variables.localSounds[tostring(audioId)] = nil
		end;

		StopAudio = function(audioId)
			if Variables.localSounds[tostring(audioId)] then 
				Variables.localSounds[tostring(audioId)]:Stop() 
				Variables.localSounds[tostring(audioId)]:Destroy() 
				Variables.localSounds[tostring(audioId)] = nil 
			elseif audioId == "all" then
				for i,v in pairs(Variables.localSounds) do
					Variables.localSounds[i]:Stop() 
					Variables.localSounds[i]:Destroy() 
					Variables.localSounds[i] = nil 
				end
			end
		end;

		FadeAudio = function(audioId,inVol,pitch,looped,incWait)
			if not inVol then
				local sound = Variables.localSounds[tostring(audioId)]
				if sound then
					for i = sound.Volume,0,-0.01 do
						sound.Volume = i
						wait(incWait or 0.1)
					end
					Functions.StopAudio(audioId)
				end
			else
				Functions.StopAudio(audioId)
				Functions.PlayAudio(audioId,0,pitch,looped)
				local sound = Variables.localSounds[tostring(audioId)]
				if sound then
					for i = 0,inVol,0.01 do
						sound.Volume = i
						wait(incWait or 0.1)
					end
				end
			end
		end;

		KillAllLocalAudio = function()
			for i,v in next,Variables.localSounds do
				v:Stop()
				v:Destroy()
				table.remove(Variables.localSounds,i)
			end
		end;

		RemoveGuis = function()
			for i,v in next,service.PlayerGui:GetChildren()do
				if not UI.Get(v) then
					v:Destroy()
				end
			end
		end;

		SetCoreGuiEnabled = function(element,enabled)
			service.StarterGui:SetCoreGuiEnabled(element,enabled)
		end;

		UnCape = function()
			local cape = service.LocalContainer():FindFirstChild("::Adonis::Cape")
			if cape then cape:Destroy() end
		end;

		Cape = function(material,color,decal,reflect)
			local torso = service.Player.Character:FindFirstChild("HumanoidRootPart")
			if torso then
				local p = service.New("Part",service.LocalContainer())
				p.Name = "::Adonis::Cape" 
				p.Anchored = true
				p.Transparency=0.1
				p.Material=material
				p.CanCollide = false 
				p.TopSurface = 0 
				p.BottomSurface = 0 
				if type(color)=="table" then 
					color = Color3.new(color[1],color[2],color[3]) 
				end
				p.BrickColor = BrickColor.new(color) or BrickColor.new("White")
				if reflect then
					p.Reflectance=reflect
				end 
				if decal and decal~=0 then
					local dec = service.New("Decal", p) 
					dec.Face = 2 
					dec.Texture = "http://www.roblox.com/asset/?id="..decal 
					dec.Transparency=0 
				end
				p.formFactor = "Custom"
				p.Size = Vector3.new(.2,.2,.2)
				local msh = service.New("BlockMesh", p) 
				msh.Scale = Vector3.new(9,17.5,.5)
				wait(0.1)
				p.Anchored=false
				local motor1 = service.New("Motor", p)
				motor1.Part0 = p
				motor1.Part1 = torso
				motor1.MaxVelocity = .01
				motor1.C0 = CFrame.new(0,1.75,0)*CFrame.Angles(0,math.rad(90),0)
				motor1.C1 = CFrame.new(0,1,torso.Size.Z/2)*CFrame.Angles(0,math.rad(90),0)--.45
				local wave = false
				repeat wait(1/44)
					local ang = 0.1
					local oldmag = torso.Velocity.magnitude
					local mv = .002
					if wave then ang = ang + ((torso.Velocity.magnitude/10)*.05)+.05 
						wave = false 
					else 
						wave = true 
					end
					ang = ang + math.min(torso.Velocity.magnitude/11, .5)
					motor1.MaxVelocity = math.min((torso.Velocity.magnitude/111), .04) + mv
					motor1.DesiredAngle = -ang
					if motor1.CurrentAngle < -.2 and motor1.DesiredAngle > -.2 then 
						motor1.MaxVelocity = .04 
					end

					repeat wait() until motor1.CurrentAngle == motor1.DesiredAngle or math.abs(torso.Velocity.magnitude - oldmag) >=(torso.Velocity.magnitude/10) + 1

					if torso.Velocity.magnitude < .1 then 
						wait(.1) 
					end
				until not p or not p.Parent or p.Parent ~= service.LocalContainer()
			end 
		end;

		TextToSpeech = function(str)
			local audioId = 296333956

			local audio = Instance.new("Sound",service.LocalContainer())
			audio.SoundId = "rbxassetid://"..audioId
			audio.Volume = 1

			local audio2 = Instance.new("Sound",service.LocalContainer())
			audio2.SoundId = "rbxassetid://"..audioId
			audio2.Volume = 1

			local phonemes = {
				{
					str='%so';
					func={17}
				}; --(on)
				{
					str='ing';
					func={41}
				}; --(singer)
				{
					str="oot";
					func={4, 26}; --oo,t
				};
				{
					str='or';
					func={10}
				}; --(door) --oor
				{
					str='oo';
					func={3}
				};  --(good)
				{
					str='hi';
					func={44, 19}; --h, y/ii
				};
				{
					str='ie';
					func={1}; --ee
				};
				{
					str="eye";
					func={19}; --y/ii
				};
				{
					str="$Suy%s"; --%Suy
					real="uy";
					func={19}; --y/ii
				};
				{
					str="%Sey%s"; --%Sey
					func={1}; --ee
				};
				{
					str="%sye"; --%sye
					func={19}; --y/ii
				};
				--[[{
					str='th';
					func={30.9, 31.3}
				}; --(think)--]]
				{
					str='the';
					func={25, 15}; --th, u
				}; 
				{
					str='th';
					func={32, 0.2395}
				}; --(this)
				--[[
				{
					str='ow';
					func={10, 0.335}
				}; --(show) --ow
				--]]
				{
					str='ow';
					func={20}
				}; --(cow) --ow
				{
					str="qu";
					func={21,38};--c,w
				};
				{
					str='ee'; 
					func={1}
				}; --(sheep)
				{
					str='i%s';
					delay=0.5;
					func={19}
				}; --(I)
				{
					str='ea'; 
					func={1}
				}; --(read)
				{
					str='u(.*)e';
					real='u';
					capture=true;
					func={9}
				}; --(cure) (match ure) --u
				{
					str='ch';
					func={24}
				}; --(cheese)
				{
					str='ere';
					func={5}
				}; --(here)
				{
					str='ai';
					func={6}
				}; --(wait)
				{
					str='la';
					func={39,6}
				};
				{
					str='oy';
					func={8}
				}; --(boy)
				{
					str='gh';
					func={44};
				};
				{
					str='sh';
					func={22}
				}; --(shall)
				{
					str='air';
					func={18}
				}; --(hair)

				{
					str='ar';
					func={16}
				}; --(far)
				{
					str='ir';
					func={11}
				}; --(bird)
				{
					str='er';
					func={12}
				}; --(teacher)
				{
					str='sio';
					func={35}
				}; --(television)
				{
					str='ck';
					func={21}
				}; --(book)
				{
					str="zy";
					func={34,1}; --z,ee
				};
				{
					str="ny";
					func={42, 1}; --n,ee
				};
				{
					str="ly";
					func={39, 1}; --l,ee
				};
				{
					str="ey";
					func={1} --ee
				};
				{
					str='ii'; 
					func={19}
				}; --(ii?)
				{
					str='i';
					func={2}
				};--(ship)

				{
					str='y'; --y%S
					func={37}
				}; --(yes)
				--[[
				{
					str='%Sy';
					func={23.9, 24.4}
				}; --(my)
				--]]
				{
					str='y';
					func={37}
				}; --(my)

				{
					str='s';
					func={23}
				}; --(see)	

				{
					str='e';
					func={13};
				}; --(bed)
				--[[--]]
				{
					str='a';
					func={14}
				}; --(cat)
				--[[
				{
					str='a';
					func={6}
				}; --(lazy) --ai--]]
				{
					str="x";
					func={21, 23} --c, s
				};
				{
					str='u';
					func={15}
				}; --(up)
				{
					str='o';
					func={17}
				}; --(on)
				{
					str='c';
					func={21}
				}; --(car)
				{
					str='k';
					func={21}
				}; --(book)
				{
					str='t';
					func={26}
				}; --(tea)
				{
					str='f';
					func={27}
				}; --(fly)
				{
					str='i';
					func={2}
				};--(ship)
				{
					str='p';
					func={28}
				}; --(pea)
				{
					str='b';
					func={29}
				}; --(boat)
				{
					str='v';
					func={30}
				}; --(video)
				{
					str='d';
					func={31}
				}; --(dog)
				{
					str='j';
					func={33}
				}; --(june)
				{
					str='z';
					func={34}
				}; --(zoo)
				{
					str='g';
					func={36}
				}; --(go)
				{
					str='w';
					func={38}
				}; --(wet)
				{
					str='l';
					func={39}
				}; --(love)
				{
					str='r';
					func={40}
				}; --(red)
				{
					str='n';
					func={42}
				}; --(now)
				{
					str='m';
					func={43}
				}; --(man)
				{
					str='h';
					func={44}
				}; --(hat)
				{
					str=' ';
					func="wait";
				};
				{
					str='%.';
					func="wait";
				};
				{
					str='!';
					func="wait";
				};		
				{
					str='?';
					func="wait";
				};
				{
					str=';';
					func="wait";
				};
				{
					str=':';
					func="wait";
				};

			}

			game:service("ContentProvider"):Preload("rbxassetid://"..audioId)

			local function getText(str)
				local tab = {}
				local str = str
				local function getNext()
					for i,v in ipairs(phonemes) do
						local occ,pos = string.find(string.lower(str),"^"..v.str)
						if occ then
							if v.capture then
								local real = v.real
								local realStart,realEnd = string.find(string.lower(str),real)
								--local captStart,captEnd = str:lower():find(v.str)
								local capt = string.match(string.lower(str),v.str)
								if occ>realEnd then
									table.insert(tab,v)
									getText(capt)
								else
									getText(capt)
									table.insert(tab,v)
								end
							else
								table.insert(tab,v)
							end
							str = string.sub(str,pos+1)
							getNext()
						end
					end
				end
				getNext()
				return tab
			end

			local phos=getText(str)
			local swap = false

			local function say(pos)
				local sound=audio
				--[[--]]
				if swap then
					sound=audio2
				end--]]
				sound.TimePosition=pos
				--sound:Play()
				--wait(0.2) --wait(pause)
				--sound:Stop()
			end

			audio:Play()
			audio2:Play()
			for i,v in ipairs(phos) do
				--print(i,v.str)
				if type(v.func)=="string" then--v.func=="wait" then
					wait(0.5)
				elseif type(v)=="table" then
					for l,p in ipairs(v.func) do
						--[[--]]
						if swap then
							swap=false
						else
							swap=true
						end--]]
						say(p)
						if v.delay then
							wait(v.delay)
						else
							wait(0.1)
						end
					end
				end
			end
			wait(0.5)
			audio:Stop()
			audio2:Stop()
		end;
	};
end
