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

How to make the player wait sometime before this is used again?

player = script.Parent.Parent.Parent
me = script.Parent.Parent.Parent

enabled = true

function Talk(msg)
game:GetService("Chat"):Chat(player.Character.Head, msg, Enum.ChatColor.Blue)
end

me = script.Parent.Parent.Parent
player = script.Parent.Parent.Parent
function onKeyDown(key) 
key:lower() 
if key == "z" then 
	local player = game.Players.LocalPlayer
	if player == nil then return end

	oldws = me.Character.Humanoid.WalkSpeed
	enabled = false 
	RightShoulder = me.Character.Torso["Right Shoulder"]
		LeftShoulder = me.Character.Torso["Left Shoulder"]
		Run = game:GetService("RunService")
			for i = 1, 3 do
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 1)
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, -1)
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 1.1, 0)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, -1.1, 0)
				Run.Stepped:wait(0.005)
			end
		me.Character.Torso.Anchored = false
		k = Instance.new("Part")
		k.BrickColor = BrickColor.new("Bright red")
		k.Size = Vector3.new(1, .1, 1)
		k.TopSurface = "Smooth"
		k.BottomSurface = "Smooth"
		k.Shape = "Ball"
		k.Name = me.Name
		k.CanCollide = false
		k.Anchored = true
		k.Transparency = 1
		f = Instance.new("Sparkles", k)
		f.Color = Color3.new(255, 255, 255)
		k.Parent = me.Character
		v = Instance.new("Decal")
        v.Texture = "http://www.roblox.com/asset/?id=214848407"
        v.Face = "Top"
        v.Parent = k
		p = Instance.new("PointLight", k)
		p.Brightness = 10
		p.Range = 20
		p.Color = Color3.new(255, 255, 255)
		z = Instance.new("SpecialMesh", k)
		z.MeshType = "Brick"
		z.Scale = Vector3.new(3, 0, 3)
		me.Character.Humanoid.WalkSpeed = 0
		k.CFrame = me.Character.Torso.CFrame*CFrame.new(0, -3, 0)
		game.Debris:AddItem(k, 9)
		wait(0.15)
			for i = 1,7 do
				z.Scale = z.Scale +Vector3.new(3, 0, 2.5)
				wait(0.10)
			end
		Talk("With a flame in my right hand...")
		k = Instance.new("Part")
		k.BrickColor = BrickColor.new("Bright red")
		k.Size = Vector3.new(3, 3, 3)
		k.TopSurface = "Smooth"
		k.BottomSurface = "Smooth"
		k.Shape = "Ball"
		k.Name = me.Name
		k.CanCollide = false
		k.Anchored = true
		k.Transparency = 0.5
		k.Parent = Workspace
		z = Instance.new("SpecialMesh", k)
		z.MeshType = "Sphere"
		z.Scale = Vector3.new(0.2, 0.2, 0.2)
		me.Character.Humanoid.WalkSpeed = 0
		k.CFrame = me.Character.Torso.CFrame*CFrame.new(2.5, 0, 0)
		game.Debris:AddItem(k, 2)
		wait(0.05)
			for i = 1,7 do
				z.Scale = z.Scale +Vector3.new(.1, .1, .1)
				wait(0.05)
			end
	    Talk("And a flame in my left hand...")
		k = Instance.new("Part")
		k.BrickColor = BrickColor.new("Deep orange")
		k.Size = Vector3.new(3, 3, 3)
		k.TopSurface = "Smooth"
		k.BottomSurface = "Smooth"
		k.Shape = "Ball"
		k.Name = me.Name
		k.CanCollide = false
		k.Anchored = true
		k.Transparency = 0.5
		k.Parent = Workspace
		z = Instance.new("SpecialMesh", k)
		z.MeshType = "Sphere"
		z.Scale = Vector3.new(0.2, 0.2, 0.2)
		me.Character.Humanoid.WalkSpeed = 0
		k.CFrame = me.Character.Torso.CFrame*CFrame.new(-2.5, 0, 0)
		game.Debris:AddItem(k, 2)
		wait(0.05)
			for i = 1,7 do
				z.Scale = z.Scale +Vector3.new(.1,.1,.1)
				wait(0.05)
			end
			for i = 1, 3 do
			LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 1.1, 0)
			RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, -1.1, 0)
			LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, -1)
			RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 1)
			Run.Stepped:wait(0.01)
			end
			for i = 1, 12 do
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0.27)
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, -0.27)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
				Run.Stepped:wait(0.004)
			end
		Talk("Combine the flames together...")
		k = Instance.new("Part")
		k.BrickColor = BrickColor.new("Really red")
		k.Size = Vector3.new(2, 2, 2)
		k.TopSurface = "Smooth"
		k.BottomSurface = "Smooth"
		k.Shape = "Ball"
		k.Name = me.Name
		k.CanCollide = false
		k.Anchored = true
		k.Transparency = 0.5
		k.Parent = Workspace
		z = Instance.new("SpecialMesh", k)
		z.MeshType = "Sphere"
		z.Scale = Vector3.new(0.2, 0.2, 0.2)
		me.Character.Humanoid.WalkSpeed = 0
		k.CFrame = me.Character.Torso.CFrame*CFrame.new(0, 10, 0)
		game.Debris:AddItem(k, 2)
		wait(0.7)
			for i = 1,7 do
				z.Scale = z.Scale +Vector3.new(1,1,1)
				wait(0.05)
			end
				for i = 1, 12 do
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, -0.27)
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0.27)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
				Run.Stepped:wait(0.004)
				end
				for i = 1, 12 do
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0.12)
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, -0.12)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
				Run.Stepped:wait(0.004)
			end
			Talk("Fire Dragon's Brilliant Flame!")
		for i = 1, 1 do
		x = Instance.new("Part")
		x.BrickColor = BrickColor.new("Really red")
		x.Size = Vector3.new(20, 20, 20)
		x.TopSurface = "Smooth"
		x.BottomSurface = "Smooth"
		x.Shape = "Ball"
		x.Name = me.Name
		x.CanCollide = false
		x.Transparency = 0.5
		
		p = Instance.new("PointLight", x)
		p.Brightness = 10
		p.Range = 15
		p.Color = Color3.new(255, 0, 0)
		fd = script.Firedamage:clone()
		fd.Parent = x
		y = Instance.new("BodyVelocity")
		y.maxForce = Vector3.new(math.huge, math.huge, math.huge)
		y.velocity = me.Character.Torso.CFrame.lookVector*50
		x.Parent = Workspace
		y.Parent = x
		x.CFrame = me.Character.Torso.CFrame*CFrame.new(0, 3, -15)
		fd.Disabled = false
		game.Debris:AddItem(x, 6)
		wait()
		end
		
		me.Character.Humanoid.WalkSpeed = oldws



me.Character.Torso.Anchored = false
		for i = 1, 12 do
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, -0.12)
				RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0.12)
				LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
				Run.Stepped:wait(0)
			end
	wait(20)
enabled = true
	end
	

enabled = true
end

function onSelected(mouse) 
mouse.KeyDown:connect(onKeyDown) 
end 
 
script.Parent.Selected:connect(onSelected)

Because this will allow the player to use this over and over.

1 answer

Use something called a Debounce. It makes sure the player only does it once then has to wait. For example: If you have a part with a Touched script in it that says:

Workspace.Button.Touched:connect(function(hit)
    print("Button pressed")
    wait(1)
    print("Hi :D")
end)

the output would say

Button pressed Button pressed Button pressed Button pressed Button pressed Hi :D Hi :D Hi :D Hi :D Hi :D

So we need to add a debounce.

local debounce = false --could be false or true. Just need to adjust the script if you need too.

then we use an If statement. We could also say not if the debounce is false. If it's true then don't add the not,

this is the script from before with the debounce:

local debounce = false

Workspace.Button.Touched:connect(function(hit)
    if not debounce then
        debounce = true
        wait(1)
        print("Hi :D")
        debounce = false
    end
end)

The output would be:

Button pressed Hi :D


Now we add this with your script:

local debounce = false --Debounce
player = script.Parent.Parent.Parent
me = script.Parent.Parent.Parent

enabled = true

function Talk(msg)
game:GetService("Chat"):Chat(player.Character.Head, msg, Enum.ChatColor.Blue)
end

me = script.Parent.Parent.Parent
player = script.Parent.Parent.Parent
function onKeyDown(key) 
if key:lower() == "z" then
if not debounce then --If the debounce is false then...
debounce = true --Don't spam
    local player = game.Players.LocalPlayer
    if player == nil then return end

    oldws = me.Character.Humanoid.WalkSpeed
    enabled = false 
    RightShoulder = me.Character.Torso["Right Shoulder"]
        LeftShoulder = me.Character.Torso["Left Shoulder"]
        Run = game:GetService("RunService")
            for i = 1, 3 do
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 1)
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, -1)
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 1.1, 0)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, -1.1, 0)
                Run.Stepped:wait(0.005)
            end
        me.Character.Torso.Anchored = false
        k = Instance.new("Part")
        k.BrickColor = BrickColor.new("Bright red")
        k.Size = Vector3.new(1, .1, 1)
        k.TopSurface = "Smooth"
        k.BottomSurface = "Smooth"
        k.Shape = "Ball"
        k.Name = me.Name
        k.CanCollide = false
        k.Anchored = true
        k.Transparency = 1
        f = Instance.new("Sparkles", k)
        f.Color = Color3.new(255, 255, 255)
        k.Parent = me.Character
        v = Instance.new("Decal")
        v.Texture = "http://www.roblox.com/asset/?id=214848407"
        v.Face = "Top"
        v.Parent = k
        p = Instance.new("PointLight", k)
        p.Brightness = 10
        p.Range = 20
        p.Color = Color3.new(255, 255, 255)
        z = Instance.new("SpecialMesh", k)
        z.MeshType = "Brick"
        z.Scale = Vector3.new(3, 0, 3)
        me.Character.Humanoid.WalkSpeed = 0
        k.CFrame = me.Character.Torso.CFrame*CFrame.new(0, -3, 0)
        game.Debris:AddItem(k, 9)
        wait(0.15)
            for i = 1,7 do
                z.Scale = z.Scale +Vector3.new(3, 0, 2.5)
                wait(0.10)
            end
        Talk("With a flame in my right hand...")
        k = Instance.new("Part")
        k.BrickColor = BrickColor.new("Bright red")
        k.Size = Vector3.new(3, 3, 3)
        k.TopSurface = "Smooth"
        k.BottomSurface = "Smooth"
        k.Shape = "Ball"
        k.Name = me.Name
        k.CanCollide = false
        k.Anchored = true
        k.Transparency = 0.5
        k.Parent = Workspace
        z = Instance.new("SpecialMesh", k)
        z.MeshType = "Sphere"
        z.Scale = Vector3.new(0.2, 0.2, 0.2)
        me.Character.Humanoid.WalkSpeed = 0
        k.CFrame = me.Character.Torso.CFrame*CFrame.new(2.5, 0, 0)
        game.Debris:AddItem(k, 2)
        wait(0.05)
            for i = 1,7 do
                z.Scale = z.Scale +Vector3.new(.1, .1, .1)
                wait(0.05)
            end
        Talk("And a flame in my left hand...")
        k = Instance.new("Part")
        k.BrickColor = BrickColor.new("Deep orange")
        k.Size = Vector3.new(3, 3, 3)
        k.TopSurface = "Smooth"
        k.BottomSurface = "Smooth"
        k.Shape = "Ball"
        k.Name = me.Name
        k.CanCollide = false
        k.Anchored = true
        k.Transparency = 0.5
        k.Parent = Workspace
        z = Instance.new("SpecialMesh", k)
        z.MeshType = "Sphere"
        z.Scale = Vector3.new(0.2, 0.2, 0.2)
        me.Character.Humanoid.WalkSpeed = 0
        k.CFrame = me.Character.Torso.CFrame*CFrame.new(-2.5, 0, 0)
        game.Debris:AddItem(k, 2)
        wait(0.05)
            for i = 1,7 do
                z.Scale = z.Scale +Vector3.new(.1,.1,.1)
                wait(0.05)
            end
            for i = 1, 3 do
            LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 1.1, 0)
            RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, -1.1, 0)
            LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, -1)
            RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 1)
            Run.Stepped:wait(0.01)
            end
            for i = 1, 12 do
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0.27)
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, -0.27)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
                Run.Stepped:wait(0.004)
            end
        Talk("Combine the flames together...")
        k = Instance.new("Part")
        k.BrickColor = BrickColor.new("Really red")
        k.Size = Vector3.new(2, 2, 2)
        k.TopSurface = "Smooth"
        k.BottomSurface = "Smooth"
        k.Shape = "Ball"
        k.Name = me.Name
        k.CanCollide = false
        k.Anchored = true
        k.Transparency = 0.5
        k.Parent = Workspace
        z = Instance.new("SpecialMesh", k)
        z.MeshType = "Sphere"
        z.Scale = Vector3.new(0.2, 0.2, 0.2)
        me.Character.Humanoid.WalkSpeed = 0
        k.CFrame = me.Character.Torso.CFrame*CFrame.new(0, 10, 0)
        game.Debris:AddItem(k, 2)
        wait(0.7)
            for i = 1,7 do
                z.Scale = z.Scale +Vector3.new(1,1,1)
                wait(0.05)
            end
                for i = 1, 12 do
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, -0.27)
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0.27)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
                Run.Stepped:wait(0.004)
                end
                for i = 1, 12 do
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0.12)
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, -0.12)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
                Run.Stepped:wait(0.004)
            end
            Talk("Fire Dragon's Brilliant Flame!")
        for i = 1, 1 do
        x = Instance.new("Part")
        x.BrickColor = BrickColor.new("Really red")
        x.Size = Vector3.new(20, 20, 20)
        x.TopSurface = "Smooth"
        x.BottomSurface = "Smooth"
        x.Shape = "Ball"
        x.Name = me.Name
        x.CanCollide = false
        x.Transparency = 0.5

        p = Instance.new("PointLight", x)
        p.Brightness = 10
        p.Range = 15
        p.Color = Color3.new(255, 0, 0)
        fd = script.Firedamage:clone()
        fd.Parent = x
        y = Instance.new("BodyVelocity")
        y.maxForce = Vector3.new(math.huge, math.huge, math.huge)
        y.velocity = me.Character.Torso.CFrame.lookVector*50
        x.Parent = Workspace
        y.Parent = x
        x.CFrame = me.Character.Torso.CFrame*CFrame.new(0, 3, -15)
        fd.Disabled = false
        game.Debris:AddItem(x, 6)
        wait()
        end

        me.Character.Humanoid.WalkSpeed = oldws



me.Character.Torso.Anchored = false
        for i = 1, 12 do
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, -0.12)
                RightShoulder.C0 = RightShoulder.C0 *CFrame.Angles(0, 0, 0)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0.12)
                LeftShoulder.C0 = LeftShoulder.C0 *CFrame.Angles(0, 0, 0)
                Run.Stepped:wait(0)
            end
    wait(20)
enabled = true
debounce = true
    end


enabled = true
end

function onSelected(mouse) 
mouse.KeyDown:connect(onKeyDown) 
end 

script.Parent.Selected:connect(onSelected)

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