for x = 1, g_arena:num() do local player = g_arena:get(x) -- Don't change the team of specced players if (player:spectator() == false) then local rand = math.random(0, 50) if (rand >= 25) then player:team_change("Blue Team", "") -- Blue Team elseif (rand < 25) then player:team_change("Red Team", "") -- Red Team end end end -- Balance teams if needed g_arena:message("Teams have been scrambled") local blueTeam = g_arena:getteam(1) local redTeam = g_arena:getteam(2) local numBlue = blueTeam:numplaying() local numRed = redTeam:numplaying() local difference = numRed - numBlue if (difference > 1) then while (difference > 1) do local redplayer = redTeam:get(math.random(1, numRed)) redplayer:team_change("Blue Team", "") numRed = numRed - 1 numBlue = numBlue + 1 difference = numRed - numBlue end elseif (difference < -1) then while (difference < -1) do local blueplayer = blueTeam:get(math.random(1, numBlue)) blueplayer:team_change("Red Team", "") numRed = numRed + 1 numBlue = numBlue - 1 difference = numRed - numBlue end end