So in this script findwinner() isn't correct. I'd like the teams to already be there, and I'd like the teams not to remove, once the teams been found. I'd like it to just be a script that teams players, then respawns finds the winner, once everyone's on spectators it says who the winner is, and teams them back evenly into blue and red team. But I don't understand the cloning system. It'll just infinately keep cloning the teams. I'd like help please, thanks.
repeat wait(0)until game:FindFirstChild("Teams")
local NumPlayers = 2 --Change this to the number of players needed
local GameTime = 250 --5 minutes
local A = game.Players
local A1 = "This service is unavailable, please wait until 1 more player joins..."
local A2 = "Welcome to the official meadows sfing game"
local A4 = "5"
local A3 = "The amount of players is successful, and the game will be starting in" .. A4 .. "Seconds.."
local A5 = "Teaming players..."
local A6 = "Blue team has won"
local A7 = "Red team has won"
local BlueTeam = game.Teams:WaitForChild("BlueTeam"):Clone()
local RedTeam = game.Teams:WaitForChild("RedTeam"):Clone()
local redplayers = 0
local blueplayers = 0
local M = Instance.new("Message",game.Workspace)
local H = Instance.new("Hint",game.Workspace)
local TimeForLoop = .5 --This will loop the script every .5 seconds
local players = 0
local GameRun = false
local GameOver = false
local RegenTeams = false
function fixTeams()
local Blue = BlueTeam:Clone()
Blue.Parent = game.Teams
local Red = RedTeam:Clone()
Red.Parent = game.Teams
end
function checkSpectators()
spectators = 0
for _, player in pairs(game.Players:GetChildren()) do
if player.TeamColor == game.Teams.Spectators.TeamColor then
spectators = spectators + 1
if(spectators >= NumPlayers) then
BlueTeam:remove()
RedTeam:remove()
wait(3)
end
end
end
end
function findwinner()
if GameOver then
for _, player in pairs(game.Players:GetPlayers()) do
if player.TeamColor == BlueTeam.TeamColor then
players = blueplayers + 1
wait(5)
if blueplayers == 0 then
print("Blue team has lost")
M.Text = A7
elseif player.TeamColor == RedTeam.TeamColor then
players = redplayers + 1
if redplayers == 0 then
print("Red team has lost")
M.Text = A6
end
end
end
end
end
end
function RegenPlrs()
for i,v in pairs(game.Players:GetPlayers())do
if v and v.Character then
v.Character:BreakJoints()
end
end
end
function StartGame()
if GameRun then
fixteams()
RegenPlrs()
checkspectators()
findwinner()
end
end
coroutine.resume(coroutine.create(function()
while wait(TimeForLoop)do
if not #A:GetPlayers() >= NumPlayers then
M.Text = A1
else
StartGame()
M.Text = ""
wait(1)
M.Text = A2
wait(5)
M.Text = A3
for z = 5, 0, -1 do
M.Text = ""..z
wait(1)
end
for i = GameTime, 0, -1 do
H.Text = "Time left: "..i
wait(1)
end
wait(2)
M.Text = "Times up!"
wait(2)
M.Text = "Starting new round..."
wait(2.5)
end
end
end))
