i take no credit!

Code:
rainModel()
{
	if(!level.rainModel)
	{
		thread rain("*****************");//change the model to what you want.
		self iPrintln("Raining [^2ON^7]");
		level.rainModel = true;
	}
	else
	{
		self iPrintln("Raining [^1OFF^7]");
		level.rainModel = false;
	}
}
rain(model)
{
	while(level.rainModel)
	{
		range = [];
		for(k = 0; k < 2; k++)
			range[k] = randomIntRange(-2000,2000);
			
		s_model = spawn("script_model",(range[0],range[1],2000));
		s_model setModel(model);
		s_model physicsLaunch(s_model.origin,(0,0,-5000));
		s_model thread deleteAfterTime();
		wait .2;
	}
}
deleteAfterTime()
{
	wait 6;
	self delete();
}