Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Problem with splitting players into two teams?

I got all the "plrs" in a table and then tried to split them into two. But it doesnt place the players on each team..

plrs = IsOrNotAfkTable(false)

local RedTeam = Instance.new("Team", game:GetService("Teams"))
RedTeam.TeamColor = BrickColor.new("Really red")
RedTeam.Name = "Red"
local Folder = Instance.new("Folder", RedTeam)
Folder.Name = "leaderstats"
local Hits = Instance.new("IntValue",Folder)
Hits.Name = "Hits"


local BlueTeam = Instance.new("Team", game:GetService("Teams"))
BlueTeam.TeamColor = BrickColor.new("Navy blue")
BlueTeam.Name = "Blue"
local Folder = Instance.new("Folder", BlueTeam)
Folder.Name = "leaderstats"
local Hits = Instance.new("IntValue",Folder)
Hits.Name = "Hits"

local redTeam = {}
local blueTeam = {}

local plrsOnEachTeam = math.floor(#plrs / 2)

function Teamer()
for i = 1,plrsOnEachTeam,1 do
    table.insert(redTeam,#redTeam + 1,plrs[1])
    table.remove(plrs,1)
end

for i =1,plrsOnEachTeam,1 do
    table.insert(blueTeam,#blueTeam + 1,plrs[1])
    table.remove(plrs,1)
end

--In case there is a leftover player
if #plrs == 1 then
    table.insert(redTeam,#redTeam + 1,plrs[1])
    table.remove(plrs,1)
end

1 answer

First of all, you never called the function. Second of all, you never actually added each player, all this script is doing is deciding how many players should go on each team, but it never actually sets it. This is the script I came up with

wait(5)

plrs = IsOrNotAfkTable(false)

local RedTeam = Instance.new("Team", game:GetService("Teams"))
RedTeam.TeamColor = BrickColor.new("Really red")
RedTeam.Name = "Red"
local Folder = Instance.new("Folder", RedTeam)
Folder.Name = "leaderstats"
local Hits = Instance.new("IntValue",Folder)
Hits.Name = "Hits"


local BlueTeam = Instance.new("Team", game:GetService("Teams"))
BlueTeam.TeamColor = BrickColor.new("Navy blue")
BlueTeam.Name = "Blue"
local Folder = Instance.new("Folder", BlueTeam)
Folder.Name = "leaderstats"
local Hits = Instance.new("IntValue",Folder)
Hits.Name = "Hits"

local redTeam = 0
local blueTeam = 0

local plrsOnEachTeam = math.floor(#plrs / 2) 

function Teamer()
	for i = 1,plrsOnEachTeam,1 do
	    redTeam = redTeam + 1
	    table.remove(plrs,1)
	end
	
	for i = 1,plrsOnEachTeam,1 do
	    blueTeam = blueTeam + 1
	    table.remove(plrs,1)
	end
	
	--In case there is a leftover player
	if #plrs == 1 then
	    redTeam = redTeam + 1
	    table.remove(plrs,1)
	end
	
	local redLeft = redTeam
	local blueLeft = blueTeam
	
	for i, v in pairs(game.Players:GetPlayers()) do
		if v then
			if redLeft > 0 then
				redLeft = redLeft - 1
				v.Team = RedTeam
			elseif blueLeft > 0 then
				blueLeft = blueLeft - 1
				v.Team = BlueTeam
			end
		end
	end
end

Teamer()

This discussion is preserved as it was. New answers, comments, and votes are closed.