What does :wait mean instead of wait()?
To me, I think it ':wait()'s until something loaded, or waits until going on, I have seen this tested before with the CharacterAdded event, and it waited a few before going on, here is an example (Randomly made, sorry if example didn't help);
game.Players.PlayerAdded:connect(function(plr) --Wheres our wait? plr.CharacterAdded:wait() --Heres our wait! print(plr.Character) --Prints the Player's Name end) --The end for the PlayerAdded event
And as you'll see, it'll wait then print the Player's Character. Hope this helped!
Here are some examples of using :wait() just so you get the idea.
game.Players.Player.CharacterAdded:wait()
repeat until script.Parent.ChildAdded:wait().Name == "Child"
repeat until game.Players.Player.Changed:wait() == "TeamColor"