How can I get my player to spawn at player start when a new level is loaded?

You should wait for the level to load. When it does, you can trigger the event in the game mode (which handles the restart player functions) to restart player at transform.

If you use player starts, you can get actor of class as playerstart, and if there are multiple starts, then get all actors of class and put them in an array. Then you can restart player at a player start or just restart player and it should pick a random player start that isn’t occupied.