Hello everyone, I am in the process of building and scripting a battle royale game and I've pretty much got everything done apart from one thing; a stalemate. This can happen if the last two players standing are killed by the same bomb, and that way there is no winner. When this happens, the last two players get teleported back to the lobby and the timer continues ticking down until 0, and only then does the game continue and start a new round.
Here is my script so far...
local s = script.Stat
local vals = game.ReplicatedStorage.vals
t = 0
while true do
local plrs = game.Players:GetChildren()
if #plrs > 1 then
t = 15
repeat
t = t-1
s.Value = "Intermission..."..t
wait(1)
until t == 0
s.Value = "Game starting!"
wait(3)
local mapselect = game.ReplicatedStorage.Games:GetChildren()
local choose = math.random(1,#mapselect)
curnum=0
for i =1,#mapselect do
curnum = curnum+1
if curnum == choose then
mapselect[i]:Clone().Parent = workspace
curmap = mapselect[i].Name
s.Value = ""
end
end
wait(3)
local plrs = game.Players:GetChildren()
for i = 1,#plrs do
local num = math.random(1,8)
plrs[i].Character.Head.CFrame = CFrame.new(workspace.Teleports["Part"..num].Position)
plrs[i].Character.Parent = workspace.Ingame
end
t=120
repeat
t = t-1
s.Value = t.." seconds left"
wait(1)
local ingame = workspace.Ingame:GetChildren()
until t ==0 or vals.Winner.Value ~= "" or #ingame == 1
local ingame = workspace.Ingame:GetChildren()
if #ingame == 1 then
vals.Winner.Value = ingame[1].Name
s.Value = vals.Winner.Value .. " has won!"
game.Players[vals.Winner.Value].leaderstats.Points.Value =game.Players[vals.Winner.Value].leaderstats.Points.Value +50
game.Players[vals.Winner.Value].leaderstats.Wins.Value =game.Players[vals.Winner.Value].leaderstats.Wins.Value +1
vals.Winner.Value = ""
end
if vals.Winner.Value ~= "" then
s.Value = vals.Winner.Value.. " has won!"
game.Players[vals.Winner.Value].Leaderstats.Points.Value =game.Players[vals.Winner.Value].Leaderstats.Points.Value +50
game.Players[vals.Winner.Value].Leaderstats.Wins.Value =game.Players[vals.Winner.Value].Leaderstats.Wins.Value +1
vals.Winner.Value = ""
end
if t < 1 then
s.Value = "No one has won!"
vals.Winner.Value = ""
local ingame = workspace.Ingame:GetChildren()
if #ingame == 0 then
s.Value = "No one has won!"
vals.Winner.Value = ""
end
end
wait(3)
local ingame = workspace.Ingame:GetChildren()
for i =1,#ingame do
local plr = game.Players:GetPlayerFromCharacter(ingame[i])
plr:LoadCharacter()
end
workspace[curmap]:Destroy()
else
s.Value = "Two or more players are needed to play."
wait(1)
end
end
I have tried adding a piece of code underline 40, which reads
if #ingame == 0 then
s.Value = "No one has won!"
vals.Winner.Value=""
However, this doesn't seem to work as yet again, the two final players are teleported back to the lobby as the timer runs down.
Any help is appreciated!

1 comment
Thanks for the answer! Would you know how to add a message saying "no one has won!" afterwards by any chance?