I'm writing a round script for my new game, And I came across an error while sorting the teams:
08:31:38.422 - Workspace.GameScript:41: bad argument #3 to 'TeamColor' (BrickColor expected, got userdata)
I have no clue how to fix it. Here is the script itself : [Some parts are cut off]
--Varibales--
Text = game.Lighting.Text1
Maps = {"Testing", "Testing 2"}
NumMaps = 2
--------------
--------Script--------
if not game.Players then
Text.Value = "Oh no! There is not enough players to continue..."
else
Text.Value = "Welcome to the game! A new game is starting in a couple of seconds..."
wait(3)
Text.Value = "Picking map..."
wait(2)
RandomChoice = math.random(1, NumMaps)
CurrentMap = Maps[RandomChoice]
ChosenMap = game.ServerStorage:FindFirstChild(CurrentMap)
ChosenMap:clone().Parent = game.Workspace
ChosenMap.Name = "Map"
Text.Value = "The map selected is : "..CurrentMap.."!"
wait(3)
Text.Value = "Preparing your spawn areas..."
wait(2)
Text.Value = "Sorting you into teams..."
Teams = {
teamRed = game:GetService("Teams")["Red Bloxxers"],
teamBlue = game:GetService("Teams")["Blue Bloxxers"]
}
function ScrambleTeams() --Here is where the team sorting begins
local plrs = game.Players:GetPlayers()
local plrsNew = {}
--Scramble table:
while (#plrs > 0) do
local i = math.random(#plrs)
table.insert(plrsNew, plrs [i])
table.remove(plrs, i)
end
local teamEven = (math.random() < 0.5 and Teams.teamRed or Teams.teamBlue)
local teamOdd = (teamEven == Teams.teamRed and Teams.teamBlue or Teams.teamRed)
for i,p in pairs(plrsNew) do
p.TeamColor = ((i % 2) == 0 and teamEven or teamOdd) --Here is the error
end
end
ScrambleTeams()
for i = 15, 1, -1 do
Text.Value = "Time left : "..i.." seconds"
wait(1)
end
end
Any help is appreciated, Thanks!

1 comment
Thanks for the answer, But now it doesn't even sort...