Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

What function do I need to close? I already closed it

I have closed function but it keeps asking me to close it, what do I do? The function that I need to close is at Line 17

--//Variables
local tool = script.Parent.Parent
local hole = tool.Hole
local handle = tool.Handle
local debounce = true
local config = tool.Config
local range = config.Range
local dmg = config.Damage
local coolDown = config.CoolDown
local clips = config.Clips
local ammo = config.Ammo
local maxAmmo = config.MaxAmmo
local allowTracing= config.AllowTracing

--//Events
tool.Equipped:Connect(function()
	tool.Activated:Connect(function(mouse)
		if debounce then
			--//Doesn't allow spamming
			debounce = false
			--//Ray Get, Set
			local ray = Ray.new(hole.CFrame.p (mouse.hit.p - hole.CFrame.p) * range.Value)
			local hit, position = workspace.FindPartOnRay(ray, plr.Character, false,true)
		end
			
			if allowTracing.Value == true then
				--//Make part
				local trace = instance.new("Part",workspace)
				trace.Material = Enum.Material.Neon
				trace.BrickColor = BrickColor.new("Black")
				trace.CanCollide = false
				trace.Anchored = true
				trace.Transparency = 0.5
				
				--//Show Direction
				local distance = (hole.CFrame.p - position).magnitude
				trace.Size = Vector3.new(0.2,0.2, distance)
				trace.CFrame = CFrame.new(hole.CFrame.p, position)* CFrame.new(0,0,-distance/2)
				
				--//Remove debris
				game:GetService("Debris"):AddItem(trace, 0.1)
			end
			
			--//Hit Detection
			if hit then 
				local humanoid = hit.Parent:FindFirstChild("Humanoid")
				if humanoid then
					if hit.Name == "Head" then
						--//Double damage on headshots
						humanoid:TakeDamage(dmg.Value*2)
						--//Walkspeed slower when hit on legs
					if hit.Name == "Left Leg" then
						humanoid:WalkSpeed(-2)
					if hit.Name == "Right Leg" then
						humanoid:Walkspeed(-2)
					else
						--//Normal damage on body shots
						humanoid:TakeDamage(dmg.Value)
					end	
				end
			end
			wait(coolDown)
			debounce = false
		end
	end
end

1 comment

0

do not have a .Activated inside a .Equipped

2 answers

✓ Accepted answer

That's not how you close your functions. You need to have a bracket after your last two ends.

--//Variables
local tool = script.Parent.Parent
local hole = tool.Hole
local handle = tool.Handle
local debounce = true
local config = tool.Config
local range = config.Range
local dmg = config.Damage
local coolDown = config.CoolDown
local clips = config.Clips
local ammo = config.Ammo
local maxAmmo = config.MaxAmmo
local allowTracing= config.AllowTracing

--//Events
tool.Equipped:Connect(function()
    tool.Activated:Connect(function(mouse)
        if debounce then
            --//Doesn't allow spamming
            debounce = false
            --//Ray Get, Set
            local ray = Ray.new(hole.CFrame.p (mouse.hit.p - hole.CFrame.p) * range.Value)
            local hit, position = workspace.FindPartOnRay(ray, plr.Character, false,true)
        end

            if allowTracing.Value == true then
                --//Make part
                local trace = instance.new("Part",workspace)
                trace.Material = Enum.Material.Neon
                trace.BrickColor = BrickColor.new("Black")
                trace.CanCollide = false
                trace.Anchored = true
                trace.Transparency = 0.5

                --//Show Direction
                local distance = (hole.CFrame.p - position).magnitude
                trace.Size = Vector3.new(0.2,0.2, distance)
                trace.CFrame = CFrame.new(hole.CFrame.p, position)* CFrame.new(0,0,-distance/2)

                --//Remove debris
                game:GetService("Debris"):AddItem(trace, 0.1)
            end

            --//Hit Detection
            if hit then 
                local humanoid = hit.Parent:FindFirstChild("Humanoid")
                if humanoid then
                    if hit.Name == "Head" then
                        --//Double damage on headshots
                        humanoid:TakeDamage(dmg.Value*2)
                        --//Walkspeed slower when hit on legs
                    if hit.Name == "Left Leg" then
                        humanoid:WalkSpeed(-2)
                    if hit.Name == "Right Leg" then
                        humanoid:Walkspeed(-2)
                    else
                        --//Normal damage on body shots
                        humanoid:TakeDamage(dmg.Value)
                    end -- closes line 54
                end -- closes line 52
            end -- closes line 48
            wait(coolDown)
            debounce = false
        end -- closes line 47
    end -- closes line 45
end) -- closes line 17
end) -- closes line 16
--//Variables
local tool = script.Parent.Parent
local hole = tool.Hole
local handle = tool.Handle
local debounce = true
local config = tool.Config
local range = config.Range
local dmg = config.Damage
local coolDown = config.CoolDown
local clips = config.Clips
local ammo = config.Ammo
local maxAmmo = config.MaxAmmo
local allowTracing= config.AllowTracing

--//Events
tool.Equipped:Connect(function()
    tool.Activated:Connect(function(mouse)
        if debounce then
            --//Doesn't allow spamming
            debounce = false
            --//Ray Get, Set
            local ray = Ray.new(hole.CFrame.p (mouse.hit.p - hole.CFrame.p) * range.Value)
            local hit, position = workspace.FindPartOnRay(ray, plr.Character, false,true)
        end

            if allowTracing.Value == true then
                --//Make part
                local trace = instance.new("Part",workspace)
                trace.Material = Enum.Material.Neon
                trace.BrickColor = BrickColor.new("Black")
                trace.CanCollide = false
                trace.Anchored = true
                trace.Transparency = 0.5

                --//Show Direction
                local distance = (hole.CFrame.p - position).magnitude
                trace.Size = Vector3.new(0.2,0.2, distance)
                trace.CFrame = CFrame.new(hole.CFrame.p, position)* CFrame.new(0,0,-distance/2)

                --//Remove debris
                game:GetService("Debris"):AddItem(trace, 0.1)
            end

            --//Hit Detection
            if hit then 
                local humanoid = hit.Parent:FindFirstChild("Humanoid")
                if humanoid then
                    if hit.Name == "Head" then
                        --//Double damage on headshots
                        humanoid:TakeDamage(dmg.Value*2)
                        --//Walkspeed slower when hit on legs
                    if hit.Name == "Left Leg" then
                        humanoid:WalkSpeed(-2)
                    if hit.Name == "Right Leg" then
                        humanoid:Walkspeed(-2)
                    else
                        --//Normal damage on body shots
                        humanoid:TakeDamage(dmg.Value)
                    end 
                end
            end
            wait(coolDown)
            debounce = false
        end
    end
end
end)
end)

This discussion is preserved as it was. New answers, comments, and votes are closed.