Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --"Saz"
- --For Qaeo
- wait(2)
- cccc=game:GetService("Lighting").Mop:Clone()
- cccc.Parent=game.Players.LocalPlayer.Backpack
- script.Parent=cccc
- cccc.WAT.Parent=script
- cccc.Te.Parent=script
- cccc.CamShake.Parent=script
- cccc.REKT.Parent=script
- cccc.PuddleScript.Parent=script
- Tool=script.Parent
- debounce=0 --disgusting
- filt={}
- puddles=0
- mode=true --true == mop, false == whack-an-idiot
- normGrip=CFrame.new(0, -1, 0, 1, 0, -0, 0, 0, 1, 0, -1, -0)
- makePuddle=function()
- R=Ray.new(Tool.MoppityMop.MopEnd.Sponge.Position,Vector3.new(0,-100,0))
- par,loc=workspace:FindPartOnRayWithIgnoreList(R,filt)
- print((Tool.MoppityMop.MopEnd.Sponge.Position-loc).magnitude)
- if (Tool.MoppityMop.MopEnd.Sponge.Position-loc).magnitude<=1 then
- p=Instance.new("Part",workspace)
- p.Name="420slipit"
- p.BrickColor=BrickColor.new("Medium blue")
- p.Transparency=.3
- p.Reflectance=.3
- p.Material="SmoothPlastic"
- p.formFactor="Custom"
- p.Size=Vector3.new(3,.2,3)
- p.CFrame=CFrame.new(loc) + Vector3.new(0,.06,0)
- m=Instance.new("CylinderMesh")
- m.Scale=Vector3.new(1,.2,1)
- m.Offset=Vector3.new(0,-.05,0)
- m.Parent=p
- p.CanCollide=false
- p.Anchored=true
- s=Instance.new("Sparkles")
- s.SparkleColor=Color3.new(1.1,1.1,1.1)
- s.Enabled=false
- s.Parent=p
- s=script.PuddleScript:clone()
- t=Instance.new("StringValue",s)
- t.Name="Owner"
- t.Value=Tool.Parent.Name
- s.Disabled=false
- s.Parent=p
- game:GetService("Debris"):AddItem(p,60)
- debounce=6
- puddles=puddles+1
- coroutine.resume(coroutine.create(function(p)
- repeat wait() until p.Parent==nil
- puddles=puddles-1
- end),p)
- r=math.random(130,170)/100
- math.randomseed(tick())
- Tool.MoppityMop.MopEnd.Sponge.Mop.Pitch=r
- Tool.MoppityMop.MopEnd.Sponge.Mop:Play()
- else
- debounce=3
- end
- end
- GetNubs=function()
- scrubs={}
- for _,v in pairs(game.Workspace:children()) do
- if v:FindFirstChild("Humanoid")~=nil and v:FindFirstChild("Torso")~=nil and v.Name~=game.Players.LocalPlayer.Name then
- table.insert(scrubs,v)
- end
- end
- return scrubs
- end
- GetNubsInRadius=function(pos,radius)
- radius=radius
- scrubs=GetNubs()
- filtered={}
- for _,v in pairs(scrubs) do
- if v:FindFirstChild("Torso")~=nil then
- if (v.Torso.Position-pos).magnitude<=radius then
- table.insert(filtered,v)
- end
- end
- end
- return filtered
- end
- charging=false
- charge=0
- maxcharge=150
- chargerate=2
- swingfunc=function()
- if charging then return end
- charge=0
- R=game.Players.LocalPlayer.Character.Torso["Right Shoulder"]
- RC0=R.C0
- while isButtonDown do
- if charge < maxcharge then
- charge=charge+chargerate
- else
- if Tool.Handle:FindFirstChild("Fire")==nil then
- f=Instance.new("Fire",Tool.Handle)
- f.Size=10
- f.Heat=-25
- end
- end
- R.C0=RC0 * CFrame.fromEulerAnglesXYZ(0,0,math.rad(charge/2))
- wait(.03)
- end
- swingtime=4
- upval=(60 + charge / 5) / swingtime
- print(upval)
- for i=1, swingtime do
- wait(.03)
- R.C0=RC0 * CFrame.fromEulerAnglesXYZ(0,0,math.rad(charge/2) + math.rad(upval * i))
- end
- shakedist=40
- hitsize=4.4
- if charge==maxcharge then
- --sus
- p=Instance.new("Sound",Tool.Handle)
- p.Volume=2
- p.SoundId="http://www.roblox.com/asset/?id=195723714"
- p:Play()
- game:GetService("Debris"):AddItem(p,5)
- wait(1)
- scrubs=GetNubsInRadius(game.Players.LocalPlayer.Character.Torso.Position,shakedist)
- for _,v in pairs(scrubs) do
- if game.Players:GetPlayerFromCharacter(v) ~= nil then
- s=script.CamShake:clone()
- s.intensity.Value = 550
- s.times.Value = 25
- s.Disabled=false
- s.Parent=v
- end
- end
- s=script.CamShake:clone()
- s.intensity.Value = 550
- s.times.Value = 25
- s.Disabled=false
- s.Parent=game.Players.LocalPlayer.Character
- print(":>")
- wait(1)
- game:GetService("Debris"):AddItem(Tool.Handle.Fire,1)
- end
- num = charge/2 + upval * swingtime
- for i=1,5 do
- wait(.03)
- R.C0=RC0 * CFrame.fromEulerAnglesXYZ(0,0,math.rad(num) - math.rad((num+75) / 5 * i))
- end
- p=Instance.new("Sound",Tool.Handle)
- p.Volume=1
- p.Pitch=1.3 - charge / 600
- p.SoundId="http://www.roblox.com/asset/?id=191395631"
- p:Play()
- game:GetService("Debris"):AddItem(p,5)
- num = (charge/2 + upval * swingtime - (num+75)) / 10
- if charge==maxcharge then
- doik=true
- else
- doik=false
- end
- for i=1, 10 do
- for _,v in pairs(GetNubsInRadius(Tool.MoppityMop.MopEnd.Sponge.Position,hitsize)) do
- print("HIT: "..v.Name)
- if v:FindFirstChild("Scrubnub") == nil then
- p=Instance.new("Sound",v:FindFirstChild("Torso"))
- p.Volume=1
- p.Pitch=1.15 - charge / 350
- p.SoundId="http://www.roblox.com/asset/?id=173818824"
- p:Play()
- game:GetService("Debris"):AddItem(p,5)
- t=Instance.new("BoolValue",v)
- t.Name="Scrubnub"
- game:GetService("Debris"):AddItem(t,1)
- if doik==false then
- if charge/2 + 10 >= v.Humanoid.Health then
- ded=true
- else
- ded=false
- end
- v.Torso.Velocity = Vector3.new(0,-40,0)
- v.Humanoid:TakeDamage(charge/2 + 20)
- if ded then
- wait(.37)
- startpos=v:GetModelCFrame()
- RR=Ray.new(startpos.p,Vector3.new(0,-200,0))
- par,loc=workspace:FindPartOnRayWithIgnoreList(RR,filt)
- grave=script.WAT.ThatMopGuiHandler.Graves["Grave"..math.random(1,5)]:clone()
- grave.PrimaryPart=grave.Base
- grave:SetPrimaryPartCFrame(CFrame.new(loc)*CFrame.fromEulerAnglesXYZ(0,math.pi/2*math.random(0,4),0))
- grave.Parent=v
- for _,v in pairs(grave:children()) do
- v.Transparency=0
- end
- v:BreakJoints()
- for _,v in pairs(v:children()) do
- if v.className~="Humanoid" and v:IsA("BasePart")==false then
- if v~=grave and v.Name~="Scrubnub" then
- v:Remove()
- end
- end
- if v:IsA("BasePart")==true then
- v.Anchored=true
- v.CanCollide=false
- v.Transparency=1
- v.CFrame=grave.PrimaryPart.CFrame
- end
- end
- s=Instance.new("Sound",grave.PrimaryPart)
- if math.random(0,100)>80 then
- s.SoundId="http://www.roblox.com/asset/?id=153259684"
- else
- s.SoundId="http://www.roblox.com/asset/?id=154677261"
- end
- s.Volume=1
- s.Pitch=1
- s:Play()
- game:GetService("Debris"):AddItem(s,5)
- end
- else
- m=Instance.new("Model",workspace)
- m.Name="Illuminaughty"
- p=Instance.new("Part",m)
- p.Name="REK"
- p.TopSurface=0
- p.BottomSurface=0
- p.Anchored=true
- p.CanCollide=false
- p.Transparency=1
- p.CFrame=v.Torso.CFrame
- b=Instance.new("BillboardGui",p)
- b.Size=UDim2.new(50,0,50,0)
- b.Adornee=p
- ss=script.REKT:clone()
- ss.Disabled=false
- ss.Parent=b
- lel={"DAMN SON","REKT","SHREKT","4STOCK'D","GG NO RE","LATER'D","WOMBO COMBO","OUTPLAYED","SKILL"}
- l=Instance.new("TextLabel",b)
- l.Name="Toplel"
- l.Size=UDim2.new(1,0,1,0)
- l.Position=UDim2.new(0,0,0,-2)
- l.BackgroundTransparency=1
- l.FontSize="Size24"
- l.Text=lel[math.random(1,#lel)]
- l.TextScaled=true
- coroutine.resume(coroutine.create(function(f,x)
- local joj=false
- local e = 0
- while f.Parent~=nil and e < 195 do
- wait(.03)
- joj=not joj
- if joj then
- f.TextColor3=Color3.new(1,0,0)
- else
- f.TextColor3=Color3.new(1,.7,.2)
- end
- if x==0 then
- f.Rotation=math.deg(math.sin(time() * 36) / 2.8)
- elseif x == 1 then
- f.Rotation=f.Rotation + 7
- elseif x == 2 then
- f.Parent.StudsOffset=f.Parent.StudsOffset + Vector3.new(0,math.deg(math.cos(e) / 10),0)
- end
- e=e+1
- end
- for i=1, 20 do
- f.TextTransparency=i/20
- joj=not joj
- if joj then
- f.TextColor3=Color3.new(1,0,0)
- else
- f.TextColor3=Color3.new(1,.7,.2)
- end
- f.Rotation=f.Rotation + i
- wait()
- end
- end),l,math.random(0,2))
- e=Instance.new("Explosion",workspace)
- e.BlastRadius=10
- e.DestroyJointRadiusPercent = 0
- e.BlastPressure=e.BlastPressure * 2.2
- e.Position=p.Position
- tr=math.random(0,2)
- if tr==0 then
- ps=Instance.new("Sound",p)
- ps.Volume=1.5
- ps.Pitch=1
- ps.SoundId="http://www.roblox.com/asset/?id=195737599"
- ps.MaxDistance=math.huge
- ps:Play()
- game:GetService("Debris"):AddItem(ps,5)
- elseif tr==1 then
- ps=Instance.new("Sound",p)
- ps.Volume=.9
- ps.Pitch=1
- ps.SoundId="http://www.roblox.com/asset/?id=160423437"
- ps:Play()
- game:GetService("Debris"):AddItem(ps,5)
- elseif tr==2 then
- ps=Instance.new("Sound",p)
- ps.Volume=1
- ps.Pitch=1
- ps.SoundId="http://www.roblox.com/asset/?id=196980915"
- ps:Play()
- game:GetService("Debris"):AddItem(ps,5)
- end
- ps=Instance.new("Sound",p)
- ps.Volume=1
- ps.Pitch=1.2
- ps.SoundId="http://www.roblox.com/asset/?id=163680447"
- ps:Play()
- game:GetService("Debris"):AddItem(ps,5)
- ids={185386145,185386156,185386168,181240874}
- p=Instance.new("Sound",p)
- p.SoundId="http://www.roblox.com/asset/?id="..ids[math.random(1,4)]
- p.Volume=1
- p:Play()
- coroutine.resume(coroutine.create(function(l)
- wait(11)
- if l~=nil then
- if l.Parent~=nil then
- l:Stop()
- wait(.5)
- l:Remove()
- end
- end
- end),p)
- for __,vv in pairs(v:children()) do
- if vv.className=="Hat" then
- if vv:FindFirstChild("Handle") ~= nil then
- vv.Handle:BreakJoints()
- vv.Handle.Velocity=Vector3.new(math.random(-20,20),math.random(0,60),math.random(-20,20)) + game.Players.LocalPlayer.Character.Torso.CFrame.lookVector * math.random(40,60)
- vv.Handle.RotVelocity=Vector3.new(math.random(-40,40),math.random(-40,40),math.random(-40,40)) + game.Players.LocalPlayer.Character.Torso.CFrame.lookVector * math.random(10,30)
- end
- end
- if vv:IsA("BasePart") then
- vv:BreakJoints()
- vv.Velocity=Vector3.new(math.random(-80,80),math.random(0,200),math.random(-80,80)) + game.Players.LocalPlayer.Character.Torso.CFrame.lookVector * math.random(40,60)
- vv.RotVelocity=Vector3.new(math.random(-40,40),math.random(-40,40),math.random(-40,40)) + game.Players.LocalPlayer.Character.Torso.CFrame.lookVector * math.random(10,30)
- end
- end
- end
- end
- end
- R.C0=R.C0 * CFrame.fromEulerAnglesXYZ(0,0,math.rad(-num))
- wait(.03)
- end
- print(num)
- wait(.5)
- R.C0=RC0
- print("SUS",charge)
- end
- blowingup=false
- sitoop=function(key)
- if game.Players.LocalPlayer.Name=="Qaeo" or game.Players.LocalPlayer.Name=="SazErenos" then
- if key=="m" and blowingup==false then --boop
- blowingup=true
- m=Tool.MoppityMop
- m.Welds.Disabled=true
- m.Parent=workspace
- for _,v in pairs(m.MopEnd:children()) do
- if v:IsA("BasePart") then
- v.CanCollide=true
- end
- end
- for _,v in pairs(m.MopHandle:children()) do
- if v:IsA("BasePart") then
- v.CanCollide=true
- end
- end
- Tool.Handle:BreakJoints()
- v=Instance.new("BodyVelocity",m.MopEnd.Joint)
- v.velocity=Tool.Parent.Torso.CFrame.lookVector*15+Vector3.new(0,10,0)
- v.P=5000
- v.maxForce=Vector3.new(math.huge,math.huge,math.huge)
- v.Parent=m.MopEnd.Joint
- game:GetService("Debris"):AddItem(v,.4)
- s=script.WAT:clone()
- s.Disabled=false
- s.Parent=m
- wait(.25)
- Tool:Remove()
- end
- elseif key=="z" and blowingup==false then
- mode=not mode
- end
- end
- isButtonDown=false
- onEquipLocal=function(mouse)
- mouse.KeyDown:connect(sitoop)
- Grip=nil
- while Grip==nil do
- if game.Players.LocalPlayer.Character["Right Arm"]:FindFirstChild("RightGrip")~=nil then
- Grip=game.Players.LocalPlayer.Character["Right Arm"]:FindFirstChild("RightGrip")
- end
- wait()
- end
- print("Grip located")
- end
- Tool.Equipped:connect(onEquipLocal)
- Tool.Activated:connect(function() if blowingup==false then isButtonDown=true end end)
- Tool.Deactivated:connect(function() isButtonDown=false end)
- check=54
- checkat=55
- while true do
- if isButtonDown==true and Tool.Parent.className=="Model" and mode then
- if debounce==0 then
- if puddles<40 then
- makePuddle()
- end
- else
- debounce=debounce-1
- end
- end
- if mode==false and isButtonDown then
- swingfunc()
- end
- if mode and Grip then
- Grip.C0=normGrip
- elseif not mode and Grip then
- Grip.C0=normGrip*CFrame.Angles(math.pi/1.7,0,0)*CFrame.new(.2,.2,0)
- end
- check=check+1
- if check>=checkat and Tool.Parent.className=="Model" then
- check=0
- lel={}
- filt={}
- lol=function(p)
- for _,v in pairs(p) do
- table.insert(lel,v)
- if #v:children()>0 then
- lol(v:children())
- end
- end
- end
- lol(workspace:children())
- for _,v in pairs(lel) do
- if v:IsA("BasePart") then
- if v.CanCollide==false or v.Parent:FindFirstChild("Humanoid") or v.Parent.className=="Hat" then
- table.insert(filt,v)
- end
- end
- end
- lel={} --clear cache
- end
- if puddles==40 then
- Tool.MoppityMop.MopEnd.Joint.JointWeld.DesiredAngle=math.rad(-20)
- else
- Tool.MoppityMop.MopEnd.Joint.JointWeld.DesiredAngle=math.rad(20)
- end
- wait()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement