A recent Steam patch disabled binding vocalize commands to the keyboard. No reason was given by Valve, but most speculate it was to prevent voice spamming. I missed them so I searched the internet for a solution. After reading the instructions on this site, and in the steam forums, I’ve found a workaround by binding vocalize into radial menus.
I managed to get 1 new radial menu working bound to the ‘V’ key, while also preserving the default radial menus bound to ‘Z’ and ‘X’. This guide tells you how I did it.
The process involves creating a new .vpk file and using autoexec.cfg to load it. You can download my copies of these files here. To know what to do with them, see steps 5 to 10.
Below are the complete steps for creating the VPK and CFG files.
1) Ensure the following directory structure exists. Create any missing directories (should be radialmenu\scripts).
C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2\addons\radialmenu\scripts
2) Create a radialmenu.txt file inside the scripts directory above and populate it with the text below. What it does is to add one new radial menu called Old while also preserving the default Valve ones (Orders, QA).
"RadialMenu"
{
//--------------------------------------------------------------
"Old,Survivor,Alive"
{
"Center"
{
"command" "vocalize _C4M5_BoatComing01"
"text" "Virgil"
}
"North"
{
"command" "vocalize playeranswerlostcall"
"text" "AnswerLostCall"
}
"NorthEast"
{
"command" "vocalize _C4_BigStormHits01"
"text" "Storm"
}
"East"
{
"command" "vocalize _c4m2_ElevatorHere01"
"text" "Elevator"
}
"SouthEast"
{
"command" "vocalize C5M3Jets2"
"text" "Jets"
}
"South"
{
"command" "vocalize PlayerLostCall"
"text" "PlayerLostCall"
}
"SouthWest"
{
"command" "vocalize playerdeath"
"text" "Death"
}
"West"
{
"command" "vocalize C2M1Intro_401"
"text" "Beautiful"
}
"NorthWest"
{
"command" "vocalize C2M1Intro_402"
"text" "ILoveYou"
}
}
//--------------------------------------------------------------
"Orders,Survivor,Alive"
{
"Center"
{
"command" "vocalize smartlook"
"text" "#L4D_rosetta_look"
}
"North"
{
"command" "vocalize PlayerMoveOn"
"text" "#L4D_rosetta_letsgo"
}
"NorthEast"
{
"command" "vocalize PlayerLeadOn"
"text" "#L4D_rosetta_youtakelead"
}
"East"
{
"command" "vocalize PlayerHurryUp"
"text" "#L4D_rosetta_hurry"
}
"SouthEast"
{
"command" "vocalize PlayerNiceJob"
"text" "#L4D_rosetta_nicejob"
}
"South"
{
"command" "vocalize PlayerWaitHere"
"text" "#L4D_rosetta_waithere"
}
"SouthWest"
{
"command" "vocalize PlayerToTheRescue"
"text" "#L4D_rosetta_totherescue"
}
"West"
{
"command" "vocalize PlayerWarnCareful"
"text" "#L4D_rosetta_becareful"
}
"NorthWest"
{
"command" "vocalize PlayerImWithYou"
"text" "#L4D_rosetta_withyou"
}
}
//--------------------------------------------------------------
"QA,Survivor,Alive"
{
"Center"
{
"command" "vocalize PlayerAskReady"
"text" "#L4D_rosetta_ready"
}
"North"
{
"command" "vocalize PlayerLaugh"
"text" "#L4D_rosetta_laugh"
}
"NorthEast"
{
"command" "vocalize PlayerTaunt"
"text" "#L4D_rosetta_taunt"
}
"East"
{
"command" "vocalize PlayerNegative"
"text" "#L4D_rosetta_negative"
}
"SouthEast"
{
"command" "vocalize PlayerNo"
"text" "#L4D_rosetta_no"
}
"South"
{
"command" "vocalize PlayerSorry"
"text" "#L4D_rosetta_sorry"
}
"SouthWest"
{
"command" "vocalize PlayerYes"
"text" "#L4D_rosetta_yes"
}
"West"
{
"command" "vocalize PlayerHurrah"
"text" "#L4D_rosetta_hurrah"
}
"NorthWest"
{
"command" "vocalize PlayerThanks"
"text" "#L4D_rosetta_thankyou"
}
}
//--------------------------------------------------------------
"Orders,Zombie,Alive"
{
"Center"
{
"command" "vocalize PlayerZombieTaunt"
"label" "#L4D_rosetta_grrrr"
}
}
//--------------------------------------------------------------
"QA,Zombie,Alive"
{
"Center"
{
"command" "vocalize PlayerZombieTaunt"
"text" "#L4D_rosetta_grrrr"
}
}
//--------------------------------------------------------------
"Alerts,Zombie,Alive"
{
"Center"
{
"command" "vocalize PlayerZombieTaunt"
"text" "#L4D_rosetta_grrrr"
}
}
}
3) Create a file called addoninfo.txt inside the radialmenu directory and insert this:
"AddonInfo"
{
addonSteamAppID 550
addontitle "Custom Radial"
addonversion 1.0
addontagline "Customized Radial"
addonauthor "Andrew Lim"
addonContent_Campaign 0
addonURL0 "http://windrealm.com"
addonDescription "Adds custom radial menu"
}
4) Locate vpk.exe. The one I used was located in a Left 4 Dead directory.
C:\Program Files\Steam\steamapps\common\left 4 dead\bin\vpk.exe
5) Drag the radialmenu directory in step 1 onto the vpk.exe. This will create the following file:
C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2\addons\radialmenu.vpk
6) Open the following autoexec.cfg or create it if it doesn’t exist.
C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2\cfg\autoexec.cfg
7) Add the following into autoexec.cfg and save the file.
alias +menuOld "+mouse_menu Old" alias -menuOld "-mouse_menu" bind v +menuOld
8 ) Start Left 4 Dead 2, go to Extras -> Add-ons and ensure your Custom Radial is CHECKED. If it isn’t, CHECK it then restart Left 4 Dead 2.
9) Play Single Player to test your menu works by typing ‘V’.
10) Before joining a public server, go back to Extras -> Add-ons and UNCHECK Custom Radial.
Everytime you restart Left 4 Dead 2, you should performs steps 8-10 before joining a public server, otherwise you may get “consistency” errors about “radialmenu.txt”.
Please note that if you modify radialmenu.txt and add new radial menus, you must regenerate a new radialmenu.vpk.





