Skip to main content

Arquivos de manifesto Steam explicados

O que é o arquivo appmanifest_*.acf, o que ele contém, por que SteamTools precisa dele e como lê-lo em um editor de texto.

Última atualização: 2026-07-05

Cada desbloqueio SteamTools precisa de dois arquivos. Esta página explica o primeiro – o arquivo appmanifest_<APPID>.acf – com detalhes suficientes para que você possa ler um em um editor de texto e entender o que cada linha está fazendo. O arquivo Lua é a metade fácil (é apenas um pequeno script que informa ao SteamTools quais depósitos carregar); o manifesto é a parte que confunde as pessoas. Também examinamos todos os erros comuns e casos extremos que o manifesto pode ter para que, na próxima vez que você vir um em estado selvagem, saiba exatamente o que fazer com ele.

Qual é o arquivo

O manifesto é um pequeno arquivo de texto no formato "ACF" (Arquivo de configuração de aplicativo) do Valve. ACF é um formato de valor-chave com cabeçalhos de seção, semelhante ao INI. Steam grava um desses para cada aplicativo que você já instalou, no diretório steamapps. A convenção de nomenclatura é appmanifest_<APPID>.acf, onde <APPID> é o App ID do jogo.

Para que SteamTools funcione, você precisa de uma cópia desse arquivo (ou um que aponte para os depósitos e compilação corretos) em uma pasta que SteamTools observa, normalmente <SteamTools>/depotcache/. O manifesto não precisa ser o arquivo exato que Steam escreveu para sua instalação — ele só precisa descrever a versão correta do aplicativo certo. SteamTools lê o manifesto para saber qual compilação de qual depósito pegar e lê o arquivo Lua (o segundo download) para saber qual chave de descriptografia usar.

O que há dentro de um manifesto

Um appmanifest_400.acf (Portal) real se parece com isto:

"AppState"
{
    "appid"         "400"
    "name"          "Portal"
    "installdir"    "Portal"
    "StateFlags"    "4"
    "UpdateLocalTime"   "Wed Jan  1 12:34:56 2025"
    "buildid"       "1234567"
    "LastOwner"     "12345678901234567"
    "BytesToDownload"   "0"
    "BytesDownloaded"   "0"
    "AutoUpdateBehavior" "0"
    "UserConfig"
    {
        "language"   "english"
    }
    "MountedDepots"
    {
        "400"    "2345678"
    }
}

A maioria desses campos é autoexplicativa quando você sabe o que procurar. Os dois que importam para SteamTools são:

  • appid — o App ID. Tem que corresponder ao nome do arquivo. SteamTools nem sequer olha o nome do arquivo, mas Steam se recusará a carregar o manifesto se o nome do arquivo não começar com appmanifest_<appid>.acf. Então eles precisam combinar.
  • MountedDepots — o mapeamento do ID do depósito para o ID de construção desse depósito. SteamTools usa isso para saber qual build de cada depósito baixar. Se MountedDepots estiver vazio ou errado, SteamTools não conseguirá encontrar a compilação correta e o jogo não será iniciado.

Os demais campos (UpdateLocalTime, UserConfig, LastOwner, etc.) são da escrituração contábil de Steam. SteamTools os ignora. O gerador não os inclui porque copiar LastOwner do manifesto de outra pessoa apontaria para a instalação do Steam, não para a sua – um problema de privacidade e correção.

O que o gerador realmente oferece

Ao solicitar um manifesto deste site, você obtém um pequeno arquivo de texto com os campos necessários para SteamTools e nada mais. Especificamente:

-appid

  • name (resolvido de appdetails no momento da solicitação)
  • installdir (convenção do diretório de instalação do Steam, em letras minúsculas)
  • buildid (a versão pública mais recente ou a versão do branch que você solicitou)
  • MountedDepots, com uma entrada por depósito no app

Não incluímos UpdateLocalTime, UserConfig ou LastOwner porque SteamTools não os lê e copiá-los do manifesto de outra pessoa apontaria para a instalação do Steam de outra pessoa, não para a sua.

Um manifesto do gerador normalmente tem de 200 a 600 bytes, dependendo do número de depósitos. Compare isso com um manifesto Steam completo, que pode ter de 2 a 4 KB.

O arquivo Lua em 60 segundos

O arquivo Lua (o segundo dos dois arquivos que você baixa) é um pequeno script que informa ao SteamTools quais depósitos carregar para este aplicativo. Um 400_public.lua típico é aproximadamente:

addappid(400, 1, "abcdef0123456789abcdef0123456789")
setmanifest("2345678", "1234567890abcdef1234567890abcdef")
  • addappid(<appid>, 1, <depot_key>) registra o aplicativo e fornece a chave de descriptografia para seu depósito principal.
  • setmanifest(<depot_id>, <manifest_id>) aponta SteamTools para a construção específica desse depósito.

O gerador deriva a chave do depósito e o ID do manifesto dos dados públicos Steam. Não existe molho secreto. A chave do depósito é a chave de descriptografia do depósito, que é uma string hexadecimal de 32 caracteres que Steam publica publicamente. O ID do manifesto é o SHA-1 do arquivo de manifesto do depósito, que também é público.

Por que SteamTools precisa de ambos os arquivos

A divisão é intencional:

  • O manifesto informa a SteamTools qual versão do aplicativo carregar.
  • O arquivo Lua informa ao SteamTools como carregá-lo (quais depósitos, qual chave de descriptografia).

Se você tiver apenas o manifesto, SteamTools não saberá como descriptografar o depósito. Se você tiver apenas o arquivo Lua, SteamTools não saberá qual compilação obter. Ambos os arquivos são obrigatórios e devem estar de acordo com o App ID.

  .acf manifest                  .lua script
       │                              │
       │  "I want build 1234567       │  "use depot key X for app 400,
       │   of app 400, with depots    │   and point at manifest Y for
       │   400 → 2345678"             │   depot 2345678"
       │                              │
       └──────────┬───────────────────┘
                  ▼
            SteamTools
            (desktop client)
                  │
                  ▼
         game launches with
         the right decrypted
         build

Uma nota sobre filiais

Alguns jogos possuem uma ramificação beta ou ptb além de public. O gerador expõe um campo "Filial" na UI; se você configurá-lo, o manifesto retornado e Lua direcionarão a compilação dessa ramificação em vez da compilação pública. O padrão é public.

O nome da filial deve corresponder exatamente ao que Steam mostra. Os valores comuns são public, beta, beta_1, ptb e experimental. Se você não tiver certeza de qual branch deseja, deixe o campo em branco e você obterá a compilação pública.

Para descobrir as ramificações disponíveis para um determinado aplicativo, verifique a guia de ramificações de SteamDB para App ID. SteamDB é a fonte oficial para nomes de filiais e o buildid de cada uma.

Casos extremos comuns

Esses são os casos que não são cobertos pelo fluxo básico "descartar o arquivo em depotcache".

Aplicativos sem depósitos públicos

Alguns aplicativos existem no catálogo do Steam, mas não possuem compilações publicadas. Eles aparecem na pesquisa, têm um App ID, mas appdetails retorna uma lista de depósitos vazia. O gerador retornará um manifesto de 0 bytes ou apenas com o cabeçalho AppState. A página como funciona tem um erro dedicado para isso.

Depósitos criptografados versus não criptografados

Cada depósito em Steam é criptografado, independentemente de o jogo ser “livre de DRM” ou não. A criptografia é aplicada aos pedaços do depósito, não aos arquivos do jogo em si – os arquivos do jogo são descriptografados assim que SteamTools possui a chave do depósito. O arquivo Lua é o que fornece essa chave a SteamTools.

É por isso que o arquivo Lua é obrigatório mesmo para jogos anunciados como “sem DRM”. O DRM está no nível do workshop Steam (nenhuma conta Steam possui o jogo), não no nível do depósito (os pedaços do depósito ainda são criptografados por AES na transmissão).

Trilhas sonoras e DLC

DLC e trilhas sonoras são aplicativos Steam normais. Eles têm seu próprio App ID, seu próprio manifesto e seu próprio arquivo Lua. Para desbloquear um DLC ou trilha sonora, gere o manifesto + Lua para o App ID do DLC, não o do jogo base. DLCs ​​comuns são coisas como “Trilha sonora original” (App ID na casa dos 200.000) e “Passe de temporada” (App ID varia).

Se você tiver um combo de jogo base + DLC que deseja desbloquear, precisará de dois pares manifesto/Lua: um para o App ID do jogo base e outro para o App ID do DLC. Ambos vão nas mesmas pastas depotcache e scripts.

Depósitos entre regiões

Alguns jogos publicam depósitos separados para diferentes regiões (CN, UE, EUA, ÁSIA). O gerador escolhe os depósitos que correspondem à região do seu cliente Steam. Se você alterar regiões, gere novamente o manifesto — o mapeamento MountedDepots será diferente.

Ferramentas (Proton, Steamworks, SDK de origem)

Ferramentas como Proton, Source SDK e Steamworks Common Redistributables são aplicativos Steam normais. Eles podem ser desbloqueados da mesma maneira. Os App IDs são bem conhecidos (Proton é 858280; Steamworks é 243750).

Uma observação sobre aplicativos excluídos

Se um jogo tiver sido removido de Steam, o manifesto e Lua ainda poderão existir neste gerador, mas não funcionarão. O upstream SteamTools também não consegue obter uma compilação funcional para um aplicativo excluído, nem o SteamDB. Não há solução alternativa – a única maneira de continuar usando um aplicativo excluído é manter uma cópia dele instalada antes de ser excluído e nunca desinstalá-lo.

Alguns aplicativos excluídos permanecem tecnicamente acessíveis por meio do endpoint appdetails de Steam por algumas semanas após a exclusão. Durante essa janela, o gerador retornará um manifesto funcional. Depois que a janela fechar, ela retornará 404 e não há nada que possamos fazer.

Verificando se um manifesto está correto

Antes de colocar um manifesto em depotcache, execute esta lista de verificação:

  1. O nome do arquivo corresponde a appid. O arquivo deve ser appmanifest_<APPID>.acf e o campo appid dentro dele deve corresponder. Se não corresponderem, SteamTools recusará.
  2. name corresponde ao jogo que você espera. Se o nome estiver errado, você tem o App ID errado.
  3. MountedDepots não está vazio. Um bloco MountedDepots vazio significa que o aplicativo não possui compilações públicas.
  4. O buildid parece razoável. Os IDs de compilação Steam são números inteiros, normalmente de 7 a 8 dígitos, e aumentam com o tempo. Um buildid de 1 ou 0 está errado.

Se todos os quatro forem aprovados, o manifesto é bom. Solte-o em depotcache, solte Lua em scripts e reinicie SteamTools.

Solução de problemas: "Coloquei os arquivos, mas SteamTools ainda mostra o jogo como bloqueado"

Nove em cada dez vezes, uma destas é a causa:

  1. Você colocou o manifesto na pasta errada. Ele deve estar na pasta depotcache na raiz da instalação do SteamTools, não em uma subpasta.
  2. Você colocou o Lua na pasta errada. Ele deve estar na pasta scripts na raiz da instalação do SteamTools, não no depotcache.
  3. Você não reiniciou o SteamTools. Os arquivos são lidos na inicialização do SteamTools. Se você copiá-los enquanto SteamTools estiver em execução, nada acontecerá.
  4. A compilação no manifesto é mais antiga do que a compilação que Steam está oferecendo. Gere novamente o manifesto — o buildid no novo será o público mais recente.
  5. A ramificação no Lua não corresponde à ramificação no manifesto. Se você definir o campo Filial como beta, mas o Lua foi gerado para public, eles não concordarão. Gere novamente com a mesma ramificação em ambos os locais (o gerador faz isso por padrão).
  6. A chave do depósito no Lua está errada. Isso é raro — significa que o depósito foi digitado novamente. O gerador pega a nova chave na próxima solicitação.

Manifesto SteamTools.games vs manifesto Steam bruto vs manifesto GreenLuma

O formato é o mesmo, mas o conteúdo é diferente.

FonteTem appidTem MountedDepots corretoTem LastOwnerFunciona com SteamTools
Este geradorSimSim (última compilação pública)Não (omitido)Sim
Manifesto Steam bruto (de sua própria instalação)SimSim (sua compilação instalada)Sim (seu ID Steam)Sim, mas LastOwner é o seu próprio ID, o que é bom
Um manifesto compartilhado por um amigoSimSim (sua versão instalada)Sim (seu ID Steam)Sim, SteamTools ignora LastOwner
Um manifesto GreenLumaSimÀs vezesNãoÀs vezes — o formato de manifesto de GreenLuma é um subconjunto e pode não incluir MountedDepots

Resumindo: um manifesto de qualquer fonte funciona com SteamTools desde que appid e MountedDepots estejam corretos. Os outros campos são ruído para fins de SteamTools.

Leitura adicional

Veja também