Additional Source SDK 2013 assets. ( Batches, FGDs, and More! )

Hi there,

For the past few months since the SDK 2013 release, I’ve been finding myself working more with the tools more then my mod. The Source SDK 2013 was sort of a blessing as the 2007 engine is antiquated at this point, but this branch of the source engine has issues. Of course I can’t fix all these issues, but I’ve made some assets to make the modding experience a little bit convenient. In my .zip file, I included a working batch system, updated FGDs, included a sdk folder of more tool textures and models, and included an exe to launch batches from the desktop/taskbar.




  • Added this changelog.
  • Renamed halflife2.fgd to base2.fgd. I forgot I removed most of HL2’s entities. (Update your fgds!)
  • Added a new tool vmffix. This tool will convert any newer vmfs to make Source 2013 and below
    tools read it and not crash. You can also use this tool to compile HL2 maps with newer editors.
    Just run it before vbsp.
  • Remove inputsystem.dll from this post fix as Valve has fixed this.


Due to the removal of the SDK launcher, (which in my opinion was the choice that broke most things at the start ) you need to launch most tools with a batch file. Valve included some batches with each set of tools, but they don’t work out of the box. So, I made my own. Here is a list and information on my batches. The batches will explain themselves when you edit them.

NOTE: SOME COMPILE_*.BATs NEED TO BE TOLD THE GAMEDIR AGAIN. I think this is due to VPROJECT being tied to CD as the SDKDIR variable works. But I did try to make a separate variable much like the SDKDIR one, but it still would not work with some programs. Please make sure everything is correctly set before asking for help. Thanks


This batch file is much like Valve’s set_sdk_env.bat. It set’s the vproject or game for which the tools use to identify the game/mod you are modding. My batch also allows you to set where the the tools (bin) folder is, so it is set to the appropriate set of tools. Wanna know a secret? All the tools of Source 2013 are pretty much the same. There is no FileSystem_Steam.dll anymore that makes the tools demand a SteamAppID so you could use the SDK template tools to map for HL2 if you wanted to. The tools just need to be under “GAME/bin” for it to work. For organization however, I recommend you set up each set_vproject.bat for the appropriate game.

To simple it out.

VPROJECT: The directory of the game/mod the tools use.
SDKDIR: The location of the tools.

===run_hammer.bat, run_hlmv.bat, run_faceposer===

Runs the 3 main tools, pretty much the same as Valve


A Simple drag and drop batch to compile a folder to vpk2.

===compile_map, compile_map_final===

A drag and drop batch that runs the dropped vmf through Vbsp, Vvis, and Vrad. Please make sure “-game” loads your game folder. This is great for bigger maps as the tools still load the old compile window which locks up.

BUG: It does not copy the final bsp to the mod directory. When I tried to copy the dropped file, it wanted to copy over “mapname.vmf.bsp” If anyone can help me with this, I would appreciate it!


Simply drag and drop your pfms onto this, and splitskybox.exe will compile your skybox.


Drag and drop your qc onto this and studiomdl will compile your model. Please make sure “-game” loads your game folder.


Although vtex has been obsoleted by various plugins, it’s still comes in handy from time to time. I included it incase you ever wanted to use it.
I made it use -dontusegamedir which will simply just make a vtf wherever the source tga is.

==========FGDs and Tools==========

The FGDs have not changed since 2007, and instancing is broke with stock vbsp.

Changes to the FGDs include:

  • Overlay model is now a box. (Ported from the L4D2 tools)
  • env_projected_texture has the “texturename” entry and now uses the code model.
  • func_instance is now a small box (much like func_instance from Portal 2 and above.)
  • func_instance_prams now shows with the func_instance_pram sprite (included in the “sdk” folder)
  • env_texturetoggle now shows with the env_texturetoggle sprite from later releases. (included in the “sdk” folder)
  • path_track now uses the angle_helper model. (included in the “sdk” folder)
  • prop_dynamic and override has the “rendercolor” entry. Although texture coloring is not the same as it is in L4D1 and above, still can come in handy.

Changes to vbsp include:

  • The instance loading path fix from the Github.
  • Added -nocubemap pram to tell the program not to build the default cubemaps. This is due to the cubemaps being broke in this engine branch. A “work around” was to delete the default cubemap and rebuild the cubemaps in engine. This however did not work for me, but if it works for you hey, one less step you need to do. I recommend loading a 2007 mod with your map and doing it that way.

Only recompiled Vvis and Vrad for consistency.

Override the stock tools.


In this folder there is a simple exe you can config to fetch the run batches from the desktop or taskbar. This needs to be redone if you ask me, but it works. This is not the multiple SDK launcher I made back in July as it did not really matter what game went where. When I redo the launcher, I’ll update the file.


This is the folder that has the vpk of additional tool textures, models, and sprites. To make your game/mod load this:

  1. If you are making a mod(s), drag this folder into your “…/common/Source SDK Base 2013 Singleplayer or Multiplayer” folder. Make it so it’s with the hl2 and platform folders.

Next, open up your gameinfo and add before the first game_lv:

			// Mount SDK content first!
			game+mod			sdk/sdk_pak.vpk

if you need help, I did include an example gameinfo.

  1. For games, just extract the vpk to the custom folder.

Note: Make sure you include the tool textures in your map or mod. Extract the contents with GCFscape.

That’s it. If you have any questions or anything you want added or would like to add, just ask me, or send me a PM.

Thanks, and Happy modding!

I have a very WIP/Alpha SDK Launcher (only launches hammer for now) people are welcome to use if they want: Download link

Right now it supports:

Once I have the time I’m hoping to add a way to include mods, finish the tools tab, add a tutorial tab, and make it not look like ass. Oh and add those games I missed like Portal 1 and Nuclear Dawn. And once all that’s done I’ll open source it.

Only bugs I know of is if you try and launch something but don’t have steam installed at all and for some reason for some random very small group of people it grabs the wrong directory for some reason (I think I’ve almost fixed this problem).

Yours is much nicer though :slight_smile:

Wow, thank you a lot for this. Just curious, what games are you planning to extend support to Steam wise? Also, why does Dota 2 have an asterisk by it?

I’m going to add support to as many as I can. The ones that will get done first are those that follow the common/gamename/bin setup or provide authoring tools. After that I’m going to figure out a way to auto setup sdk 2013 with a garrys mod config along with mods.

Off the top of my head the games next in line for being included is:

Portal 1 (accidentally skipped it)
Left 4 Dead
Nuclear dawn
Dino D Day

Nuclear Dawn has it’s own SDK, as far as I know it still works.

SiN Episodes has it’s own versions of model viewer, studiomdl and hammer, but the hammer is broken.

I did not get a chance to take a look at your launcher yet, but it sounds like you launch things with the “-game” pram which only seems to work on Hammer and other “simple” tools. Again, this is caused by Filesystem_Steam.dll and everything needs to be with SteamAppID. I would not worry about the games that have official authoring tools such as Portal 2, CS:GO, etc as they work like they should. It’s the 2013 stuff that you need to be concerned about. Again, you are free to do what you want, but I’m just letting you know that Filesystem_Steam.dll puts limits on things, and the bigger problem is with Source 2013. And since the 2013 stuff lacks has FileSystem_Stdio.dll instead of Filesystem_Steam.dll, it’s more easier to toy with, and reconfig as needed.

You’re launcher seems like a “All-in-one” SDK which would be great if/once you’ve got it all working. I do have to ask you something, what language are you using for your launcher? I just made mine in Visual Basic, and just made it load the batches since not everyone is gonna have every game (nor works with every game). I do wish you the best of luck, maybe you can do what the batches do with the 2013 setup, and just make it so you can add more games for the VPROJECT Variable.

I don’t have these games, so bare with me. What is so different about those tools from Valve’s? Why can’t you set up the 2007 or 2013 tools for them?

My tool launches that, think of it as just a giant short cut holder for those games that have authoring tools. When I started work on it I wanted to only have to launch one program to access all the different editors that wasn’t steam.

Actually what mine does is check your registry key for steam and find out where the folder it’s located then using your choice navigates to that games folder and launches hammer/authoring tools since while a user may have a different file structure prior to the steam folder once in there it should all be the same. The idea I have in mind for mods is to have the user just do a one time setup for each mod to add on to their gameconfig.txt file then after that they can just choose 2013 singleplayer/multiplayer since when you launch 2013 it asks you which config you want to use every time anyway.

I’m using C# 2010 express. The launcher doesn’t break if you try to launch a game you don’t own, it just tells you that you don’t have it installed. At first I was using batches but I found when testing with friends that it was a bit too confusing for some so I wanted to simplify it as much as possible. Now that I think about it I might add something at some point just to grey out those you can’t launch. As for those other games, I just haven’t added them yet is all :stuck_out_tongue:

Yo, is there any way you can get splitskybox.exe to work? because I can’t figure it out and I need it to make HDR skies.

Could you possibly write a tutorial about using .vpk’s? The mod Estranged just released with .vpk’s for materials and other things but I can’t open them to see what’s supposed to be inside, also can Hammer access the stuff inside the .vpk files? Or do I have to work with my materials in a material folder and then upon releasing the mod move them to a .vpk and the mod will run from there instead. I am using 2013.

Yes drop them into common/gamename/custom

SiN Episodes has a Post-EP1, Pre-Orangebox modded lighting system. It requires that maps for it MUST be compiled with its own supplied vrad.

It also has its own type of animated/hybrid physics and all its models must be compiled with its studiomdl. All textures for it must be compiled with its vtex or it causes corruption.

I’m not touching The Ship though that things a crazy mess

Dammit, that’s what I was hoping support for. Even with the Steampipe update it’s still a mess?

But when building a .vpk, let’s say I want a .vpk for my materials folder right. Do I make a folder called materials and turn that into a .vpk and it will treat it as that folder in the .vpk is in the root directory so it will work like that? Or do I need a root folder with my mod name and then put the materials folder inside that?

It’s like making a zip file. a folder called materials will just make it materials.vpk. Open it up and there ill be concrete, metal, etc.

Also note that the TF2 SDK updated, fixing the inputsystem, (not fixing the cursors, DARN!) AND making model scaling support (Finally!) I’m gonna wait and see if the model scaling will be apart of the 2013 solution. If it is, I will edit the base fgd with the model scaling inputs. It should be a few days (a week or so) for Valve to sync the engine branches across all games.

If you are using this for TF2, here is the baseclass of Studiomodel from TF2’s base.fgd

@BaseClass = Studiomodel
	model(studio) : "World Model"
	skin(integer) : "Skin" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
	modelscale(float) : "Model Scale" : "1.0" : "A multiplier for the size of the model."

	disableshadows(choices) : "Disable Shadows" : 0 : "Used to disable dynamic shadows on this entity." =
		0 : "No"
		1 : "Yes"

	// Inputs
	input Skin(integer) : "Changes the model skin to the specified number."
	input DisableShadow(void) : "Turn shadow off."
	input EnableShadow(void) : "Turn shadow on."
	input AlternativeSorting(bool) : "Used to attempt to fix sorting problems when rendering. True activates, false deactivates"
	input SetModelScale(string) : "Takes two values separated by a space. The first is the target model scale. The second value is the number of seconds the change in scale will be spread over."

	// Outputs
	output OnIgnite(void) : "Fired when this object catches fire."

Just replace the entire entry. Again, I will edit the ones in the pack if this feature is in the base solution. If this never comes to be, I might just have to add it anyway, and note it that it’s for TF2 only. I don’t wanna add something that’s only supported in one game. Right now, it’s up to you depending on what you want to use this for.

That still doesn’t answer my question. So if I .vpk a file called materials the root directory of the .vpk will have the brick, concrete, etc. So should I .vpk my main mod folder name so that the root of the .vpk will have materials?

If you name your main/root folder mymod (mymod will be mymod.vpk) and have the materials folder in it so it looks like mymod/materials, it will then work. Think of it as a mini-sourcemod folder, you load the root mod which will be the title of your mod, but the game is looking at the content within the vpk.

But if you already have a vpk as you said before, but it in a folder called customs so the vpk location is
like: GAME/custom/mymod.vpk

Hope this helps, explaining how file location works can be confusing, and hard for me to explain.

I could include an example folder how a pre-vpk folder is set up as I may have to update the fgd anyway.

Where does the -nocubemap param go?

It goes before the -game parameter in the $bsp_exe entry.