Gameinfo.txt: Difference between revisions
TomEdwards (talk | contribs) (clarifications) |
No edit summary |
||
Line 100: | Line 100: | ||
# '''<code>|gameinfo_path|</code>''' (folder containing your mod's gameinfo.txt) | # '''<code>|gameinfo_path|</code>''' (folder containing your mod's gameinfo.txt) | ||
==== | ==== Localization ==== | ||
Source automatically creates localised search paths. If you mount <code>hl2</code>, then when a player runs your mod in French <code>hl2_french</code> is automatically mounted just in front. {{todo|Does this also apply for the mod folder itself?}} | Source automatically creates localised search paths. If you mount <code>hl2</code>, then when a player runs your mod in French <code>hl2_french</code> is automatically mounted just in front. {{todo|Does this also apply for the mod folder itself?}} |
Revision as of 15:19, 8 November 2009
- For Half-Life 1/GoldSrc, see liblist.gam.
gameinfo.txt
describes your mod. It contains metadata like its name, a link to your website and a manual, and defines which games it can access. It is stored in your mod's root folder and is the marker that Steam, Source and the SDK tools use to detect its existence.
The SDK launcher generates a gameinfo.txt when you run the Create a Mod Wizard. This will work fine for development, but before release you will want to edit it and add new data.

UI settings
Name
game <string>
- The name of your mod in ASCII. Displayed in Steam and on the Windows task bar, but not on the main menu (unless you don't define a
title
). title <string>
title2 <string>
- These are the Unicode strings displayed in the main menu of your mod. They might be different from the strings displayed in Steam and on the desktop if you are using a fancy font.
title2
(and 3, 4, etc.) are to enable you to apply different styles to different parts of your title.Note:It's likely your title won't display right until you edit
ClientTitleFont
inresource\clientscheme.res
to change its font. The default ("HalfLife2") only has a specific set of characters and won't display most text properly.- Template:EP2 add
- Rather than displaying the
title
/title2
text, display the content inresource\GameLogo.res
. See Adding Your Logo to the Menu.
Options
type <singleplayer_only | multiplayer_only>
- Affects which tabs appear in which order the Options panel. May also affect Steam's download speed. Omit if your mod has both SP and MP modes.
nodifficulty <boolean>
- Hides the difficulty tab (this happens automatically if your mod is
multiplayer_only
) - Template:EP2 add
- Shows the Portal options tab
nocrosshair <boolean>
- Hides the multiplayer crosshair selection menu
advcrosshair
- Enables special advanced crosshair options. Todo: How to implement.
nomodels <boolean>
- Hides the multiplayer model selection menu
nohimodel <boolean>
- Hides toggle checkbox for
cl_himodels
, which was used in GoldSrc. Only displayed properly ifcl_himodels
exists in the first place!
Steam games list
developer <string>
- Your team's name (or just yours!)
developer_url <string>
- Your or the mod's website. Must start with
http://
. manual <string>
- URL to the mod's manual; can be local.
icon <string>
- Local path, relative to gameinfo.txt, to an uncompressed 16x16 TGA that will appear as your mod's icon in Steam. Do not include the file extension. For transparency to work, the TGA must be saved in 32-bit mode with active alpha channel.
Miscellaneous
hidden_maps <subkey>
- Maps in the subkey do not appear in the "create server" dialogue (but can still be loaded from the console).
- Syntax is
mapname 1
, with one entry per line. Don't include.bsp
. Remember to open and close the subkey with { and }. - Template:EP2 add
- When false, prevents the engine from creating nodegraphs.
- Template:EP2 add
- Path to a FGD, relative to Hammer's location. Currently has no effect.
- Template:EP2 add
- Found in TF2's gameinfo with the value
maps/instances/
...
Mounting content

There are two stages to getting at a game's content:
- Mount its AppID
- Mount its folder as a searchpath
This all happens within the filesystem
key. Scroll down for an example.
SteamAppID <int>
- The AppID of the game the mod is to be based on. The mod will have access to all of this game's content, and will not be playable unless it is installed.
Tip:For most mods this will be either 215 (Ep1) or 218 (OB), both of which point to different versions of the Source SDK Base.
- Template:EP2 add
- Another game that the mod has access to (and depends on). Any number of
AdditionalContentId
s can be specified.Bug:The engine understands this command, but the SDK tools unfortunately do not! The best solution, currently, is to copy the content of the game to a location on your hard drive and add an absolute
SearchPath
to it (see below). Remember to delete the SearchPath before you release. [todo tested in ?] ToolsAppId <int>
- This is the AppID of the SDK currently in use. Currently, the only valid ID is 211 (the Source SDK).
SearchPaths
SearchPaths
is a further subkey group within FileSystem
. It contains a list of folders (in the form Game <path>
, once per line) that the engine will look for files in.
The engine starts looking in the first path, and stops as soon as it finds what it wants. This means that the order in which you provide search paths is important: files in one path override those in paths below it.
A search path is normally either relative to the SteamAppID
's root directory (i.e. where hl2.exe is located) or absolute (e.g. C:\SomeFolder\
). Thankfully there are two "magic words" which are more useful:
|all_source_engine_paths|
(root folders of both theSteamAppID
and anyAdditionalContentId
s you have used)|gameinfo_path|
(folder containing your mod's gameinfo.txt)
Localization
Source automatically creates localised search paths. If you mount hl2
, then when a player runs your mod in French hl2_french
is automatically mounted just in front.

Example
The following code would mount the content of both Episode Two and Portal:
FileSystem
{
SteamAppId 420 // Ep2
ToolsAppId 211
AdditionalContentId 400 // Portal
SearchPaths
{
Game |gameinfo_path|. // Your mod folder should always come first
Game |all_source_engine_paths|ep2
Game |all_source_engine_paths|episodic // Ep2 also uses some Ep1 content
Game |all_source_engine_paths|portal
Game |all_source_engine_paths|hl2 // HL2 should always come last
}
}
Episode Two comes first and so has priority. This means that you won't be able to use portals, as the Ep2 binaries will be loaded - but you could pitch GLaDOS against a pack of Hunters!
If you did want to use Portal's binaries, you would simply promote its search path above Ep2's. (Needless to say, if there are binaries in your mod's folder then they will be loaded.)