I need it so that the match ends then starts a new one when everyone dies. I have provided the script.
disasters = {"Glass House [Made By: ROBLOX]", "Crossroads [Made By: ROBLOX]", "Chaos Canyon [Made By: ROBLOX]", "Tiny Town [Made By: Firaxus]", "The Five Layers [Made By: Firaxus]", "House Of Dreams [Made By: QuinnHawkins13]", "Hospital [Made By: QuinnHawkins13]", "The Lab [Made By: QuinnHawkins13]"} -- This is where you list the names models that you want to use for disasters. -- The list must look like this {"Model","Model","Model","Model","Model"} and so on. -- Disaster names are case-sensitive and all disaster models must be in the lighting countdownTime = 20 -- The ammount of time to wait between each disaster. disasterTime = 300 -- The ammount of time that the disaster will be in the game before it is removed. countdownMessage = "The next map will be chosen in %s seconds." -- The message displayed between disasters. %s will be replaced with the number of seconds left. disasterMessage = "Map: %s" -- The message displayed when a disaster occurs. %s will be replaced with the disaster name. Set to nil if you do not want a message -- Unless you know what you are doing, please leave the below code alone. items = {} leaderboard = game.Workspace:findFirstChild("BTS Leaderboard") -- Used to work with my BTS leaderboard local w = game.Workspace:getChildren() for i=1,#w do if w[i].Name == "leaderboard" and w[i]:findFirstChild("running") ~= nil and w[i]:findFirstChild("points") ~= ni then leaderboard = w[i] end end for i=1,#disasters do local item = game.Lighting:findFirstChild(disasters[i]) if item ~= nil then item.Parent = nil table.insert(items, item) else print("Error! ", disasters[i], " was not found!") end end function chooseDisaster() return items[math.random(#items)] end function sethint(text) local hint = game.Workspace:findFirstChild("hint") if (hint ~= nil) then hint.Text = text else print("Hint does not exist, creating...") h = Instance.new("Hint") h.Name = "hint" h.Text = text h.Parent = game.Workspace end --print("Hint set to: ", text) end function removeHint() hint = game.Workspace:findFirstChild("hint") if (hint ~= nil) then hint:remove() end end function countdown(time) sethint(string.format(countdownMessage, tostring(time))) while (time > 0) do wait(1) time = time - 1 sethint(string.format(countdownMessage, tostring(time))) end removeHint() return true end while true do countdown(countdownTime) if leaderboard ~= nil and leaderboard:findFirstChild("running") and leaderboard:findFirstChild("points") then -- For use with my BTS leaderboard. leaderboard.points.Value = 30 --Points after you survive disasters. leaderboard.running.Value = true end local m = chooseDisaster():clone() if disasterMessage ~= nil then local msg = Instance.new("Message") msg.Name = "DisasterMsg" msg.Text = string.format(disasterMessage, m.Name) msg.Parent = game.Workspace wait(3) msg.Parent = nil end m.Parent = game.Workspace m:makeJoints() wait(disasterTime) m:remove() if leaderboard ~= nil then -- For use with the bts leaderboard. leaderboard.running.Value = false end end
What you can do is a function that is run when a humanoid is killed, and using NumPlayers in players... I can better explain this in code:
local PlayersDied = 0 --ASSUME "humanoid" IS PRE-DEFINED!!! humanoid.Died:connect(function () PlayersDied = PlayersDied + 1 if PlayersDied >= game.Players.NumPlayers then --It may be over if someone left. --Reset the round code here PlayersDied = 0 --Reset the dead count end end)