Team Fortress 2

Team Fortress 2

745 ratings
HellJumper's NEW TF2 Modeling Tutorial for the Steam Workshop (Beta Import)
By HellJumper
This is a new 3D modeling tutorial for the new TF2 beta importer. Since my old tutorial covered the basics of modeling and texturing, I will not be going into detail about those. Instead this tutorial focuses on the new beta import system. In the future I will cover how to get good looking backpack icons, source filmmaker renders, and painted items.

If you want to visit my old modeling tutorial for the basics to using Blender, you can find it here.
Comprehensive Video Tutorial

Required Programs:

In the video I mention MDLdecompiler for use in decompiling .mdl files. However, this program has not been updated in quite a while. Instead, Crowbar is another program I have found to be really useful in decompiling .mdl files. It functions similarly to mdldecompiler (so it should be self-explanatory in terms of how to use it).
Supplementary Picture Tutorial
This picture-based tutorial should be useful for quick reference. It obviously doesn't go into as much detail as the video does, but it's great for people who watched the video at least once and want to quickly go back to look at things.

Step 1: Getting Prepared
Gather the required programs (listed above) and create a file structure to stay organized. Remember: organization is the key to success.

Determine what character you want to make an item for (hat or misc item), and using GCFscape, extract the .mdl and associated files from the vpk. Using the fixed version of MDLdecompiler, decompile the .mdl into a .smd file which you can then import into Blender.

Step 2: Making the Model

Open up Blender and import the .smd file corresponding to the TF2 character. The decompiler most likely produced many .smd files, but the correct file should be relatively obvious to find (it's usually around 2 mb in size). Make sure to import your character using the Y-axis as the up direction.

Begin creating your model using the imported character model as a reference. Don't forget to use smooth shading and edgesplits to ensure that your model has both smooth surfaces and hard edges where necessary (other programs refer to edgesplits as smoothing groups).

Notice in the image to the right how the model has portions that are smooth (the top of the hat) and portions that are distinctly sharp such as around the brim of the hat. Getting a good balance between smooth and sharp edges can really bring out detail in your model.

Step 3: UV Unwrapping

When you are satisfied with the model's design, unwrap the model with whatever method is best. For cylindrical objects, marking seams is the best way to unwrap these objects. For more complicated shapes, you might want to use projection unwrapping. Regardless, both methods are found under the UV unwrapping menu in edit mode (hotkey: u).

Make sure to alter the UVs in the UV layout screen in a manner that best suits your model. In the tutorial I mentioned that I wanted part of my hat to be unwrapped flat, so by selecting rows of vertices and pressing "w", I was able to align vertices in a rectangular fashion (align x, align y).

Step 4: Baking

When you are done unwrapping the model, create a blank black image 2-4 times larger than the final size of your texture which will be used to bake shadows onto your base texture.

In the World Tab, make sure to do the following:
  • Check Ambient Occlusion ON
  • In the "Gather" subheading choose "Approximate"
  • Check Pixel Cache ON, and slide the correction to 1.00
  • Change the error to 0.250

In the Render Tab, make sure to do the following:
  • In the "Bake" subheading, make sure "Bake mode" is set to "Ambient Occlusion"
  • Check "Normalized" ON
  • Slide the margin to 8

Now click "Bake" to bake your AO map. Save this as a .tga file, and make sure to export the UV layout as well (as a .png) by going to UVs > Export UV Layout.

Step 5: Texturing

Texturing for TF2 is both easy and fun. Open your AO bake in photoshop and make sure to set the layer properties to "multiply". Make sure this layer is always on top (unless you have a UV layout temporarily to be able to see your UVs). Make sure all your texturing layers go below your bake. Refer to Swizzle's TF2 Texturing guide[] for more information on making quality TF2 textures.

When your texture is completed, save this as a .tga (make sure you resize it down to 512 x 512), and reapply the texture in the UV layout screen to see a preview of your texture on the model in Blender.

Step 6: Rigging your Model
Select your model first, and then shift+select the bone rig second (armature). Press ctrl+p, and choose "With empty groups" to parent your model to the armature. Now select only your model, go into edit mode, select all the vertices in your model, find the bip_head bone in the Object Data tab under the Vertex Groups subheading, and click "Assign" (make sure the weight is set to 1.000). This will assign all the vertices in your model to the bip_head bone. If your model is not a hat, make sure to assign your model to the correct bone.

Go back into object mode, select your model, and go to the Object tab. Give your model a name in the textbox with the orange cube (Unique data ID). This will be your .smd filename. With your object selected, go to file > export > source engine (.smd) to export your model as a .smd file. While you're at it, make sure you generate a LOD model that is 700 tris or less. Make sure to give this a unique name so you don't accidentaly overwrite your default model.

Step 7: Compiling your Model

Open TF2, click on the Workshop button, and create a new workshop entry. Click "Import Beta!" to get to the new beta import screen. Give your model a name, and choose what category it belongs in (e.g. engineer hat). Import your .smd files making sure you import at least 1 LOD model below 700 tris. If your model is already 700 tris or less, there is no need to make LODs.

Generate a backpack icon using the HLMV (tutorial in the FAQ section below). Make sure that the icon sits on a black background and fits in a 512 x 328 region. The entire image should be 512 x 512, and the alpha channel should be all black expect for the parts corresponding to your item.

Finally, choose the appropriate texture option (Team colored, paint, etc.), and import your .tga texture files. Remember: texture files must be 512 x 512 or the importer won't accept them. Choose the appropriate vmt parameters (most of the time the defaults should be fine), and click OK.

Preview your model to see if everything worked out fine. Once satisfied, click "Verify" and then "Finalize" to zip your model and get it ready to upload to the workshop. On the next screen, upload a workshop image that will be featured on the workshop, give your item a title, and describe it.

Congratulations, you're done! Give yourself a pat on the back, and let other users begin upvoting your creation on the workshop!

If you found my guide useful, consider supporting me by rating up the item featured in this tutorial on the Steam Workshop. Thanks!
Frequently Asked Questions
Q: Do I need to install source SDK?

A: Yes. You need it in order for MDLdecompiler to work properly. Just install it by opening Steam, go to your library, go to the tools tab, and then install the "Source SDK". You must run the Source SDK at least once to get the client-side files to unpack properly. Also, you might need to press the "refresh content" button when using it for the first time. Just open the SDK up and there should be a button in the middle for that.

Q: MDLdecompiler won't work!

A: First of all, make sure the Source SDK is installed (see above). Place the MDLdecompiler program in your C:\Program Files\Steam\steamapps\common\SourceSDK\bin\ep1\bin folder in order for it to work properly. You may wish to put a shortcut on your desktop for ease of access. In addition, MDLdecompiler needs to have all the check boxes unchecked.[]

Q: How do I create backpack icons?

A: Check out the following guide:

Q: How do I make items paintable?

A: I put together a steam forum post about it here:

Q: How do jiggle bones work in Blender?

A: Check out this video: Credit to SgtR007_1
< >
Syncing... Aug 26 @ 3:45am 
I can't find my username in the files under 'common'. Please help!
Sweet tutorial! Thanks HellJumper!
Chili Peppers Aug 10 @ 8:49pm 
i cannot find tf2 in my sdk_content folder. any idea why?
The8BitBanana Aug 8 @ 1:15am 
Plez, can you do tutorial on how to publish a weapon and add values
Juangatillo Aug 7 @ 10:15am 
I have a question, after i click finish and my model is zip, where is it? how can i test it in the testmap
The8BitBanana Aug 5 @ 12:34am 
Also Btw HellJumper how long did it take to create a hat, because I try to create weapon sooo....? an estimate is nice, the build time is as the same as you making the hat in Blender and the coloring, yay crayons xD
The8BitBanana Aug 5 @ 12:32am 
Hey Hell Jumper I am starting out on a weapon for spy, any tips for making cause I can't find a good guide for weapons and you mostly do hats :/, also really appreciate your help m8 and yo vids, you da mvp
drain. Aug 1 @ 6:02am 
Hey! First things first, I would like to say that you have made a great guide, helped me when I first started out TF2 modelling. Thanks and keep up being cool!

Second, I'm trying to make this cosmetic that goes on the Demoman's arms. Here's a picture of it without rigging:, looks nice, correct? I was impressed at myself when I saw it.

Then I tried rigging it to the bip_lowerArm, bip_upperArm, and bip_hand bones to make it move with his arms. And this happened:, it went all over the place. If you know how to fix this, kindly tell how, as you've been a big help to me already.
HellJumper  [author] Jul 31 @ 4:06pm 
The basic concept of models with multiple parts is as follows:

1) Once your model is built, combine all parts into a single object (1 model = 1 object).
2) From within edit mode, assign individual components (or subsets of vertices) to various parts of the bone rig. So for example if you have 2 shoulder pieces, both pieces should be part of the same object and from within edit mode assign 1 shoulder piece to one of the shoulder bones and the other piece to the other shoulder bone.

I can't really get more specific than this due to time... good luck. Also try to ask the facepunch forums or tf2maps for some help. They are probably a little more responsive since I have barely any free time anymore.
Pan-tastic Jul 31 @ 3:54pm 
sooo, I made an item with two parts that go on the shoulders of the demo man. I assigned each one to the corresponding shoulder bones, then joined the items to be one export, but its giving me a "scene unconfigured" error, I assume its because I have 2 object assigned to different bones, i'm worried if I assign both to one, that the objects will stay still on his shoulders and cut into his arms when he raises them, any tips or ideas? or should I just stick to hats for know...