PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience

Making a Lobby: Code Sample 1

Making a Lobby: Code Sample 1

Oct 01 2018, 3:09 AM PST

local oldMessage = ""
local minPlayers = 2

function teleportAllPlayers()
	local target = CFrame.new(workspace.TeleportTarget.Position)
	for i, player in ipairs(game.Players:GetChildren()) do
		player.Character.Torso.CFrame = target + Vector3.new(0, i * 5, 0)
		player.Playing.Value = 1
		--add an offset of 5 for each character
	end
end

function message(message)
	if oldMessage ~= message then
		oldMessage = message
		print(message)
	end
end

function playersCurrentlyPlaying()
	for i, player in ipairs(game.Players:GetChildren()) do
		if player.Playing.Value == 1 then return true end
	end
	return false
end

game:GetService('Players').PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		character:WaitForChild("Humanoid").Died:Connect(function()
			player.Playing.Value = 0
		end)
	end)

	local playing = Instance.new("IntValue", player)
	playing.Value = 0
	playing.Name = "Playing"
end)
while(true) do
	wait(10)
	if #game.Players:getPlayers() >= minPlayers then
		if playersCurrentlyPlaying() then
			message("Waiting for the current game to end...")
		else
			message("There are enough players for a new game!  Teleporting...")
			wait(4)
			teleportAllPlayers()
		end
	else message("Waiting for more players...") end
end