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!