Skip to main content

Explication des fichiers manifestes Steam

Qu'est-ce que le fichier appmanifest_*.acf, que contient-il, pourquoi SteamTools en a besoin et comment en lire un dans un éditeur de texte.

Dernière mise à jour: 2026-07-05

Chaque déverrouillage SteamTools nécessite deux fichiers. Cette page explique le premier – le fichier appmanifest_<APPID>.acf – avec suffisamment de détails pour que vous puissiez en lire un dans un éditeur de texte et comprendre ce que fait chaque ligne. Le fichier Lua est la moitié la plus simple (c'est juste un court script qui indique à SteamTools quels dépôts charger) ; le manifeste est la partie qui déroute les gens. Nous passons également en revue toutes les erreurs courantes et tous les cas extrêmes que le manifeste peut présenter afin que la prochaine fois que vous en verrez une dans la nature, vous sachiez exactement quoi en faire.

Qu'est-ce que le fichier

Le manifeste est un petit fichier texte au format « ACF » (Application Configuration File) de Valve. ACF est un format clé-valeur avec des en-têtes de section, similaire à INI. Steam en écrit un pour chaque application que vous avez installée, dans le répertoire steamapps. La convention de dénomination est appmanifest_<APPID>.acf, où <APPID> est le App ID du jeu.

Pour que SteamTools fonctionne, vous avez besoin d'une copie de ce fichier (ou d'une copie qui pointe vers les bons dépôts et la bonne construction) située dans un dossier surveillé par SteamTools, généralement <SteamTools>/depotcache/. Le manifeste n'a pas besoin d'être le fichier exact que Steam a écrit pour votre installation - il doit simplement décrire la bonne version de la bonne application. SteamTools lit le manifeste pour savoir quelle version de quel dépôt récupérer, et lit le fichier Lua (le deuxième téléchargement) pour savoir quelle clé de décryptage utiliser.

Que contient un manifeste

Un vrai appmanifest_400.acf (Portail) ressemble à ceci :

"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"
    }
}

La plupart de ces champs sont explicites une fois que vous savez quoi rechercher. Les deux qui comptent pour SteamTools sont :

  • appid — le App ID. Doit correspondre au nom du fichier. SteamTools ne regarde même pas le nom du fichier, mais Steam refusera de charger le manifeste si le nom du fichier ne commence pas par appmanifest_<appid>.acf. Ils doivent donc correspondre.
  • MountedDepots — le mappage de l'ID du dépôt à l'ID de build de ce dépôt. SteamTools l'utilise pour savoir quelle version de chaque dépôt télécharger. Si MountedDepots est vide ou erroné, SteamTools ne trouve pas la bonne version et le jeu ne se lancera pas.

Les autres champs (UpdateLocalTime, UserConfig, LastOwner, etc.) constituent la comptabilité de Steam. SteamTools les ignore. Le générateur ne les inclut pas, car copier LastOwner à partir du manifeste de quelqu'un d'autre pointerait vers son installation Steam, et non la vôtre – un problème de confidentialité et d'exactitude.

Ce que le générateur vous donne réellement

Lorsque vous demandez un manifeste à partir de ce site, vous obtenez un petit fichier texte avec les champs dont SteamTools a besoin et rien d'autre. Spécifiquement:

  • appid
  • name (résolu à partir de appdetails au moment de la demande)
  • installdir (convention du répertoire d'installation de Steam, en minuscules)
  • buildid (la dernière version publique, ou la version de la branche que vous avez demandée)
  • MountedDepots, avec une entrée par dépôt sur l'application

Nous n'incluons pas UpdateLocalTime, UserConfig ou LastOwner car SteamTools ne les lit pas, et les copier à partir du manifeste de quelqu'un d'autre pointerait vers l'installation de Steam de quelqu'un d'autre, pas la vôtre.

Un manifeste du générateur comporte généralement entre 200 et 600 octets, en fonction du nombre de dépôts. Comparez cela à un manifeste Steam complet qui peut faire 2 à 4 Ko.

Le fichier Lua en 60 secondes

Le fichier Lua (le deuxième des deux fichiers que vous téléchargez) est un petit script qui indique à SteamTools quels dépôts charger pour cette application. Un 400_public.lua typique est à peu près :

addappid(400, 1, "abcdef0123456789abcdef0123456789")
setmanifest("2345678", "1234567890abcdef1234567890abcdef")
  • addappid(<appid>, 1, <depot_key>) enregistre l'application et fournit la clé de déchiffrement de son dépôt principal.
  • setmanifest(<depot_id>, <manifest_id>) pointe SteamTools vers la construction spécifique de ce dépôt.

Le générateur dérive à la fois la clé du dépôt et l'ID du manifeste à partir des données publiques Steam. Il n’y a pas de sauce secrète. La clé du dépôt est la clé de déchiffrement du dépôt, qui est une chaîne hexadécimale de 32 caractères que Steam publie publiquement. L'ID du manifeste est le SHA-1 du fichier manifeste du dépôt, qui est également public.

Pourquoi SteamTools a besoin des deux fichiers

La scission est intentionnelle :

  • Le manifeste indique à SteamTools quelle version de l'application à charger.
  • Le fichier Lua indique à SteamTools comment le charger (quels dépôts, quelle clé de déchiffrement).

Si vous ne disposez que du manifeste, SteamTools ne sait pas comment décrypter le dépôt. Si vous disposez uniquement du fichier Lua, SteamTools ne sait pas quelle version récupérer. Les deux fichiers sont requis et doivent correspondre au 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

Une note sur les branches

Certains jeux possèdent une branche beta ou ptb en plus de public. Le générateur expose un champ « Branche » dans l'interface utilisateur ; si vous le définissez, le manifeste renvoyé et Lua ciblent la build de cette branche au lieu de la build publique. La valeur par défaut est public.

Le nom de la branche doit correspondre exactement à ce qu'affiche Steam. Les valeurs courantes sont public, beta, beta_1, ptb et experimental. Si vous n'êtes pas sûr de la branche souhaitée, laissez le champ vide et vous obtiendrez la version publique.

Pour découvrir les branches disponibles pour une application donnée, consultez [onglet Branches de SteamDB] (https://steamdb.info/) pour le App ID. SteamDB est la source faisant autorité pour les noms de succursales et le buildid de chacune.

Cas extrêmes courants

Ce sont les cas qui ne sont pas couverts par le flux de base « déposer le fichier dans depotcache ».

Applications sans dépôt public

Certaines applications existent dans le catalogue de Steam mais n'ont aucune version publiée. Ils apparaissent dans la recherche, ils ont un App ID, mais appdetails renvoie une liste de dépôts vide. Le générateur renverra un manifeste de 0 octet ou un avec uniquement l'en-tête AppState. La page comment ça marche contient une erreur dédiée à cela.

Dépôts cryptés ou non cryptés

Chaque dépôt sur Steam est crypté, que le jeu soit « sans DRM » ou non. Le cryptage est appliqué aux morceaux du dépôt, pas aux fichiers du jeu eux-mêmes – les fichiers du jeu sont décryptés une fois que SteamTools a la clé du dépôt. Le fichier Lua est ce qui donne cette clé à SteamTools.

C'est pourquoi le fichier Lua est obligatoire même pour les jeux annoncés comme « sans DRM ». Le DRM est au niveau de l'atelier Steam (aucun compte Steam ne possède le jeu), et non au niveau du dépôt (les morceaux du dépôt sont toujours cryptés en AES sur le fil).

Bandes sonores et DLC

Les DLC et les bandes sonores sont des applications Steam normales. Ils ont leur propre App ID, leur propre manifeste et leur propre fichier Lua. Pour débloquer un DLC ou une bande-son, générez le manifeste + Lua pour le App ID du DLC, pas celui du jeu de base. Les DLC courants sont des éléments tels que "Bande originale" (App ID dans les 200 000) et "Season Pass" (App ID varie).

Si vous souhaitez débloquer un combo jeu de base + DLC, vous avez besoin de deux paires manifeste/Lua : une pour le App ID du jeu de base et une pour le App ID du DLC. Les deux se trouvent dans les mêmes dossiers depotcache et scripts.

Dépôts inter-régionaux

Certains jeux publient des dépôts distincts pour différentes régions (CN, UE, États-Unis, ASIE). Le générateur sélectionne les dépôts qui correspondent à la région de votre client Steam. Si vous changez de région, régénérez le manifeste — le mappage MountedDepots sera différent.

Outils (Proton, Steamworks, SDK source)

Des outils tels que Proton, le SDK Source et les redistribuables communs Steamworks sont des applications Steam normales. Ils peuvent être débloqués de la même manière. Les App ID sont bien connus (Proton est 858280 ; Steamworks est 243750).

Une note sur les applications supprimées de la liste

Si un jeu a été supprimé de Steam, le manifeste et Lua peuvent toujours exister dans ce générateur, mais ils ne fonctionneront pas. SteamTools en amont ne peut pas non plus obtenir une version fonctionnelle pour une application retirée de la liste, et SteamDB non plus. Il n'y a pas de solution de contournement : la seule façon de continuer à utiliser une application supprimée est d'en conserver une copie installée avant sa suppression et de ne jamais la désinstaller.

Certaines applications supprimées restent techniquement accessibles via le point de terminaison appdetails de Steam pendant quelques semaines après la radiation. Pendant cette fenêtre, le générateur renverra un manifeste fonctionnel. Une fois la fenêtre fermée, elle renverra un 404 et nous ne pouvons rien faire.

Vérifier qu'un manifeste est correct

Avant de déposer un manifeste dans depotcache, parcourez cette liste de contrôle :

  1. Le nom de fichier correspond à appid. Le fichier doit être appmanifest_<APPID>.acf et le champ appid à l'intérieur doit correspondre. S'ils ne correspondent pas, SteamTools le refusera.
  2. name correspond au jeu que vous attendez. Si le nom est erroné, vous avez le mauvais App ID.
  3. MountedDepots n'est pas vide. Un bloc MountedDepots vide signifie que l’application n’a aucune version publique.
  4. Le buildid semble raisonnable. Les ID de build Steam sont des nombres entiers, généralement de 7 à 8 chiffres, et ils augmentent avec le temps. Un buildid de 1 ou 0 est faux.

Si les quatre réussissent, le manifeste est bon. Déposez-le dans depotcache, déposez le Lua dans scripts, redémarrez SteamTools.

Dépannage : "J'ai déposé les fichiers mais SteamTools affiche toujours le jeu comme verrouillé"

Neuf fois sur dix, l’une d’elles en est la cause :

  1. Vous avez placé le manifeste dans le mauvais dossier. Il doit se trouver dans le dossier depotcache à la racine de votre installation SteamTools, et non dans un sous-dossier.
  2. Vous avez placé le Lua dans le mauvais dossier. Il doit se trouver dans le dossier scripts à la racine de votre installation SteamTools, et non dans depotcache.
  3. Vous n'avez pas redémarré SteamTools. Les fichiers sont lus au lancement de SteamTools. Si vous les copiez pendant l'exécution de SteamTools, rien ne se passe.
  4. La build dans le manifeste est plus ancienne que la build proposée par Steam. Régénérez le manifeste — l'ID de build dans le nouveau sera le dernier public.
  5. La branche dans Lua ne correspond pas à la branche dans le manifeste. Si vous définissez le champ Branche sur beta mais que le Lua a été généré pour public, ils ne seront pas d'accord. Régénérez avec la même branche aux deux endroits (le générateur le fait par défaut).
  6. La clé du dépôt dans le Lua est erronée. C'est rare — cela signifie que le dépôt a été re-saisi. Le générateur récupère la nouvelle clé à la prochaine requête.

Manifeste SteamTools.games par rapport au manifeste brut Steam par rapport au manifeste GreenLuma

Le format est le même, mais le contenu diffère.

SourceA appidA le bon MountedDepotsA LastOwnerFonctionne avec SteamTools
Ce générateurOuiOui (dernière version publique)Non (omis)Oui
Manifeste brut Steam (à partir de votre propre installation)OuiOui (votre version installée)Oui (votre identifiant Steam)Oui, mais LastOwner est votre propre identifiant, ce qui est très bien
Un manifeste partagé par un amiOuiOui (leur version installée)Oui (leur identifiant Steam)Oui, SteamTools ignore LastOwner
Un manifeste GreenLumaOuiParfoisNonParfois — Le format du manifeste de GreenLuma est un sous-ensemble et peut ne pas inclure MountedDepots

En bref : un manifeste provenant de n'importe quelle source fonctionne avec SteamTools tant que appid et MountedDepots sont corrects. Les autres champs sont du bruit aux fins de SteamTools.

Lectures complémentaires

Voir aussi