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

Ending A Loop but then restarting at while true?

local seconds = game:GetService("ReplicatedStorage").CrashGoing.Seconds
local running = game:GetService("ReplicatedStorage").CrashGoing.Running
local gui = script.Parent.CrashSystem.SurfaceGui.TextBox
local number1 = script.Parent.Number1 --decimal
local number2 = script.Parent.Number2 --whole

function changingColor()
	while true do
		wait()
	if running.Value == true then
			wait(0.1)
			if number2.Value == 2 then
				if seconds.Value <=1 then
					return end
				gui.TextColor3 = Color3.new(0, 0.333333, 1)
			end
			if number2.Value == 4 then
				if seconds.Value <=1 then
					return end
				gui.TextColor3 = Color3.new(0, 1, 0.498039)
			end
			if number2.Value == 6 then
				if seconds.Value <=1 then
					return end
				gui.TextColor3 = Color3.new(1, 0, 1)
			end
			if number2.Value == 10 then
				if seconds.Value <=1 then
					return end
				gui.TextColor3 = Color3.new(1, 0.839216, 0.0235294)
			end
		end
	end
end

changingColor()

This works until the if seconds.Value comes along. Then the script just ends. I tried just using returns and what not however not worked. I want to make it so the script stops but then goes back to the while true do.

1 answer

You should not use return in a while loop, because putting return in a while loop would make it exit the loop. You can make it change the textcolor when the value of seconds is > 1, and ignore when the value of seconds <= 1.

function changingColor()
	while true do
		wait()
		if running.Value == true then
			wait(0.1)
			if number2.Value == 2 then
				if seconds.Value >1 then
					gui.TextColor3 = Color3.new(0, 0.333333, 1)
				end
			end
			if number2.Value == 4 then
				if seconds.Value >1 then
					gui.TextColor3 = Color3.new(0, 1, 0.498039)
				end
			end
			if number2.Value == 6 then
				if seconds.Value >1 then
					gui.TextColor3 = Color3.new(1, 0, 1)
				end
			end
			if number2.Value == 10 then
				if seconds.Value >1 then
					gui.TextColor3 = Color3.new(1, 0.839216, 0.0235294)
				end
			end
		end
	end
end

changingColor()

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