Multi-place and multi-server games - universes and places, TeleportAsync with TeleportOptions (reserved/specific servers, teleport data), retrying failed teleports, secure access control, lobby-to-match flows, parties and queues, Roblox matchmaking with custom signals, server type detection, data handoff. Use when adding lobbies, match servers, dungeons, parties, server browsers, or customizing server selection.
A universe (experience) contains a start place plus sub-places. All places share DataStores,
MemoryStores, MessagingService, developer products, and passes.
Typical layouts: Lobby (start place) → Match place (reserved servers) → back to Lobby; or a hub with
separate world places. Keep shared code in packages or a shared Rojo tree.
Access Control for Places (Creator Dashboard): Fully open, Limited to same universe, or
Secure within universe only (only server-initiated teleports into non-start places — recommended
for progression gates and test places). Clients can otherwise teleport themselves anywhere in the universe.
Teleporting (server)
--!strict
local TeleportService = game:GetService("TeleportService")