I want to assign players to random table and with restrictions on how many can go in one table? So I have tried it this way but nothing works like its supposed to. How can you solve the issues with this script, and should I rewrite it?(No errors, also,I cut the script)
local Players = game:GetService("Players")
NeedRole = {}
Villagers = {}
Werewolves ={}
Arsonists = {}
Hunters ={}
Mediums ={}
Seers ={}
Jesters ={}
Witches ={}
Printing = false
game.Players.PlayerAdded:Connect(function(plr)
table.insert(NeedRole,1,plr)
print("Just joined: "..plr.Name)
if table.getn(Players:GetPlayers()) == 3
then
print("There are "..table.getn(Players:GetPlayers()).." Players, choosing Roles!")
wait(1)
print("...Choosing...")
wait(3)
for _,randomplayer in pairs(NeedRole)
do
randomplayer = NeedRole[math.random(1, #NeedRole)]
print(randomplayer)
for indexeverywhere,player in pairs(NeedRole)
do
if player == randomplayer then
return indexeverywhere
end
print(indexeverywhere)
if #Villagers < 2
then
table.insert(Villagers,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
print(table.unpack(NeedRole))
elseif #Werewolves < 3
then
table.insert(Werewolves,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
elseif #Arsonists < 1
then
table.insert(Arsonists,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
elseif #Hunters < 1
then
table.insert(Hunters,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
elseif #Mediums <1
then
table.insert(Mediums,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
elseif #Seers <1
then
table.insert(Seers,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
elseif #Jesters <1
then
table.insert(Jesters,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
elseif #Witches <1
then
table.insert(Witches,1,randomplayer)
table.remove(NeedRole,indexeverywhere)
end
end
end
