Installing and Debugging the Source Code

From Valve Developer Community
Revision as of 23:23, 18 January 2010 by NeoXidant (talk | contribs) ({{otherlang2}})
Jump to: navigation, search
Español Français Русский 日本語

This article will explain the basic steps for installing and debugging the source code.

Step By Step

Run the Create a Mod wizard

  1. Run the Source SDK from Steam and choose the Create a Mod link.
  2. You can normally choose any type of mod here, but for the purposes of this tutorial, choose the Modify Half-Life 2 Single Player option and click Next.
  3. In the top edit control of the next dialog, enter a directory where you would like to create a mod. This tutorial will assume you entered C:\MyMod.
  4. In the bottom edit control, enter any name for your mod. This will become a subdirectory under your SteamInstallPath\SteamApps\SourceMods folder. This example will assume you entered MyMod here.
  5. Click the Next button and the source code will be installed on your hard drive.
  6. Wait for the mod wizard to finish.

Compile the Source Code

For general considerations about compilation go here: Compiler Choices

For more specific:

Note.png Note: It is on debug compile by default. In order to run the mod with a debug dll you must right click the mod in the Steam game browser, click Properties then Set Launch Options... and add -allowdebug to the end of anything that may already be there (separated by spaces). You can change to a release build (for distributing the mod) in the configuration manager.

Currently the code is better compiling on VS2005. You can download it at

VCE2005 users need to download the Windows SDK (Windows 2000 users: Platform SDK). Visual Studio and VCE2008 users do not.


Setup debugging parameters

Note.png Note: This will only work if you have installed and launched the Source SDK Base.
  1. In the Solution Explorer window, right-click on the current project (the one in bold) and choose Properties.
  2. In the Property Pages dialog that appears, choose the Debugging item on the left-hand side.
  3. On the right-hand side, in the text control next to Command, enter C:\Steam\SteamApps\Username\source sdk base 2007\hl2.exe (adjusting the folder names given here to reflect your own Steam installation).
  4. Next to Command Arguments, enter -dev -sw -game "C:\Steam\SteamApps\SourceMods\MyMod" (where MyMod is the name of your mod you entered in the Create a Mod dialog).
  5. Next to Working Directory, enter C:\Steam\SteamApps\Username\source sdk base 2007 (adjusting the folder names given here to reflect your own Steam installation).
  6. Click the OK button.
Note.png Note: If you are on the OB code-base and are having trouble with debugging from inside Visual Studio, look at your gameinfo.txt for your mod. If the AppID says 440, you need to change your "Command" and "Working Directory" to point to the "team fortress 2" counterparts. (aka C:\Steam\SteamApps\Username\team fortress 2\hl2.exe and C:\Steam\SteamApps\Username\team fortress 2
Note.png Note: If your paths for the options above have spaces, its a good idea to surround them with quotes. For example, "C:\Steam\SteamApps\Username\team fortress 2\hl2.exe" etc. It MIGHT work without them, but if you are having trouble with debugging, this is something else to try.
Note.png Note: If you get linker errors like fatal error LNK1169: one or more multiply defined symbols found or error LNK2005: __malloc_dbg already defined in memoverride.obj, these can be fixed by adding "/FORCE:MULTIPLE" (without the quotes) into the project properties/configuration properties/linker/command line/additional options. This will most likely have to be added to both the server and client project within the solution.

Run in the debugger

  1. Important: after an SDK update, you must make sure to run whatever game you're editing through Steam once (only one time is necessary) before running in the debugger. If you don't, you may get Steam errors when running through the debugger.
  2. Right-click on the same project you were editing the properties for, and choose Debug->Start New Instance.
  3. If you get a warning that hl2.exe has no debugging information, ignore it.
  4. It should now launch Half-Life 2 and run your code. You can make modifications to the code now, rebuild, and rerun the game with your changes!

Alternative: run-time attachment

  1. Start the mod using Steam
  2. Inside Visual Studio, Main Menu > Debug > Attach to Process...
  3. Select the hl2.exe process with the title of your mod
Tip.png Tip: you can start the app in windowed mode for better comfort : add a "-window" option in your run_mod.bat


A good next step after mastering this document is to look at the Your First Entity document, in which you will make changes to some of the source code.

If you plan to integrate code updates from Valve, and if you want code backups and revision history, take a look at the Using Source Control with the Source SDK document.