Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

Creating VTF, VMT and Normals textures

A Tutorial for Counter-Strike: Source

No ads for members. Membership is 100% free. Sign up!
Ok guys, After a lot of searching on internet, it was difficult for me to gather resources, condulting videos etc for texture creation for counter strike, so I am writing it all here in one tutorial from start to end.

Adobe Photoshop or any other similar program
Notepad++ or any other text editor

Basic knowledge of Adobe Photoshop or any other image manipulation software, like resizing, copying and pasting of image etc
Okayyyy.. lets do it.

I am just going to assume that you have an image file which you want to convert to CS texture. But before we hit the gas, make sure to check that this image file can be served when tiled and that patterns are not out of alignment. I will show it next anyways. For the sake of this tutorial, you can use the image below.

I am also going to assume from now on that you are using photoshop, the tweaks i do in PS, you can do it in your program is different, like resizing etc


  1. Open Photoshop (or the program of your liking) and open the image and open the image.
  2. We are going to make a texture of 256x256px, it can be of any size though, but make sure it is something like 128x128, 256x256, 512x512 etc
  3. We have to resize this image first, so just press Alt++Ctrl+i to open resize dialog and write 256 in both width and height and press OK
  4. Now next step is to make sure that this texture will just work fine when tiled, so we will do it manually. Copy this image and  While still in photoshop, press Ctrl+N to open new document of 1000x1000 px.
  5. Paste the image in this new window and make 3 copies of this image layer. Press Ctrl+J two times to make copies.
  6. Now we will select each layer and put them on sides and bottom of first image. Refer to images below
  7. In the images above, we now see that the patters just sit fine, there are no gaps, no unaligned surfaces, this means we are good to go.
  8. Go back to original image which we had resized to 256x256 and save it as JPG with any name that you want. I saved it as wallbrick01.jpg.
  9. Close Photoshop.


  1. Now that we have the texture file saved, we need to make its normals map first.
  2. Open CrazyBump and open the saved image. "Open > Open Photograph from File".
  3. CrazyBump will process the image for a second or two and will give you two options to select  from the height maps, choose the one which you see is correct in vision.
  4. After you have selected the option, you will be presented with the initial map file in bluish pinkish colors. You can see different other tabs at the bottom but they are not our concern atm, we need to consider the normals map look with the option on the left side. You can adjust the slider to change the normals map to your liking, but I will leave it to default as it usually always is correct.
  5. Save it as desripted in the images below (Save Normals to File) and save it with name wallbrick01_normal.jpg
  6. Now we have a normals map created and its time to convert these both to VTF format.


  1. Open VTFEdit.
  2. press Ctrl+i to open image import dialog and open the wallbrick01.jpg image first.
  3. After processing it will give you the settings dialog, we pretty much do not need to change anything in it but its better to keep both Normal Format and Alpha Format to DXT5. Press Ok to complete the settings
  4. Save this image as wallbrick01.vtf
  5. Now repeat the procedure.
  6. Import wallbrick01_normal.jpg and in settings dialog, select BGR888 in Normal Format and press OK. The Alpha Format doesn't matter at this point since we do not have any transparency in our image or that our image doesn't have an alpha channel to process
  7. After the image open, check the box which says "Normal Map". Now save it as wallbrick01_normal.vtf.
  8. Now that we have both files, its time to build it vmt file. Do not close the VTFEdit yet


Click on Tools > Create VMT File to open its dialog.
In the dialog, Click on ... beside Base Texture 1 and select the image wallbrick01.vtf
At the bottom, beside Normal Map: click the dots to open and select wallbrick01_normal.vtf.

Now in the same dialog, at the top, click on Options tab and  in Surface 1 list, select Brick. (If your texture is stone, you can select Rock, or if it is floor tile, you can select tile or "Wood_Panel" if its if wood floor etc. Different surface props generate their according sounds when walked over and act differently when fired at with bullet)

Click OK to save it as wallbrick01.vmt.


We have to change the path in vmt file because VTFEdit simply writes the path of the folder it is present into atm.

Open Notepad++ or text editor and open wallbrick01.vmt file in it. Just remove the text highlighted in red and save the file, also, refer to the images below in other case.

We now have completed the texture creation for the brick image and place all these three files, that is
wallbrick01.vtf, wallbrick01_normal.vtf and wallbrick01.vmt

together in cstrike/materials/my_material folder.
You can now see this texture in hammer and in game, you will see the normals map creating depth in flat texture.

Thanks for reading, if you see something not correct or that if something can be improved in tutorial, please do notify in comment and I will update.

I wrote all this word to word, please do rate if you think its a valuable addition to the community.



Sign up to access this!
  • access_time 12mo
    please help... i want to remove ct / terrorist win picture message in the game css but i didn't find anything about it on google and here... please help me if anyone know about this. picture link here( sorry i'm new user and i ca't post link in game banana so remove + between www.( + ) and vizzed.( + ) thanks :::  www.+vizzed.+com/videogames/screenshots/44/445945/78944/CounterStrike%20Source_2015-01-04_000091420351383-full.jpg
    URL to post:
  • Rafael De Jongh avatar
    Rafael De Jongh username pic Joined 12y ago
    Ripe Supporter WB Manager Super Moderator
    Apocalyptic Flag Affiliation: Apocalyptic
    29,819 points Ranked 159th
    79 medals 12 legendary 20 rare
    • 1st Place - Winter Textures Contest Medal icon
    • 1st Place - GameBanana Around the Globe Contest Medal icon
    • 1st Place - Sci-Fi Skinning Contest Medal icon
    • 1st Place - Winter Warfare Medal icon
    • 1st Place - Movie Replicas Modeling Contest Medal icon
    • Submitted 100 WiPs Medal icon
    Rafael De Jongh avatar
    Rafael De Jongh
    Apocalyptic Flag
    Skinning/Modelling Expert
    access_time 3y
    >Using Crazybump
    >Diffuse normal mapping the texture

    Please stop this madness! 
    Web Developer & 3D Artist avatar
    Web Developer & 3D Artist
    URL to post:
  • ficool2 avatar
    ficool2 username pic Joined 5y ago
    17,199 points Ranked 308th
    24 medals 4 legendary 4 rare
    • 2017 Top Contributor Medal icon
    • 30 submissions featured Medal icon
    • Reached 100 subscribers Medal icon
    • Returned 5000 times Medal icon
    • Returned 1000 times Medal icon
    • 10 submissions featured Medal icon
    access_time 3y
    "Go back to original image which we had resized to 256x256 and save it as JPG with any name that you want. I saved it as wallbrick01.jpg."

    No!!! Do not save it as JPG. Save it as .TGA.
    Source Engine Addict
    URL to post:
  • CS PRO avatar
    CS PRO username pic Joined 6y ago
    HL Manager CS:CZ Manager HL2 Manager CS:GO Manager Baldi Manager BM Manager CS:S Manager CS1.6 Manager
    wish me luck
    CS:GO Ports Flag Affiliation: CS:GO Ports
    52,686 points Ranked 76th
    42 medals 5 legendary 6 rare
    • Submitted 100 Skins Medal icon
    • 30 submissions featured Medal icon
    • Reached 100 subscribers Medal icon
    • 2017 Top Contributor Medal icon
    • Returned 5000 times Medal icon
    • Returned 1000 times Medal icon
    CS PRO avatar
    CS PRO
    CS:GO Ports Flag
    CS:GO Ports
    access_time 3y
    Very helpful .. Thanks a lot :)
    Still Alive.. avatar
    Still Alive..
    URL to post:


Share banner
Image URL
HTML embed code
BB embed code
Markdown embed code


Key Authors


munnibhai avatar
munnibhai Joined 3y ago
742 points Ranked 42528th
  • Paypal Donate
Sign up to access this!
Sign up to access this!
Sign up to access this!


Sign up to access this!



Difficulty Level


Normals Map


  • Share on Reddit
  • Share on Twitter
  • Share on Facebook
  • Today's Pick
    Featured on Apr 15 2017
  • favorite 2
  • remove_red_eye 11.7k
  • mode_comment 13
  • access_time 3y
  • access_time 3y

WiPs by Submitter


More Other/Misc Tutorials