Source SDK

Source SDK

107 ratings
The ultimate Hammer Config, never make another hammer config again!
By Wazanator and 1 collaborators
This guide will show you how to configure hammer for sdk 2013 so you never have to launch another hammer again for a source engine game or mod that doesn't have it's own authoring tools.
2
   
Award
Favorite
Favorited
Unfavorite
Try using Multi-Tool before you use this guide
I made Multi-Tool as a replacement for this guide so why not give that a shot before you use this guide? http://steamcommunity.com/sharedfiles/filedetails/?id=198444877
What can I do with this setup?
This setup can be used to display all your source engine 2006/2007/2009/2013 and mod content as well as your custom content all in one config.

The goal of this setup is so you only have to launch this config and none of the others.

This config can also be used to map for 2007 as 2013 maps are compatible apparently.
Setting up the directory
Before you begin download Source SDK Base 2013 Multiplayer from the tools section in Steam. Once it is installed run it once then close it (it will just open up a benchmarking program).

Navigate to Steam\steamapps\common\Source SDK Base 2013 Multiplayer

Select hl2mp and copy paste it, then rename the copy UltimateConfig

Open up the UltimateConfig folder and delete everything that isn't cfg, custom, mapsrc, download, resource, and gameinfo.txt

Editing the gameinfo.txt
Open up the gameinfo.txt now and select everything in it and delete it.

Now copy paste the following into it:
"GameInfo" { game "UltimateConfig" title "HAMMER4LIFE" title2 "HammerLegion" type multiplayer_only nomodels 0 nohimodel 1 nocrosshair 1 hidden_maps { "test_speakers" 1 "test_hardware" 1 } FileSystem { SteamAppId 243750 // // Setup engine search paths. // // |gameinfo_path| points at the directory where gameinfo.txt is. // |all_source_engine_paths| points at the directory containing HL2 shared content. // SearchPaths { // First, mount all user customizations. This will search for VPKs and subfolders // and mount them in alphabetical order. The easiest way to distribute a mod is to // pack up the custom content into a VPK. To "install" a mod, just drop it in this // folder. // // Note that this folder is scanned only when the game is booted. game+mod UltimateConfig/custom/* game+mod+mod_write+default_write_path |gameinfo_path|. // Mod gamebin |gameinfo_path|bin // Mod's Binaries // We search VPK files before ordinary folders, because most files will be found in // VPK and we can avoid making thousands of file system calls to attempt to open files // in folders where they don't exist. (Searching a VPK is much faster than making an operating // system call.) game "|all_source_engine_paths|../Counter-Strike Source/cstrike/cstrike_pak.vpk" //Counter Strike game "|all_source_engine_paths|../Day of Defeat Source/dod/dod_pak.vpk" //Day of Defeat game "|all_source_engine_paths|../GarrysMod/garrysmod/garrysmod.vpk" //Garrysmod game "|all_source_engine_paths|../Half-Life 2/ep2/ep2_pak.vpk" //HL2 EP2 game "|all_source_engine_paths|../Half-Life 2/episodic/ep1_pak.vpk" //HL2 EP1 game "|all_source_engine_paths|../Half-Life 2/lostcoast/lostcoast_pak.vpk" //HL2 Lost Coast game "|all_source_engine_paths|../Half-Life 2 Deathmatch/hl2mp/hl2mp_pak.vpk" //HL2 DM game |all_source_engine_paths|../Portal/portal/portal_pak.vpk //Portal game "|all_source_engine_paths|../Team Fortress 2/tf/tf2_misc.vpk" //TF2 begin game "|all_source_engine_paths|../Team Fortress 2/tf/tf2_sound_misc.vpk" game "|all_source_engine_paths|../Team Fortress 2/tf/tf2_sound_vo_english.vpk" game "|all_source_engine_paths|../Team Fortress 2/tf/tf2_textures.vpk" game "|all_source_engine_paths|../Team Fortress 2/tf/tf2_textures.vpk" //TF2 End game "|all_source_engine_paths|../Source SDK Base 2007/zps" //ZPS game "|all_source_engine_paths|../nmrih/nmrih" //nmrih //SOURCE MODS NOT ON STEAM MOUNT HERE //Current setup mounts all but causes hammer load time to increase, so if you have at on of mods installed your hammer is going to take a massive poop before it loads up completely. //Use the following file path format for specific mods: "|all_source_engine_paths|../../sourcemods/modname" game "|all_source_engine_paths|../../sourcemods/*" game+mod hl2mp/hl2mp_english.vpk game+mod hl2mp/hl2mp_pak.vpk // Base Half-Life 2 Content: ep2, episodic, hl2 game_lv |all_source_engine_paths|hl2/hl2_lv.vpk game |all_source_engine_paths|ep2/ep2_english.vpk //game |all_source_engine_paths|ep2/ep2_pak.vpk game |all_source_engine_paths|episodic/ep1_english.vpk //game |all_source_engine_paths|episodic/ep1_pak.vpk game |all_source_engine_paths|hl2/hl2_english.vpk game |all_source_engine_paths|hl2/hl2_pak.vpk game |all_source_engine_paths|hl2/hl2_textures.vpk game |all_source_engine_paths|hl2/hl2_sound_vo_english.vpk game |all_source_engine_paths|hl2/hl2_sound_misc.vpk game |all_source_engine_paths|hl2/hl2_misc.vpk platform |all_source_engine_paths|platform/platform_misc.vpk platform |all_source_engine_paths|platform/platform_misc.vpk // Now search loose files. We'll set the directory containing the gameinfo.txt file // as the first "mod" search path (after any user customizations). This is also the one // that's used when writing to the "mod" path. mod+mod_write+default_write_path |gameinfo_path|. // Add the hl2mp directory as a game search path. This is also where where writes // to the "game" path go. game+game_write hl2mp // Last, mount in shared HL2 loose files game |all_source_engine_paths|hl2 platform |all_source_engine_paths|platform } } }
How to add your own content to it
In the UltimateConfig folder there's a folder called custom. The custom folder is special in that it will mount anything placed inside of it.

So lets say you have a giant robot model. You would make a folder in custom called something like myRobotModel then inside that folder you would put your materials, models, sound folders.

So the file structure would look something like this:

custom/myRobotModel/materials/models/myRobot/myRobotTexture.vtf
custom/myRobotModel/models/myRobot/myRobot.mdl
Setting up hammer
In steam/steamapps/common/Source SDK Base 2013/bin there's hammer.exe this is the .exe you will use to launch hammer.

Double click and you will have a window popup probably that asks for you to select a game configuration, choose Half-Life 2: Deathmatch for now.

Once it loads up go to tools->options

Click edit next to configuration

Click add and enter the name

Click okay and then close on the Edit Game Configurations window

Under Game Data files click add. This is where you will add every single .fgd you think you will want to use. Typically they are located in steamapps/common/gamename/bin for games and steamapps/sourcemods/modname for mods.

Go ahead and choose your defaults for point entities and sold entities

Now comes the copy paste part, for each field copy the thing on the right of it and paste it into your hammer in the corresponding location

Game Executable Directory: $SteamUserDir\Source SDK Base 2013 Multiplayer
Game Directory: $SteamUserDir\Source SDK Base 2013 Multiplayer\UltimateConfig
Hammer VMF Directory: $SteamUserDir\Source SDK Base 2013 Multiplayer\UltimateConfig\mapsrc

Under build programs:
Game Executable: $SteamUserDir\Source SDK Base 2013 Multiplayer\hl2.exe
BSP executable: $SteamUserDir\Source SDK Base 2013 Multiplayer\bin\vbsp.exe
VIS executable: $SteamUserDir\Source SDK Base 2013 Multiplayer\bin\vvis.exe
RAD executable: $SteamUserDir\Source SDK Base 2013 Multiplayer\bin\vrad.exe
Place compiled maps: $SteamUserDir\Source SDK Base 2013 Multiplayer\UltimateConfig\mapsrc

Now click apply then okay. Close hammer and relaunch it, you should now see the config in the list. This is the one you will want to use.



Warnings
Somethings you need to understand about this config:

1. If you have it run the game after compile you will not be loading up in the game you are mapping for but instead the default HL2 DM mod. This will be fine most of the time if you are checking out visual things BUT IF YOU ARE TRYING TO USE ENTITIES THAT ARE NOT NATIVE TO HL2 DEATHMATCH THEY WILL NOT WORK. Instead copy paste the bsp from the mapsrc folder into the games actual map folder.

2. Just because the content is visible in this does not mean it will be visible in your game/mod. If it's for a game like CSS and you are trying to use DoD content you will need to go into the DoD's VPK and extract it then pack it into the CSS map BUT VALVE DOES NOT LIKE IT WHEN YOU DO THIS AND IT MAKES ARTISTS CRY :( If it's for a mod simply mount the games vpk in your gameinfo.txt (YOUR USERS WILL NEED THIS GAME TO SEE IT THOUGH)

This applies to fgds as well, the math_static entity from ZPS will not work in HL2.
Wait where's L4D2, Alien Swarm, Portal 2, etc?
The content in L4D2, Alien Swarm, Portal 2, and various other Source games were made on a newer engine branch and their content doesn't always work in older versions of Source. You can easily mount their content if you want but I figured since they have authoring tools there was no need to do this.
< >
39 Comments
m3 Apr 25, 2020 @ 3:50pm 
I notice one strange omission. Half-Life: Source.
Steel Feb 12, 2018 @ 12:03pm 
Im having an error seeing the config in the hammer itself, i followed what you did in the guide but im still stuck, add me if you know anything that could help me get back to mapping ASAP thanks!
Mystic Monkey Jan 23, 2018 @ 3:56pm 
In fact, a zip. of this "UltimateConfig" folder would be more appreciated given my version of SDK2013 doesn't seem to have it.
Mystic Monkey Jan 23, 2018 @ 3:55pm 
I can't copy-paste the gameinfo.txt provided without it collapsing on the notepad when pasted.

Is there a download of this particular gameinfoi somewhere? Or a copy-paste with all the right spacing?
Ham sandwich Sep 9, 2016 @ 10:39am 
i seen "multiplayer only" in the first part so i scrolled down asap to tell you to go kick ricks
kukurik Jun 8, 2015 @ 8:26am 
Блат! По русски пжлст!
FlattestGuitar Aug 16, 2014 @ 2:00pm 
Pretty cool, but in the config title is "HAMMER4LIFE" while it should be "HAMMER4LYFE".
Wazanator  [author] Feb 16, 2014 @ 9:27pm 
Try using Multitool instead, guide is outdated.
hideo nojima 😎 Feb 16, 2014 @ 5:15am 
"Engine Error" "Could not load Library client"
Pyri Jan 6, 2014 @ 10:29pm 
"Engine Error" "Could not load Library client"