How do I cast a Character from a PlayerControler

Cast the result of GetPawn(). The controller isn’t the character, it’s an abstract thing that provides control inputs to the character. You can “posses” different characters in the game world, GetPawn gives you the currently-controlled one.