什么是 Steam manifest 文件,怎么配合 SteamTools 使用?
Steam manifest 文件 + 配套 Lua 脚本完整指南,四步把游戏装进 SteamTools。为新用户设计的前门页;深度内容链接到对应子页。
最近更新: 2026-07-05
如果你搜过"SteamTools 怎么用"或"steam manifest 是什么",结果是把五个 Discord 串起来读、再翻三个 GitHub issue,这篇就是给你准备的。它是整个站点的前门:先回答所有人都会问的两个问题,其余内容都链到对应子页;读完"该读的那一节"就能拿到一个能用的文件落到磁盘上。
30 秒答案
Steam manifest 文件是一个 Valve "ACF" 格式的小文本文件,告诉 SteamTools 桌面客户端要下载哪个游戏的哪些 depot、以及怎么验证它们。每个 manifest 都配一个 Lua 脚本,告诉 SteamTools 走哪个 branch、如何去 Steam 服务器做校验。两个文件一起,让 SteamTools 离线安装游戏,而不需要经过官方 Steam 客户端。
你可以在首页按 Steam App ID 一键生成 manifest + Lua 对。下面解释这两个文件到底是什么、怎么工作、放到哪里、出问题怎么办。
Steam manifest 文件是什么?
manifest 文件名是 appmanifest_<APPID>.acf。以 Portal(AppID 400)为例:
"AppState"
{
"appid" "400"
"name" "Portal"
"installdir" "Portal"
"StateFlags" "4"
"UpdateLocalTime" "Wed Jan 1 12:34:56 2025"
"buildid" "1234567"
"LastOwner" "12345678901234567"
"BytesToDownload" "1234567890"
"BytesDownloaded" "1234567890"
"AutoUpdateBehavior" "0"
"AllowOtherDownloadsWhileRunning" "0"
"InstalledDepots"
{
"400" "1234567890123456789"
}
}
格式是 Valve 写死的。真正有意义的字段是 appid(哪个游戏)、installdir(SteamTools 把文件放哪)、buildid(哪个 build)、InstalledDepots 块(要下载哪些 depot ID、用哪个 manifest ID 解锁)。其他都是 SteamTools 基本忽略的元数据。
想看每个字段的完整拆解 —— StateFlags 实际是干嘛的、为什么 LastOwner 像 17 位数字、InstalledDepots 里的 manifest ID 跟 Steam CDN 的对应关系 —— 看 manifest 文件详解 那一篇。简短版:只要 appid / installdir / buildid / InstalledDepots 这四项对,SteamTools 就能装上游戏,其他都是元数据。
Lua 文件是干嘛的?
Lua 文件是 manifest 的搭档。一般 10-30 行,告诉 SteamTools 三件事:
- 走哪个 branch。 Steam 游戏有多个 branch ——
public(默认)、beta、ptb、experimental、staging。Lua 文件告诉 SteamTools manifest 是按哪个 branch 生成的。不指定的话生成器默认public。 - 怎么去 Steam CDN 做认证。 脚本让 SteamTools 拿 manifest 去 Steam 的公开内容服务器签名,确认 manifest 里的 depot ID 跟一个真实可下载的 build 对得上。
- 下载完之后做什么。 一些游戏需要 post-install 步骤(解压、移动配置文件)。Lua 文件里可以包含这些。
Lua 文件不是可选的。没有 Lua 文件只有 manifest,SteamTools 会拒绝安装并把报错写进日志。两个文件永远是一对出现。
完整端到端工作流 —— Lua 文件实际做了什么、每一行是什么意思、Lua 脚本抛错时怎么处理 —— 在 使用方式 页。还有一个四步流程图可以跟着走。
两个文件怎么配合
心智模型是:manifest 说装什么,Lua 说怎么装。 SteamTools 先读 manifest,知道要拉哪些 depot 的哪个 build;再跑 Lua 脚本,知道走哪个 branch、用什么认证路径、要不要 post-install。任何一个文件缺失,SteamTools 都会早停并把缺什么写进日志。
两个文件还互为版本锁。public branch 的 manifest 不能配 beta branch 的 Lua 脚本,反之亦然。本站生成器永远返回匹配的一对;不要从不同来源混用。
从 AppID 到装上游戏:四步走
完整流程拿到 AppID 之后大约三分钟。压缩版:
- 找 App ID。 就是 Steam 商店 URL 里的数字 —— 例如 Portal 是
https://store.steampowered.com/app/400/,所以 App ID 是400。如果 URL 里找不到,看 如何找 Steam App ID 页的三种可靠方法。 - 搜索确认。 在首页输入游戏名或 App ID。搜索走的是 Steam 商店实时接口,所以 DLC、原声带、未上架但已发布的 app 都能搜到。
- 生成。 按按钮。生成器去上游 ManifestHub3 缓存取数据,返回一个 ZIP,里面是
.acf和.lua两个文件。响应通常 1.5 秒内。 - 放文件。 把
.acf放进<SteamTools>/depotcache/,把.lua放在 SteamTools 二进制文件同级目录。重启 SteamTools。游戏出现在你的库里。
详细走查 —— 包括 Windows / macOS / Linux 下 <SteamTools> 在哪、SteamTools 看不到文件怎么办、怎么读 SteamTools 日志 —— 在 使用方式 页。
怎么找 Steam App ID
三种可靠方法,按成功率排序:
- 从 Steam 商店 URL。 打开游戏商店页,
/app/后面的数字就是 App ID。例如https://store.steampowered.com/app/400/Portal/→400。 - 从 SteamDB。 在 steamdb.info 搜游戏,页面顶部的标准商店 URL 里有 App ID。
- 从本地 Steam 安装。 如果你已经装了游戏,看
<Steam>/steamapps/目录。每个已安装游戏都有一个appmanifest_<APPID>.acf文件,文件名里的数字就是 App ID。
完整指南 —— 包括下架游戏、DLC、原声带、未上架但已发布的 app 怎么找 —— 在 如何找 Steam App ID 页。
常见问题与解决
最常出问题的 5 个,按频率排序:
1. 下载的 ZIP 是空的。 通常三件事之一:AppID 在 Steam 目录里但 ManifestHub3 缓存还没有(页面会显示"暂不在下载数据库"提示和 Discord 链接);SteamTools 客户端在过滤这个文件(看日志目录);本地安全软件在剥响应。如果都不是,去 Discord 提一个 issue,带上 App ID 和 ZIP。
2. 文件放进去 SteamTools 看不到。 最常见是路径错了。Windows 是 <SteamTools>\depotcache\(放 .acf)+ <SteamTools>\(放 .lua)。macOS / Linux 路径类似。复制完要重启 SteamTools;它不会热加载。
3. 报"App not found in the Steam store"。 那个数字通常是 package ID、depot ID、build ID,不是 App ID。对照标准商店 URL 确认。下架游戏的 AppID 在 /appdetails 查不到,根本没法生成。
4. 报"429 rate limit"。 生成器对每个 IP 强制 1.5 秒间隔。脚本调用就用指数退避,上限 10 秒。没有 API key,没有更高级别。
5. Lua 脚本启动时抛错。 文件损坏了(重新下载),或者脚本跟 manifest 的 branch 不匹配。永远用同一次生成器调用返回的成对文件。
完整长尾问题 —— branch 不匹配、地区锁、反作弊冲突、proton 边缘案例、manifest 生成和 SteamTools 重启之间 build 被下架怎么办 —— 看 FAQ,20 条覆盖"我试了 X,下一步怎么办"。
SteamTools 与替代品
最常见的"vs"问题,简要回答:
- SteamTools vs 官方 Steam 客户端。 SteamTools 是 SteamTools-Team 维护的开源 Steam fork,不是 Valve 分发或背书的。它扩展了官方客户端的离线库管理、多账号切换、应用社区发布的 manifest + Lua 解锁。本站(SteamTools.games)是独立的生成器,只产出 SteamTools 消费的 manifest + Lua 对 —— 不是 fork、不是客户端。
- Watt Toolkit vs Steam++ vs SteamTools。 同一个项目在不同时间点的名字。最初叫 SteamTools,中文社区叫 Steam++,后来改名为 Watt Toolkit。三个名字都指 github.com/SteamTools-Team/SteamTools 维护的同一个桌面客户端。
- SteamTools vs GreenLuma。 GreenLuma 是另一个社区项目,manifest + Lua 格式不一样。两个生态不能互换。本站产出的是 SteamTools 专用文件;如果你用 GreenLuma,这个生成器不适合你。
- 2026 年的 SteamTools。 对新用户,SteamTools + 本站生成器是最轻的路径。另一个生态(GreenLuma 加少量付费解锁器)不推荐新用户使用 —— 维护差、文档少、恶意软件风险高。
完整对比 —— 包括为什么一些付费解锁器看起来能工作但不应该信任 —— 在 FAQ 页。
给开发者
生成器在 /api/search(按游戏名查 AppID)和 /api/generate(生成 manifest + Lua 对)开放了公开 REST API。两者都不需要鉴权,都限 IP 频率,文档在 开发者 / API 页。可以下载 OpenAPI 3.1 规格。
把 SteamTools 接入更大自动化时,正确的姿势是:
- 用
/api/search把用户输入的游戏名解析为 App ID。 - 用
/api/generate拿那个 App ID 加一个 branch 参数。 - 遵守 1.5 秒限频。指数退避,上限 10 秒。
- 缓存结果。manifest + Lua 对绑定上游 build ID;上游缓存不变就不用重取。
如果一次要批量生成 50+ 个,去 Discord 让维护者一次性加到 ManifestHub3 更快 —— 这也是 首页上"热门游戏"列表的来源。
背景:SteamTools 到底是什么
SteamTools(也叫 Watt Toolkit、之前叫 Steam++)是 SteamTools-Team 维护的开源 Steam fork。不是官方 Steam 客户端的插件 —— 是一个完整的 fork,替换你机器上的 Steam 二进制。在 Windows / macOS / Linux 上都能跑。
SteamTools 在三个方面扩展了官方客户端,这三方面跟本指南相关:
- 离线库管理。 SteamTools 能维护一个完全可用的离线 Steam 库,包括你已经在在线状态下玩过的游戏。Steam 服务器不可达时,SteamTools 回退到本地 depot 数据 + 你放在配置目录里的 manifest + Lua 文件。
- 多账号切换。 SteamTools 能在同一台机器上并行跑多个 Steam 账号,depot 隔离、存档隔离。官方客户端不支持。
- 社区解锁。 这部分需要 manifest + Lua 文件。SteamTools 从
depotcache目录读 manifest、跑 Lua 脚本去 Steam 公开内容服务器认证、然后把 depot 数据下载到一个官方客户端之后能用作"本地内容服务器"的目录。社区发布的 manifest + Lua 对(以及支撑它们的数据缓存)由上游 ManifestHub3 项目提供。
想看 SteamTools 是什么、谁在维护、跟 Steam++ 和 Watt Toolkit 的关系、这个生成器跟桌面客户端的边界在哪 —— 关于本站 有完整的实体定义。
常见误解
几个常被问到、先解释清楚:
"manifest 是破解或外挂。" 它是配置文件。它指向的数据已经在 Steam 的公开 CDN 上;manifest 是一份"菜谱",告诉 SteamTools 拉哪些 depot、怎么验证。manifest 本身不含任何受版权保护的内容。
"有了 manifest 就能免费装任何游戏。" 不能。manifest 只描述怎么拉 depot 数据;它不能绕过购买。SteamTools 的离线模式要求底下的 depot 数据是你已经付费买过的;manifest 是指针,不是购买的替代品。
"SteamTools 和本站是同一个项目。" 不是。SteamTools 是桌面客户端,由 github.com/SteamTools-Team 上的 SteamTools-Team 维护。本站是独立生成器,由 SteamTools.games 团队维护,产出 SteamTools 消费的输入之一。两个项目名字相似、目标一致,但代码库、维护者、发布节奏都分开。
"游戏不在上游缓存里就放弃吧。" 不 —— 页面会明说,并链到 Discord 提单。多数热门游戏几天内会进缓存;小众的可能要等一个发布周期。"暂不在缓存里"是正确信号,不是死路。
"GreenLuma 的 manifest 能在 SteamTools 用。" 不能,格式不同。两个生态不能互换。GreenLuma manifest 装不进 SteamTools,SteamTools manifest 也装不进 GreenLuma。
什么时候不该用这个生成器
生成器适用的场景:你已经买了游戏,想用 SteamTools 离线装。不适用的场景:
- 没买过这个游戏。 manifest 只描述怎么拉 depot 数据;它不绕过购买。所谓"免费 manifest"是不存在的。
- 你用 GreenLuma、Goldberg 或其他非 SteamTools 客户端。 那些生态有自己的 manifest 格式。本站产出的是 SteamTools 专用文件。
- 你想联网玩。 SteamTools 的离线模式只用于离线。联网还是走官方 Steam 客户端;SteamTools 在那的角色只是多账号切换。
- 游戏已下架,App ID 在
/appdetails查不到了。 Steam 的/appdetails接口是事实来源;App ID 返回空就帮不了。SteamDB 留有记录,但实际的 depot 数据已经不能从 Steam 拉了。
术语表
本指南和链接到的子页里用到的术语的简短参考。
App ID。 6-8 位数字,唯一标识一个 Steam app。Steam 商店 URL 里 /app/ 后面的数字。例如 Portal 是 400。
Branch。 Steam 游戏可以有多个 build branch —— public 是默认、一般你想要的就是这个;beta / ptb / experimental / staging 是常见的替代。Lua 文件告诉 SteamTools manifest 是按哪个 branch 生成的。
Build ID。 6-10 位数字,标识游戏的某个具体 build。manifest 里包含 build ID;SteamTools 下载的就是那个 build 的 depot 数据。
Depot。 Steam app 内部一个可下载内容单位。典型游戏 1-5 个 depot(主游戏、原声带、语言包等)。manifest 列出每个 depot 和解锁它的 manifest ID。
Manifest ID。 19 位数字,标识某个 depot 的某个具体版本。manifest 里的 InstalledDepots 块把 depot ID 映射到 manifest ID。
ManifestHub3。 开源 MIT 协议的社区 manifest + Lua 对缓存。生成器从 ManifestHub3 读数据。数据可审计、可 fork、不依赖本站。
SteamTools。 桌面客户端。github.com/SteamTools-Team 上 SteamTools-Team 维护。跟本站分开。
SteamTools.games。 本站。一个薄生成器,产出 SteamTools 消费的 manifest + Lua 对。跟 SteamTools-Team 无关。
Watt Toolkit。 SteamTools 客户端现在的中文名。这个项目之前叫 Steam++。
ACF。 Valve 的"Application Configuration File"格式。键值文本格式,带节头,类似于 INI。manifest 用的是 ACF。
看几个例子
manifest + Lua 流程适用于 Steam 目录里的每个游戏。想看生成的文件长什么样,首页的热门游戏区有知名 AppID 准备好直接生成。一些最常被点的:
- Portal (AppID 400) —— 经典测试用例。manifest + Lua 稳定 1.4 秒。
- Counter-Strike 2 (AppID 730) —— depot 数量大,跑多 depot 代码路径。
- Half-Life 2 (AppID 220) —— 老游戏,manifest 小,"小文件长什么样"的基线。
- Terraria (AppID 105600) —— 有 beta branch 的游戏例子,可以指定 target。
- Stardew Valley (AppID 413150) —— 小独立游戏例子,整个游戏一个 depot。
你的游戏不在这个列表?在首页搜 —— 只要在 Steam 目录里,生成器就返回结果。如果上游 ManifestHub3 缓存还没有,页面会明说,并给一个 Discord 链接提单。
相关页面
如果你想再读一篇,按需要选:
- 关于本站 —— 这个站是什么、谁在运营、它不是什么。想了解生成器背后是谁就看这篇。
- 使用方式 —— 完整四步流程,带流程图、四步可视化、Lua 脚本逐行详解。动手前想理解整个工作流就看这篇。
- manifest 文件详解 ——
appmanifest_*.acf的每个字段、它做什么、SteamTools 为什么需要它。想手动读 manifest 就看这篇。 - 如何找 Steam App ID —— 三种可靠方法,加边缘案例(下架、DLC、原声带)。有游戏但没有 App ID 时看这篇。
- FAQ —— 20 个长尾问题,覆盖"我试了 X,下一步怎么办"。出问题时看这篇。
- 引用规范 —— 本站规范化、机器可读的身份卡。在论文或 AI 答案里引用 SteamTools.games 时看这篇。
- 开发者 / API —— API 文档、OpenAPI 规格、限频细节。写脚本时看这篇。
- 更新日志 —— 改了什么、何时改的。想看最近的站点更新有没有影响你的工作流就看这篇。
- 博客 —— 教程、深度剖析、产品动态。想深入某个具体话题就看这篇。