local a=false local z={}local U={BrickColor.new("\082\101\097\108\108\121 \114\101\100"),BrickColor.new("\076\105\109\101 \103\114\101\101\110");BrickColor.new("\084\111\111\116\104\112\097\115\116\101")}local c={Vector3.new(-0.45,0,0);Vector3.new(0,0,0);Vector3.new(.45,0,0)}local Q=nil local O local R={function(a,z)a:TakeDamage(1)end,function(a,z)a:TakeDamage(-1)end,function(a,z)if a.Torso then local U=Instance.new("\066\111\100\121\070\111\114\099\101")U.force=z*3000 U.Parent=a.Torso a.Sit=true game.Debris:AddItem(U,.2)Delay(.2,function()a.Sit=false end)end end}Tool.Equipped:connect(function(C)Spawn(function()local h=1 if not Tool.Parent:FindFirstChild("\084\111\114\115\111")or not Tool.Parent.Torso:FindFirstChild("\082\105\103\104\116 \083\104\111\117\108\100\101\114")or not Tool.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then return end LazerSound:Play()O=Tool.Parent.Torso["\082\105\103\104\116 \083\104\111\117\108\100\101\114"]Q=O.C0 O.CurrentAngle=0 O.DesiredAngle=0 O.MaxVelocity=0 C.Button1Down:connect(function()h=h+1 if h>#U then h=1 end LazerSound.Pitch=.75+(h*.25)*3 end)a=true while a and Tool.Parent:FindFirstChild("\084\111\114\115\111")do local a=Tool.Parent.Torso.CFrame a=a+a:vectorToWorldSpace(Vector3.new(1,.5,0))local Q=C.Hit.p-a.p O.C0=CFrame.new(Vector3.new(),a:vectorToObjectSpace(Q))*CFrame.Angles(0,math.pi/2,0)+Vector3.new(1,.5,0)z=CastLightRay(Handle.CFrame.p+Handle.CFrame:vectorToWorldSpace(c[h]),C.Hit.p,U[h],5,.2,z,R[h])LazerSound.Volume=(math.sin(tick()*3)+1)*.25+.25 wait()end O.C0=Q LazerSound:Stop()end)end)Tool.Unequipped:connect(function(U)a=false LazerSound:Stop()for a=1,50,1 do if z[a]then z[a]:Destroy()z[a]=nil end end if O then O.MaxVelocity=.15 O.C0=Q end end)
--
local equipped = false
local rayparts = {}
local ColorChoices = {BrickColor.new('Really red'),BrickColor.new('Lime green'),BrickColor.new('Toothpaste')}
local StartOffset = {Vector3.new(-.45,0,0),Vector3.new(0,0,0),Vector3.new(.45,0,0)}
local oldC0 =nil
local nweld
local EffectFunctions = 
{
	function(hum,dir) hum:TakeDamage(1) end,
	function(hum,dir) hum:TakeDamage(-1) end,
	function(hum,dir) 
		if hum.Torso then
			local nforce = Instance.new('BodyForce')
			nforce.force = dir*3000
			nforce.Parent = hum.Torso
			hum.Sit = true
			game.Debris:AddItem(nforce,.2)
			Delay(.2,function() hum.Sit = false end)
		end
	end
}
Tool.Equipped:connect(function(mouse)
	--game.Players.LocalPlayer:GetMouse()
	Spawn(function()
		local colorChoice = 1
		if not Tool.Parent:FindFirstChild('Torso') or not Tool.Parent.Torso:FindFirstChild('Right Shoulder') or not Tool.Parent:FindFirstChild('Humanoid') then return end
		LazerSound:Play()
		nweld = Tool.Parent.Torso['Right Shoulder']
		oldC0 = nweld.C0
		nweld.CurrentAngle = 0
		nweld.DesiredAngle = 0
		nweld.MaxVelocity = 0
		mouse.Button1Down:connect(function()
			colorChoice=colorChoice+1
			if colorChoice>#ColorChoices then colorChoice =1 end
			LazerSound.Pitch = .75+((colorChoice*.25)*3)
		end)
		equipped = true
		while equipped and Tool.Parent:FindFirstChild('Torso') do
			local tframe = Tool.Parent.Torso.CFrame
			tframe = tframe + tframe:vectorToWorldSpace(Vector3.new(1, 0.5, 0))
			local taim = mouse.Hit.p -( tframe.p )
			nweld.C0 = (CFrame.new(Vector3.new(),tframe:vectorToObjectSpace(taim))*CFrame.Angles(0,math.pi/2,0))+Vector3.new( 1, 0.5, 0 )
			rayparts = CastLightRay(Handle.CFrame.p+Handle.CFrame:vectorToWorldSpace(StartOffset[colorChoice]),mouse.Hit.p,ColorChoices[colorChoice], 5, .2,rayparts, EffectFunctions[colorChoice])
			LazerSound.Volume = ((math.sin(tick()*3)+1)*.25)+.25
			wait()
		end
		nweld.C0 =oldC0
		LazerSound:Stop()
	end)
end)

Tool.Unequipped:connect(function(mouse)
	equipped= false
	LazerSound:Stop()
	for i=1,50,1 do
		if rayparts[i] then
			rayparts[i]:Destroy()
			rayparts[i]=nil		
		end
	end
	if nweld then
		nweld.MaxVelocity =.15
		nweld.C0 =oldC0
	end
	
end)
