To restart a private server in Roblox, you cannot directly force a server to restart. However, as a developer or game creator, you can implement a soft shutdown process to simulate a restart. Here's a concise summary of the steps:

  1. Teleport all players out of the current server using TeleportService. You can create a script that teleports players to another location, such as a baseplate or a different server.

  2. Wait for the old server to close naturally, which happens when it's empty of players.

  3. Create a new server for players to join, or teleport them back to the main game place once the old server has closed.

  4. If you want to inform players about the restart, you can use MessagingService to send a message to all servers with update information.

  5. For a seamless transition, you can set up a loading screen UI in StarterGui that mimics the main game's loading screen.

Please note that this process is not a direct server restart but rather a controlled shutdown and rejoin system. As mentioned in the search results, there's no direct API available to force a server restart from within the game.