I have a question about GUI.
Should I have all of my GUI elements already loaded into my ScreenGui container at the game start? Or should I load all of the elements into the container at start using a script? The GUI is client-sided.
GUI elements can either both be loaded (inserted into the screen GUI) and/or it can be created using a script (as long as the parent is set to the parent screen GUI, it won’t be visible if you don’t do this).
it doesn’t matter what you choose. what matters if you insert it any way.
scripts are a little complicated for creating the gui (buttons, frames, etc.). if you want a more closer approach, it’s better to have it already existing.
Note that if Players.PlayerAutoLoad (or whatever it’s called) is disabled, ScreenGuis in StarterGui will not be cloned into PlayerGui (and thus wont appear) until Player:LoadCharacter() is called
My guess would be that this is because of the ResetOnSpawn property requiring this behavior, and/or just legacy behavior
If you didn’t mess with how the player’s character loads, then StarterGui is fine. Otherwise, you can put your ScreenGuis elsewhere (like ReplicatedStorage), and have a local script clone them into PlayerGui when the player joins