Snow

Adding snow to your map is quite simple, in radiant you have to add an outdoor volume covering your whole playable area. ( Make sure to check enabled0-3, else the snow goes through your brushes still )

Make a copy of zm_usermap.gsc and copy that into your map folder. Make sure to include it into your zone.

Open the file and find this line:

level util::set_lighting_state( 1 );

And replace with this:

level util::set_lighting_state( 0 );

Now we have to modify your mapname.csc

Add this above your main() function:

#define SNOW_FX "dlc0/factory/fx_snow_player_os_factory"
#precache( "client_fx", SNOW_FX );

Add this line into the main() function:

callback::on_localplayer_spawned( &on_localplayer_spawned );

And copy and paste the following functions:

function on_localplayer_spawned( localClientNum )
{
    if( self == GetLocalPlayer( localClientNum ) )
        self thread falling_snow(localClientNum);
}

function falling_snow(localClientNum)
{
    self endon( "disconnect" );
    self endon( "entityshutdown" );
    self endon( "death" );
    while(1)
    {
        PlayFX( localClientNum, SNOW_FX, self.origin );
        wait 0.3; //Change this to increase or decrease the snow intensity (Higher = Slower )
    }
}

Compile and link the map, enjoy the weather!