# Source SDK 2013: building Half-Life 2, HL2: DM and TF2 game code from Valve's repository

> The source-sdk-2013 repository ships the game code for Half-Life 2, HL2: DM and Team Fortress 2, plus project generators for Visual Studio 2022 and a podman-based Linux build. It is a modder's starting point, not a standalone game, and the licence sets the boundary.

**ValveSoftware/source-sdk-2013** — The 2013 edition of the Source SDK

- Repository: https://github.com/ValveSoftware/source-sdk-2013
- Website: https://developer.valvesoftware.com/wiki/SDK2013_GettingStarted
- Stars: 10,039 · Forks: 3,051
- Language: C++
- License: NOASSERTION
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/valvesoftware-source-sdk-2013

## What source-sdk-2013 actually contains, and who it is for

This repository is not a game and not a general engine. It is the game code layer for three titles: Half-Life 2, HL2: DM and Team Fortress 2. The README states that the repository "Contains the game code for Half-Life 2, HL2: DM and TF2", and the top-level layout backs that up with two directories that matter, src/ for the C++ sources and game/ for the runtime layout a mod is launched from. Everything else in the root is housekeeping: CONTRIBUTING, LICENSE, thirdpartylegalnotices.txt, .gitattributes, .gitignore and .github/.

The audience is narrow and specific. You are a programmer who wants to change how these three games behave, and you already have a working Source SDK 2013 Multiplayer installation from Steam. Both the Windows and Linux requirement lists in the README open with that same line, which tells you the repository assumes the engine binaries, assets and launcher come from Steam, not from this checkout. If you were hoping to clone a repository and end up with a playable game, this is the wrong starting point. If you want to compile a modified client or server DLL and drop it into an existing install, it is the right one.

The inclusion of Team Fortress 2 is the notable change here. The README announces it with a sparkle emoji in the heading and nothing else, so there is no separate migration note explaining what moved or what a TF2 modder gains. Treat the presence of TF2 code as a fact and the reasoning behind it as undocumented.

## How the build works: project generation, then compilation

There is no CMakeLists.txt and no Makefile in the top-level listing. The build is generated in two stages, and understanding that split saves time when something fails.

On Windows, the README directs you into src/ and has you run createallprojects.bat. That script produces everything.sln, a Visual Studio solution, and the README says the solution "will be used to build your mod". So the .sln is a generated artifact, not a checked-in file. You build it from the Visual Studio menu with Build > Build Solution, then pick the Client (Mod Name) project for the mod you want, set it as the startup project, and launch with Local Windows Debugger. The README notes that launch options come pre-filled for the Release configuration, which is a small but real convenience: you do not have to reconstruct command line arguments to get a first run.

On Linux the shape is different. The README has you run ./buildallprojects from src/, and states that this builds all SDK and mod projects "automatically against the Steam Runtime". That last clause is not optional trivia. The README is explicit that "Mods that are distributed on Steam MUST be built against the Steam Runtime", and the supplied script is what does it for you. If you substitute your own build invocation, you take on that requirement yourself.

Notice what is missing from the repository description: no engine source, no asset pipeline, no server hosting tooling. The data flow is one-directional. Steam supplies the base install, this repository supplies the game code, the build produces binaries, and the launcher under game/ runs them.

## Installing and running your first build on Windows

The README gives a concrete path, and it assumes two things are already true: Source SDK 2013 Multiplayer is installed via Steam, and you have Visual Studio 2022 with the Desktop development with C++ workload. The README names the specific components: MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest), and either Windows 11 SDK (10.0.22621.0) or Windows 10 SDK (10.0.19041.1). Python 3.13 or later is also listed as a requirement, which is consistent with createallprojects.bat being a generator script rather than a compiler invocation.

Start by cloning the repository:

```bash
git clone https://github.com/ValveSoftware/source-sdk-2013
```

Then move into src/ and generate the solution:

```bat
createallprojects.bat
```

When that finishes you should have everything.sln in src/. Open it in Visual Studio 2022 and build the whole solution with Build > Build Solution. The README warns you to wait for everything to build, and that is worth respecting: a partial build will leave you with a client project that cannot link.

Once the build succeeds, choose the Client (Mod Name) project for the mod you want, right click it, select Set as Startup Project, and press Local Windows Debugger. The README says the default launch options are already filled in for the Release configuration, so a first launch should not require hand-written arguments. If the game window does not appear, check the Steam installation of Source SDK 2013 Multiplayer before you suspect the code, because that is the dependency the README lists first.

## Building on Linux with podman and the Steam Runtime

The Linux path is shorter to type and stricter in what it guarantees. The only two requirements the README lists are Source SDK 2013 Multiplayer installed via Steam and podman. From inside src/, you run a single script:

```bash
./buildallprojects
```

The README states this builds all the projects related to the SDK and your mods automatically against the Steam Runtime. That is the whole build story for Linux as documented, and it is deliberately narrow: podman is the container runtime doing the work, and the Steam Runtime is the target environment.

Running the result is equally direct. From the root of the cloned directory, go into game/ and launch the build launcher for your mod project. The README gives one example:

```bash
./mod_tf
```

The naming pattern is worth noting: the launcher is named for the mod, so a TF2 build is mod_tf and other mods follow the same convention. There is no documented equivalent of the Windows pre-filled Release launch options, and the README does not describe how to pass arguments to these launchers or what happens if the Steam Runtime is unavailable on your machine. Those are gaps, not features.

## Where source-sdk-2013 stops being the right tool

The licence is the first hard boundary. The README states the SDK is licensed "to users on a non-commercial basis under the SOURCE 1 SDK LICENSE", contained in the LICENSE file at the repository root, with thirdpartylegalnotices.txt alongside it. If your plan involves selling what you build, or shipping it inside a commercial product, the licence as described does not cover that. The repository metadata reports the licence as NOASSERTION, which means GitHub's classifier did not recognise the LICENSE file as a standard SPDX licence. Read the file itself rather than trusting a badge.

The second boundary is the Steam dependency. Source SDK 2013 Multiplayer is the first requirement in both the Windows and Linux lists. There is no documented path for building and running this repository without a Steam installation, and the Linux build specifically targets the Steam Runtime. If you need a fully self-contained build environment, this repository does not offer one.

The third is scope. The README covers Half-Life 2, HL2: DM and Team Fortress 2 game code. It does not claim to be a general engine distribution, and the top-level listing shows no engine sources. If your project needs an engine you can extend at the renderer or physics level, this is not that repository.

Finally, distribution is documented only by reference. The README points to an external Steam partner page for guidance on distributing a mod on and off Steam, and repeats that link under the License heading. Nothing in the README describes packaging, versioning or uploading a mod, so plan to read that external page before you assume the workflow.

## Alternatives: what changes if you pick something else

The most direct alternative is the same SDK delivered through Steam rather than GitHub. Source SDK 2013 Multiplayer and Source SDK 2013 Singleplayer are separate Steam entries, and the README requires the Multiplayer one for this repository's build. If your goal is to run or host existing content rather than modify game code, the Steam install alone is sufficient and the repository adds nothing. The difference in approach is ownership of the code: Steam gives you the runtime, this repository gives you the C++ that runs on top of it.

A second alternative is a newer Source engine generation, which uses different tooling and different licensing. The README does not mention one, and this article will not invent a comparison it cannot source. The relevant point for a decision is that source-sdk-2013 targets a specific engine generation and a specific set of three games, and code written against it does not transfer to another generation without work.

The community-edition forks that appear in search traffic around this project are a third option, but the README says nothing about them, so there is no verifiable basis here for describing how they differ. What can be said is structural: this repository is Valve's own, pushes to master, and ships its own build scripts. A fork changes who maintains the build scripts, and that is the thing to check before adopting one.

## Maintenance, upgrade cost and licence implications

The repository is not archived, and its last push was on 2026-09-05. That is recent enough that the build instructions describe current tooling rather than a historical setup: Visual Studio 2022, MSVC v143, Python 3.13 or later, and podman on Linux. The README also reflects the addition of Team Fortress 2 game code. None of this is a maintenance guarantee, and the README publishes no support policy, no release cadence and no compatibility matrix beyond the SDK versions it names.

Upgrade cost is concentrated in the toolchain, not in the repository. The README pins specific SDK versions, Windows 11 SDK (10.0.22621.0) or Windows 10 SDK (10.0.19041.1), and a specific compiler toolset, MSVC v143. Moving to a different Visual Studio version means checking createallprojects.bat and the generated everything.sln still produce a buildable solution, because the .sln is generated each time and is not something you can patch in place. On Linux, the Steam Runtime target is the constraint: the README states that mods distributed on Steam must be built against it, so an upgrade that changes the runtime is a distribution concern, not just a local one.

On licensing, the README is clear that the grant is non-commercial and governed by the SOURCE 1 SDK LICENSE file, with thirdpartylegalnotices.txt covering bundled third-party components. This is a summary of what the repository states, not legal advice. If your use is commercial, or if you are unsure how the non-commercial term applies to your distribution, that is a question for a lawyer who can read the actual LICENSE text.

## Conclusion

Adopt source-sdk-2013 if you want to modify Half-Life 2, HL2: DM or Team Fortress 2 game code and you already own the matching Source SDK 2013 Multiplayer tool through Steam. Do not adopt it if you want a ready-to-play game, a general-purpose engine, or a commercial product, since the SOURCE 1 SDK LICENSE grants rights on a non-commercial basis only. Before writing any code, verify three things: that the Source SDK 2013 Multiplayer app is installed in your Steam library, that createallprojects.bat or ./buildallprojects completes without errors, and that the mod launcher under game/ actually starts your mod. If the launcher fails, the problem is your Steam install or the generated project, not the game code you have not written yet.

## FAQ

### What is Source SDK 2013?

It is the 2013 edition of the Source SDK, distributed as a repository containing the game code for Half-Life 2, HL2: DM and Team Fortress 2. The README describes it as the source code for Source SDK 2013 and lists those three games explicitly.

### Is Source SDK 2013 free?

The README states the SDK is licensed to users on a non-commercial basis under the SOURCE 1 SDK LICENSE, and that the licence text is in the LICENSE file at the repository root. It does not describe a paid tier or a price.

### How do I install source-sdk-2013?

The README has you clone the repository with git clone https://github.com/ValveSoftware/source-sdk-2013, and both the Windows and Linux requirement lists start with Source SDK 2013 Multiplayer installed via Steam. On Windows you then run createallprojects.bat inside src/, and on Linux you run ./buildallprojects.

### How do I compile source-sdk-2013?

On Windows, run createallprojects.bat in src/ to generate everything.sln, open it in Visual Studio 2022 and use Build > Build Solution. On Linux, run ./buildallprojects from src/, which the README says builds all SDK and mod projects against the Steam Runtime.

### Does source-sdk-2013 work with Visual Studio 2022?

Yes. The README's Windows requirements name Visual Studio 2022 with the Desktop development with C++ workload, including MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest) and either Windows 11 SDK (10.0.22621.0) or Windows 10 SDK (10.0.19041.1).

### How do I set up source-sdk-2013?

Install Source SDK 2013 Multiplayer through Steam, clone the repository, then generate and build the projects: createallprojects.bat in src/ followed by Build > Build Solution on Windows, or ./buildallprojects in src/ on Linux. The README lists Visual Studio 2022, MSVC v143, a Windows SDK and Python 3.13 or later for the Windows path, and podman for the Linux path.

## Sources

- [Issues](https://github.com/ValveSoftware/source-sdk-2013/issues)
- [Project website](https://developer.valvesoftware.com/wiki/SDK2013_GettingStarted)
- [README](https://github.com/ValveSoftware/source-sdk-2013/blob/master/README.md)
- [ValveSoftware/source-sdk-2013 on GitHub](https://github.com/ValveSoftware/source-sdk-2013)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/valvesoftware-source-sdk-2013
