Thanks everyone. I'd like to find a way to keep the weapon selection, if you had a kar, keep a kar, if you had a springfield, keep a springfield etc.. but this is good for now. I've wrapped it around a loop for executing via rcon - here's that if anyone is interested:
// RCON support for "randomly" shuffling teams - thanks to X-Null community
// rcon shuffle_teams 1 to execute
main:
setcvar "shuffle_teams" ""
while (1)
{
local.cvar = getcvar "shuffle_teams"
if(local.cvar != "")
{
teamswitchdelay 0;
for (local.i = 1; local.i <= $player.size; local.i++) {
local.player = $player[local.i];
local.player spectator;
}
wait 1
for (local.i = 1; local.i <= $player.size; local.i++) {
local.array[local.i] = local.i;
}
local.array = waitthread Shuffle local.array local.array[1] local.array.size;
for (local.i = 1; local.i <= local.array.size; local.i++) {
local.player = $player[local.array[local.i]];
if (local.i % 2)
local.player join_team allies;
else
local.player join_team axis;
local.player primarydmweapon sniper;
local.player respawn;
}
setcvar "shuffle_teams" ""
}
wait 0.5
}
end;
Shuffle local.array local.lower local.upper:
local.bounds = local.lower::local.upper;
for (local.i = local.bounds[2]; local.bounds[1] <= local.i; local.i--) {
local.swapIdx = randomint(abs(local.i)) + local.bounds[1];
local.tmp = local.array[local.i];
local.array[local.i] = local.array[local.swapIdx];
local.array[local.swapIdx] = local.tmp;
}
end local.array;