How can I restart Players as Spectator ? (C++)

I’m working on a multiplayer game, here his the flow I want to implement:

  • Server opens level
  • Clients connect and are spawn into SpectatorPawn
  • SpectatorPawn have an UI with a “Ready Button” (lobby state)
  • When everybody is Ready the GameMode Restarts all Players into PlayerPawn (with RestartPlayer) and the game starts.
  • At the end of the game, the playerpawns are destroyed and the clients are restarted into SpectatorPawn. (back to lobby state)

What I can’t figure is how should I restart a player into default Spectator Pawn ?