L4D2 Custom Sound and Music Tutorial: Difference between revisions
ThaiGrocer (talk | contribs) |
ThaiGrocer (talk | contribs) No edit summary |
||
Line 7: | Line 7: | ||
==Sound File Requirements== | ==Sound File Requirements== | ||
The following file types and specifications have been known to work: | The following file types and specifications have been known to work: | ||
.WAV - 22 Khz and 44 Khz - Mono and Stereo | |||
.MP3 - 128 Kbps - Mono and Stereo | |||
==MP3 Method== | ==MP3 Method== | ||
{{note| .MP3 files are a lot smaller than .WAV files, but they require more processing power and therefore lowers either client or server performance}} | {{note| .MP3 files are a lot smaller than .WAV files, but they require more processing power and therefore lowers either client or server performance}} | ||
.MP3 sound files will play in-game if they are added in the ''sound/music''' folder and '''do not need to be embedded'''. | .MP3 sound files will play in-game if they are added in the '''sound/music/<folder or no folder>''' folder and '''do not need to be embedded''' to work in-game or when shipping a VPK. | ||
==Embedded BSP Method== | ==Embedded BSP Method== | ||
Custom .WAV files must be [[BSPZIP|embedded in a BSP]], but they can be placed anywhere, preferably under the '''sound'' folder. Third-party tools like [[Pakrat]] currently do not work with L4D2 BSP files. | Custom .WAV files must be [[BSPZIP|embedded in a BSP]] to work and when shipped as a VPK, but they can be placed anywhere, preferably under the '''sound''' folder for the internal path. Third-party tools like [[Pakrat]] currently do not work with L4D2 BSP files. | ||
Create a list of files you would like to embed '''C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin\<listfile>.txt''':<br><pre>internal_path\file1 | Create a list of files you would like to embed '''C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin\<listfile>.txt''':<br><pre>internal_path\file1 | ||
Line 21: | Line 23: | ||
* Internal paths ('relative paths') are the location the file will take within the BSP, e.g. <code>materials/metal/new_steel.vmt</code>. | * Internal paths ('relative paths') are the location the file will take within the BSP, e.g. <code>materials/metal/new_steel.vmt</code>. | ||
* External paths ('full paths') are the location of the file to be packed, e.g. <code>C:\Users\Public\our_maps\materials\metal\new_steel.vmt</code>. | * External paths ('full paths') are the location of the file to be packed, e.g. <code>C:\Users\Public\our_maps\materials\metal\new_steel.vmt</code>. | ||
{{Note|It is recommended that the internal path be | {{Note|It is recommended that the internal path be typed exactly as shown in the example (use of forward slash ("/") instead of backslash ("\")}} | ||
# It is recommended to copy the <map name>.bsp to '''C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin''' (Windows 32-Bit, default) | # It is recommended to copy the <map name>.bsp to '''C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin''' (Windows 32-Bit, default) | ||
Line 41: | Line 43: | ||
wave common/null.wav | wave common/null.wav | ||
}</pre> | }</pre> | ||
If a value has a space or tab character within it, wrap it in "quote marks". | |||
=== Examples === | === Examples === | ||
<pre> | <pre>Ambience.Siren | ||
{ | |||
channel CHAN_WEAPON | |||
volume VOL_NORM | |||
pitch PITCH_NORM | |||
soundlevel SNDLVL_NORM | |||
wave siren1.wav | |||
}</pre> | |||
<pre>Arbitrary.Song | |||
{ | { | ||
channel CHAN_AUTO | channel CHAN_AUTO | ||
Line 49: | Line 59: | ||
pitch PITCH_NORM | pitch PITCH_NORM | ||
soundlevel SNDLVL_NORM | soundlevel SNDLVL_NORM | ||
wave | wave music/singalongsong.wav | ||
}</pre> | |||
<pre>Foo.Song_mp3 | |||
{ | |||
channel CHAN_STATIC | |||
volume VOL_NORM | |||
pitch 100 | |||
soundlevel SNDLVL_NORM | |||
wave music/songalongdong.mp3 | |||
}</pre> | }</pre> | ||
==Testing In-Game== | ==Testing In-Game== |
Revision as of 18:53, 13 February 2010
Introduction
Adding custom sound and music in a Left 4 Dead 2 map appears to be more flexible than Left 4 Dead. The following tutorial will first cover getting custom sounds to work in-game, then followed by customizing existing in-game event sounds (such as music and sound effects).
It is recommended to start with at least the following:
- A map that can be loaded in-game named however you like - maps/<map name>.bsp
- A blank per-map soundscript (a .txt file) named maps/<map name>_level_sounds.txt
Sound File Requirements
The following file types and specifications have been known to work: .WAV - 22 Khz and 44 Khz - Mono and Stereo .MP3 - 128 Kbps - Mono and Stereo
MP3 Method

.MP3 sound files will play in-game if they are added in the sound/music/<folder or no folder> folder and do not need to be embedded to work in-game or when shipping a VPK.
Embedded BSP Method
Custom .WAV files must be embedded in a BSP to work and when shipped as a VPK, but they can be placed anywhere, preferably under the sound folder for the internal path. Third-party tools like Pakrat currently do not work with L4D2 BSP files.
Create a list of files you would like to embed C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin\<listfile>.txt:
internal_path\file1 external_path\file1 internal_path\file2 external_path\file2 ...
- Internal paths ('relative paths') are the location the file will take within the BSP, e.g.
materials/metal/new_steel.vmt
. - External paths ('full paths') are the location of the file to be packed, e.g.
C:\Users\Public\our_maps\materials\metal\new_steel.vmt
.

- It is recommended to copy the <map name>.bsp to C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin (Windows 32-Bit, default)
- Open the Windows Command Prompt, preferable with administrator privileges.
- Go to bin directory containing bspzip.exe:
cd C:\Program Files\Steam\steamapps\common\left 4 dead 2\bin
- Embed the files with the following commands:
bspzip -addlist <bspfile> <listfile> <newbspfile>
Tip:You can quickly select your file in command prompt by typing in the first letters of <map name> and hit
TAB
to cycle through file names - If BSPZIP is looking for gameinfo.txt try:
bspzip -addlist <bspfile> <listfile> <newbspfile> -game "C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2"
Creating the Soundscript
Open <map name>_level_sounds.txt with a text editor.
An entry can be played in-game via console or entity, such as ambient_generic or ambient_music. An example entry:
entry.name { channel CHAN_AUTO volume VOL_NORM pitch PITCH_NORM soundlevel SNDLVL_NORM wave common/null.wav }
If a value has a space or tab character within it, wrap it in "quote marks".
Examples
Ambience.Siren { channel CHAN_WEAPON volume VOL_NORM pitch PITCH_NORM soundlevel SNDLVL_NORM wave siren1.wav }
Arbitrary.Song { channel CHAN_AUTO volume VOL_NORM pitch PITCH_NORM soundlevel SNDLVL_NORM wave music/singalongsong.wav }
Foo.Song_mp3 { channel CHAN_STATIC volume VOL_NORM pitch 100 soundlevel SNDLVL_NORM wave music/songalongdong.mp3 }
Testing In-Game
- Open <map name>.bsp via console
map <map name>.bsp coop
- Test out the sound via console
playgamesound entry.name