This article's documentation is for anything that uses the Source engine. Click here for more information.

Source SDK Files and Directory Structure: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
 
(30 intermediate revisions by 18 users not shown)
Line 1: Line 1:
With the latest SDK release, the default directory structure will be changed to remove the restriction of having to save your game content into the \sourcesdk directory tree. This document explains how the Source SDK directory structure is set up.
{{LanguageBar}}
 
{{Source topicon}}
=The directory structure explained=
With the release of {{Src13|4}}, the default directory structure was changed to remove the restriction of having to save your game content into the <code>\sourcesdk</code> directory tree. This document explains how the [[Source SDK]] directory structure is set up.


== The Directory Structure Explained ==
The SDK directory structure is now set up so that game content directories are separated from game sources directories.
The SDK directory structure is now set up so that game content directories are separated from game sources directories.


* <i>Game content</i> files are the actual files necessary to run the game textures, maps, models, etc.
* '''Game content''' files are the actual files necessary to run the game textures, maps, models, etc.
* <i>Game sources</i> are the files that are used to create that game content (the "source" of the game content).
* '''Game sources''' are the files that are used to create that game content (the "source" of the game content).


This table explains some of the different game content and game source file types in the SDK:
This table explains some of the different game content and game source file types in the SDK:
{{note|Since SteamPipe update in 2013, the {{path|username}} (tied to Steam account name) folder has been renamed to {{path|common}} folder.}}


{|
{| class=standard-table
! File type        || Description          || Location
! File type        || Description          || Location
|-
|-
| <code>.VMF</code>              || Map source files.                                  || <code>sourcesdk_content\<game name>\mapsrc</code>
| <code>.[[Valve Map Format|vmf]]</code>              || Map source files.                                  || <code>sourcesdk_content\<game name>\mapsrc</code></br>{{code|<game name>\sdk_content\mapsrc}} ({{l4dbranch|1}} and later)
|-
|-
|<code>.TGA .TXT</code>         || Texture source files.                               || <code>sourcesdk_content\<game name>\materialsrc</code>
|<code>.[[tga]] .[[.txt|txt]]</code>         <span style="display:none">|</span>
|Texture source files.
|<code>sourcesdk_content\<game name>\materialsrc</code></br>{{code|<game name>\sdk_content\materialsrc}} ({{l4dbranch|1}} and later)
|-
|-
|<code>.SCN .SMD .QC</code>      || Model source files.                                || <code>sourcesdk_content\<game name>\modelsrc</code>
|<code>.[[SCN|scn]] .[[SMD|smd]] .[[qc]]</code>      || Model source files.                                || <code>sourcesdk_content\<game name>\modelsrc</code></br>{{code|<game name>\sdk_content\modelsrc}} ({{l4dbranch|1}} and later)
|-
|-
| <code>.BSP</code>             || Map content files — compiled game maps.            || <code><game name>\maps</code>
|&nbsp;{{ent|.bsp}}             || Map content files—compiled game maps.            || <code><game name>\maps</code>
|-
|-
| <code>.VMT .VTF</code>         || Texture content files — compiled game textures.     || <code><game name>\materials</code>
|<code>.[[.mdl|mdl]] .[[VTX|vtx]]</code>         || Model content files—compiled game models.   || <code><game name>\models</code>
|-
|-
|<code>.MDL .VTX</code>         || Model content files — compiled game models/props.   || <code><game name>\models</code>
| <code>.[[vmt]] .[[vtf]]</code>         || Texture content files—compiled model skins.    || <code><game name>\materials\models</code>
|-
| <code>.[[vmt]] .[[vtf]]</code>        || Texture content files—compiled brush textures.     || <code><game name>\materials</code>
|}
|}
The following image shows the default locations for these files and folders:
The following image shows the default locations for these files and folders:


[[Image:developer-contentfolders.jpg]]
[[File:developer-contentfolders.jpg]]


{|
{| class=standard-table
| '''Steam Install Directory'''      || The location where you've installed Steam.
| '''Steam Install Directory'''      || The location where you've installed Steam.
|-
|-
| '''Game Content'''                || The game content is here, with all the files necessary to run each game under each game directory.
| '''Game Content'''                || The game content is here, with all the files necessary to run each game under each game directory. <br>Games run on {{src13|4}} and {{l4d|since}} (Authoring Tools) will have it's SDK installed in the same location as the game itself.
|-
|-
| '''SDK Tools'''                    || The location of the applications necessary to create and compile SDK content.
| '''SDK Tools'''                    || The location of the applications necessary to create and compile SDK content. The tools only works with {{src09|4}} and earlier.
|-
|-
| '''Content Sources'''            || Directories for each of the types of game content sources are here, with a set of directories for each game you want to create content for. '''SDK sample content is also stored here.'''
| '''Content Sources'''            || Directories for each of the types of game content sources are here, with a set of directories for each game you want to create content for. '''SDK sample content is also stored here.'''</br>These are moved to {{code|SourceSDK\sourcesdk_content}} and {{code|depot_211_dir.vpk\sourcesdk_content}} after SteamPipe.</br>SDK sample content in Left 4 Dead (and later branches), some Source games are located in {{code|<game name>\sdk_content}}.
|}
|}


 
== Examples of Using This SDK Directory Structure ==
=Examples of using this SDK directory structure=
 
Here are some practical examples of how this structure is used:
Here are some practical examples of how this structure is used:
=== Compiling a {{Css|2}} map ===
# Launch the [[Hammer]] map editor from the '''SDK Tools Directory'''.
# Save the map as a [[VMF]] into the <code>cstrike\mapsrc</code> directory, which is under '''Content Sources'''.
# Compile the map inside Hammer. The map is compiled as a [[BSP]] and automatically placed in the <code>cstrike\maps</code> '''Game Content''' directory.


== Compiling a CS:S map: ==
=== Creating a texture for {{Hl2dm|2}} ===
 
# Create a texture in an [[image editor]], and save it as a [[TGA]] in the <code>hl2mp\materialsrc</code> directory, which is under '''Content Sources'''.
# Launch the '''Hammer''' level editor, which is launched from the '''SDK Tools Directory'''.
# Compile the texture with <code>[[Vtex (Source 1)|Vtex.exe]]</code>, which is in the '''SDK Tools Directory'''.
# Save the map as a .VMF into the <code>cstrike\mapsrc</code> directory, which is under '''Content Sources'''.
# Compile the map inside Hammer. The map is compiled as a .BSP and automatically placed in the <code>cstrike\maps</code> '''Game Content''' directory.
 
==Creating a texture for Half-Life 2: Deathmatch:==
 
# Create a texture in an image editing application, and save it as a .TGA in the <code>hl2mp\materialsrc</code> directory, which is under '''Content Sources'''.
# Compile the texture with [[Vtex|Vtex.exe]], which is in the '''SDK Tools Directory'''.
# The texture is compiled as a [[VTF]] file and automatically placed in the <code>hl2mp\materials</code> '''Game Content''' directory.
# The texture is compiled as a [[VTF]] file and automatically placed in the <code>hl2mp\materials</code> '''Game Content''' directory.
# Create the [[VMT]] material file with a text editor, and save it in the <code>hl2mp\materials</code> '''Game Content''' directory.
# Create the [[VMT]] material file with a [[text editor]], and save it in the <code>hl2mp\materials</code> '''Game Content''' directory.
 
==Creating a model for Half-Life 2:==


# Create a model in Softimage|XSI EXP, and export it as an .SMD in the <code>hl2\modelsrc</code> directory, which is under '''Content Sources'''.
=== Creating a model for {{Hl2|2}} ===
# Create the .QC model definition file with a text editor, and save it in the <code>hl2\modelsrc</code> directory, which is under '''Content Sources'''.
# Create an [[SCN]] model in [[Softimage Mod Tool|XSI EXP]], and export it as an [[SMD]] in the <code>hl2\modelsrc</code> directory, which is under '''Content Sources'''.
# Compile the model with <code>Studiomdl.exe</code>, which is in the '''SDK Tools''' Directory.
# Create the .QC model definition file with a [[text editor]], and save it in the <code>hl2\modelsrc</code> directory, which is under '''Content Sources'''.
# The model is compiled as a .MDL and automatically placed in the <code>hl2\models</code> '''Game Content''' directory.
# Compile the model with <code>[[Studiomodel|Studiomdl.exe]]</code>, which is in the '''SDK Tools''' Directory.
# The model is compiled as a [[MDL]] and automatically placed in the <code>hl2\models</code> '''Game Content''' directory.


For in-depth descriptions of these procedures, see the appropriate section of the Source SDK Documentation.
For in-depth descriptions of these procedures, see the appropriate section of the Source SDK Documentation.


[[category:Source_SDK_FAQ]]
[[Category:Files]]
 
[[Category:Source SDK FAQ]]
{{otherlang:en}} {{otherlang:en:jp|{{PAGENAME}}:jp}}, {{otherlang:en:fr|{{PAGENAME}}:fr}},
{{otherlang:en:zh-tw|{{PAGENAME}}:zh-tw}}

Latest revision as of 08:01, 3 April 2025

English (en)Español (es)Français (fr)日本語 (ja)Polski (pl)Русский (ru)中文 (zh)中文(臺灣) (zh-tw)Translate (Translate)

With the release of Source 2013 Source 2013, the default directory structure was changed to remove the restriction of having to save your game content into the \sourcesdk directory tree. This document explains how the Source SDK directory structure is set up.

The Directory Structure Explained

The SDK directory structure is now set up so that game content directories are separated from game sources directories.

  • Game content files are the actual files necessary to run the game textures, maps, models, etc.
  • Game sources are the files that are used to create that game content (the "source" of the game content).

This table explains some of the different game content and game source file types in the SDK:

Note.pngNote:Since SteamPipe update in 2013, the 🖿username (tied to Steam account name) folder has been renamed to 🖿common folder.
File type Description Location
.vmf Map source files. sourcesdk_content\<game name>\mapsrc
<game name>\sdk_content\mapsrc (Left 4 Dead engine branch and later)
.tga .txt | Texture source files. sourcesdk_content\<game name>\materialsrc
<game name>\sdk_content\materialsrc (Left 4 Dead engine branch and later)
.scn .smd .qc Model source files. sourcesdk_content\<game name>\modelsrc
<game name>\sdk_content\modelsrc (Left 4 Dead engine branch and later)
 .bsp Map content files—compiled game maps. <game name>\maps
.mdl .vtx Model content files—compiled game models. <game name>\models
.vmt .vtf Texture content files—compiled model skins. <game name>\materials\models
.vmt .vtf Texture content files—compiled brush textures. <game name>\materials

The following image shows the default locations for these files and folders:

Developer-contentfolders.jpg

Steam Install Directory The location where you've installed Steam.
Game Content The game content is here, with all the files necessary to run each game under each game directory.
Games run on Source 2013 Source 2013 and (in all games since Left 4 Dead) (Authoring Tools) will have it's SDK installed in the same location as the game itself.
SDK Tools The location of the applications necessary to create and compile SDK content. The tools only works with Source 2009 Source 2009 and earlier.
Content Sources Directories for each of the types of game content sources are here, with a set of directories for each game you want to create content for. SDK sample content is also stored here.
These are moved to SourceSDK\sourcesdk_content and depot_211_dir.vpk\sourcesdk_content after SteamPipe.
SDK sample content in Left 4 Dead (and later branches), some Source games are located in <game name>\sdk_content.

Examples of Using This SDK Directory Structure

Here are some practical examples of how this structure is used:

Compiling a Counter-Strike: Source Counter-Strike: Source map

  1. Launch the Hammer map editor from the SDK Tools Directory.
  2. Save the map as a VMF into the cstrike\mapsrc directory, which is under Content Sources.
  3. Compile the map inside Hammer. The map is compiled as a BSP and automatically placed in the cstrike\maps Game Content directory.

Creating a texture for Half-Life 2: Deathmatch Half-Life 2: Deathmatch

  1. Create a texture in an image editor, and save it as a TGA in the hl2mp\materialsrc directory, which is under Content Sources.
  2. Compile the texture with Vtex.exe, which is in the SDK Tools Directory.
  3. The texture is compiled as a VTF file and automatically placed in the hl2mp\materials Game Content directory.
  4. Create the VMT material file with a text editor, and save it in the hl2mp\materials Game Content directory.

Creating a model for Half-Life 2 Half-Life 2

  1. Create an SCN model in XSI EXP, and export it as an SMD in the hl2\modelsrc directory, which is under Content Sources.
  2. Create the .QC model definition file with a text editor, and save it in the hl2\modelsrc directory, which is under Content Sources.
  3. Compile the model with Studiomdl.exe, which is in the SDK Tools Directory.
  4. The model is compiled as a MDL and automatically placed in the hl2\models Game Content directory.

For in-depth descriptions of these procedures, see the appropriate section of the Source SDK Documentation.