Skip to content

GuardionSpend/achievault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Achievault logo

Achievault

Steam Achievement Manager для Linux — просматривай и вручную разблокируй / заблокируй достижения своих игр Steam. Маленькое нативное GUI-приложение на Rust.

Rust Linux Steam egui

status platform license made with


✨ Возможности

  • 🎮 Список достижений любой игры по её AppID — название, описание, API-код.
  • ✅ Разблокировка / блокировка каждого достижения одной галочкой (сразу пишется в Steam).
  • ⚡ Кнопки «Разблокировать все» и «Заблокировать все».
  • 🔍 Поиск по списку и счётчик «Открыто: N/M».
  • 🔒 Скрытые достижения помечаются замком.
  • 🖼 Собственная иконка, окно и пункт в меню приложений.
  • 🪶 Нативно и легко: чистый Rust + egui, без Electron.

📸 Как выглядит

Achievault — скриншот

⚙️ Требования

  • 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 не нужно.


🚀 Установка

Вариант 1 — быстрый запуск

git clone https://github.com/GuardionSpend/achievault.git
cd achievault
cargo run --release            # откроет окно-пикер
cargo run --release -- 480     # сразу загрузит игру с AppID 480 (Spacewar, для теста)

Вариант 2 — установка в систему (значок в меню + команда achievault)

./install.sh

Ставит в ~/.local без root: добавляет команду achievault в PATH и пункт «Achievault» в меню приложений с иконкой. После этого:

achievault            # окно-пикер
achievault 480        # сразу с игрой

Если команда не находится — добавь ~/.local/bin в PATH.


🎮 Как пользоваться

  1. Узнай AppID игры одним из способов:
    • из URL магазина: store.steampowered.com/app/570/Dota_2/ → AppID = 570;
    • на SteamDB — поиск по названию, AppID крупно вверху.
  2. Запусти Achievault, введи AppID, нажми «Загрузить».
  3. Отмечай / снимай галочки — изменения сразу уходят в 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.

About

Achievault — Steam Achievement Manager for Linux (Rust + egui)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors