Code:
	addTestClients()
{	
	if(!isDefined(level.botsConnected))
		level.botsConnected = 0;
		
	setCvar("scr_testclients","0");
	
	ent = [];
	wait 10; //Give server some time to initialize other scripts
	for(;;)
	{
		if(getCvarInt("scr_testclients") > 0)
			break;
		
		wait 1;
	}
	
	if(level.botsConnected >= 60)
		return; //Give some free player slots.
	testclients = getCvarInt("scr_testclients");
	for(i = 0; i < testclients; i++)
	{
		wait .3; //Lets give server some time to add the bots, if they get a welcome message it shouldnt lagg anymore
		ent[i] = addtestclient();
		ent[i] thread TestClient();
		
		level.botsConnected++;
		//iprintln("DEBUG: Bots Connected: " + level.botsConnected);
	}
	
	thread addTestClients();
}
TestClient()
{
	self.pers["bot"] = true;
	
	wait 3; //Give server some time to add the bot
	
	self notify("menuresponse", game["menu_team"], "autoassign");
	wait 1;
	
	for(;;)
	{
		if(getCvar("g_gametype") == "zom")
		{
			switch(randomInt(23)) //Later chnange to level.alliesWeapon[randomInt(level.alliesWeapon.size)]
			{
				case 0:
				case 1:
						self notify("menuresponse", game["menu_weapon_allies"], "greasegun_mp");
					break;
				case 2:
						self notify("menuresponse", game["menu_weapon_allies"], "m1carbine_mp");
					break;
				case 3:
						self notify("menuresponse", game["menu_weapon_allies"], "m1garand_mp");
					break;
				case 4:
						self notify("menuresponse", game["menu_weapon_allies"], "springfield_mp");
					break;
				
				case 5:
						self notify("menuresponse", game["menu_weapon_allies"], "thompson_mp");
					break;
				case 6:
						self notify("menuresponse", game["menu_weapon_allies"], "bar_mp");
					break;
				case 7:
						self notify("menuresponse", game["menu_weapon_allies"], "sten_mp");
					break;
				
				case 8:
						self notify("menuresponse", game["menu_weapon_allies"], "enfield_mp");
					break;
				case 9:
						self notify("menuresponse", game["menu_weapon_allies"], "enfield_scope_mp");
					break;
				case 10:
						self notify("menuresponse", game["menu_weapon_allies"], "bren_mp");
					break;
				case 11:
						self notify("menuresponse", game["menu_weapon_allies"], "PPS42_mp");
					break;
				case 12:
						self notify("menuresponse", game["menu_weapon_allies"], "mosin_nagant_mp");
					break;
				case 13:
						self notify("menuresponse", game["menu_weapon_allies"], "SVT40_mp");
					break;
					
				case 14:
						self notify("menuresponse", game["menu_weapon_allies"], "mosin_nagant_sniper_mp");
					break;
					
				case 15:
						self notify("menuresponse", game["menu_weapon_allies"], "ppsh_mp");
					break;
					
				case 16:
						self notify("menuresponse", game["menu_weapon_allies"], "mp40_mp");
					break;
					
				case 17:
						self notify("menuresponse", game["menu_weapon_allies"], "kar98k_mp");
					break;
					
				case 18:
						self notify("menuresponse", game["menu_weapon_allies"], "g43_mp");
					break;
					
				case 19:
						self notify("menuresponse", game["menu_weapon_allies"], "kar98k_sniper_mp");
					break;
					
				case 20:
						self notify("menuresponse", game["menu_weapon_allies"], "mp44_mp");
					break;
					
				case 21:
						self notify("menuresponse", game["menu_weapon_allies"], "shotgun_mp");
					break;
					
				case 22:
						self notify("menuresponse", game["menu_weapon_allies"], "chainsaw_mp");
					break;
					
				case 23:
						self notify("menuresponse", game["menu_weapon_allies"], "flametrower_mp");
					break;
			}
		}
		else
		{
			if (self.pers["team"]=="allies")
				self notify("menuresponse", game["menu_weapon_axis"], "springfield_mp");
			else
				self notify("menuresponse", game["menu_weapon_axis"], "kar98k_mp");
		}
		wait 1.5;
	}
}