Hi,

I've created a script (shown below) which has 2 co-routines. Both of them have wait() in them, however the game seems to freeze and crash if I attempt to run this code by clicking a button.

function changeSignF(sign, destVal)
	local mainSign = script.Parent.MainSign.SurfaceGui.Framea.Frame.TextLabel
	repeat
		for j = 1,destVal do
			for i = 0,1,0.2 do
				mainSign.Parent.Position = UDim2.new(0,0,i,0)
				wait()
			end
			
			mainSign.Text = tab[j][1]
			
			for i = -1,0,0.2 do
				mainSign.Parent.Position = UDim2.new(0,0,i,0)
				wait()
			end 
		end
	until mainSign.Text == sign
end

function changeNumF(num, destVal)
	local mainNum = script.Parent.MainNum.SurfaceGui.Framea.Frame.TextLabel
	wait(2)
	repeat
		for j = 1,destVal,-1 do
			for i = 0,-1,-0.2 do
				mainNum.Parent.Position = UDim2.new(0,0,i,0)
				wait()
			end
			
			mainNum.Text = tab[j][2]
			
			for i = 1,0,-0.2 do
				mainNum.Parent.Position = UDim2.new(0,0,i,0)
				wait()
			end
		end
	until mainNum.Text == num
end

script.Parent.Value.Changed:connect(function()
	local num = script.Parent.Value	
	local tabNum = #tab + 1
	if num.Value > 0 and num.Value < tabNum then
		script.Parent.Sign.SurfaceGui.TextLabel.Text = tab[num.Value][1]
		script.Parent.Num.SurfaceGui.TextLabel.Text = tab[num.Value][2]
		script.Parent.Via.SurfaceGui.TextLabel.Text = tab[num.Value][3]	
	end
	
	if num.Value == tabNum then
		num.Value = 0
	end
	
	if num.Value == -1 then
		num.Value = tabNum - 1
	end
end)

script.Parent.OK.ClickDetector.MouseClick:connect(function()
	local sign = script.Parent.Sign.SurfaceGui.TextLabel.Text
	local num = script.Parent.Num.SurfaceGui.TextLabel.Text
	local via = script.Parent.Via.SurfaceGui.TextLabel.Text
	local mainSign = script.Parent.MainSign.SurfaceGui.Framea.Frame.TextLabel
	local mainNum = script.Parent.MainNum.SurfaceGui.Framea.Frame.TextLabel
	local secNum = script.Parent.SecNum.SurfaceGui.Framea.Frame.TextLabel
	local thiNum = script.Parent.ThiNum.SurfaceGui.Framea.Frame.TextLabel
	local mainVia = script.Parent.MainVia.SurfaceGui.Framea.Frame.TextLabel
	local destVal = script.Parent.Value.Value
	local changeSign = coroutine.create(changeSignF)
	coroutine.resume(changeSign, sign, destVal)
	local changeNum = coroutine.create(changeNumF)
	coroutine.resume(changeNum, num, destVal)
end)

This should run perfectly normal since there are waits in there. However, if I add in a wait on changeNumF() after the repeat on line 5, it doesn't seem to work at all. Anyone know what's freezing the game?