S&box Wiki

Source 1 Material Porting

Source 1 Material Porting

The "Character" Shaders from Counter-Strike: Global Offensive will not work properly with this method. You will not get the same results like in CS:GO. The "character" shader in CS:GO, is a Source 2 thing put inside Source 1, similar to the Dota 2 materials, which uses Source 2 format. Which the script does not support, also note it is still "buggy", also is not included in the README.


Move this page to "Porting multiple Materials from Source 1 Games at once", or similar?

Is this method appropriate or does Material Editor support multiple files?

Things you’ll need:

To convert the textures:


To convert the materials:

Python 3
realpack/source2utils (Read the README)

To extract assets from .vpk and .bsp:

GCFScape 1.8.6

To do:

  1. Gather all of our materials in a folder with the default material structure - materials/*
  2. Convert .VTFs to .TGAs
  3. By using realpack/source2utils, convert our .VMTs to .VMATs
  4. Move the converted files to the content folder of your target add-on - steamapps/common/Half-Life Alyx/content/*/materials

Gathering the files

Gather all of our materials in a folder with the default material structure:


. └── css/ └── materials/ ├── bricks ├── building_template └── cable

Converting the textures

By using a handy-dandy VTFEdit feature called “Convert folder”, we are going to batch convert all the .VTFs to .TGAs.

Open VTFEdit, choose Tools/Convert folder. Select the Input and Output folders, and copy the rest settings as shown.


Converting .VMTs to .VMATs

Install Python 3 and download the realpack/source2utils repository as .zip.
Extract the .zip archive, open and go to source2utils/utils. By pressing File/Open Windows Power Shell on Windows Explorer, open Windows Powershell.

Open Powershell

Once open, Install Pillow by entering this command: pip install Pillow

Once installed, start vmt_to_vmat.py by entering: python.exe .\vmt_to_vmat.py


You are now going to be asked to specify what folder would you like to convert. To get the valid format of the materials folder, select the materials folder by clicking once on it, and press the Copy Path button located in the Home tab on Windows Explorer.

File Explorer

You have just saved the path of the folder. Paste it into the Windows Power Shell window, but don’t forget to remove the quotation marks

D:\Users*\Desktop\css\materials, not "D:\Users*\Desktop\css\materials".

You are now going to need to select:

Would you like to overwrite any existing .vmat files? (y/n): - Y Would you like to overwrite any existing .tga files? (y/n): - Y What is your target shader? Valid Options: vr_complex (vr_standard support coming soon) - vr_complex ``` And you are done!

Moving Files

You are now going to notice a new folder: *_imported. It is going to contain all of the newly ported materials ready for Source 2! But we are still not done, we need to add them to the game!

To do so, copy the materials folder to your created add-ons folder or the game content folder located at steamapps/common/Half-Life Alyx/content/materials If done correctly, all of them should show up in the Source Workshop Tools Assets list!

Asset Browser

cs_assault materials ported from Counter-Strike: Source.


Original guide made by user noonforme can be found here on the Facepunch forums.

Special Pages



Render Time: 50ms

DB GetPage 38
Generate Html 0
SaveChanges (1) 9
Render Body 0
Render Sidebar 1