I'm working on a little party system but got stuck a bit with the player following system. Now I could be wrong with the issue but, what I believe is causing the issue, is that when the player leaves the game try's to pull everyone that is in their party to their server but because they haven't loaded into the actual game yet they cannot follow them. (and so are teleported to the same server) How would I have the players in the party wait for the party host to be in the game server? Here is a full set of source code attached to a portal object.
local TeleportService = game:GetService("TeleportService") local levelId = 1370155526 function onTouched(hit) local player = game.Players:GetPlayerFromCharacter(hit.Parent) if player then local inParty = player.inParty.value local isHost = player.isHosting.value if(inParty)then if(not isHost)then print("Only the party leader can join a game.") return end end player.Character.Humanoid.WalkSpeed = 0 game.Workspace.Map.Soundz.Bell:Play() TeleportService:Teleport(levelId, player) end end game.Players.PlayerRemoving:connect(function(player) wait(5) print("oi") for _, player2 in pairs(game.Players:GetPlayers()) do if(player2.followPlayer.Value == player.Name)then followPlayer(player2, player.UserId) end end end) function followPlayer(player, targetUserId) local success, errorMsg, placeId, instanceId = TeleportService:GetPlayerPlaceInstanceAsync(targetUserId) if success then TeleportService:TeleportToPlaceInstance(placeId, instanceId, player) else print("Teleport error:", errorMsg) end end script.Parent.Touched:connect(onTouched)
the followPlayer , isHosting, and playerFollow values are created inside another script, these are just to keep track of what party you are in and are edited by an outside source. This is purely just for the teleportation script.