This article's documentation is for Source 2. Click here for more information.

gameinfo.gi

From Valve Developer Community
Revision as of 06:17, 26 January 2025 by Kr0tchet (talk | contribs)
Jump to navigation Jump to search
English (en)Translate (Translate)

Game Definition Files
English (en)Translate (Translate)

GameInfo.gi is a KeyValues config file that describes a Source 2 games/mod. It is slightly different compared to the Source 1 counterpart (gameinfo.txt). For example, GameInfo.gi can contain a Source 2 equivalent of an "autoexec.cfg", which is defined in the "ConVars" KeyValue.

Note.pngNote:Booleans are represented as 0 or 1.
Note.pngNote:If a string contains spaces or tabs you have to wrap it in "quote marks".

Basic settings

Name

Keys that affect the menu and window title.

Game <string>
The name of the mod in ASCII. Displayed in Steam and used as the window title. Only displayed in the main menu if Title isn’t specified.
Title <string>
A Unicode string displayed in the main menu of your mod. You can also new line the menu text by adding another key of the same name Title, but append either 2 or a higher number onto it.
Note.pngNote:The higher the number, the further down the text will be.

{{KV|intn=0|Title_PW|string|Title password? (only in Counter-Strike 2)

Options

Keys that affect what tabs and options that show up in the Options panel. Also see Customizing Options: Keyboard.

Type <string>
Affects which tabs appear in which order in the Options panel, the value will either be Singleplayer_Only or Multiplayer_Only. Omit this key if your mod has both SP and MP modes.
NoCrosshair <boolean>
Hides the multiplayer crosshair selection menu.
AdvCrosshair <boolean>
Enables the 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 for multiplayer models in GoldSrc GoldSrc. Only displayed properly if cl_himodels exists in the first place.
Confirm:Confirm if some of these options from Source 1 still works in Source 2.
Todo: Add more information and KeyValues.

Counter-Strike 2 Counter-Strike 2 exclusive

LayeredOnMod <string>
Inherits the gameinfo.gi data from specified game/mod folder.
SatelliteDir <string>
Unknown. Specified as csgo_gc.

Engine and tools

Keys that affect how the engine/tools runs and some options for the tools themselves.

Nodegraph <boolean>
Whether or not to enable building nodegraphs (.ain files) for maps. Disabled in Half-Life: Alyx.
Tonemapping <boolean>
Show Tonemapping UI in tools mode.
GameData <string>
Path to a FGD file, relative to Hammer’s location. This is needed for instances to be compiled into maps. It is not used by Hammer itself.
InstancePath <string> (in all games since Source 2013)
The default location in which to look for Instance VMFs.
SupportsXbox360 <boolean> Obsolete
Deprecated.
Likely deprecated. Only present in previous version of Counter-Strike 2. Mark the game whether if it was supported on Xbox 360 or not.

FileSystem

Keys that are within the subkey FileSystem.

SteamAppID <integer>
The Steam AppID of the game. On Source 2 this is likely not needed, and only present in gameinfo.gi on 🖿core folder (using non-existent/private AppID "890", aswell as 🖿csgo_core in CS2, which uses the old CS:GO Beta Dev AppID.
Note.pngNote:Your mod won’t be protected by VAC VAC if it is based on a singleplayer game.
ToolsAppId <integer> Obsolete
Deprecated.
This is the AppID of the SDK currently in use. Deprecated and leftover from Source. Only present in gameinfo.gi on 🖿core folder (using non-existent/private AppID "895"

Examples

Counter-Strike 2 Counter-Strike 2 Example

A GameInfo.gi from Counter-Strike 2 Counter-Strike 2.

Note.pngNote:Last retrieved Oct 2, 2023.
"GameInfo" { // ******************************************************************************** // ******************************************************************************** // ******************************************************************************** // DO NOT EDIT THIS FILE DIRECTLY - YOU PROBABLY WANT TO EDIT CSGO_CORE/GAMEINFO.GI // ******************************************************************************** // ******************************************************************************** // ******************************************************************************** game "Counter-Strike 2" title "Counter-Strike 2" title_pw "E58F8DE68190E7B2BEE88BB1EFBC9AE585A8E79083E694BBE58ABF" LayeredOnMod csgo_imported // Inherits the gameinfo.gi data from csgo_imported (which itself inherits from csgo_core) FileSystem { SearchPaths { Game_LowViolence csgo_lv // Perfect World content override Game csgo Game csgo_imported Game csgo_core Game core Mod csgo Mod csgo_imported Mod csgo_core AddonRoot csgo_addons LayeredGameRoot "../game_otherplatforms/etc" [$MOBILE || $ETC_TEXTURES] //Some platforms do not support DXT compression. ETC is a well-supported alternative. LayeredGameRoot "../game_otherplatforms/low_bitrate" [$MOBILE] } "UserSettingsPathID" "USRLOCAL" "UserSettingsFileEx" "cs2_" } Engine2 { "DepotBuildDateTimeInTitleBar" "1" "InitFilterTextEarly" "1" "CNPW" "CD535060BE7CF1821AFF685103743B65BF52" } pulse { "pulse_enabled" "1" } ConVars { // Bandwidth control default: 300,000 Bps "rate" { "min" "98304" "default" "786432" "max" "1000000" } "sv_minrate" "98304" "sv_maxunlag" "0.200" // GOTV controls "tv_secret_code" "0" "tv_relay_secret_code" "0" "tv_update_hibernation_enabled" "0" // Performance "sv_parallel_checktransmit" "2" "fps_max" "400" "fps_max_ui" "120" "r_add_views_in_pre_output" "1" // Nav fixups "nav_path_fixup_climb_up_segments" "1" "nav_gen_agent_radius_buffer" "0.75" "nav_gen_jump_connection_min_overlap_ratio" "0.1" // CSM override "csm_slope_scale_db_override" "3" // SSAO customization for CSGO (this is used on viewmodels) "r_ssao_radius" "8" "r_ssao_strength" "3" "r_ssao_bias" "2.5" // this cache kills performance due to mutex contention "bone_decode_cache_enabled" "0" // Disable warning about oscillating panorama classes "panorama_classes_oscillation_warning" "0" // Spew warning when adding/removing classes to/from the top of the hierarchy "panorama_classes_perf_warning_threshold_ms" "0.75" // Panorama - enable render target cache "panorama_disable_render_target_cache" "0" // Panorama - enable minidumps on JS exceptions "panorama_js_minidumps" "1" // HLTV AutoDirector - disable it for now so that it doesn't interfere with our spectator camera during replays / hltv / demos // Needs to be revisited when we re-enable AutoDirector "spec_autodirector" "false" // Grass "r_grass_quality" "3" "r_grass_alpha_test" "1" "r_grass_density_mode" "1" "r_grass_start_fade" "3000" "r_grass_end_fade" "3900" // Default to binding keys based on keyboard position instead of key name "input_button_code_is_scan_code" "1" // Disable Cubemap Brightening "lb_cubemap_normalization_max" "1" // For low quality shaders, cubemap bounds are scaled by this percentage of the fade region "lb_low_quality_shader_fade_region_rescale" "0.5" // Use normal quality compression even in MET, this makes compiles in MET slower than // the default of fastest (0), but reduces artifacts that are confusing to artists since // it's not clear that texture compression quality is different in MET than when regularly compiled. "rc_default_texture_encode_quality" "2" // The engine default of 50 for CS:GO is too high, drop down to a more sensible // default value. "mouse_pitchyaw_sensitivity" "3" "pitch_extra_mouse_sensitivity" "1.0" "r_size_cull_threshold" "0.33" "r_size_cull_threshold_fade" "7.5" "inferno_scorch_decals" "0" // Steam Audio project specific convars "snd_musicvolume" { "version" "2" } "snd_steamaudio_enable_custom_hrtf" "0" "snd_steamaudio_enable_perspective_correction" "1" "snd_steamaudio_perspective_correction_factor" "1.0" "snd_steamaudio_normalize_default_hrtf_volume" "1" "snd_steamaudio_default_hrtf_volume_gain" "0.0" "snd_steamaudio_max_hrtf_normalization_gain_db" "6.0" "snd_steamaudio_enable_pathing" "1" "snd_steamaudio_source_pathing_debug" "0" // Need much tighter sound clock sync "snd_delay_sound_ms_max" "40" //don't let people miss with speaker config settings. "speaker_config" { "min" "-1" "default" "-1" "max" "-1" } "cl_disconnect_voice_fade" "-1.0" "cl_disconnect_soundevent" "StopSoundEvents.StopAllExceptMusic" // Physics specific customization "phys_use_position_based_toi_test" "1" } // Temporarily allowing this because the particle files that are tripping this up ALSO crash PET so I // cannot fix them. We'll sort this out Monday 2/13/23. //ResourceCompiler //{ // // See csgo_imported's gameinfo.gi // "DeprecatedBehaviorVersionsAllowed" "0" //} GMS { "Advertise" "1" } GameInstructor { "SaveToSteamStats" "1" } CS2WorkshopManager { "RequiredTag" "CS2" "HighlightEntriesMissingRequiredTag" "1" } AssetBrowser { retail_filter0 "characters/models/" retail_filter1 "materials/decals/sprays/" retail_filter2 "panorama/" retail_filter3 "patches/" retail_filter4 "stickers/" retail_filter5 "weapons/" retail_filter6 "materials/models/inventory_items/" } AddonConfig { "VpkDirectories" { "exclude" "maps/content_examples" "include" "maps" "include" "cfg/maps" "include" "materials" "include" "models" "include" "panorama/images/overheadmaps" "include" "scripts/vscripts" "include" "sounds" "include" "soundevents" "include" "lighting/postprocessing" "include" "postprocess" "include" "addoninfo.txt" } } }

Gameinfo_branchspecific.gi

[Todo]