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

Why does my GUI text not change to the intermission time?

I tried to make a minigame intermission script but it isn't working, my script is down below.


 --// Variables
local MapStorage = workspace.MapStorage
local IntermissionTime = 15
local Players = game.Players:GetChildren()
local Status = game.ReplicatedStorage.StatusValue.Value
local RoundInProgress = false

--// Intermission
while wait(1) do
	if not RoundInProgress and #Players > 2 then
		for i = IntermissionTime, 0, -1 do
			Status = "Intermission: ".. i
		end
	elseif not RoundInProgress and #Players < 2 then
		Status = "2 or more players are required to start"
	end
end

I also have a script in the gui which sets the text to the status value, that is working fine so I narrowed this script down to the problem.

1 answer

✓ Accepted answer

First of all, your status variable needs to be the instance of the StringValue itself and not the value because you need to change the value later on. Second, you should add a wait() around line thirteen where the script is counting down the intermission. Third, your script needs a way to break out of the for loop just in case a player leaves while the game is counting down. Finally, the script should probably be able to break out of the while loop as well when the game starts. This would make the script look like this:

 --// Variables
local MapStorage = workspace.MapStorage
local IntermissionTime = 15
local Players = game.Players:GetChildren()
local Status = game.ReplicatedStorage.StatusValue
local RoundInProgress = false

--// Intermission
while wait(1) do
	if not RoundInProgress and #Players > 2 then
		local startRound = false
		for i = IntermissionTime, 0, -1 do
			if #Players < 2 then break end
			Status.Value = "Intermission: ".. i
			wait(1)
			if i == 0 then startRound = true end
		end
		if startRound then break end
	elseif not RoundInProgress and #Players < 2 then
		Status.Value = "2 or more players are required to start"
	end
end

2 comments

0

It still doesn't work when the game has more than two people

0

Do you want to start the game when there are two or more players or when there are more than two players?

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