gameinfo.txt
You can help by updating the translation.
Also, please make sure the article complies with the alternate languages guide.
This notice is put here by LanguageBar template and if you want to remove it after updating the translation you can do so on this page.
GameInfo.txt 是一个 KeyValues 配置文件,用于描述一个 Source 模组。除了包含模组名称或开发者网站链接等元数据外,它还定义了模组依赖哪些游戏,以及引擎用于查找资源的 SearchPaths(搜索路径)。它存放在模组的根目录中。Source、SDK 工具和 Steam 都依赖它。
基本设置
名称
影响菜单和窗口标题的键。
- Title2 <字符串>
-
显示在
Title下方的次级字符串。
Title 文本,而是显示 …\resource\GameLogo.res 中的内容。请参阅 Adding Your Logo to the Menu。
选项
影响选项面板中显示哪些标签页和选项的键。另请参阅 Customizing Options: Keyboard。
- Type <字符串>
-
影响选项面板中显示哪些标签页及其顺序,取值为
Singleplayer_Only或Multiplayer_Only。如果你的模组同时具有单人(SP)和多人(MP)模式,请省略此键。
- NoDifficulty <布尔值>
-
隐藏难度标签页(如果你的模组为
Multiplayer_Only,此操作会自动生效。)
- HasHDContent <布尔值>
-
显示"如果可用则加载高清内容"视频选项按钮,用于
半衰期:起源。
注意: 高清内容将从 game_hd加载,在 Half-Life: Source 的情况下即为hl1_hd。
-
HasPortals <布尔值> (存在于自
以来)
- 显示 Portal 选项标签页。
- NoCrosshair <布尔值>
- 隐藏多人准星选择菜单。
- AdvCrosshair <布尔值>
-
启用特殊的高级准星选项。
- 1 和 2 对应 TF2/DOD:s 的准星选项。(基于纹理)
- 3 对应 CS:s 的准星选项。
- 待完善: 如何实现。
- NoModels <布尔值>
- 隐藏多人模型选择菜单。
- Hidden_Maps <subkey>
-
子键中的地图不会出现在"创建服务器"对话框中。不过这并不能阻止用户通过控制台加载它们。语法为
mapname 1,每行一项。不要包含.bsp。记得用 { 和 } 打开和关闭子键。
-
CommandLine <subkey> (仅存在于
之中)
-
启动模组时要使用的启动选项列表。语法为
-launchoption "value",每行一项。记得用 { 和 } 打开和关闭子键。
-
player_default_legs <布尔值> (仅存在于
之中)
- 启用/禁用第一人称双腿显示。
Steam 游戏列表
影响你的游戏或模组在 Steam 库页面中如何显示的键。
-
Developer <字符串>
-
已弃用。
模组的开发者。通常是模组团队的名称,或是某个人的名字。在当前版本的 Steam 中已不再显示。
-
Developer_URL <字符串>
-
已弃用。
你自己或模组的 URL。必须以http://开头。在当前版本的 Steam 中已不再显示。
-
Manual <字符串>
-
已弃用。
指向模组手册的 URL;也可以是本地文件。在当前版本的 Steam 中已不再显示。
- Icon <字符串>
-
相对于 gameinfo.txt 的本地路径,指向一个未经压缩的 16x16 TGA 文件,它将作为模组图标显示在 Steam 中。不要包含文件扩展名。不支持图标文件格式(参见:Icon Creation)出现在 Steam 详细视图中更大的 32 像素图标应与 16 像素图标放在一起,并命名为
<icon>_big.tga。
注意: 要使透明度生效,TGA 必须以 32 位模式保存并启用 alpha 通道。
引擎与工具
影响引擎/工具如何运行以及工具本身某些选项的键。
-
SupportsDX8 <布尔值> (存在于自
以来) (也存在于
之中)
-
当为 false 时,阻止游戏在较旧的 DirectX 版本(如 DX8 及更低版本)中运行,因为它们不支持完整的图形效果范围,同时也会阻止 Studiomdl 为模型生成
.sw.vtx和.dx80.vtx文件,因为这些文件并非必需。
TF2 分支键
在
军团要塞2分支 中引入的新键。
- AdditionalLocalization <字符串>
- 添加额外的本地化文件[证实]
;
FileSystem
位于子键 FileSystem 内的键。
- SteamAppID <整数>
-
模组所基于游戏的 AppID。模组将可以访问该游戏的全部内容,并且在未安装该游戏时无法游玩,模组还会使用该游戏的可执行文件来运行。如果你要将自己的 Source 游戏上传到 Steam,这将是你游戏的 AppID。否则,
SDK Base 2013 - MP 为 243750,
Source SDK Base 2013 - SP 为 243730,
Alien Swarm 为 630,或者如果你不使用源代码,则为你所基于游戏的 AppID。
注意: 大多数较旧的 Source 模组会使用 AppID 215(Source 2006)和 218(Source 2007)。如果你要制作新模组,不应该使用这些 ID,因为它们属于一个显然已废弃的 Source 引擎分支,该分支已被 Source 2013 和 Alien Swarm 取代。仅在向后兼容时使用它们。
注意:
SDK Base 2013 - MP 目前基于
军团要塞2分支。如果你想游玩较旧的模组(在旧版 SDK Base 2013 - MP 上制作的),你必须切换到 previous2021测试分支。任何仍在托管需要 Source 2013 多人的 SDK Base 2013 MP 模组的模组作者,都应在模组页面或
README.txt中添加有关如何将 Source SDK Base 2013 MP 降级到 TF2 分支之前版本的说明。
注意: 如果你的模组基于单人游戏,它将不会受到
VAC 保护。
-
AdditionalContentId <整数>
-
已弃用。
模组可以访问的另一个 AppID。此功能被添加到 SDK 源代码中,但不知何故从未出现在 Valve 的其他游戏中;你必须自己构建二进制文件才能使用它。如果你需要用它在多个应用之间挂载,请进行这些修改。
错误:引擎能理解此命令,但遗憾的是 SDK 工具不能。目前最好的解决方案是将游戏内容复制到硬盘上的某个位置,并向其添加一个绝对路径的 SearchPath。记得在发布前删除该 SearchPath。待完善: 与其将内容复制到一个会占用额外空间的位置,不如使用 "..\Half-Life 2\hl2"、"..\Counter-Strike: Source\cstrike" 等路径回到上一级目录,从指定游戏挂载资源,或者使用符号链接以节省磁盘空间(在可行的情况下)。
注意: 新的
军团要塞2分支 挂载方法,即 gameinfo.txt示例中(用于创建基于 TF2 的模组)所示的|appid_<int>|,可以作为现代替代方案使用,但仍然不适用于 SDK 工具。
-
ToolsAppId <整数>
-
已弃用。
这是当前所用 SDK 的 AppID。
ToolsEnvironment
(仅存在于
之中) 位于子键 ToolsEnvironment 内的键。
- Engine <字符串>
- 游戏使用的是哪个游戏引擎。此值始终设置为 "Source"。
- UseVPLATFORM <布尔值>
-
未知。待完善: 确认它的作用。
- PythonVersion <整数>
- 游戏使用的是哪个版本的 Python。目前设置为 "2.7"。
- PythonHomeDisable <布尔值>
-
未知。待完善: 确认它的作用。
SearchPaths(搜索路径)
SearchPaths 是 FileSystem 内的一个子键。它为每个搜索路径包含一个键。当引擎需要某个文件时,它会遍历搜索路径,找到所需文件后便停止,因此搜索路径的顺序很重要。
起源2013 单人 和
起源2013 多人 的加载顺序
搜索路径按照以下标准挂载。
- VPK 必须在搜索路径中声明才会被加载。只有在使用
/*通配符时,它们才会被隐式加载。 - 使用
/*关键字将挂载该目录中找到的所有子目录和 VPK。
标准 1:搜索路径列表顺序
位置靠上的搜索路径优先级高于位置靠下的搜索路径。
在两个搜索路径之间,位于上方的那一个会先被挂载。
标准 2:字母顺序
在应用标准 1 之后,同一 VPK 内的 VPK 和目录将按文件名(不含扩展名)或目录名的字母顺序排序。
dirs/
[filename]_dir.vpk 和 [filename].vpk,则 [filename].vpk 不会被加载。 [filename]_dir.vpk 和 [filename]/,则 [filename]/ 不会被加载。 [filename]/ 和 [filename].vpk,则 [filename] 的优先级高于 [filename].vpk。
求生之路 引擎分支、
AS branch 和
Portal 2 branch 的加载顺序
搜索路径按照以下标准挂载。
- VPK 必须命名为
pak01_dir且位于搜索路径文件夹内。你无法手动挂载 VPK。
.[[<game_path>/test1/|<game_path>/test1/]]
标准 1:先 VPK,后目录
所有 VPK 先被挂载,然后是所有目录。
标准 2:搜索路径列表顺序
在应用标准 1 之后,位置靠上的搜索路径优先级高于位置靠下的搜索路径。
在两个搜索路径之间,位于上方的那一个会先被挂载。
附加内容(Addons)
像 求生之路2 这样的某些游戏有一个 "Addons" 文件夹,它不在 gameinfo.txt 中。这些文件夹仅在运行时由游戏本身加载,而不会被 Hammer、HLMV 或其他工具加载。
如果你想为 Hammer 挂载附加内容,你需要解包该附加内容,并将其作为一个 pak01_dir.vpk 挂载到一个优先级高于一切的全新文件夹中。
目录
目录(即键的值)既可以是相对于 SteamAppID 根目录(即游戏可执行文件所在位置)的相对路径,也可以是相对于 GameInfo.txt 的相对路径,还可以是绝对路径。三者的示例如下:
.vpk 扩展名。如果该 VPK 是多分块 VPK,则填入 VPK 的名称时不要带末尾的 "_dir" 或 "_###"。 上面这两个变量将从某个目录开始搜索,|All_Source_Engine_Paths| 会从根文件夹开始,而 |GameInfo_Path| 会从 GameInfo.txt 所在的文件夹开始。这两个变量都可以附加任意数量的文件夹。除了文件夹和变量之外,还有一些可以附加的特殊命令,已知的有:
../
返回上一级文件夹,这有助于挂载其他游戏的内容(如
传送门),因为 AdditionalContentID 已废弃。如果你想挂载 Portal,而你的游戏位于(举例来说)"<SteamFolder>\SteamApps\Common\MyGame\FolderWhereGameInfoIs",你可以像这样创建一个搜索路径来挂载它的内容:
这里还有一个如何挂载 SourceMod 的示例:
.
这会停止在当前目录中搜索,只有当你想要直接挂载|All_Source_Engine_Paths|或|GameInfo_Path|所在位置时才应使用它。两者的示例如下:
/*
挂载当前目录中的每个子文件夹和 VPK,按文件名(不含扩展名)或目录名的字母顺序排列。该命令正是让自定义文件夹在大多数最新版 Source 游戏中生效的原因。其用法示例如下:
键
在大多数较旧的 Source 游戏中,搜索路径唯一可用的键是 Game 和 Platform,虽然这些键足以应付大多数搜索路径需求,但在 Source 2013 中引入了一些新键,提供了更多控制。
目前已知的键有:
Game
将该路径添加为简单搜索路径。会添加它找到的所有内容。还会在每个 Game 目录中写入 sound.cache 文件。Game_Write(存在于自
以来)
将该搜索路径标记为 Game 写入路径。它将该目录标记为此游戏的默认写入目录(写入什么?)。
证实:这有什么用吗?GameBin(存在于自
以来)
一个特殊的键,要求该路径必须指向游戏的二进制文件(Server.dll和Client.dll所在位置),并且会使用它找到的任何其他 DLL 文件。这应指向你自己模组的Bin文件夹,或者如果你不构建自己的 DLL,则指向你所基于游戏的Bin文件夹。Game_LV(仅存在于
之中)
将该目录标记为指向低暴力(Low Violence)文件。Platform
向包含核心引擎文件的文件夹添加一个特殊搜索路径,这通常指向游戏的Platform文件夹。Mod(存在于自
以来)
将该搜索路径标记为 Mod 路径。这通常是游戏可执行文件所在位置。其搜索路径挂载优先级高于Game。对于在"新游戏"菜单中显示章节列表至关重要,可能还有其他用途。Mod_Write(存在于自
以来)
将该搜索路径标记为 Mod 写入路径。这通常是 GameInfo.txt 所在位置。它将该目录标记为此模组写入存档文件和下载列表的默认目录。Default_Write_Path
将该搜索路径标记为默认写入路径。这通常是 GameInfo.txt 所在位置。它将该目录标记为此模组写入 config.cfg、节点图、截图及其他一些文件的默认目录。当未指定 Mod_Write 或 Game_Write 时,它也可作为回退。VGUI(仅存在于
之中)
将该搜索路径标记为包含.res文件。Download
将该搜索路径标记为下载写入路径。从服务器下载的随机文件会放到这里。Custom_Mod(仅存在于
之中)
将该搜索路径标记为 Custom_Mod 搜索路径,用于自定义 HUD 版本管理,并用于custom文件夹。如果目录中没有info.vdf文件,.res文件可能无法加载。VPK(存在于自
以来)
用于按名称挂载 VPK。不要在末尾添加.vpk、"_dir" 或 "_###"。路径相对于<base directory>/vpks/。
- 待完善: 测试此键在
Contagion 以外游戏中的行为
在 Source 2013 中,你还可以通过用 + 号分隔每个键名来将键相互附加,这样如果你需要将一个目录用于多个键,就不必这样写:
而可以像这样简写:
这样你就不必再重新输入一次目录了。
自动本地化
Source 会自动创建本地化的搜索路径。如果你挂载了文件夹 HL2,那么当你的模组以法语运行时,HL2_French 会自动挂载在它上方,覆盖 HL2 中的任何内容。
起源2013 示例
一份可为
起源2013 游戏使用的完整可用 GameInfo.txt。
军团要塞2分支 示例
一份可为
Source SDK Base 2013 - Multiplayer 游戏(
军团要塞2分支 版本)使用的完整可用 GameInfo.txt。
CS:GO、Alien Swarm、Portal 2 与 Left 4 Dead 示例
CS:GO、Alien Swarm、Portal 2 与 Left 4 Dead 引擎分支的 gameinfo.txt,只有当你使用这些引擎分支进行模组开发时才会用到。
实用工具
- 模组信息可以通过 XBLAH's Modding Tool 通过一个功能全面的 UI 进行编辑,而无需模组作者去摆弄文本文件。