if game.StarterGui.LoadingGui.LoadingImage.Visible = false then <-- this line here script.Parent.TextTransparency = 0.1 wait(0.5) script.Parent.TextTransparency = 0.2 wait(0.5) script.Parent.TextTransparency = 0.3 wait(0.5) script.Parent.TextTransparency = 0.4 wait(0.5) script.Parent.TextTransparency = 0.5 wait(0.5) script.Parent.TextTransparency = 0.6 wait(0.5) script.Parent.TextTransparency = 0.7 wait(0.5) script.Parent.TextTransparency = 0.8 wait(0.5) script.Parent.TextTransparency = 0.9 wait(0.5) script.Parent.TextTransparency = 1 end
A key pointer here would be to remember that when checking for equality you need to use the double equals symbol.
if game.StarterGui.LoadingGui.LoadingImage.Visible == false then
However, as the comments have suggested it'd probably be better to use a changed event so that you can check immediately after something changes and not just once.
Always remember: A double equal sign (==) is for equality. A single equal (=) sign is for changing some property, like the parent of a part.
Your edit script accounting for these changes:
if game.StarterGui.LoadingGui.LoadingImage.Visible == false then --Changed this from "=" to "==" to check for equality, not to change something. script.Parent.TextTransparency = 0.1 wait(0.5) script.Parent.TextTransparency = 0.2 wait(0.5) script.Parent.TextTransparency = 0.3 wait(0.5) script.Parent.TextTransparency = 0.4 wait(0.5) script.Parent.TextTransparency = 0.5 wait(0.5) script.Parent.TextTransparency = 0.6 wait(0.5) script.Parent.TextTransparency = 0.7 wait(0.5) script.Parent.TextTransparency = 0.8 wait(0.5) script.Parent.TextTransparency = 0.9 wait(0.5) script.Parent.TextTransparency = 1 end