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 conappmanifest_<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. SiMountedDepotsestá 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:
appidname(resuelto desdeappdetailsen 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:
- El nombre del archivo coincide con
appid. El archivo debe serappmanifest_<APPID>.acfy el campoappiddel interior debe coincidir. Si no coinciden, SteamTools lo rechazará. namecoincide con el juego que esperas. Si el nombre es incorrecto, tiene el App ID incorrecto.MountedDepotsno está vacío. Un bloqueMountedDepotsvacío significa que la aplicación no tiene compilaciones públicas.- 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
buildidde1o0está 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:
- Pusiste el manifiesto en la carpeta equivocada. Debe estar en la carpeta
depotcacheen la raíz de tu instalación de SteamTools, no en una subcarpeta. - Pusiste el Lua en la carpeta equivocada. Debe estar en la carpeta
scriptsen la raíz de tu instalación de SteamTools, no endepotcache. - No reiniciaste SteamTools. Los archivos se leen al iniciar SteamTools. Si los copia mientras se ejecuta SteamTools, no sucede nada.
- 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.
- La rama en Lua no coincide con la rama en el manifiesto. Si configura el campo Rama en
betapero el Lua se generó parapublic, no estarán de acuerdo. Regenera con la misma rama en ambos lugares (el generador hace esto por defecto). - 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.
| Fuente | Tiene appid | Tiene MountedDepots correcto | Tiene LastOwner | Funciona con SteamTools |
|---|---|---|---|---|
| Este generador | Sí | Sí (última versión pública) | No (omitido) | Sí |
| Manifiesto Steam sin formato (de su propia instalación) | Sí | 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 amigo | Sí | Sí (su versión instalada) | Sí (su ID Steam) | Sí, SteamTools ignora LastOwner |
| Un manifiesto GreenLuma | Sí | A veces | No | A 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
- Cómo funciona SteamTools.games: el flujo de cuatro pasos que produce el manifiesto
- La guía de solución de problemas: los cuatro errores que puede devolver el generador y cómo solucionar cada uno de ellos
- [Los documentos anteriores de SteamTools] (https://steamtools.net/): explica qué hace SteamTools con el manifiesto y Lua una vez que los hayas colocado.
- La página de la aplicación SteamDB: la fuente autorizada para
buildidy la lista de depósitos - Cómo encontrar un Steam App ID — cuando tienes un nombre de juego pero no App ID
Ver también
- ¿Qué es un archivo de manifiesto Steam y cómo se usa con SteamTools?: la guía completa de acceso directo; Esta página es una inmersión más profunda en una parte de ella.