Steam Achievement Manager для Linux — просматривай и вручную разблокируй / заблокируй достижения своих игр Steam. Маленькое нативное GUI-приложение на Rust.
- 🎮 Список достижений любой игры по её AppID — название, описание, API-код.
- ✅ Разблокировка / блокировка каждого достижения одной галочкой (сразу пишется в Steam).
- ⚡ Кнопки «Разблокировать все» и «Заблокировать все».
- 🔍 Поиск по списку и счётчик «Открыто: N/M».
- 🔒 Скрытые достижения помечаются замком.
- 🖼 Собственная иконка, окно и пункт в меню приложений.
- 🪶 Нативно и легко: чистый Rust + egui, без Electron.
- Rust (через rustup).
- Запущенный Steam, в котором ты залогинен.
- Игра должна быть в твоей библиотеке (на аккаунте есть лицензия).
- Системные dev-пакеты (Debian/Ubuntu):
sudo apt install build-essential pkg-config clang \ libgl1-mesa-dev libx11-dev libxcb1-dev libxkbcommon-dev libwayland-dev
libsteam_api.soпоставляется с крейтомsteamworksи автоматически кладётся рядом с бинарём (build.rs+ rpath$ORIGIN) — отдельно ставить SDK не нужно.
git clone https://github.com/GuardionSpend/achievault.git
cd achievault
cargo run --release # откроет окно-пикер
cargo run --release -- 480 # сразу загрузит игру с AppID 480 (Spacewar, для теста)./install.shСтавит в ~/.local без root: добавляет команду achievault в PATH и
пункт «Achievault» в меню приложений с иконкой. После этого:
achievault # окно-пикер
achievault 480 # сразу с игройЕсли команда не находится — добавь
~/.local/binвPATH.
- Узнай AppID игры одним из способов:
- из URL магазина:
store.steampowered.com/app/570/Dota_2/→ AppID =570; - на SteamDB — поиск по названию, AppID крупно вверху.
- из URL магазина:
- Запусти Achievault, введи AppID, нажми «Загрузить».
- Отмечай / снимай галочки — изменения сразу уходят в Steam (
StoreStats).
Steam (запущен) ──Steamworks API──► Achievault
▲ │
└──────── StoreStats / SetAchievement ┘
steamworks::Client::init_app(AppId)— подключается к локальному Steam от твоего аккаунта.request_current_stats()→ ждём колбэкUserStatsReceived(качаем колбэки каждый кадр egui).get_achievement_names()+achievement(name).{get,set,clear}()→store_stats().
| Файл | Назначение |
|---|---|
src/main.rs |
всё приложение: пикер, список, обработка Steam-колбэков |
build.rs + .cargo/config.toml |
авто-копирование libsteam_api.so рядом с бинарём + rpath |
examples/list.rs |
CLI smoke-test ядра без GUI |
install.sh |
установка в ~/.local (ярлык в меню, команда в PATH) |
assets/icon.png |
иконка приложения |
- Авто-подгрузка библиотеки (сетка игр с иконками через Steam Web API
GetOwnedGames). - Иконки самих достижений (
get_achievement_icon). - Редактирование числовой статистики.
Накрутка достижений не банится VAC, но: в играх с серверной валидацией статистики изменения могут откатываться, а часть разработчиков может наказывать за явные читы статов. Используй только для своих игр и на свой страх и риск.
Achievault — независимый неофициальный инструмент, никак не связан с Valve / Steam. Автор не несёт никакой ответственности за последствия использования — подробности в LICENSE.
Кастомная пермиссивная лицензия (в духе MIT) с расширенным отказом от ответственности — см. LICENSE.
