Displaying number of traitors at the beginning of the round

I tried to create my own script to show the number of traitors at the beginning of the round. The script prints into everyones chat but every round it says there are only 0 traitors. I have placed this script in the lua/autorun/ folder as i’m unsure if it should go into the server folder.


traitors =  0;

local function printTraitors()

	timer.Create( "printingTraitors", 3, 1, printHelper )
	
end
 
function printHelper()
	if CLIENT then
		
		if (traitors == 1) then
				chat.AddText(Color(255,150,0), "There is 1 Traitor this Round!!!")
				chat.PlaySound()
		
		else
				chat.AddText(Color(255,150,0), "There are " .. traitors ..  " Traitors this Round!!!")
				chat.PlaySound()

		end
		
	end
	WW
end
 
hook.Add("TTTBeginRound", "printTraitors", printTraitors)

hook.Add("TTTBeginRound", "printTraitors1", function()
	for k, ply in pairs( player.GetAll() ) do 
		if ( ply:IsRole(ROLE_TRAITOR)  ) then
			traitors = (traitors + 1) end
		end
	end) 


if ply:GetRole() == ROLE_TRAITOR then

ply:IsTraitor() works perfectly for me.
Just use this:
[lua]hook.Add( “TTTBeginRound”, “NameTraitors”, function()
local traitors = 0
for k, v in pairs( player.GetAll() ) do
if v:IsTraitor() then traitors = traitors +1 end
end
timer.Simple( 3, function()
for k, v in pairs( player.GetAll() ) do
v:ChatPrint( traitors == 1 and “There is 1 Traitor this round.” or “There are “…traitors…” Traitors this round.” )
v:SendLua( “chat.PlaySound()” )
end
end )
end )[/lua]