What are some good ways to implement spawn/respawning

I know that there are several ways to approach this, and probably lots of reasons to choose any of them. I would like a breakdown of the methods and reasons some of you like, including:

-Where you choose to spawn your characters from (playercontroller, level blueprint, gamemode, etc.)

-Whether you would use this for singleplayer vs MP and why

-How (or why it wouldn’t matter how) you would implement a save system using your spawn system

-Checkpoints?

Bad answers welcome

Cheers :slight_smile: