Gameinfo.gi

Game Definition Files
 is a KeyValues config file that describes a Source 2 games/mod. Most of the basic are slightly different compared to the Source 1 counterpart (gameinfo.txt), and Source 2 also introducing new keyvalues and subkey. For example, can contain a Source 2 equivalent of an "", which is defined in the "ConVars" KeyValue. 
==Basic settings==
===Name===
Keys that affect the menu and window title.
===Options===
Keys that affect what tabs and options that show up in the Options panel. Also see Customizing Options: Keyboard.
==== exclusive ====
===Engine and tools===
Keys that affect how the engine/tools runs and some options for the tools themselves.
===FileSystem===
Keys that are within the subkey FileSystem.
====SearchPaths====
SearchPaths is a subkey within FileSystem. It contains a key for every search path. When the engine needs a file it traverses the search paths, stopping when the desired file has been found, hence the order of the search paths is important.
Loadorder is defined by two things: Primarily, whether files are in a VPK or not, and secondarily the "Top-Down" order in which the Search paths are listed.
The absolute highest priority over everything is given to whichever vpk file (such as hl2_misc_dir.vpk or pak01_dir.vpk) is highest in the search path. Even if it is the third path in the list, VPK has priority.
All subsequent vpk files according to the Gameinfo.txt's "Top-Down" rule will load all data that has not yet been found in the previous VPK file(s).
Once all VPK files are loaded, it goes back to the top most search path and loads any loose files that are not yet in any VPK file. Then it continues along the Gameinfo.txt's "Top-Down" rule to check for any additional loose files not yet loaded.
====Directories====
The directory, which is the value of the key, will either be relative to the SteamAppID’s root directory (i.e. where the executable of the game is located), relative to GameInfo.gi or absolute. A example of each one respectively would be this:
In Source 2, mounting a directory will also mount the VPKs inside it.
The 2 variables above will start the search in a certain directory, |All_Source_Engine_Paths| will start the directory within the root folder, and |GameInfo_Path| will start it in the folder where GameInfo.txt is located. Both of these variables can be appended with any number of folders. There are also some special commands you can append in addition to the folders and variables, the known ones are:
* ../ Goes back one folder, this will useful for mounting other games’ content like , since AdditionalContentID is deprecated. If you wanted to mount Portal, and your game is in, say for example "<SteamFolder>\SteamApps\Common\MyGame\FolderWhereGameInfoIs", you would create a search path like this to mount it’s content:
Here is also an example of how to mount a SourceMod:
* . This stops the search in the current directory, this should only be used if you want to directly mount where |All_Source_Engine_Paths| or |GameInfo_Path| are. An example of both:
* /* Mount every sub-folder and VPK in the current directory, this command is what makes the custom folder work in most up-to-date Source games. An example of its use:
===Keys===
Source 2, like , introduces few new keys that add more control.
The current keys known so far are:
* Game Adds the path as a simple search path. Will add any content it finds, including VPKs. Core engine files (located in folder), are also mounted after the game folder.
* Game_LV Marks the directory as leading to Low Violence files.
* Mod Marks the search path as a Mod path. This is usually where GameInfo.gi is.
* Write Marks the search path as a write path. This is usually where GameInfo.gi is. It marks the directory as the default directory for writing for this game.
* Default_Write_Path Marks the search path as a Default write path. This is usually where GameInfo.gi is. It marks the directory as the default directory for writing config.cfg, node graphs, screenshots and some other files for this mod. Also a fallback for when Write isn’t specified.
* AddonRoot Mount game addons located in specified folder. Usually set to .
== New KeyValues ==
This section contains new keyvalues introduced in Source 2.
=== Engine2 ===
==== ====
* DepotBuildDateTimeInTitleBar Show depot build date & time in titlebar.
* InitFilterTextEarly Unknown
* CNPW Unknown, has a password for something.
* LvConfig Low violence config?
==== ====
* HasModAppSystems 
* Capable64Bit Mark if the game is 64-bit capable.
* URLName Website name? Set to "hlvr" (same as game/mod folder) in 
* UsesPanorama Mark if the game use Panorama.
* UsesBink Mark if the game use Bink.
* PanoramaUIClientFromClient 
* RenderingPipeline
** SkipPostProcessing - Skip rendering post processing effect?
** PostProcessingInMainPipeline
** TonemappingVRForward 
** Tonemapping_UseLogLuminance 
** ToolsVisModes 
** OpaqueFade 
** AmbientOcclusionProxies 
** RetinaBurnFx - Renders retina burn effect.
* MSAADefaultNonVR - Changes MSAA sample count (or disable it), when the game runs in non-VR mode.
* SuppressNonConsoleVGuiInVR Supress non-console VGUI in VR
=== ConVars ===
Executes the console variable when starting the game.
In for example, grass quality, Steam Audio and other commands are set to specific value and FPS are capped to 400.
=== Hammer ===
Contains KeyValues for .
=== SupportedLanguages ===
List of languages supported by the game.
== Examples ==
=== Example===
A GameInfo.gi from .
== Gameinfo_branchspecific.gi ==
Category:File formats
Category:Modding
Category:Source 2