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

How to use debounce in this script?

function Shutdown()
	local m = Instance.new ("Message")
	m.Parent = game.Workspace
	m.Text = "The owner is shutting down the server..."
	wait(3)
	game.Players:ClearAllChildren()
m:Destroy()
end

script.Parent.MouseButton1Click:connect(Shutdown)

This is a script in when you click the shutdown button, everyone gets banned from the game.

How do I add a debounce to prevent multiple messages coming in, and how do I make it so ALL the messages get deleted? (Because whenever the button is spammed, it makes multiple messages that don't go away.)

1 answer

You want to have some variable marking whether or not you're allowed to show the message; call it canShutdown for example.

It needs to start so that you can press the button once and it will work:

local canShutdown = true

You want the messages to only appear when you're allowed to shut down:

local canShutdown = true

function Shutdown()
	if canShutdown then
		local m = Instance.new ("Message", workspace)
		-- Using second parameter of Instance.new makes it a little neater!
		m.Text = "The owner is shutting down the server..."
		wait(3)
		game.Players:ClearAllChildren()
		m:Destroy()
	end
end

script.Parent.MouseButton1Click:connect(Shutdown)

And you want to make it so that you can't shut down while there is a message already:

local canShutdown = true

function Shutdown()
	if canShutdown then
		canShutdown = false -- No longer can make new ones
	
		local m = Instance.new ("Message", workspace)
		m.Text = "The owner is shutting down the server..."
		wait(3)
		game.Players:ClearAllChildren()
		m:Destroy()
		
		canShutdown = true
		-- Now we can press it again, since old message is gone
	end
end

script.Parent.MouseButton1Click:connect(Shutdown)

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