HowTo - Creating your own soundset

BrainBread 2318 views16 favorites4 min readby WuffesanUpdated Jul 11, 2017View on Steam ↗

The General Basics

Before we start, you first need to know that to create your own custom voiceset for survivors, or any of the available NPC choices, you need to first create a text file in 2 areas, depending which it is.

Step 1: Voicebanks
The voicebanks is where you define which sounds should be registered. We made these into text files and easy to modify for people who want to create their own voicebanks, or voicesets. You can find these banks under the brainbread2/data/soundsets under the root folder of the game. This is where you setup your voicebanks to one of the following:
  • Fred
  • Walker
  • Military
  • Bandit
  • Announcer
  • HumanPlayer
  • ZombiePlayer

Step 2: In-Game worthy
Before we begin, go trough the official voicebanks to see how its all setup. After you have done that, we should begin with the next step, making the sounds to actually work! Now we head into brainbread2/data/soundscripts, there you can find a lot of soundscripts files, but the ones we are looking for are these:
  • npc
  • player

Its a simple way to organize your soundscripts, and to let people know where the sound is coming from. Now, let's say we want to create a player voiceset, we would then just open up the player folder and check how the official ones are setup.

And this is where you would go "what" and be all confused. For example, Pantsman reads the soundscript 'Pantsman', but in the file it says HumanPlayer_Pantsman_Male.

Basically it reads it like this: A_B_C.
  • A = Type
  • B = Our prefix
  • C = Is it male or female?

C is coming from the model name itself, if it has the prefix _male or nothing at all at the end, it will fallback to _Male, else it will read _Female if it finds _female. Quite confusing huh? To put it simply:
  • my_model -- Will read _Male
  • my_model_male -- still reads _Male
  • my_model_female -- reads _Female

Example

The code below is basically the files needed to create your own custom survivor voiceset. Feel free to use this as a base!

Survivor example
data/soundsets/survivor_example.txt
"SoundData" { // Lets add it to all the player characters! "HumanPlayer" { "Name" "My Example" "Prefix" "Example_Survivor" "CharacterLink" "bb_chris" } "HumanPlayer" { "Name" "My Example" "Prefix" "Example_Survivor" "CharacterLink" "bb_pantsman" } "HumanPlayer" { "Name" "My Example" "Prefix" "Example_Survivor" "CharacterLink" "bb_joe" } "HumanPlayer" { "Name" "My Example" "Prefix" "Example_Survivor" "CharacterLink" "bb_mime" } "HumanPlayer" { "Name" "My Example" "Prefix" "Example_Survivor" "CharacterLink" "bb_security" } }

data/soundscripts/player/survivor_example.txt
"HumanPlayer_Example_Survivor_Male.Death" { "channel" "CHAN_VOICE" "volume" "0.8" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/death01.wav" "wave" "voices/example_survivor/death02.wav" "wave" "voices/example_survivor/death03.wav" "wave" "voices/example_survivor/death04.wav" } } "HumanPlayer_Example_Survivor_Male.ImpactPain" { "channel" "CHAN_VOICE" "volume" "0.8" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/pain01.wav" "wave" "voices/example_survivor/pain02.wav" "wave" "voices/example_survivor/pain03.wav" } } "HumanPlayer_Example_Survivor_Male.BurnPain" { "channel" "CHAN_VOICE" "volume" "0.7" "soundlevel" "SNDLVL_75dB" "rndwave" { "wave" "voices/example_survivor/burning01.wav" "wave" "voices/example_survivor/burning02.wav" "wave" "voices/example_survivor/burning03.wav" "wave" "voices/example_survivor/burning04.wav" "wave" "voices/example_survivor/burning05.wav" } } // Custom "HumanPlayer_Example_Survivor_Male.Taunt" { "channel" "CHAN_VOICE" "volume" "0.8" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/taunt01.wav" "wave" "voices/example_survivor/taunt02.wav" "wave" "voices/example_survivor/taunt03.wav" "wave" "voices/example_survivor/taunt04.wav" "wave" "voices/example_survivor/taunt05.wav" "wave" "voices/example_survivor/taunt06.wav" "wave" "voices/example_survivor/taunt07.wav" } } "HumanPlayer_Example_Survivor_Male.Infected" { "channel" "CHAN_VOICE" "volume" "0.900" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/infected01.wav" "wave" "voices/example_survivor/infected02.wav" "wave" "voices/example_survivor/infected03.wav" } } "HumanPlayer_Example_Survivor_Male.PickupHealth" { "channel" "CHAN_VOICE" "volume" "0.700" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/pickup_health01.wav" "wave" "voices/example_survivor/pickup_health02.wav" "wave" "voices/example_survivor/pickup_health03.wav" "wave" "voices/example_survivor/pickup_health04.wav" } } "HumanPlayer_Example_Survivor_Male.PickupBriefcase" { "channel" "CHAN_VOICE" "volume" "0.700" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/obj_briefcase_obtained01.wav" } } // Voice Wheel "HumanPlayer_Example_Survivor_Male.Agree" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/agree01.wav" "wave" "voices/example_survivor/agree02.wav" "wave" "voices/example_survivor/agree03.wav" } } "HumanPlayer_Example_Survivor_Male.Disagree" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/disagree01.wav" "wave" "voices/example_survivor/disagree02.wav" } } "HumanPlayer_Example_Survivor_Male.Follow" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/followme01.wav" "wave" "voices/example_survivor/followme02.wav" "wave" "voices/example_survivor/followme03.wav" } } "HumanPlayer_Example_Survivor_Male.TakePoint" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/takepoint01.wav" "wave" "voices/example_survivor/takepoint02.wav" "wave" "voices/example_survivor/takepoint03.wav" } } "HumanPlayer_Example_Survivor_Male.NoWeapon" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/noweapon01.wav" "wave" "voices/example_survivor/noweapon02.wav" "wave" "voices/example_survivor/noweapon03.wav" } } "HumanPlayer_Example_Survivor_Male.NoAmmo" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/noammo01.wav" "wave" "voices/example_survivor/noammo02.wav" } } "HumanPlayer_Example_Survivor_Male.Ready" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/ready01.wav" "wave" "voices/example_survivor/ready02.wav" } } "HumanPlayer_Example_Survivor_Male.Look" { "channel" "CHAN_VOICE" "volume" "1.0" "pitch" "PITCH_NORM" "soundlevel" "SNDLVL_NORM" "rndwave" { "wave" "voices/example_survivor/lookat_generic01.wav" "wave" "voices/example_survivor/lookat_generic02.wav" } }

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.