So I've been told many times that you should almost always use :WaitForChild() to reference children instead of using periods for safety.
So now when writing my scripts and if I need to reference children I always use WaitForChild, but it starts to get excessive and repetitive. For example,
game.Workspace:WaitForChild("Part"):WaitForChild("Object"):WaitForChild("Scr...
I'm wondering if I'm being too cautious or using :WaitForChild() clumsily, and if anyone could chirp in to correct me. :)
So for example, you would only use :WaitForChild(), if you're referencing a child, before the server fully connects. For example, you would do:
game.Players.PlayerAdded:Connect(function(plr) plr.PlayerGui:WaitForChild("ScreenGui").Frame end)
So you really only need to use WaitForChild(), if the code takes place when the server first starts. And as you see in my example, if you're listed children of what you waited for, you don't need to wait for that, as it's already loaded in because the parent was loaded in.