Reserved servers

I’ve never used reserved servers before. This is my understanding of how reserved servers work after reading up a little:

Say I have two places in a game universe - a lobby and a game place. A group of players step on a pad and I use ReserveServer to teleport them to the second place. Is it like the Teleport method of TeleportService except they are ensured to get placed in the same server of their own?

Think of my application of being like the game Demented Defense (or like any battle royale place except you get to choose a small party of players to play with). Players will create lobbies from the hub place and then a new server should be made for them in the game place. CreatePlaceAsync would seem to be applicable for this too but even though this will be a group game, I don’t want the group’s inventory spammed with copies of the main game place. Is this what will happen? I don’t know, what method should I use?

8 Likes

Lets say I have a game where the player can build whatever they want on a baseplate and I can’t be bothered to save it with dataStores yada yada. I can make a lobby and a boilerplate game, and create a unique place for each player that they can save to with the Save Place API. You can then save that placeId for the created place to a dataStore, and read from it each time the player joins, and teleport them to the same place every time. This has the added benefit of letting, say, your friends join said place even when you’re not online, provided my game allows that kind of friend place lookup. Reserved servers on the other hand, are servers of the placeId given, not a new place. This means that if I were to make a reserved server in Jailbreak (not that I can), the placeId is still Jailbreak’s original placeId. All a reserved server allows for is a locked down server of the same original place that can only have players join it if a server of the same place game teleports them to it with the access code returned by the function. For a battle royale game, saving to a place is not necessary. Simply have a lobby and a boilerplate round place, reserve servers of the round place from the lobby, and push a cluster of players to it. That server will shut down and be forgotten when everyone leaves.

Sorry if i’m making little sense. It’s 1:51AM.

2 Likes

Correction: server of the same game.

Might also be good to split your advice up into multiple paragraphs. Otherwise, it’s :+1:.

A summary:

  • CreatePlace lets you put players into their own server in a new place and save changes made to the game.
    • You probably don’t need to save changes.
    • Places made with CreatePlace do not stay updated with the main game and clutter your inventory.
  • Reserved Servers let you put players into their own server under the same place.
    • Reserved Server Ids are valid forever.
    • Real servers are only started up when you teleport a player using the reserved server id.
    • There will always be at most 1 running server for a reserved server id, and at least 0 running servers for a reserved server id.
    • Reserved servers will always start new servers using the most recent version of the game.
    • Reserved servers can only be joined when a script calls the TeleportToPrivateServer method.

Some additional resources:

Checking if the running server is a reserved server:

Getting the reserved server id, converting from JobId/Instance id to reserved server id, and teleporting players to friends in reserved servers:

and its code example:

22 Likes

Okay, this is what I thought the functionality was more like. Thanks, it sounds like reserved servers are indeed what I’m looking for. Thanks!

2 Likes

Unless there are Xbox players that do not allow cross-play

1 Like