So I was troubleshooting in my game currently in development and decided to try to print the player's name in a localscript.
https://gyazo.com/f4b95fcc6a3bceee9c09adcaed39ffc9
Nothing prints in the output, not even 'nil' or an error.
Character isn't a valid Instance of a Player, it's actually a property. And what you are doing is waiting for a child named "Character" to exist inside the Player. You would have to do Player.Character, but since you call that before the character actually loads, you can do a simple condition written below.
local Character = Player.Character or Player.CharacterAdded:Wait()