Как использовать манифест SteamTools и файлы Lua
Шаг за шагом: найдите Steam App ID, сгенерируйте манифест + Lua ZIP, установите SteamTools и поместите файлы в depotcache. Включает распространенные ошибки и исправления.
Последнее обновление: 2026-07-15
На этой странице описан генератор Steamtools.games: введите название игры или App ID, загрузите ZIP (Lua + key.vdf + README), затем используйте эти файлы с клиентом SteamTools для настольных компьютеров. Сам сайт не требует регистрации. Вам все равно необходимо установить SteamTools на свой компьютер, прежде чем файлы принесут какую-либо пользу.
1. Вы вводите название игры.
Поле ввода на домашней странице замедляет нажатие клавиш на 250 мс, а затем запрашивает у нашей конечной точки /api/search короткий список совпадений. Конечная точка передает результаты поиска в общедоступном магазине Steam и возвращает пять первых результатов, каждый из которых содержит App ID, отображаемое имя и небольшое изображение капсулы.
Локального индекса нет. Каждый поиск — это прямой путь к Steam. Мы не кэшируем результаты поиска в базе данных, поскольку каталог Steam достаточно велик, поэтому вероятность попадания в кэш будет низкой, а устаревшие результаты будут хуже, чем отсутствие кэша.
Если вы уже знаете App ID — а вам следует это сделать, поскольку поиск его — это 30-секундная работа для любой игры на Steam — вставьте его прямо в поле ввода. Генератор обнаруживает число из 4–10 цифр, отключает раскрывающийся список поиска и позволяет сразу перейти к шагу 3.
2. Вы выбираете результат
При нажатии на результат в раскрывающемся списке устанавливаются два скрытых значения состояния: App ID (целое число) и название игры. Поле ввода обновится и появится отображаемое имя, и кнопка «Создать» станет активной.
В раскрывающемся списке можно перемещаться с помощью клавиатуры. Клавиши со стрелками перемещают выделение, Enter выбирает, Escape закрывает его. Первый результат предварительно выделен, поэтому быстрый ввод выбирает лучший результат.
Если поиск возвращает нулевые результаты, в раскрывающемся списке отображается подсказка «нет совпадений» со ссылкой на поиск идентификатора приложения и ссылку на запись часто задаваемых вопросов для «моей игры нет в списке».
3. Генерация запроса
Нажатие кнопки «Создать» отправляет запрос POST /api/generate с App ID (и необязательным именем ветки — полезно для бета-веток Steam). Конечная точка:
- Проверяет, что App ID является положительным целым числом в допустимом диапазоне (от 1 до 2 147 483 647).
- Вызывает конечную точку
appdetailsSteam, чтобы подтвердить, что игра действительно существует, и получить каноническое имя и изображение капсулы. Это единственное место, где мы касаемся API Steam для генерации потока. - Считывает список хранилищ для запрошенной ветки из интерфейса
appinfoSteam, выбирает последнюю общедоступную сборку для каждого хранилища и определяет соответствующие ключи расшифровки хранилища. - Отрисовывает текст манифеста и текст сценария Lua на основе этих значений.
- Возвращает оба файла в виде
text/plain, чтобы браузер мог сохранить их с правильными именами без какого-либо состояния на стороне сервера.
Весь цикл туда-обратно обычно занимает 200–400 мс на теплом фронте и до 1,2 с на холодном (первый запрос после вытеснения кэша Cloudflare). Если вы когда-нибудь увидите, что это занимает больше 3 секунд, узким местом является конечная точка Steam appdetails, а не мы.
##4. Скачиваете ZIP и размещаете файлы
На карточке результатов предлагается Загрузить ZIP (рекомендуется), а также дополнительные прямые ссылки на файлы Lua и key.vdf. ZIP называется appmanifest_<APPID>_public.zip и содержит:
<APPID>_public.luakey.vdfREADME.txtс краткими примечаниями по установке
Вы также можете нажать /api/files/<APPID>/zip с помощью curl, если вы автоматизируете установку.
Размещение (рекомендуется для пакетов с этого сайта):
- Установите SteamTools, если вы еще этого не сделали.
- Скопируйте
.luaиkey.vdfв корень установки SteamTools — ту же папку, что и исполняемый файл SteamTools / Watt Toolkit (см. README внутри ZIP). - Полностью закройте и снова откройте SteamTools, затем обновите библиотеку.
Этот генератор не отправляет классические файлы appmanifest_*.acf. Макеты depotcache/scripts, используемые при разблокировке .acf, см. в разделе Файлы манифеста.
Веб-сайт никогда не запускает установщик на вашем компьютере и не хранит игровой контент — только небольшие текстовые файлы, которые вы загружаете.
Как эти четыре шага сочетаются друг с другом
┌────────────┐ 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
Что работает в браузере
Домашняя страница представляет собой приложение TanStack Start, отображаемое на сервере. После гидратации пользовательский интерфейс продукта запускается:
- Устранен дребезжащий поисковый ввод.
- Карта результатов генерации/загрузки.
— Полоса «Недавние», считывающая
localStorage.
Дополнительные сторонние скрипты (например, аналитика или реклама) могут загружаться при настройке — см. политику конфиденциальности. Они не требуются для поиска или генерации для работы.
Что работает на сервере
- Сервер Nitro, который обслуживает маршруты и объединяет модули сообщений параплана.
- Два маршрута API, оба в
src/routes/api/. - Ограничитель скорости на 1,5 с для каждого IP на
/api/generateи на 300 мс на/api/search. — Регистрация запросов на периферийном уровне для обнаружения злоупотреблений. Журналы меняются каждые 14 дней.
Пять ошибок и как исправить каждую
Это единственные ошибки, которые может вернуть генератор. Если вы его видите, значит, исправление находится на стороне Steam, а не на нашей.
1. «Приложение не найдено» (HTTP 404 от /api/generate)
Конечная точка appdetails Steam вернула success: false. Наиболее распространенной причиной является приложение, исключенное из списка Steam, но все еще установленное на вашем компьютере. Steam делает appdetails доступным для некоторых приложений, исключенных из списка, и недоступным для других. С нашей стороны нет обходного пути — см. страницу файлов манифеста, чтобы узнать, что делать, если это ваш случай.
Вторая наиболее распространенная причина — опечатка в App ID. App ID — целые числа; «Портал 2» — это 620, а не 620 (конечный пробел) или 0620 (начальный ноль). Повторно вставить без пробелов.
2. «Ветка не найдена»
Вы ввели имя ветки, которого нет в целевом приложении. Имена ветвей Steam чувствительны к регистру и должны точно совпадать: public, beta, beta_1, ptb, experimental. Если вы оставите поле пустым, вы получите публичную ветку.
Чтобы обнаружить доступные ветки для данного приложения, проверьте [вкладку ветвей SteamDB] (https://steamdb.info/) — эта страница является авторитетным источником названий ветвей и идентификаторов сборки каждой из них.
3. «Превышен лимит скорости»
Вы сделали более одного запроса /api/generate со своего IP за последние 1,5 секунды или более трех запросов /api/search за последние 300 мс. Подождите немного и повторите попытку. Невозможно «разблокировать» запрет на ограничение скорости — ограничение устанавливается автоматически, для каждого IP-адреса и сбрасывается самостоятельно.
Если у вас есть законная потребность в более высокой пропускной способности (сервер сборки, конвейер автоматизации), используйте public API и поместите свои запросы в цикл отсрочки. Обход ограничения скорости с несколькими IP-адресами является основанием для постоянной блокировки.
4. «Steam тайм-аут сведений о приложении»
Конечная точка Steam appdetails не вернулась в течение 5 с. Это происходит примерно раз в несколько тысяч запросов. Генератор возвращает 503 с заголовком Retry-After: 2. Нажмите кнопку «Создать» еще раз; вторая попытка почти всегда оказывается успешной, поскольку пограничный кэш Steam разогрелся.
5. «Пустой файл манифеста»
Манифест загружается успешно, но его размер равен 0 байт или он содержит только заголовок AppState и не содержит полей. Это означает, что у приложения нет общедоступных хранилищ — приложение существует в каталоге Steam, но сборка не опубликована. Обычное явление для приложений, все еще находящихся в статусе «Скоро», для приложений, сборки которых ограничены закрытой бета-версией, а также для некоторых инструментов издателя.
С нашей стороны исправления нет. Как только издатель опубликует общедоступную сборку, генератор начнет возвращать непустой манифест для App ID.
SteamTools.games против Watt Toolkit против GreenLuma против SteamDB
Полезно знать, какой инструмент что делает, поскольку все четыре упоминаются в одних и тех же обсуждениях разблокировки Steam.
| Инструмент | Что это такое | Что он делает | Когда его использовать |
|---|---|---|---|
| SteamTools.games (этот сайт) | Веб-манифест + генератор Lua | Создает два файла, необходимые SteamTools; не изменяет вашу установку Steam | Если вам нужен манифест и Lua для конкретного приложения, ничего не устанавливая |
| Watt Toolkit (ранее Steam++) | Пакет утилит Steam, включающий вилку SteamTools | Запускается локально; обеспечивает ускорение сети, разблокировку достижений и функцию разблокировки рабочего стола SteamTools | Если вам нужен полный локальный набор модов Steam, а не просто одноразовый манифест |
| SteamTools (клиент для настольных компьютеров) | Кэш ключей хранилища Steam и бегун Lua | Считывает манифест + Lua из depotcache и scripts/ и запускает их при запуске Steam | Если у вас есть файлы и вы хотите разблокировать приложение |
| GreenLuma | Отдельный разблокировщик Steam, использующий другой механизм | Исправляет сам Steam, чтобы он мог принимать произвольные хранилища | Когда вам нужна разблокировка, не совместимая с SteamTools (редко) |
| SteamDB | Трекер метаданных Steam только для чтения | Показывает, какие buildid, склады и филиалы существуют для приложения | Когда вам нужно найти имена ветвей или проверить последнюю сборку |
Эти инструменты не являются конкурентами — они охватывают разные уровни одного и того же рабочего процесса. SteamTools.games передает SteamTools (клиент для настольных компьютеров), что большинство людей имеют в виду, когда говорят «SteamTools».
Производительность и ограничения
- Сайт размещен в периферийной сети Cloudflare. Первый запрос после выселения кэша — холодный старт (~600–1200 мс); последующие запросы к тому же AppID теплые (~150–300 мс).
/api/generateимеет ограничение по скорости: 1 запрос за 1,5 с на IP./api/search— 1 на 300 мс для каждого IP. Эти ограничения являются преднамеренными, не подлежат обсуждению, и они существуют, поскольку конечная точкаappdetailsSteam также ограничена по скорости в восходящем направлении.- Генератор не поддерживает приложения с более чем 100 депо. Мы не видели реального приложения с более чем 30. Если вы его найдете, сообщите об ошибке с помощью App ID.
- Генератор не поддерживает идентификаторы приложений выше
2,147,483,647(ограничение int32). Самый высокий показатель App ID, который мы когда-либо разрешали, находится в диапазоне 4 миллионов; Steam сам по себе не присваивает более высокие идентификаторы.
Чего не делает сервис
- Он не изменяет файлы игры на вашем компьютере.
- Он не обходит DRM Steam, проверку лицензии или аутентификацию.
- Он не хранит вашу историю поиска на сервере. Полоса «Последние» на главной странице считывает данные из
localStorageвашего браузера, а не из нашего. - Для этого не требуется учетная запись, адрес электронной почты или номер телефона.
- Он не объединяет и не распространяет какой-либо игровой контент. Два файла, которые он создает, представляют собой крошечные текстовые файлы (манифест имеет размер менее 4 КБ; Lua — менее 1 КБ).
Если вы когда-нибудь захотите убедиться, что служба делает то, что говорит, вся серверная часть находится в src/routes/api/ и src/server.ts проекта с открытым исходным кодом. Клиентская часть находится в src/blocks/generator.tsx. Каждый путь кода представляет собой один или два файла; ничто не скрыто за этапом сборки, который вы не можете проверить.
Дальнейшее чтение
- Install SteamTools — настольный клиент Windows / macOS / Linux
- Объяснение файлов манифеста — что содержат файлы
- Как найти Steam App ID — если вы не знаете App ID
- FAQ — более длинный и глубокий список вопросов.
- Устранение ошибок генератора — версия приведенной выше таблицы ошибок в блоге.
- Developers/API — для автоматизации и использования сценариев.
См. также
- Что такое файл манифеста Steam и как его использовать с SteamTools? — полное руководство по входной двери; эта страница представляет собой более глубокое погружение в одну из ее частей.