This confuses me a little. But since you are going with player added and this script looks to be in the UI I just recommend not using a connection and putting this directly in so it runs immediately right once the script exists.
You should also use :WaitForChild(“Static2”) and the like which will look for it and wait until it exists to try changing it’s properties because it may not have loaded yet.
Make sure you can do this manually in your gui and it works (zindex needs to be correct)
Here is the corrected script (also make sure to uncheck the resetOnSpawn property for the screengui otherwise this will happen every time their character respawns
if you’re making a loading screen, you should have a local script in ReplicatedFirst, and do everything from there
make sure you run:
repeat task.wait() until game:IsLoaded();
To ensure that the necessary assets are loaded before trying to access the GUI or anything needed for it. and do :WaitForChild() for every GUI you’re accessing or they may not exist yet.
Doing so on the playerAdded will cause some delay and not always load the screen first.
(p.s player added connections in local scripts aren’t necessary because a local script only starts existing once a new player is added)