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

New Status Bar CountDown Worth It?

So Hello im making game that has rounds. Intermision And Playing and i have very very long status bar script in server script. but i want to change it so i can add every script to timer because now i am using them in another scripts. This is my Script.

local status = game.ReplicatedStorage:WaitForChild("Status")
repeat
	
status.Value = "Intermission 25"
wait(1)

status.Value = "Intermission 24"
wait(1)

status.Value = "Intermission 23"
wait(1)

status.Value = "Intermission 22"
wait(1)

status.Value = "Intermission 21"
wait(1)

status.Value = "Intermission 20"
wait(1)

status.Value = "Intermission 19"
wait(1)

status.Value = "Intermission 18"
wait(1)

status.Value = "Intermission 17"
wait(1)

status.Value = "Intermission 16"
wait(1)

status.Value = "Intermission 15"
wait(1)

status.Value = "Intermission 14"
wait(1)

status.Value = "Intermission 13"
wait(1)

status.Value = "Intermission 12"
wait(1)

status.Value = "Intermission 11"
wait(1)

status.Value = "Intermission 10"
wait(1)

status.Value = "Intermission 9"
wait(1)

status.Value = "Intermission 8"
wait(1)

status.Value = "Intermission 7"
wait(1)

status.Value = "Intermission 6"
wait(1)

status.Value = "Intermission 5"
wait(1)

status.Value = "Intermission 4"
wait(1)

status.Value = "Intermission 3"
wait(1)

status.Value = "Intermission 2"
wait(1)

status.Value = "Intermission 1"
wait(1)

status.Value = "Runners Has Been Spawned To Map!"
wait(1)

status.Value = "5Seconds Till Catcher Will Be Relased"
wait(1)

status.Value = "4Seconds Till Catcher Will Be Relased"
wait(1)

status.Value = "3Seconds Till Catcher Will Be Relased"
wait(1)

status.Value = "2Seconds Till Catcher Will Be Relased"
wait(1)

status.Value = "1Seconds Till Catcher Will Be Relased"
wait(1)

status.Value = "*????Catcher Has Been Relased????"
wait(1)

local randomPlayer = game.Players:GetPlayers()[math.random(1,#game.Players:GetPlayers())]
randomPlayer.TeamColor = BrickColor.new("Really red")
randomPlayer.PlayerGui.CatcherGui.Frame.Visible = true
----------------------------------------------------------
status.Value = "2.30 minutes"
wait(1)

status.Value = "2.29 minutes"
wait(1)

status.Value = "2.28 minutes"
wait(1)

status.Value = "2.27 minutes"
wait(1)

status.Value = "2.26 minutes"
wait(1)

status.Value = "2.25 minutes"
wait(1)

status.Value = "2.24 minutes"
wait(1)

status.Value = "2.23 minutes"
wait(1)

status.Value = "2.22 minutes"
wait(1)

status.Value = "2.21 minutes"
wait(1)

status.Value = "2.20 minutes"
wait(1)

status.Value = "2.19 minutes"
wait(1)

status.Value = "2.18 minutes"
wait(1)

status.Value = "2.17 minutes"
wait(1)

status.Value = "2.16 minutes"
wait(1)

status.Value = "2.15 minutes"
wait(1)

status.Value = "2.14 minutes"
wait(1)

status.Value = "2.13 minutes"
wait(1)

status.Value = "2.12 minutes"
wait(1)

status.Value = "2.11 minutes"
wait(1)

status.Value = "2.10 minutes"
wait(1)

status.Value = "2.09 minutes"
wait(1)

status.Value = "2.08 minutes"
wait(1)

status.Value = "2.07 minutes"
wait(1)

status.Value = "2.06 minutes"
wait(1)

status.Value = "2.05 minutes"
wait(1)

status.Value = "2.04 minutes"
wait(1)

status.Value = "2.03 minutes"
wait(1)

status.Value = "2.02 minutes"
wait(1)

status.Value = "2.01 minutes"
wait(1)

status.Value = " 2 minutes"
wait(1)

status.Value = "1.59 minutes"
wait(1)

status.Value = "1.58 minutes"
wait(1)

status.Value = "1.57 minutes"
wait(1)

status.Value = "1.56 minutes"
wait(1)

status.Value = "1.55 minutes"
wait(1)

status.Value = "1.54 minutes"
wait(1)

status.Value = "1.53 minutes"
wait(1)

status.Value = "1.52 minutes"
wait(1)

status.Value = "1.51 minutes"
wait(1)

status.Value = "1.50 minutes"
wait(1)

status.Value = "1.49 minutes"
wait(1)

status.Value = "1.48 minutes"
wait(1)

status.Value = "1.47 minutes"
wait(1)

status.Value = "1.46 minutes"
wait(1)

status.Value = "1.45 minutes"
wait(1)

status.Value = "1.44 minutes"
wait(1)

status.Value = "1.43 minutes"
wait(1)

status.Value = "1.42 minutes"
wait(1)

status.Value = "1.41 minutes"
wait(1)

status.Value = "1.40 minutes"
wait(1)

status.Value = "1.39 minutes"
wait(1)

status.Value = "1.38 minutes"
wait(1)

status.Value = "1.37 minutes"
wait(1)

status.Value = "1.36 minutes"
wait(1)

status.Value = "1.35 minutes"
wait(1)

status.Value = "1.34 minutes"
wait(1)

status.Value = "1.33 minutes"
wait(1)

status.Value = "1.32 minutes"
wait(1)

status.Value = "1.31 minutes"
wait(1)

status.Value = "1.30 minutes"
wait(1)

status.Value = "1.29 minutes"
wait(1)

status.Value = "1.28 minutes"
wait(1)

status.Value = "1.27 minutes"
wait(1)

status.Value = "1.26 minutes"
wait(1)

status.Value = "1.25 minutes"
wait(1)

status.Value = "1.24 minutes"
wait(1)

status.Value = "1.23 minutes"
wait(1)

status.Value = "1.22 minutes"
wait(1)

status.Value = "1.21 minutes"
wait(1)

status.Value = "1.20 minutes"
wait(1)

status.Value = "1.19 minutes"
wait(1)

status.Value = "1.18 minutes"
wait(1)

status.Value = "1.17 minutes"
wait(1)

status.Value = "1.16 minutes"
wait(1)

status.Value = "1.15 minutes"
wait(1)

status.Value = "1.14 minutes"
wait(1)

status.Value = "1.13 minutes"
wait(1)

status.Value = "1.12 minutes"
wait(1)

status.Value = "1.11 minutes"
wait(1)

status.Value = "1.10 minutes"
wait(1)

status.Value = "1.09 minutes"
wait(1)

status.Value = "1.08 minutes"
wait(1)

status.Value = "1.07 minutes"
wait(1)

status.Value = "1.06 minutes"
wait(1)

status.Value = "1.05 minutes"
wait(1)

status.Value = "1.04 minutes"
wait(1)

status.Value = "1.03 minutes"
wait(1)

status.Value = "1.02 minutes"
wait(1)

status.Value = "1.01 minutes"
wait(1)

status.Value = "1.00 minute"
wait(1)

status.Value = "59 seconds"
wait(1)

status.Value = "58 seconds"
wait(1)

status.Value = "57 seconds"
wait(1)

status.Value = "56 seconds"
wait(1)

status.Value = "55 seconds"
wait(1)

status.Value = "54 seconds"
wait(1)

status.Value = "53 seconds"
wait(1)

status.Value = "52 seconds"
wait(1)

status.Value = "51 seconds"
wait(1)

status.Value = "50 seconds"
wait(1)

status.Value = "49 seconds"
wait(1)

status.Value = "48 seconds"
wait(1)

status.Value = "47 seconds"
wait(1)

status.Value = "46 seconds"
wait(1)

status.Value = "45 seconds"
wait(1)

status.Value = "44 seconds"
wait(1)

status.Value = "43 seconds"
wait(1)

status.Value = "42 seconds"
wait(1)

status.Value = "41 seconds"
wait(1)

status.Value = "40 seconds"
wait(1)

status.Value = "39 seconds"
wait(1)

status.Value = "38 seconds"
wait(1)

status.Value = "37 seconds"
wait(1)

status.Value = "36 seconds"
wait(1)

status.Value = "35 seconds"
wait(1)

status.Value = "34 seconds"
wait(1)

status.Value = "33 seconds"
wait(1)

status.Value = "32 seconds"
wait(1)

status.Value = "31 seconds"
wait(1)

status.Value = "30 seconds"
wait(1)

status.Value = "29 seconds"
wait(1)

status.Value = "28 seconds"
wait(1)

status.Value = "27 seconds"
wait(1)

status.Value = "26 seconds"
wait(1)

status.Value = "25 seconds"
wait(1)

status.Value = "24 seconds"
wait(1)

status.Value = "23 seconds"
wait(1)

status.Value = "22 seconds"
wait(1)

status.Value = "21 seconds"
wait(1)

status.Value = "20 seconds"
wait(1)

status.Value = "19 seconds"
wait(1)

status.Value = "18 seconds"
wait(1)

status.Value = "17 seconds"
wait(1)

status.Value = "16 seconds"
wait(1)

status.Value = "15 seconds"
wait(1)

status.Value = "14 seconds"
wait(1)

status.Value = "13 seconds"
wait(1)

status.Value = "12 seconds"
wait(1)

status.Value = "11 seconds"
wait(1)

status.Value = "10 seconds"
wait(1)

status.Value = "9 seconds"
wait(1)

status.Value = "8 seconds"
wait(1)

status.Value = "7 seconds"
wait(1)

status.Value = "6 seconds"
wait(1)

status.Value = "5 seconds"
wait(1)

status.Value = "4 seconds"
wait(1)

status.Value = "3 seconds"
wait(1)

status.Value = "2 seconds"
wait(1)

status.Value = "1 second"
wait(1)

status.Value = "0 seconds"
wait(1)

status.Value = "Game Over"
wait(5)

until false 

I know its my first But now i dont know how to make one like this but alot smaller Have Answers?>

2 answers

✓ Accepted answer

Your script can be drastically shortened. This can be done mainly by using for-do loops.

A for-do loop consists of the following basic skeleton:

for i = 0, 25, 1 do
	(Code Here)
end

The first value i = 0 represents the initial value, the second value 25 represents the end value, and the third value 1 represents the increment. In other words, the code in between will run over and over again until 0 goes up to 25 by one (or every time the code is run). As you can see, using for-do loops save A LOT of time and I mean it. You used up 500+ lines to write your script. With for-do loops, you can cut that to literally less than fifty lines. Therefore, it is extremely worth learning as it is very useful. For more information about for-do loops, click here.

I edited your script to utilize for-do loops. I also used something called an if-then function near the end of the script, which you can learn more about over here.

Final Product:

local status = game.ReplicatedStorage:WaitForChild("Status")

repeat
	for i = 25, 1, -1 do
		status.Value = ("Intermission " .. i)
		wait(1)
	end
	status.Value = "Runners Has Been Spawned To Map!"
	wait(1)
	for i = 5, 1, -1 do
		status.Value = (i .. " Seconds Till Catcher Will Be Released")
		wait(1)
	end
	status.Value = "????Catcher Has Been Released????"
	wait(1)
	local randomPlayer = game.Players:GetPlayers([math.random(1,#game.Players:GetPlayers())])
	randomPlayer.TeamColor = BrickColor.new("Really red")
	randomPlayer.PlayerGui.CatcherGui.Frame.Visible = true
----------------------------------------------------------
	for i = 150, 0, -1 do
		if i > 1 or i == 0 then
			status.Value = (i .. " seconds") -- Just convert it into seconds. It gets complicated if you want to turn it into minutes and I don't want to confuse you.
			wait(1)
		elseif i == 1 then
			status.Value = ("1 second")
			wait(1)
		end
	end
	status.Value = "Game Over"
	wait(5)
until false

If you don't understand something, let me know and I'll do my best to explain it to you.

4 comments

0

kk im playing relaxing a bit now so ill test it later. Btw Thanks For Helping as i can see u did whole script so maybe you will get accepted.

0

I know this isn't my post, but I have a question on line 16. After the first GetPlayers, are you missing a parentheses? I'm still getting to used to tables and stuff so I might be wrong.

0

Yes, he is missing a parentheses after the ].

0

Dont Worry i Fixed it

Oh boy, you can use this:

for i = 10, 1, -1 do
	status.Value = "Intermission("..i..")"
	wait(1)
end

Same thing with the other stuff but you will need a bit of math.floor() for the minutes.

Here is a link of a wiki article which may help you: http://robloxdev.com/articles/For-Loops

2 comments

0

kk im playing relaxing a bit now so ill test it later. Btw Thanks For Trying To Help.

0

VERY THANKS FOR TRYING TO HELP.

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