Left4Dead *.vpk Extraction Tools, Updated

A newer build of my VPK tool. This fixes support for the newer VPK format that was introduced recently in Left4Dead.

Tags: , ,

92 Responses to “Left4Dead *.vpk Extraction Tools, Updated”

  1. VG says:

    thanks for everything you share, you make life that much easier.

    i am here to inform you that from now on you will no longer be known as “Rick” – you are now Ghandi!!
    thanks again!!!


  2. Hey, the program sometimes crashes when i click open when selecting the vpk file… i think this is due to the FolderBrowserDialog, I’ve had problems with them in the past… but please look into it (win XP user)

  3. WesHowe says:

    Worked like a charm, Rick. Saved me a lot of time. πŸ™‚

  4. Criken says:

    Thank’s, really appreciated.

  5. Jawa says:

    All hail to god Rick ……… RICK RULEZ !!!

  6. Jawa says:

    This app made my L4D2 work !!!

  7. Jumbo says:

    You fuck, it can’t be extract! Damn you!

  8. o0Pascal0o says:

    And how can i make a vpk file of my files now -> the other way?

  9. Steve says:

    Thank you.Keep up the good work!

  10. Ramires says:

    Hello fellow gentlemen,this is not working for me has i am vista i do believe that is the problem and i just extracts the scrips wich i don’t need.Rick if you got any updates or you find this “problem” please do inform me has i actually believe this is a good extractor because of the good coments.Good Bye or/and Farewell

    • Geoff says:

      Bumping, I have the exact same problem, and I’m running on vista as well. When I do try to extract a VPK file I require, it gives me the error that the files does not end in “_dir.vpk”
      as a mod developer, I really wish I could use this, thanks for listening.

      • Roelof says:

        You must click on the file ending with _dir.vpk.

        A VPK file consists of a directory file and a bunch of extra files containing content that couldn’t be packed with the main one.

        For example, L4D2 has pak01_dir.vpk which links to files within itself but also grabs cotnent from the files pak01_000.vpk – pak01_063.vpk.

        You cannot open the numbered files on their own because they contain fragments of the file, the _dir file contains location data so the extractor knows what to extract.

        Complex story, I know, but it’s how VPKs work.

        Hope this fixed the problem you had over a year ago.

  11. Ramires says:


  12. Dj Dziadzia says:

    Works for Portal 2 files πŸ˜€

  13. Arka says:

    thanks !

  14. james says:

    Hey do you think it would be possible to build a program that would create a .txt file to explain which directory came from which .vpk file

  15. Jessie says:

    how did u downloaded it people

  16. Peter says:

    I’m having problem with this extraction tool. The program always crash when it tries to extract _dir.vpk files. (Window Vista 32 bit)

  17. jbi says:

    piece of shit

  18. Thomas says:

    Danke, sehr hilfreich

  19. Piece of Shit says:

    This piece of shit doesn’t work…

  20. defragen1 says:

    Just tried it on the CSGO vpk ( right after the de_vertigo update ) and it just gave these errors:


    Here is the extended error details

    It would be great if you released a version that worked with the latest CS:GO vpks. I’ve been using your tool for some time now and it has proven to be quite useful. Much appreciated!

  21. m.noxxon says:

    Works absolutly great, thx a lot!!!

  22. TESLA_man says:

    thanks for this nice tool. I love the sounds from the protected towers of portal 2 !!!
    Its so great!

    Thanks and greetings from Germany


  23. TotesRobots says:

    cheers for this, to anyone having problems, just make a copy of the .vpk you are extracting and append _dir to name, you might need to change original .vpk to another name depending on error report ensuing.

  24. mittorn says:

    It crashed while i tried to extract recent hl2 sounds fs (runs under mono):

    System.FormatException: unexpected version 2
    at Gibbed.Valve.FileFormats.PackageFile.Deserialize (System.IO.Stream input) [0x00000] in :0
    at Gibbed.Valve.ExtractPackage.Extractor.OnOpen (System.Object sender, System.EventArgs e) [0x00000] in :0
    at System.Windows.Forms.Control.OnClick (System.EventArgs e) [0x00000] in :0
    at System.Windows.Forms.Button.OnClick (System.EventArgs e) [0x00000] in :0
    at System.Windows.Forms.ButtonBase.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) [0x00000] in :0
    at System.Windows.Forms.Button.OnMouseUp (System.Windows.Forms.MouseEventArgs mevent) [0x00000] in :0
    at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] in :0
    at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0
    at System.Windows.Forms.ButtonBase.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0
    at System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0
    at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in :0
    at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in :0
    at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in :0

  25. Papahasisis says:


  26. feel it in your bones says:

    Thanks, worked fine for extracting hero sounds from dota 2!

  27. AndrΓ© says:

    The application crash after line …materials\debug\debugmmwireframe.vmt

    Portal2 – Windows 7 x64.

  28. Steamer says:

    Does dir.vpk ONLY instead of vpk, misleading piece of shit, FUCK you

  29. mimiguy2 says:

    Got error:
    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.FormatException: unexpected version 2
    at Gibbed.Valve.FileFormats.PackageFile.Deserialize(Stream input)
    at Gibbed.Valve.ExtractPackage.Extractor.OnOpen(Object sender, EventArgs e)
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Loaded Assemblies **************
    Assembly Version:
    Win32 Version: 2.0.50727.8669 (QFE.050727-8600)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
    Assembly Version:
    Win32 Version:
    CodeBase: file:///C:/Users/Mimiguy2/Documents/extractpackage3/Gibbed.Valve.ExtractPackage.exe
    Assembly Version:
    Win32 Version: 2.0.50727.5491 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/
    Assembly Version:
    Win32 Version: 2.0.50727.8759 (QFE.050727-8700)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/
    Assembly Version:
    Win32 Version: 2.0.50727.5495 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/
    Assembly Version:
    Win32 Version: 2.0.50727.5483 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/
    Assembly Version:
    Win32 Version: 2.0.50727.5494 (Win7SP1GDR.050727-5400)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/
    Assembly Version:
    Win32 Version:
    CodeBase: file:///C:/Users/Mimiguy2/Documents/extractpackage3/Gibbed.Valve.FileFormats.DLL
    Assembly Version:
    Win32 Version:
    CodeBase: file:///C:/Users/Mimiguy2/Documents/extractpackage3/Gibbed.Helpers.DLL

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging

    For example:

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.

  30. jorel says:


  31. When someone writes an paragraph he/she maintains the idea of
    a user in his/her mind that how a user can know it. Thus that’s why this article is amazing.