a11ce.com/source-rip.html

Ripping Source Engine Textures, Models, and Sounds on macOS

This page contains instructions for ripping textures, models, and sounds from Source engine games on macOS. It’s straightforward, but involves several pieces of software that are a bit hard to find. This method has been tested on Half-Life 2 and Insurgency; it might not work for newer games.

I’m on macOS 10.14.6. If you’re on 10.15+ (so no 32-bit support) you might have better luck on some of these steps with running the usual Windows tools with Wine/Whisky.

Locating the source files

Source engine resources are stored in .vpk files. Different games are organized differently, but you’re usually looking for a folder (often with the name of the game) containing a bunch of .vpks.

Insurgency has models, materials, and sound. HL2 has its models in misc. You might have to try a few vpks to find what you’re looking for.

Unpacking vpks

For this, we will use w0lfschild’s VPK. Make sure to copy it into your Applications folder.

To unpack a vpk, open the VPK app and drag and drop the file ending in _dir.vpk. The contents will be extracted to a folder alongside the vpk.

Audio files will be .wavs, but models and textures need to be converted into a usable format.

Converting .vtf textures

Here we need Mark Douma’s Source Finagler. Source Finagler also claims to be able to unpack vpks but that doesn’t seem to work anymore.

When you open Source Finagler, it will associate itself to the .vtf filetype. Then you can browse/quick-look through the extracted textures in Finder, open them in Source Finagler, and Save As in whatever format you like. I’m describing it this way because I don’t know of an automated way to do this conversion, so it really is nice to be able to preview textures before converting them.

Converting .mdl models

The only way that I could find to convert .mdl models is through the SourceIO Blender addon. I installed Blender 3.4.1 just for this purpose and it works fine. Download SourceIO.zip from the github releases (don’t unzip it). Install it (Edit -> Preferences -> Add-Ons -> Install... -> select SourceIO.zip), import a .mdl according to the readme, and export as usual.

Using Blender because there’s no way to preview models before importing them, you just have to guess based on the names.


I think it should be possible to automate model batch coversion using the Blender Python API. If you do this, please let me know. Likewise, feel free to contact me if you have any improvements/extensions to these methods, info applicable to macOS 10.15+, or need help with any step.