Skip to main content

Cómo utilizar el manifiesto SteamTools y los archivos Lua

Paso a paso: busque un Steam App ID, genere el manifiesto + Lua ZIP, instale SteamTools y coloque los archivos en depotcache. Incluye errores y correcciones comunes.

Última actualización: 2026-07-15

Esta página explica el generador en steamtools.games: escribe el nombre de un juego o App ID, descarga un ZIP (Lua + key.vdf + README), luego usa esos archivos con el cliente de escritorio SteamTools. El sitio web en sí no necesita registro. Aún necesita instalar SteamTools en su computadora antes de que los archivos hagan algo útil.

1. Escribes el nombre de un juego

El cuadro de entrada en la página de inicio elimina el rebote de las pulsaciones de teclas en 250 ms y luego solicita a nuestro punto final /api/search una breve lista de coincidencias. El punto final representa la búsqueda del almacén público de Steam y devuelve los cinco resultados principales, cada uno con App ID, el nombre para mostrar y una pequeña imagen de cápsula.

No hay índice local. Cada búsqueda es un viaje de ida y vuelta en vivo a Steam. No almacenamos en caché los resultados de búsqueda en una base de datos porque el catálogo de Steam es lo suficientemente grande como para que la tasa de aciertos de la caché sea baja y los resultados obsoletos serían peores que no tener caché.

Si ya conoces el App ID, y deberías hacerlo, porque encontrarlo es un trabajo de 30 segundos para cualquier juego en Steam, pégalo directamente en el cuadro de entrada. El generador detecta un número de 4 a 10 dígitos, desactiva el menú desplegable de búsqueda y le permite pasar directamente al paso 3.

2. Eliges un resultado

Al hacer clic en un resultado en el menú desplegable se establecen dos valores de estado ocultos: App ID (un número entero) y el nombre del juego. El cuadro de entrada se actualiza al nombre para mostrar y el botón "Generar" se habilita.

El menú desplegable se puede navegar con el teclado. Las teclas de flecha mueven el resaltado, Enter selecciona, Escape lo cierra. El primer resultado está resaltado previamente, por lo que un Intro rápido selecciona el resultado principal.

Si la búsqueda no arroja resultados, el menú desplegable muestra una sugerencia de "no hay coincidencias" con un enlace al buscador de ID de aplicación y un enlace a la entrada de preguntas frecuentes para "mi juego no está en la lista".

3. La solicitud de generación

Al hacer clic en Generar, se envía una solicitud POST /api/generate con App ID (y un nombre de rama opcional, útil para las ramas beta de Steam). El punto final:

  1. Valida que App ID sea un número entero positivo en el rango legal (1 a 2.147.483.647).
  2. Llama al punto final appdetails de Steam para confirmar que el juego realmente existe y obtener el nombre canónico y la imagen de la cápsula. Este es el único lugar donde tocamos el API de Steam para generar flujo.
  3. Lee la lista de depósitos para la sucursal solicitada desde la interfaz appinfo de Steam, elige la última compilación pública para cada depósito y resuelve las claves de descifrado del depósito coincidentes.
  4. Representa el texto del manifiesto y el texto del script Lua a partir de esos valores.
  5. Devuelve ambos archivos en línea como text/plain para que el navegador pueda guardarlos con los nombres de archivo correctos sin ningún estado del lado del servidor.

El viaje de ida y vuelta completo suele tardar entre 200 y 400 ms en un flanco cálido y hasta 1,2 s en uno frío (la primera solicitud después de un desalojo de caché Cloudflare). Si alguna vez ve que tarda más de 3 s, el punto final de detalles de la aplicación Steam es el cuello de botella, no nosotros.

4. Descargas el ZIP y colocas los archivos

La tarjeta de resultados ofrece Descargar ZIP (recomendado) además de enlaces directos opcionales para el archivo Lua y key.vdf. El ZIP se llama appmanifest_<APPID>_public.zip y contiene:

  • <APPID>_public.lua
  • key.vdf
  • README.txt con breves notas de instalación

También puedes presionar /api/files/<APPID>/zip con curl si automatizas las instalaciones.

Ubicación (recomendada para paquetes de este sitio):

  1. Instale SteamTools si aún no lo ha hecho.
  2. Copie .lua y key.vdf en la raíz de instalación SteamTools, la misma carpeta que el ejecutable SteamTools / Watt Toolkit (consulte README dentro de ZIP).
  3. Salga por completo y vuelva a abrir SteamTools, luego actualice la biblioteca.

Este generador no incluye archivos appmanifest_*.acf clásicos. Para conocer los diseños de depotcache/scripts utilizados con los desbloqueos de .acf, consulte Archivos de manifiesto.

El sitio web nunca ejecuta un instalador en su PC y nunca almacena contenido del juego, solo los pequeños archivos de texto que descarga.

Cómo encajan los cuatro pasos

┌────────────┐  debounce   ┌────────────┐  proxy       ┌──────────────┐
│ Input box  │ ──────────► │ /api/search│ ───────────► │ Steam store  │
└────────────┘   250ms     └────────────┘              │  search API  │
                                                          └──────────────┘
       │ pick result (AppID + name)
       ▼
┌────────────┐  POST       ┌────────────┐  render      ┌──────────────┐
│ Generate   │ ──────────► │/api/generate│ ───────────► │ .acf + .lua  │
│  button    │             │  (server)  │              │  text/plain  │
└────────────┘             └────────────┘              └──────────────┘
       │ download (user click)
       ▼
   ┌─────────┐    ┌────────────────┐
   │depotcache│   │ SteamTools/    │
   │ /manifest│   │ scripts/lua    │
   └─────────┘    └────────────────┘
       │ restart SteamTools
       ▼
    game unlocked

Qué se ejecuta en el navegador

La página de inicio es una aplicación TanStack Start renderizada por el servidor. Después de la hidratación, la interfaz de usuario del producto ejecuta:

  • La entrada de búsqueda no rebotada.
  • La tarjeta de resultados de generación/descarga.
  • La tira "Reciente" que dice localStorage.

Es posible que se carguen scripts opcionales de terceros (por ejemplo, análisis o anuncios) cuando se configuran; consulte la política de privacidad. No son necesarios para buscar ni generar para funcionar.

Qué se ejecuta en el servidor

  • El servidor Nitro, que sirve las rutas y agrupa los módulos de mensajes del parapente.
  • Las dos rutas API, ambas en src/routes/api/.
  • Un limitador de velocidad por IP de 1,5 s en /api/generate y uno de 300 ms en /api/search.
  • Registro de solicitudes a nivel de borde para detección de abusos. Los registros se rotan cada 14 días.

Los cinco errores y cómo solucionar cada uno

Estos son los únicos errores que puede devolver el generador. Si ve uno, la solución está en el lado Steam, no en el nuestro.

1. "Aplicación no encontrada" (HTTP 404 de /api/generate)

El punto final appdetails de Steam devolvió success: false. La causa más común es una aplicación que se eliminó de la lista de Steam pero que aún está instalada en su máquina. Steam mantiene a appdetails accesible para algunas aplicaciones eliminadas de la lista e inaccesible para otras. Por nuestra parte, no existe ninguna solución alternativa: consulte la página de archivos de manifiesto para saber qué hacer si este es su caso.

La segunda causa más común es un error tipográfico en el App ID. Los App ID son números enteros; "Portal 2" es 620, no 620 (espacio final) o 0620 (cero inicial). Vuelva a pegar sin espacios en blanco.

2. "Sucursal no encontrada"

Escribiste un nombre de sucursal que no existe en la aplicación de destino. Los nombres de las sucursales Steam distinguen entre mayúsculas y minúsculas y deben coincidir exactamente: public, beta, beta_1, ptb, experimental. Si deja el campo en blanco, obtendrá la sucursal pública.

Para descubrir ramas disponibles para una aplicación determinada, consulte la [pestaña de ramas de SteamDB] (https://steamdb.info/): esa página es la fuente autorizada para los nombres de las ramas y el ID de compilación de cada una.

3. "Límite de tarifa excedido"

Ha realizado más de una solicitud /api/generate desde su IP en los últimos 1,5 segundos, o más de tres solicitudes /api/search en los últimos 300 ms. Espere un momento y vuelva a intentarlo. No hay forma de "desbloquear" una prohibición de límite de velocidad: el límite es automático, por IP y se restablece por sí solo.

Si tiene una necesidad legítima de un mayor rendimiento (un servidor de compilación, una canalización de automatización), utilice el público API y coloque sus solicitudes detrás de un ciclo de retroceso. Eludir el límite de velocidad con varias IP es motivo para un bloqueo permanente.

4. "Tiempo de espera de detalles de la aplicación Steam"

El punto final Steam appdetails no regresó en 5 s. Esto sucede aproximadamente una vez cada pocos miles de solicitudes. El generador devuelve un 503 con un encabezado Retry-After: 2. Haga clic en el botón Generar nuevamente; el segundo intento casi siempre tiene éxito porque la caché perimetral de Steam se ha calentado.

5. "Archivo de manifiesto vacío"

El manifiesto se descarga correctamente pero tiene 0 bytes o solo tiene el encabezado AppState y ningún campo. Esto significa que la aplicación no tiene depósitos públicos: la aplicación existe en el catálogo de Steam pero no se ha publicado ninguna compilación. Común para aplicaciones que aún se encuentran en estado "Próximamente", para aplicaciones cuyas compilaciones están restringidas a beta cerrada y para algunas herramientas de editor.

Por nuestra parte no hay solución. Una vez que el editor envía una compilación pública, el generador comenzará a devolver un manifiesto no vacío para App ID.

SteamTools.games frente a Watt Toolkit frente a GreenLuma frente a SteamDB

Es útil saber qué herramienta hace qué, porque las cuatro se mencionan en las mismas conversaciones de desbloqueo Steam.

HerramientaQué esQué haceCuando usarlo
SteamTools.games (este sitio)Un manifiesto web + generador LuaCrea los dos archivos que necesita SteamTools; no modifica su instalación de SteamCuando quieres el manifiesto y Lua para una aplicación específica sin instalar nada
Watt Toolkit (anteriormente Steam++)Un conjunto de utilidades Steam que incluye una bifurcación SteamToolsSe ejecuta localmente; proporciona aceleración de red, desbloqueo de logros y la función de desbloqueo de escritorio SteamToolsCuando desee un conjunto de modificaciones Steam local completo, no solo un manifiesto único
SteamTools (el cliente de escritorio)Una caché de clave de depósito Steam y un corredor LuaLee el manifiesto + Lua de depotcache y scripts/ y los ejecuta en el lanzamiento de SteamCuando tienes los archivos y quieres desbloquear la aplicación
GreenLumaUn desbloqueador Steam independiente que utiliza un mecanismo diferenteParchea el propio Steam para aceptar depósitos arbitrariosCuando necesita un desbloqueo no compatible con SteamTools (raro)
SteamDBUn rastreador de metadatos Steam de solo lecturaMuestra qué buildid, depósitos y sucursales existen para una aplicaciónCuando necesita buscar nombres de sucursales o verificar la última versión

Estas herramientas no son competencia: cubren diferentes capas del mismo flujo de trabajo. SteamTools.games pasa a SteamTools (el cliente de escritorio), que es lo que la mayoría de la gente quiere decir cuando dice "SteamTools".

Rendimiento y límites

  • El sitio está alojado en la red perimetral de Cloudflare. La primera solicitud después de un desalojo de caché es un inicio en frío (~600–1200 ms); las solicitudes posteriores al mismo AppID son cálidas (~150–300 ms).
  • /api/generate tiene una velocidad limitada a 1 solicitud cada 1,5 s por IP. /api/search es 1 por 300 ms por IP. Estos límites son intencionales, no negociables, y existen porque el punto final appdetails de Steam también tiene una velocidad limitada en sentido ascendente.
  • El generador no admite aplicaciones con más de 100 depósitos. No hemos visto una aplicación real con más de 30. Si encuentra una, presente un error al App ID.
  • El generador no admite ID de aplicaciones superiores a 2,147,483,647 (el límite int32). El App ID más alto que jamás hayamos resuelto está en el rango bajo de 4 millones; El propio Steam no asigna ID superiores.

Lo que no hace el servicio

  • No modifica ningún archivo del juego en tu máquina.
  • No omite el DRM, las comprobaciones de licencia ni la autenticación de Steam.
  • No almacena tu historial de búsqueda en un servidor. La franja "Reciente" en la página de inicio se lee en el localStorage de su navegador, no en el nuestro.
  • No requiere una cuenta, un correo electrónico ni un número de teléfono.
  • No agrupa ni redistribuye ningún contenido del juego. Los dos archivos que produce son pequeños archivos de texto (el manifiesto tiene menos de 4 KB; el Lua tiene menos de 1 KB).

Si alguna vez desea confirmar que el servicio está haciendo lo que dice, todo el lado del servidor está en src/routes/api/ y src/server.ts del proyecto de código abierto. El lado del cliente está en src/blocks/generator.tsx. Cada ruta de código es uno o dos archivos; No hay nada oculto detrás de un paso de construcción que no puedas inspeccionar.

Lectura adicional

Ver también