- May 31, 2013
- 1,021
- 852
INTRO
Are you a neat freak? Are you not a neat freak? If you answered yes or no to either of those questions, you are ready to organize your custom Source engine content like a pro!
The use of custom assets is often what takes a well-playing, average looking map to the next level. Custom content can help flesh out a theme, define style (and subsequently the author), and generally keep your map looking fresh. Over the years, you'll likely collect heaps of custom assets. It can be a chore to sift through, especially when that custom content is mixed in with default assets and mods used in-game, like HUDs and skins.
Enter the "development" folder approach. I've been organizing all my custom content this way since TopHattWaffle made a video and subsequent article on the subject. Rather than dropping all of your freshly made/downloaded assets into your tf or even tf/custom folder, instead drop it in an entirely separate root folder in the Team Fortress 2 directory. You can call this folder whatever you want; I chose "tf_dev".
UPDATE 2016-08-13:
I've actually figured out an even cleaner method than just a simple tf_dev folder. I kept getting bugged by the fact that I couldn't have separate folders inside tf_dev to contain individual content packs or models/materials etc. I wanted to be able to browse the folder and dive straight into a particular pack or something and have everything separate.
So instead of:
I could have:
I figured it out. It recycles the way the custom folder works, so buffers can be created without needing to add too much to the gameinfo.txt.
SETUP
Now, it's all well and good to have your own folder to drop stuff into, but how are we going to get Hammer to see it and preserve the default assets while we're at it? Simple, we need to create a custom gameinfo file that Hammer will reference to pull assets.
Once you have your gameinfo file setup, we're already almost done. Now we just need to let Hammer know it exists!
You should be all set! Just treat your tf_dev folder exactly like the custom folder. You can create container folders in there and drop all of your custom content inside them. Just be sure to add any container folders to your gameinfo. Since we're using the "asterisk method", you don't need to reference each folder inside the container folders because they will be automatically scanned.
Now, open up Hammer and check to be sure everything is properly loaded in the messages box at the bottom of the screen.
You should see your tf_dev folder in the list, as well as any content you have in your custom folder and everything else referenced in the gameinfo file we created earlier.
MAPS_DEV
I also want to make a special note of the maps_dev folder I created inside tf_dev. Thanks to the asterisk method, you don't need to separate your map files and their content. Inside maps_dev, you just need to create a container folder for your map and then you can have all your content in there as well as your map files. Since it's all set up in the gameinfo and Hammer reads it, the content will be viewable in Hammer and will be packed automatically by CompilePal.
OTHER PERKS
Are you a neat freak? Are you not a neat freak? If you answered yes or no to either of those questions, you are ready to organize your custom Source engine content like a pro!
The use of custom assets is often what takes a well-playing, average looking map to the next level. Custom content can help flesh out a theme, define style (and subsequently the author), and generally keep your map looking fresh. Over the years, you'll likely collect heaps of custom assets. It can be a chore to sift through, especially when that custom content is mixed in with default assets and mods used in-game, like HUDs and skins.
Enter the "development" folder approach. I've been organizing all my custom content this way since TopHattWaffle made a video and subsequent article on the subject. Rather than dropping all of your freshly made/downloaded assets into your tf or even tf/custom folder, instead drop it in an entirely separate root folder in the Team Fortress 2 directory. You can call this folder whatever you want; I chose "tf_dev".

UPDATE 2016-08-13:
I've actually figured out an even cleaner method than just a simple tf_dev folder. I kept getting bugged by the fact that I couldn't have separate folders inside tf_dev to contain individual content packs or models/materials etc. I wanted to be able to browse the folder and dive straight into a particular pack or something and have everything separate.
So instead of:
Code:
tf_dev/materials/japan
I could have:
Code:
tf_dev/content_packs/japan_assets/materials/japan
I figured it out. It recycles the way the custom folder works, so buffers can be created without needing to add too much to the gameinfo.txt.
SETUP
Now, it's all well and good to have your own folder to drop stuff into, but how are we going to get Hammer to see it and preserve the default assets while we're at it? Simple, we need to create a custom gameinfo file that Hammer will reference to pull assets.
- Copy the gameinfo.txt file from the root tf directory into our new tf_dev directory.
- Scroll underneath the "SearchPaths" heading.
- Add a "game+mod" entry and enter "tf_dev/*" on the same line. You will also need to add any additional folders you have inside the tf_dev folder here as well. Remember that when we use the "*" modifier, these folders get treated like the custom folder, so you need a buffer folder in between it and your assets for them to be seen. This is actually a blessing because it makes it easy to separate the assets.
- When we have Hammer reference this file, it will still find the default content, but also search our tf_dev folder as a game path.

Once you have your gameinfo file setup, we're already almost done. Now we just need to let Hammer know it exists!
- Open Hammer and navigate to "Options..." in the tools menu.
- Under the Team Fortress 2 configuration, find the game directory section.
- Change the final directory from "tf" to "tf_dev".
- Hammer will now use our tf_dev directory to pull the gameinfo file (and subsequently, all assets).

You should be all set! Just treat your tf_dev folder exactly like the custom folder. You can create container folders in there and drop all of your custom content inside them. Just be sure to add any container folders to your gameinfo. Since we're using the "asterisk method", you don't need to reference each folder inside the container folders because they will be automatically scanned.

Now, open up Hammer and check to be sure everything is properly loaded in the messages box at the bottom of the screen.

You should see your tf_dev folder in the list, as well as any content you have in your custom folder and everything else referenced in the gameinfo file we created earlier.
MAPS_DEV
I also want to make a special note of the maps_dev folder I created inside tf_dev. Thanks to the asterisk method, you don't need to separate your map files and their content. Inside maps_dev, you just need to create a container folder for your map and then you can have all your content in there as well as your map files. Since it's all set up in the gameinfo and Hammer reads it, the content will be viewable in Hammer and will be packed automatically by CompilePal.
Code:
maps_dev/
├ tfdb_toolsheds/
│ └ b2/
│ └ tfdb_toolsheds_b2.vmf
│ └ tfdb_toolsheds_b2.vmx
│ └ tfdb_toolsheds_b2.log
│ └ ...
│ └ scripts/
│ └ soundscapes_tfdb_toolsheds_b2.txt
├ arena_goldtooth
│ └ rc6/
│ └ arena_goldtooth_rc6.vmf
│ └ arena_goldtooth_rc6.vmx
│ └ arena_goldtooth_rc6.log
│ └ ...
│ └ materials
│ └ goldtooth
│ └ goldtooth_material.vtf
│ └ goldtooth_material.vmt
│ └ ...
OTHER PERKS
- You will be able to see your assets in Hammer, but because the tf_dev folder is not referenced by the game, none of the content will be visible when you load up your map unless it's been properly packed. This is a great way to check to be sure you've packed correctly without having to move your files around.
- You can select the tf_dev folder in the model browser to see only custom content.
- Since this method reuses the way the custom folder is handled, we can create subfolders inside of tf_dev that can be named whatever we want, so content can be separated and organized. You will also be able to drop VPKs and tools you use in the root tf_dev folder and they will be picked up by Hammer. I have ABS's stuff dropped in there, as well as .bat scripts for repacking and un-repacking maps.
- This method will work for any Source game, so you can use it for your next CS:GO project as well.
Last edited: