Skip to main content

Archivos de manifiesto Steam explicados

Qué es el archivo appmanifest_*.acf, qué contiene, por qué SteamTools lo necesita y cómo leer uno en un editor de texto.

Última actualización: 2026-07-05

Cada desbloqueo de SteamTools necesita dos archivos. Esta página explica el primero, el archivo appmanifest_<APPID>.acf, con suficiente detalle como para que puedas leer uno en un editor de texto y comprender qué hace cada línea. El archivo Lua es la parte fácil (es sólo un breve script que le indica a SteamTools qué depósitos cargar); el manifiesto es la parte que confunde a la gente. También analizamos todos los errores comunes y casos extremos que puede tener el manifiesto para que la próxima vez que vea uno, sepa exactamente qué hacer con él.

¿Qué es el archivo?

El manifiesto es un pequeño archivo de texto en formato "ACF" (archivo de configuración de aplicación) de Valve. ACF es un formato clave-valor con encabezados de sección, similar a INI. Steam escribe uno de estos para cada aplicación que haya instalado, en el directorio steamapps. La convención de nomenclatura es appmanifest_<APPID>.acf, donde <APPID> es el App ID del juego.

Para que SteamTools funcione, necesita una copia de ese archivo (o uno que apunte a los depósitos y la compilación correctos) ubicado en una carpeta que observa SteamTools, generalmente <SteamTools>/depotcache/. No es necesario que el manifiesto sea el archivo exacto que Steam escribió para su instalación; solo necesita describir la compilación correcta de la aplicación correcta. SteamTools lee el manifiesto para saber qué compilación de qué depósito tomar y lee el archivo Lua (la segunda descarga) para saber qué clave de descifrado usar.

¿Qué hay dentro de un manifiesto?

Un appmanifest_400.acf (Portal) real se ve así:

"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 mayoría de estos campos se explican por sí solos una vez que sabes qué buscar. Los dos que importan para SteamTools son:

  • appid — el App ID. Tiene que coincidir con el nombre del archivo. SteamTools ni siquiera mira el nombre del archivo, pero Steam se negará a cargar el manifiesto si el nombre del archivo no comienza con appmanifest_<appid>.acf. Entonces necesitan coincidir.
  • MountedDepots: la asignación del ID del depósito al ID de compilación de ese depósito. SteamTools usa esto para saber qué compilación de cada depósito descargar. Si MountedDepots está vacío o es incorrecto, SteamTools no puede encontrar la compilación correcta y el juego no se iniciará.

Los otros campos (UpdateLocalTime, UserConfig, LastOwner, etc.) son la contabilidad de Steam. SteamTools los ignora. El generador no los incluye porque copiar LastOwner del manifiesto de otra persona apuntaría a su instalación de Steam, no a la suya, un problema de privacidad y corrección.

Lo que realmente te ofrece el generador

Cuando solicita un manifiesto de este sitio, obtiene un pequeño archivo de texto con los campos que necesita SteamTools y nada más. Específicamente:

  • appid
  • name (resuelto desde appdetails en el momento de la solicitud)
  • installdir (convención del directorio de instalación de Steam, en minúsculas)
  • buildid (la última versión pública o la versión de la rama que solicitaste)
  • MountedDepots, con una entrada por depósito en la aplicación

No incluimos UpdateLocalTime, UserConfig o LastOwner porque SteamTools no los lee y copiarlos del manifiesto de otra persona apuntaría a la instalación de Steam de otra persona, no a la suya.

Un manifiesto del generador suele tener entre 200 y 600 bytes, según la cantidad de depósitos. Compare eso con un manifiesto Steam completo que puede tener entre 2 y 4 KB.

El archivo Lua en 60 segundos

El archivo Lua (el segundo de los dos archivos que descarga) es un pequeño script que le indica a SteamTools qué depósitos cargar para esta aplicación. Un 400_public.lua típico es aproximadamente:

addappid(400, 1, "abcdef0123456789abcdef0123456789")
setmanifest("2345678", "1234567890abcdef1234567890abcdef")
  • addappid(<appid>, 1, <depot_key>) registra la aplicación y proporciona la clave de descifrado para su depósito principal.
  • setmanifest(<depot_id>, <manifest_id>) apunta a SteamTools a la construcción específica de ese depósito.

El generador obtiene tanto la clave del depósito como el ID del manifiesto a partir de datos públicos Steam. No existe una salsa secreta. La clave del depósito es la clave de descifrado del depósito, que es una cadena hexadecimal de 32 caracteres que Steam publica públicamente. El ID del manifiesto es el SHA-1 del archivo de manifiesto del depósito, que también es público.

Por qué SteamTools necesita ambos archivos

La división es intencional:

  • El manifiesto le dice a SteamTools qué compilación de la aplicación cargar.
  • El archivo Lua le dice a SteamTools cómo cargarlo (qué depósitos, qué clave de descifrado).

Si solo tiene el manifiesto, SteamTools no sabe cómo descifrar el depósito. Si solo tiene el archivo Lua, SteamTools no sabe qué compilación tomar. Ambos archivos son obligatorios y deben coincidir en el 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

Una nota sobre las sucursales

Algunos juegos tienen una rama beta o ptb además de public. El generador expone un campo "Sucursal" en la interfaz de usuario; si lo configura, el manifiesto devuelto y Lua apuntan a la compilación de esa rama en lugar de a la compilación pública. El valor predeterminado es public.

El nombre de la sucursal debe coincidir exactamente con lo que muestra Steam. Los valores comunes son public, beta, beta_1, ptb y experimental. Si no está seguro de qué rama desea, deje el campo en blanco y obtendrá la compilación pública.

Para descubrir las ramas disponibles para una aplicación determinada, consulte la pestaña de ramas de SteamDB para App ID. SteamDB es la fuente autorizada para los nombres de las sucursales y el buildid de cada una.

Casos extremos comunes

Estos son los casos que no están cubiertos por el flujo básico de "soltar el archivo en depotcache".

Aplicaciones sin depósitos públicos

Algunas aplicaciones existen en el catálogo de Steam pero no tienen versiones publicadas. Aparecen en la búsqueda, tienen un App ID, pero appdetails devuelve una lista de depósitos vacía. El generador devolverá un manifiesto de 0 bytes o uno con solo el encabezado AppState. La página de cómo funciona tiene un error dedicado a esto.

Depósitos cifrados frente a no cifrados

Cada depósito en Steam está encriptado, independientemente de si el juego está "libre de DRM" o no. El cifrado se aplica a los fragmentos del depósito, no a los archivos del juego en sí: los archivos del juego salen descifrados una vez que SteamTools tiene la clave del depósito. El archivo Lua es lo que le da esa clave a SteamTools.

Es por eso que el archivo Lua es obligatorio incluso para juegos que se anuncian como "sin DRM". El DRM está en el nivel del taller Steam (ninguna cuenta Steam es propietaria del juego), no en el nivel del depósito (los fragmentos del depósito todavía están cifrados con AES en el cable).

Bandas sonoras y DLC

El DLC y las bandas sonoras son aplicaciones normales de Steam. Tienen su propio App ID, su propio manifiesto y su propio archivo Lua. Para desbloquear un DLC o banda sonora, genera el manifiesto + Lua para el App ID del DLC**, no el del juego base. Los DLC comunes son cosas como "Banda sonora original" (App ID en los 200.000) y "Pase de temporada" (App ID varía).

Si tienes un combo de juego base + DLC que deseas desbloquear, necesitas dos pares de manifiesto/Lua: uno para el App ID del juego base y otro para el App ID del DLC. Ambos van en las mismas carpetas depotcache y scripts.

Depósitos entre regiones

Algunos juegos publican depósitos separados para diferentes regiones (CN, UE, EE. UU., ASIA). El generador selecciona los depósitos que coinciden con la región de su cliente Steam. Si cambia de región, vuelva a generar el manifiesto; la asignación MountedDepots será diferente.

Herramientas (Proton, Steamworks, SDK de origen)

Herramientas como Proton, Source SDK y Steamworks Common Redistributables son aplicaciones Steam normales. Se pueden desbloquear de la misma manera. Los App ID son bien conocidos (Proton es 858280; Steamworks es 243750).

Una nota sobre las aplicaciones eliminadas de la lista

Si un juego ha sido eliminado de la lista de Steam, es posible que el manifiesto y Lua aún existan en este generador, pero no funcionarán. SteamTools upstream tampoco puede obtener una compilación funcional para una aplicación eliminada de la lista, y tampoco puede hacerlo SteamDB. No existe ninguna solución alternativa: la única forma de seguir usando una aplicación eliminada de la lista es mantener una copia instalada antes de que se eliminara de la lista y nunca desinstalarla.

Algunas aplicaciones eliminadas de la lista siguen siendo técnicamente accesibles a través del punto final appdetails de Steam durante algunas semanas después de la eliminación. Durante esa ventana, el generador devolverá un manifiesto en funcionamiento. Después de que se cierre la ventana, devolverá un 404 y no hay nada que podamos hacer.

Verificar que un manifiesto sea correcto

Antes de colocar un manifiesto en depotcache, revise esta lista de verificación:

  1. El nombre del archivo coincide con appid. El archivo debe ser appmanifest_<APPID>.acf y el campo appid del interior debe coincidir. Si no coinciden, SteamTools lo rechazará.
  2. name coincide con el juego que esperas. Si el nombre es incorrecto, tiene el App ID incorrecto.
  3. MountedDepots no está vacío. Un bloque MountedDepots vacío significa que la aplicación no tiene compilaciones públicas.
  4. El buildid parece razonable. Los ID de compilación Steam son números enteros, normalmente de 7 a 8 dígitos, y crecen con el tiempo. Un buildid de 1 o 0 está mal.

Si los cuatro pasan, el manifiesto es bueno. Suéltelo en depotcache, suelte el Lua en scripts, reinicie SteamTools.

Solución de problemas: "Dejé caer los archivos pero SteamTools todavía muestra el juego como bloqueado"

Nueve de cada diez veces, una de estas es la causa:

  1. Pusiste el manifiesto en la carpeta equivocada. Debe estar en la carpeta depotcache en la raíz de tu instalación de SteamTools, no en una subcarpeta.
  2. Pusiste el Lua en la carpeta equivocada. Debe estar en la carpeta scripts en la raíz de tu instalación de SteamTools, no en depotcache.
  3. No reiniciaste SteamTools. Los archivos se leen al iniciar SteamTools. Si los copia mientras se ejecuta SteamTools, no sucede nada.
  4. La compilación en el manifiesto es anterior a la que ofrece Steam. Regenere el manifiesto: el ID de compilación en el nuevo será el público más reciente.
  5. La rama en Lua no coincide con la rama en el manifiesto. Si configura el campo Rama en beta pero el Lua se generó para public, no estarán de acuerdo. Regenera con la misma rama en ambos lugares (el generador hace esto por defecto).
  6. La clave del depósito en el Lua es incorrecta. Esto es poco común: significa que se ha cambiado la clave del depósito. El generador recoge la nueva clave en la siguiente solicitud.

Manifiesto SteamTools.games versus manifiesto Steam sin procesar versus manifiesto GreenLuma

El formato es el mismo, pero los contenidos difieren.

FuenteTiene appidTiene MountedDepots correctoTiene LastOwnerFunciona con SteamTools
Este generadorSí (última versión pública)No (omitido)
Manifiesto Steam sin formato (de su propia instalación)Sí (su compilación instalada)Sí (su ID Steam)Sí, pero LastOwner es tu propia identificación, lo cual está bien
Un manifiesto compartido por un amigoSí (su versión instalada)Sí (su ID Steam)Sí, SteamTools ignora LastOwner
Un manifiesto GreenLumaA vecesNoA veces: el formato del manifiesto de GreenLuma es un subconjunto y es posible que no incluya MountedDepots

En resumen: un manifiesto de cualquier fuente funciona con SteamTools siempre que appid y MountedDepots sean correctos. Los otros campos son ruido para los propósitos de SteamTools.

Lectura adicional

Ver también