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

Add multiple event listeners to check if holding a tool?

I am making a simple gun, and to make it automatically fire I have a function connected to a doing variable to check whether or not the mouse is down for automatic fire. However, I can now shoot even without the tool equipped because I have a button1down event instead of tool.Activated How do I add multiple events to this (A tool.Activated one to make sure they are holding the gun?)

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

local M249shoot = game.ReplicatedStorage.GunFire
local BulletFolder = game.Workspace.Bullets

local debounce = false

local cooldown = 0.15
local doing = false

mouse.Button1Down:Connect(function()
	doing = true
	while doing do
		if debounce then return end
		debounce = true 

		local mousePosition = mouse.Hit.p
		local originPosition = origin.Position

		M249shoot:FireServer(mousePosition, originPosition)
		script.Parent.M249Sound:Play()

		wait(cooldown)
		debounce = false
	end
end)


mouse.Button1Up:Connect(function()
	doing = false
end)

1 answer

You just need to switch the events and the object in which the event resides in. You already have the tool referenced so you just switch mouse with M249shoot and switch the events

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

local M249shoot = game.ReplicatedStorage.GunFire
local BulletFolder = game.Workspace.Bullets

local debounce = false

local cooldown = 0.15
local doing = false

M249shoot.Activated:Connect(function()
    doing = true
    while doing do
        if debounce then return end
        debounce = true 

        local mousePosition = mouse.Hit.p
        local originPosition = origin.Position

        M249shoot:FireServer(mousePosition, originPosition)
        script.Parent.M249Sound:Play()

        wait(cooldown)
        debounce = false
    end
end)


M249shoot.Deactivated:Connect(function()
    doing = false
end)

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