Ads keep us online. Without them, we wouldn't exist. We don't have
paywalls or sell mods - we never will. But every month we have large bills
and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3
This tutorial assumes you have a map generated with: a 3D Skybox, an exterior location, an interior location, and at least one door connecting the two. If you don't have one, make one now. Incidentally, I'm a new mapper, so if I have some terms wrong or have given you an overly complex way of doing something, forgive me and tell me and I might fix the guide.
[title]Optional: Configuring the VMFs[/title]
Valve left us quite a few mistakes in their weather instances. It's important to fix them before continuing, if only so that you don't get frustrated with error messages when you try customizing these effects later on.
1. Open [b]instance\c4m4_environment_ents.vmf[/b]. There is a tiny dot of a [b]func_instance[/b] orbiting the main group of entities. Delete it, it's unnecessary: not only does it reference a file that doesn't exist, but we'll be creating our own func_instance of that item anyway so that it's easier to modify if you ever want to create your own storm effects later.
2. Open [b]instance\c4m4_storm_ents.vmf[/b]. Go to [b]Map->Entity Report...[/b] and click [b]Include Hidden Objects[/b]. You should see seven [b]func_instances[/b]. Select them and hit [b]Delete[/b]. Again, these refer to things which don't exist: in this case, a vestigial special effect to have lightning strike tall objects, which never made an appearance in Hard Rain, and never made it into your instances directory.
3. Finally while still in [b]instance\c4m4_storm_ents.vmf[/b] go to [b]Edit->Select All[/b] and drag the entities to the center of the map. When you place an instance on your real map, you'll want the the contents of [b]instance\c4m4_storm_ents.vmf[/b] to appear near the instance dot, not off in the corner.
[title]Adding The Storm[/title]
Now let's begin setting up the map. We're going to focus on instancing the actual storm (wind and fog and VOIP-blocking) before the rain.
1. Place two [b]func_instance[/b] entities near the center of your map. It doesn't particularly matter where, though you might make them hover in the air so they don't interfere with mapping.
2. Name the first [b]func_instance[/b] [b]c4m4_storm_logic[/b], assign its [b]VMF Filename[/b] to [b]instance/c4m4_storm_logic.vmf[/b], and set its [b]Entity Name Fix Up[/b] to [b]None[/b].
3. Name the second [b]func_instance[/b] [b]c4m4_environment_ents[/b], assign its [b]VMF Filename[/b] to [b]instance/c4m4_environment_ents.vmf[/b], and set its [b]Entity Name Fix Up[/b] to [b]None[/b].
4. Go to your [b]sky_camera[/b] and place a third [b]func_instance[/b]. Name it [b]c4m4_storm_ents[/b], assign its [b]VMF Filename[/b] to [b]instance/c4m4_storm_ents.vmf[/b], and set its [b]Entity Name Fix Up[/b] to [b]None[/b].
[title]Adding The Rain[/title]
Now that the storm is done, let's add the precipitation.
1. Create a trigger brush that covers your entire playable area and assign it to [b]func_precipitation[/b]. Set the [b]Precipitation Type[/b] to [b]Particle Rain Storm[/b] and its [b]name[/b] to [b]rain[/b]. This will automatically detect the presence of your building and block the rain from falling appropriately, but if you ever need to block an additional area (say, if there's a bridge or large pipe prop in the air) creating another trigger brush and assigning it to [b]func_precipitation_blocker[/b] should do the trick.
2. Go to where you placed [b]c4m4_storm_logic[/b] and [b]c4m4_environment_ents[/b] and create two [b]env_soundscape_triggerable[/b] entities.
3. Name the first [b]env_soundscape_triggerable[/b] [b]rain_interior[/b] and assign its [b]Radius[/b] to be [b]0[/b] and its [b]Soundscape[/b] to be [b]rain.interior.med[/b].
4. Name the second [b]env_soundscape_triggerable[/b] [b]rain_exterior[/b] and assign its [b]Radius[/b] to be [b]0[/b] and its [b]Soundscape[/b] to be [b]rain.water.med[/b].
Note that if you want different soundscapes, a list of them can be found here: http://developer.valvesoftware.com/wiki/List_of_L4D_2_Soundscapes#soundscapes_campaign4
5. Go to the entrance door to your building. Create two trigger brushes, one covering the door on the inside and one covering the door on the outside. Assign both brushes to be the [b]trigger_soundscape[/b] type.
6. Assign the interior brush to have a [b]Soundscape[/b] of [b]rain_interior[/b] and the exterior brush to have a [b]Soundscape[/b] of [b]rain_exterior[/b].
7. Copy the appropriate [b]trigger_soundscape[/b] brush and place it over the survivor spawn positions, so that when they load the map they automatically get an earful of soundscape (otherwise, they won't hear the rain falling until they enter or exit your building).
1. Create a fog_volume brush over all interior spaces, and assign it a [b]Fog Name[/b] of [b]foginteriorcontroller[/b] and a [b]Postprocess Name[/b] of [b]fx_settings_interior[/b].
This is just a stepping stone into the larger world of weather effects. If you want to adjust the storm, you'll have to create new instances of your own and tweak the settings within them. But this guide isn't for showing you how to create snowstorms or light drizzles or hurricanes, only a stepping stone to clearly codify the steps for new mappers. Good luck.