Why does it only run once and stop?

I’m making a GUI that pops out from the top of the screen and gives tips, goes back up, changes the tip, and comes back down, and then repeat that. When I run it, the GUI comes down goes up, and doesn’t come back down. I’m not too sure why it’s doing this as it was working before and suddenly stopped working.

local text = script.Parent

while true do
	text.Text = "Tip 1"
		text:TweenSizeAndPosition(
			UDim2.new(0, 1087,0, 32),
			UDim2.new(0.117, 0,0, 0),
			"Out",
			"Quad",
			1.5,
			false
	)
		wait(25)
		text:TweenSizeAndPosition(
			UDim2.new(0, 1087,0, 32),
			UDim2.new(0.127, 0,-0.309, 0),
			"Out",
			"Quad",
			1.5,
			false
		)
		text.Text = "Tip 2"
		wait(1)
		text:TweenSizeAndPosition(
			UDim2.new(0, 1087,0, 32),
			UDim2.new(0.117, 0,0, 0),
			"Out",
			"Quad",
			1.5,
			false
		)
	wait(25)
	text:TweenSizeAndPosition(
		UDim2.new(0, 1087,0, 32),
		UDim2.new(0.127, 0,-0.309, 0),
		"Out",
		"Quad",
		1.5,
		false
	)
	text.Text = "Tip 3"
	wait(1)
	text:TweenSizeAndPosition(
		UDim2.new(0, 1087,0, 32),
		UDim2.new(0.117, 0,0, 0),
		"Out",
		"Quad",
		1.5,
		false
	)
	wait(25)
	text:TweenSizeAndPosition(
		UDim2.new(0, 1087,0, 32),
		UDim2.new(0.127, 0,-0.309, 0),
		"Out",
		"Quad",
		1.5,
		false
	)
	text.Text = "Tip 4"
	wait(1)
	text:TweenSizeAndPosition(
		UDim2.new(0, 1087,0, 32),
		UDim2.new(0.117, 0,0, 0),
		"Out",
		"Quad",
		1.5,
		false
	)
		wait(25)
	text:TweenSizeAndPosition(
		UDim2.new(0, 1087,0, 32),
		UDim2.new(0.127, 0,-0.309, 0),
		"Out",
		"Quad",
		1.5,
		false
	)
	wait(1)
end

I have not tested this, but this is a better way to do what you are trying to achieve.

local TweenService = game:GetService("TweenService")
local TipText = script.Parent

local Tips = {
"Tip 1",
"Tip 2",
"Tip 3",
}

while true do
     for i,v in pairs(Tips) do
          TipText = v
          local TweenIn = TweenService:Create(TipText, TweenInfo.new(1.5, Enum.EasingStyle.Quad), {Position = UDim2.new(0.117, 0,0, 0)})
          TweenIn:Play()
          TweenIn.Completed:Wait()
          wait(25)
            local TweenOut = TweenService:Create(TipText, TweenInfo.new(1.5, Enum.EasingStyle.Quad), {Position = UDim2.new(0.117, 0,-0.309, 0)})
          TweenOut:Play()
          TweenOut.Completed:Wait()
          wait(1)
     end
end
1 Like

Let me know if what I have provided works for you.