How to Make a Custom Weapon Skin in CS:GO

Comment

I. Important Notes / Disclaimer

  1. For this to work you need to be patient, read carefully and don’t give up.

  2. The skins you make won’t be visible to other players unless they install your skins. To install a custom skin, see the Reference section at the end of article.

  3. Servers that are ‘pure’, ones which use sv_pure_kick_clients 1 sv_pure 1 or 2, will kick you when you try to join if you have custom skin mods. This guide includes instructions on how to temporarily undo your mods when you want to join official servers.

  4. This was written pre-Weapon-Skins-Available-On-Workshop. It’s possible that almost everything contained in this article, and any cool skins you make, will be deprecated and useless if/when the Workshop opens up to allow for skins.

  5. You may run into errors while using the required third-party tools. Refer to the tool’s documentation if this happens.

  6. Be patient. Read carefully. Don’t give up.

 

II. Software Required / Tools Needed

You will need to install five things:

  1. GCFScape to extract .vpk’s (Valve packages)

  2. VTFEdit to extract and save .vtf’s (Valve texture files)

  3. Image manipulation software that can open/save to .tga format (Photoshop or GIMP)

  4. Notepad++ to edit the text of a .vpk

  5. Counter-Strike: Global Offensive to test your skins and enjoy the fruit of your labor

III. Unpacking CS:GO Materials

All of the game textures and models are tucked away in packages. They must be extracted.

  1. Run GCFScape

  2. In GCFScape, click File > Open

  3. In the Open Package dialog, navigate to “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo”

  4. Select “pak01_dir.vpk” and click Open

At this point, GCFScape should now be populated with some folders and the log window near the bottom should say “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\pak01_dir.vpk loaded.”

  1. In GCFScape, hold Ctrl to select multiple folders and select both “materials” and “models”

  2. With both folders selected, right-click on one of the selected folders and click Extract

Once the extraction process is complete (it may take a few minutes), two new folders named “materials” and “models” should appear in “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo”

 

These folders contain all of the materials and models for CS:GO. But they’re in a special format and need to be converted into something editable.

 

Breathe a sigh of relief.

You never need to do this step ever again unless you uninstall the game!

IV. Exporting .vtf’s to .tga’s

All of the weapon textures are in a .vtf format located in “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\models\weapons”

There are two important folders in this directory:

  • v_models – contains the textures for the first-person gun models

  • w_models – contains the textures for third-person (and dropped, and buy menu) guns

  1. Run VTFEdit

  2. In VTFEdit, click File > Open

  3. In the Open File dialog, navigate to “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\models\weapons\v_models” and dig around for the .vtf you want to open.

  1. Select the .vtf you desire, and click Open

  1. In VTFEdit, click File > Export to save the texture to the editable .tga format

Once you have successfully exported the .vtf to a .tga, open up the .tga in Photoshop or GIMP to edit the texture!

V. Editing Textures

This is the point where you mess around with your newly-extracted .tga!

  1. Open it in Photoshop or GIMP and play around!

  2. Work in layers. It is unlikely everything will be perfect on your first attempt, so layers can save you time when you need to go back and fix something. Save early and often to a layered .psd.

  3. When you are happy with your changes, flatten the image and save as a .tga (32bits/pixel, no RLE compression)

  4. Save a 2nd copy of the image, only this time resize it to 512×512 pixels. This smaller texture will be used for the w_model skin.

VI. Importing edited .tga’s back to .vtf’s

Now you need to convert your modified skin .tga back into .vtf. You will do this twice: once for the v_model texture (the high-resolution texture) and once for the w_model texture (the low-resolution texture from Step 4 of the previous section.

  1. Run VTFEdit

  2. In VTFEdit, click File > Import

  3. Select your modified .tga and Open

A VTF Options dialog should pop up. These are the options for the .vtf skin file to be generated. All of the default settings work fine, but may not be optimal. See the Reference section for more info on these settings.

  1. In the VTF Options dialog, click OK

  2. In VTFEdit, click File > Save As…

  1. Navigate to the folder in “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\models\weapons\v_models” where the texture originally came from and save your new .vtf.

MAKE SURE YOUR NEW .VTF FILE USES THE SAME NUMBER OF CHARACTERS AS THE ORIGINAL .VTF!

If the orignal file was “pist_tec9.vtf” your custom file needs to have 9 letters in the name. “snip_awp.vtf” needs to have 8 letters, “knife_t.vtf” needs to have 7, etc.

  1. Repeat this process, only this time do it for the 512×512 .tga and save in in the proper folder in “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials\models\weapons\w_models”

 

VII. Tweaking pak01_dir.vpk

Now you need to tweak a very important file. pak01_dir.vpk is the file that directs the game to the assets (models, textures, animations, etc) that the game needs to load.

  1. Locate pak01_dir.vpk in “…\Steam\steamapps\common\Counter-Strike Global Offensive\csgo”

  2. Make a copy of pak01_dir.vpk  and rename it “BACKUP_pak01_dir.vpk”. If something goes wrong or you decide you don’t want mods anymore, you now have a pristine backup file.

  3. Open pak01_dir.vpk with Notepad++

  4. With the file open in Notepad++, press Ctrl+F and search for the name of the original weapon skin. I like to do “Find All in Current Document” which brings up a list of every match.

  1. Find the line that reads:

    $baseTexture “models\weapons\v_models\…\…”

    and change the ending to match your new .vtf filename

  1. Find the line that reads:

    $baseTexture “models\weapons\w_models\w_…\…”

    and change the ending to match your new .vtf filename

  1. Save your changes to pak01_dir.vpk

IMPORTANT NOTE: Servers that are “pure” will kick you when you try to join if your pak01_dir.vpk differs from the original. So make sure you keep your pristine backup pak01_dir.vpk around, and switch back to it before going competitive or joining official servers.

When you run the game, you should see your new skin!

VIII. Testing / Iterating

To get a good look at your new texture in-game:

  1. Host an offline game with bots.

  2. Once the game is loaded, open the console and enter “sv_cheats 1” (no quotes).

  3. Enter “impulse 101” (no quotes) to give yourself enough money to buy your gun.

  4. Buy your gun.

  5. Enter “host_timescale 0.1” (no quotes) to slow time.

  6. Press F to examine your gun in slow-motion to find any imperfections in the texture.

  7. Shoot the gun and reload in slow-motion to find any other imperfections.

  8. Throw the gun down to make sure the w_model texture looks correct.

 

If you missed a spot or you can’t find a certain piece of the gun in the texture map, you can edit the entire texture and cover it with something distinctly different in all areas to find what you’re looking for.

IX. Reference

Adam

Author

Adam

Adam is the owner of BC-GB, find him on Twitter. BC-GB is the place to get CSGO tips, news and blog.

Up Next

Related Posts

Discussion about this post