Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local TS = game:GetService("TeleportService")
- local TweenService = game:GetService("TweenService")
- local placeId = "4587775222"
- local leaveGuiEvent = game.ReplicatedStorage.LeaveGuiEvent
- local TransitionEvent = game.ReplicatedStorage.TransitionEvent
- local list = {}
- local gui = script.Parent.GuiPart.SurfaceGui
- local billboard = script.Parent.billboardPart.billboardGui
- local timer
- local teleporting = false
- local spawnTeleport = script.Parent.spawn
- local function updateGui()
- gui.Frame.players.Text = #list
- billboard.Frame.players.Text = #list
- end
- local function removeFromList(character)
- for i=1,#list do
- if list[i] == character.Name then
- table.remove(list,i)
- updateGui()
- end
- end
- end
- local function teleportPlayers()
- if #list > 0 then
- script.Parent.GuiPart.SurfaceGui.Frame.Status.Text = "TELEPORTING"
- script.Parent.GuiPart.SurfaceGui.Frame.Status.TextColor3 = Color3.new(1,0,0)
- local playersToTeleport = {}
- local teleportTime = 0
- for i=1,#list do
- if game.Players:FindFirstChild(list[i]) then
- table.insert(playersToTeleport,game.Players:FindFirstChild(list[i]))
- TransitionEvent:FireClient(game.Players:FindFirstChild(list[i]))
- else
- table.remove(list,i)
- end
- end
- local code = TS:ReserveServerAsync()(placeId)
- teleporting = true
- TS:TeleportToPrivateServer(placeId,code,playersToTeleport)
- repeat wait() until #list <= 0
- script.Parent.GuiPart.SurfaceGui.Frame.Status.Text = "READY"
- script.Parent.GuiPart.SurfaceGui.Frame.Status.TextColor3 = Color3.new(34/255,255/255,20/255)
- teleporting = false
- end
- end
- script.Parent.Gate.Touched:Connect(function(hit)
- if hit.Parent:findFirstChild("Humanoid") then
- if teleporting == false then
- local char = hit.Parent
- local player = game.Players:FindFirstChild(char.Name)
- local alreadyExists = false
- for i=1,#list do
- if list[i] == char.Name then
- alreadyExists = true
- end
- end
- if alreadyExists == false then
- if #list < 16 then
- table.insert(list,char.Name)
- char.PrimaryPart.CFrame = spawnTeleport.CFrame
- updateGui()
- leaveGuiEvent:FireClient(player)
- end
- player.CharacterRemoving:connect(function(character)
- removeFromList(character)
- end)
- end
- end
- end
- end)
- leaveGuiEvent.OnServerEvent:Connect(function(player)
- if player.Character then
- player.Character.HumanoidRootPart.Anchored = false
- wait()
- player.Character.Humanoid.Jump = true
- wait()
- player.Character:MoveTo(game.Workspace.leaveRoomPart.Position)
- removeFromList(player.Character)
- end
- end)
- while wait() do
- timer = 30
- for i=1,timer do
- timer = timer - 1
- gui.Frame.time.Text = timer
- billboard.Frame.time.Text = timer
- wait(1)
- end
- teleportPlayers()
- end
Advertisement
Add Comment
Please, Sign In to add comment