L4D2 vocalize Fix Using Radial Menus and VPK.EXE

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.

Custom Radial Menu

Custom Radial Menu

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.

Anti Virus Software? Who needs that!

I don’t use any anti-virus software on my PC. But it runs fine, and I’m pretty sure it’s not infected by anything more harmful than the occasional tracking cookie from some stupid website.

It’s actually pretty easy to avoid viruses from infecting your PC. There are just 3 things you got to do to prevent 99% of viruses that exist from infecting your PC.

1) Disable AutoRun/AutoPlay for all drives - CDs, USB sticks, etc. USB sticks are especially notorious for transmitting viruses because they usually come from someone you trust, but who has unwittingly let his device become a carrier.

2) Use a browser other than IE.  Many dodgy websites exploit IE flaws because it’s the most popular web browser. I mainly use Firefox for surfing. It has excellent plugins for debugging web applications (Firebug) and for blocking annoying advertisements (Adblock Plus). Another good browser is Google Chrome, which is famous for being fast.

3) Use VirusTotal.com to check files before opening them. Sometimes your best friend sends you a .EXE or .DOC file that you’re not 100% isn’t contaminated. Just upload it to VirusTotal. The site scans the file using a plethora of anti-virus engines. You might be thinking, “But what if the file is really big and uploading it would take a lot of time?” Just find the MD5 hash of the file, using a free tool like MD5summer, and give it to VirusTotal.

Disappointed With P1 WiMAX

I wrote my first P1 WiMAX review a year ago. It was written 2 weeks after I started using the service. Want to know what I think about it now? My honest opinion is that it’s simply not worth the money. I had to pay RM99 per month for almost a year, but the service wasn’t, and still isn’t, up to par.

After the first 2 weeks the speed simply became worse. Connections weren’t consistent. Downtimes happened several times and each time the call support would just tell me there was “maintenance” going on. I don’t know what kind of maintenance they were doing, but no matter how many times they conducted it the service didn’t get any better.

Then after several months the base station in my area started getting congested. Some weeks the latency became very bad. Playing Left 4 Dead or Team Fortress 2 resulted in 300ms pings on average. If you’re a serious gamer, don’t sign up for P1 WiMAX.

Anyway for the past few weeks I have stopped using P1 WiMAX. Why? The old phone line in my house got replaced by TMNet. Now my Streamyx line with 4 people sharing performs better than my P1 WiMAX modem with just me using it. And the Streamyx line is cheaper.

I’m thinking of canceling my P1 WiMAX account permanently. The only reason I haven’t done so yet is that it can serve as a backup connection, but paying RM99 per month doesn’t seem worth it. Also, I have to go to the P1 office to physically return the modem.

Anyway, if you’re planning to switch to P1 WiMAX you have been warned.

New Tool - Car Loan Calculator

I’ve written a new tool. It’s a car loan calculator. It’s JavaScript based. You can check it out here.

Even The Spammers Are Avoiding Me

Traffic has really gone down since Google stopped showing my pages in the first few search results pages. I usually get at least a dozen spam comments to my blog, but today there were just 2. :P

I have a Lua tutorial that used to rank quite highly in the 1st page of results for search phrases like “read lua config file” or “reading lua configuration from c”. Now I can’t even find it in the first 200 results.  :(

I’ve been trying to tweak my site to see if I’m pointing to anything bad. I’ve removed some links to my friends sites because some of them appear suspicious. One of them offers a trojan to download. It’s actually rather harmless programhe wrote himself though.

I’ve also been wondering if my IP address for my domain name is to blame. I’m using shared hosting, and maybe some other domain with the same IP address is dodgy. But surely Google can’t be that pedantic?Or has my Wordpress blog been compromised in some way so that Google has marked the whole domain as bad.

Argh. Maybe Google just has a new algorithm that’s lousy. Because I’m sure 90% of my pages here are relevant and should rank higher. :(

Google Hates Me

Ever since I’ve been blogging about Left 4 Dead, the site traffic from Google search results has shot up.

But since yesterday, I’ve noticed a considerable fall in traffic. Today I tried searching a few terms that usually bring up one of my site pages in the first page of results. To my surprise, I couldn’t find them even after 4 or 5 pages. At first I thought it was just Left 4 Dead results, but some programming and technical keywords also failed to result in site showing up.

What gives?

I don’t know. Maybe I’ve been penalized by Google for something. But I’m quite sure I haven’t done anything against Google’s policies. I don’t buy or sell links. I don’t go around spamming my site URLs everywhere. I’m not sure if competing advertisements is the cause, because I show Advertlets ads as well as Google ads. But wouldn’t it just affect my adsense account?

In any case, I’ve disabled all ads on my blog for the moment, although the main site pages still show Google ads. I’ve heard that this could be related to something called Google Dance. But I’m not sure.

I’ll see whether things improve in a few days. :(

Left 4 Dead Dead Air Runway Survival Exploit

At the time of this writing there exists an exploit that is possible on the Runway level in Survival Mode.

All you have to do is camp at the top off the luggage behind the plane.

This is the luggage to camp on

This is the luggage to camp on

Camp at the top...

Camp at the top...

With this technique the Horde won’t be able to get you. Special infected that spawn behind you can still get you, but most of them coming from the front will get stuck. Tanks coming from the front will get confused and die automatically. However watch out for the occasional tank spawning from behind.

Using this technique for the first time, I managed to exceed 10 minutes and get a Gold Medal. :)

Related Posts:
L4D Dead Air Crane Level Exploit

L4D Dead Air Crane Level Exploit

At the time of this writing, there is still an exploit possible for Survival Mode on the Crane map in the Dead Air campaign. Even though Valve delivered an update fixing exploits a few days ago. Some Taiwanese players showed me how you can use it to get a Gold Medal.

There is a ledge beside the crane the Survivors can camp on that most Infected cannot get you. Aside from the occasional stray zombie and smokers you are mostly safe there.

The following pictures show where the ledge is located.

Camp on this ledge

Camp on this ledge

Continue Reading »

Easiest Gold Medal For Left 4 Dead’s Survival Mode?

I got my 2nd Survival Gold Medal on No Mercy’s Hospital level. (Read how I got the first one here.)

Some guy with 10+ Gold medals told me this level was the easiest one to get a Gold Medal and achieve the Violence Is Golden achievement.

One of the rooms serves as an excellent camping spot. It’s the one located at the end of the hallway. When you start the level though, you’ll find it locked. But you can punch and shoot it to break it.

You can break down these doors

You can break down these doors

Continue Reading »

Left 4 Dead Lighthouse Gold Medal Strategy

I managed to get my first Gold Medal for Left 4 Dead’s Survival Mode tonight. It happened in the Lighthouse level in The Last Stand, which was a pleasant surprise for me. I never expected my first Gold Medal would be in the lighthouse. Previous attempts at playing this level didn’t see me last past 6 minutes, so I couldn’t even get the Silver Medal, much less the Gold one.

So here’s the story. Me and the players whom I was playing with were coming off a lousy round in the lighthouse. We barely clocked 3-4 minutes. I suddenly had an inspiration to try out a new strategy. It was crazy enough to work. And it did. Better than any of us expected.

So here’s what we did for the lighthouse level. We camped next to the Survivor spawn area. Yes, the area with all the medical packs. I figured at least we would be able to replenish our ammo easily with the ammo stash nearby and there were plenty of molotovs and pipe bombs within reach. We put our backs to the shelf, so that the Infected could only get us mainly coming up from the front or the right side. We also had at least 2 people with auto shotguns to quickly take down tanks.

The following picture shows us 2 minutes into the game. We had a good vantage point for the incoming Infected. We dealt with them using pistols and igniting the petrol cans. When the first 2 tanks arrived, they came through the engine room and we managed to kill them without barely being hit. You see 3 of us in this picture. The 4th player is camping on the shelf behind me, so the ground Infected couldn’t get him easily. I’m not sure if this is important, but he kept going back up there throughout the game and it seemed to help.

Camp near the ammo and medpack area

Camp near the ammo and medpack area

Continue Reading »