Understanding Steam manifest files (the short version)
What a .manifest file actually contains, why SteamTools needs one, and when the file name matters.

A .manifest file is one of the least-documented pieces of the Steam ecosystem. It is not part of the Steam client, it does not get downloaded with the game, and you will never see it in the Steam UI. But for SteamTools it is essential. This post is the short version of what is actually inside one.
What a manifest does
A manifest is a tiny (usually 1–4 KB) text file that lists every depot that makes up a game on Steam, plus the encrypted key SteamTools needs to talk to Steam's CDN for that depot.
A real example (excerpt) for a single-depot app:
"appbuild"
{
"appid" "400"
"name" "Portal"
"buildid" "1234567"
"depots"
{
"400"
{
"manifest" "1234567890abcdef..."
"size" "9876543210"
}
}
}
The big hex string is the depot decryption key. Without it, SteamTools has no way to know which chunks of the game to ask for, and Steam's CDN refuses the request.
Why the file name matters
SteamTools looks for files named exactly <AppID>_<branch>.manifest in its depotcache folder. If you rename a working manifest from 400_public.manifest to 400-beta.manifest and put it in the wrong branch folder, SteamTools will refuse to install — the name is the index.
That's why our generator always returns a pair with the branch in the filename. If you only need the default public branch, leave the field alone; if you specifically want beta or experimental, type the branch name before clicking generate.
Why the manifest is per-app, per-branch
Each Steam branch (public, beta, experimental, internal, …) gets its own buildid and its own decryption keys. The same App ID can have half a dozen different manifests, one per active branch. The Lua script is what tells SteamTools which branch to prefer when more than one is available locally.
When manifests go stale
Manifests are tied to a specific build. The moment a game updates, the old manifest is useless — the new build has new file chunks, new sizes, and (often) new keys. If you try to install a game with a stale manifest, SteamTools will either download the wrong files or fail partway through.
This is also why the popular games list refreshes every five minutes: games get patched all the time, and the most likely thing to break a working setup is using a manifest from a week ago.
When the generator cannot find a manifest
Three common reasons:
- The App ID is wrong. SteamDB is the fastest way to confirm.
- The app is region-locked. Some publishers gate manifests to specific storefronts. Right now we use
cc=us&l=english; we are adding more regions on the roadmap. - The app has been pulled from Steam entirely. Valve occasionally retires an app and removes its depot data. The App ID still resolves, but there is nothing to download.
If the generator returns an error, the message usually tells you which of the three you are hitting. The FAQ page has a checklist for the most common error messages.