I do not understand how to convert this script into working with filtering enabled.
wait(5) local tool = script.Parent local user local tip = tool.Tip local change = tool.Handle.change local shot = tool.Handle.shot local wide = tool.Handle.wide local e = tool.Button1 local q = tool.Button2 local mode = 1 local setting = 1 local reload = false local ammo = tool.AmmoCharge function onKeyDown(key,g) if key == "q" then change:Play() if mode == 1 then mode = 2 e.BrickColor = BrickColor.new("Bright red") elseif mode == 2 then mode = 1 e.BrickColor = BrickColor.new("Bright blue") end --print(mode) wait() elseif key == "e" then change:Play() if setting == 1 then setting = 2 q.BrickColor = BrickColor.new("Bright orange") elseif setting == 2 then setting = 1 q.BrickColor = BrickColor.new("Bright green") end --print(setting) wait() end end function impact(hit,h) if mode == 1 then if hit.Parent:IsA("Hat") == false and hit.Parent:IsA("Tool") == false and hit.Parent:IsA("HopperBin") == false then if setting == 1 then h:TakeDamage(math.random (5,10))-- stun beam normal elseif setting == 2 then h:TakeDamage(math.random (0.4,0.4))-- wide beam normal end if hit.Parent:findFirstChild("stun") == nil then local s = script.stun:Clone() s.Parent = hit.Parent s.Disabled = false s.expose.Adornee = s.Parent.Torso s.expose.Script.Disabled = false h.WalkSpeed = 5 end else if setting == 1 then h:TakeDamage(math.random (10,15)) -- stun beam bonus elseif setting == 2 then h:TakeDamage(math.random (0.8,0.8)) -- wide beam bonus end if hit.Parent.Parent:findFirstChild("stun") == nil then local s = script.stun:Clone() s.Parent = hit.Parent.Parent s.Disabled = false s.expose.Adornee = s.Parent.Torso s.expose.Script.Disabled = false h.WalkSpeed = 5 end end elseif mode == 2 then if hit.Parent:IsA("Hat") == false and hit.Parent:IsA("Tool") == false and hit.Parent:IsA("HopperBin") == false then if setting == 1 then h:TakeDamage(math.random (15,25))-- kill beam normal elseif setting == 2 then h:TakeDamage(math.random (0.7,0.7))-- kill beam normal end end else if setting == 1 then h:TakeDamage(math.random (20,25)) -- kill beam bonus elseif setting == 2 then h:TakeDamage(math.random (0.9,0.9)) -- kill beam bonus end end end tool.Equipped:connect(function(mouse) user = tool.Parent mouse.Button1Down:connect(function() if user.Humanoid.Health > 0 then if setting == 1 and ammo.Value >= 1 then if reload == false then ammo.Value = ammo.Value - 1 shot:Play() reload = true local r = Ray.new(tip.CFrame.p, (mouse.Hit.p - tip.CFrame.p).unit*300) local hit,position = game.Workspace:FindPartOnRay(r, user) local h = hit and hit.Parent and hit.Parent:findFirstChild("Humanoid") if hit ~= nil and hit.Parent.Parent:findFirstChild("Humanoid") and hit.Parent.Parent ~= workspace then h = hit.Parent.Parent:findFirstChild("Humanoid") end if h then impact(hit,h) end local distance = (position - tip.CFrame.p).magnitude local rp = Instance.new("Part", workspace) rp.Name = "RayPart" rp.BrickColor = BrickColor.new("Bright orange") rp.Transparency = 0.2 rp.Anchored = true rp.CanCollide = false rp.TopSurface = Enum.SurfaceType.Smooth rp.BottomSurface = Enum.SurfaceType.Smooth rp.formFactor = Enum.FormFactor.Custom rp.Size = Vector3.new(0.2, distance, 0.2) rp.CFrame = CFrame.new(position, tip.CFrame.p) * CFrame.new(0, 0, -distance/2) * CFrame.Angles(math.rad(90),0,0) local m = Instance.new("CylinderMesh", rp) m.Scale = Vector3.new(0.2,1,0.2) local Z = Instance.new("Part", game.Workspace) Z.Name = "Effect" Z.FormFactor = 3 Z.CanCollide = false Z.Transparency = 1 Z.Anchored = true Z.Size = Vector3.new(0.1,0.1,0.1) Z.CFrame = CFrame.new(position) local F = Instance.new("Fire", Z) F.Name = "DMGFX" F.Color = Color3.new(236/255,139/255,70/255) F.SecondaryColor = Color3.new(139/255,80/255,55/255) F.Size = 2 F.Heat = 3 local L = Instance.new("PointLight",Z) L.Name = "LFX" L.Color = Color3.new(255/255,170/255,127/255) L.Brightness = 1 L.Enabled = true L.Range = 6 L.Shadows = true game.Debris:AddItem(Z,.3) local st = rp:Clone() st.Parent = rp if mode == 1 then st.BrickColor = BrickColor.new("Bright yellow") end st.Mesh.Scale = Vector3.new(0.35,1,0.35) st.Transparency = 0.55 game.Debris:AddItem(rp,0.10) wait (0.2) game.Debris:AddItem(Z,0.25) wait(0.5) reload = false end elseif setting == 2 and ammo.Value >= 19 then if reload == false then ammo.Value = ammo.Value - 20 wide:Play() reload = true for i = -130,130 do local r = Ray.new(tip.CFrame.p, ((mouse.Hit*CFrame.new(Vector3.new((0.1*i),0,0)).p) - tip.CFrame.p).unit*100) local hit,position = game.Workspace:FindPartOnRay(r, user) local h = hit and hit.Parent and hit.Parent:findFirstChild("Humanoid") if h then impact(hit,h) end local distance = (position - tip.CFrame.p).magnitude if i == 0 then local rp = Instance.new("Part", user) rp.Name = "RayPart" rp.BrickColor = BrickColor.new("Bright orange") rp.Transparency = 0 rp.Anchored = true rp.CanCollide = false rp.TopSurface = Enum.SurfaceType.Smooth rp.BottomSurface = Enum.SurfaceType.Smooth rp.formFactor = Enum.FormFactor.Custom rp.Size = Vector3.new(0.2, 0.2, distance) rp.CFrame = CFrame.new(position, tip.CFrame.p) * CFrame.new(0, 0, -distance/2) * CFrame.Angles(300,0,0) local light1 = Instance.new("SurfaceLight", rp) light1.Color = Color3.new(255/255,170/255,0/255) light1.Range = 8 light1.Shadows = true light1.Face= "Back" local light2 = Instance.new("SurfaceLight", rp) light2.Color = Color3.new(255/255,170/255,0/255) light2.Range = 8 light2.Shadows = true light2.Face = "Bottom" local light3 = Instance.new("SurfaceLight", rp) light3.Color = Color3.new(255/255,170/255,0/255) light3.Range = 8 light3.Shadows = true light3.Face = "Front" local light4 = Instance.new("SurfaceLight", rp) light4.Color = Color3.new(255/255,170/255,0/255) light4.Range = 8 light4.Shadows = true light4.Face = "Left" local light5 = Instance.new("SurfaceLight", rp) light5.Color = Color3.new(255/255,170/255,0/255) light5.Range = 8 light5.Shadows = true light5.Face = "Right" local light6 = Instance.new("SurfaceLight", rp) light6.Color = Color3.new(255/255,170/255,0/255) light6.Range = 8 light6.Shadows = true light6.Face = "Top" local m = Instance.new("SpecialMesh", rp) m.MeshType = "FileMesh" m.MeshId = "http://www.roblox.com/asset/?id=1033714" m.Scale = Vector3.new(25,1.275*distance,0.001) local st = rp:Clone() st.Parent = rp st.Mesh.Scale = Vector3.new(25.5,(1.275*distance)+0.5,0.101) st.Transparency = 0.75 if mode == 1 then st.BrickColor = BrickColor.new("Bright yellow") end game.Debris:AddItem(rp,0.5) end end wait(5) reload = false end end end end) mouse.KeyDown:connect(function(string) onKeyDown(string,g) end) end) tool.Unequipped:connect(function () end)