you’d leave the local script in StarterGui because PlayerGui doesn’t exist until a player exists, but when you want to access the gui in the script, instead of doing something like game.StarterGui.SomeGui, you’d do game.Players.LocalPlayer.PlayerGui.SomeGui