A Windows desktop app that visualizes your gaming history from Playnite's GameActivity logs. It shows period views (Day/Week/Month/Year), All Activity, a per-game Sessions (ledger) view, and a Top Activity overlay. The UI is themable via INI and supports PNG-skinned charts, gamepad input (XInput), and optional SFX/music.This as is inspired by NX-aćtivity log from tallbl0nde

  1. How it works

  1. Sync: On first run, the app copies Playnite's GameActivity/*.json and library/games.db into app_data/database/... next to the EXE. It also builds a local app_data/icons cache.
  2. Load & aggregate: Sessions are parsed and summed per game, and binned by the selected period.
  3. Render: A Matplotlib chart + list/ledger are rendered with your theme settings. The Top Activity overlay shows period highlights.

  4. Install & Run
  5. Extract the ZIP anywhere you have write access (no admin needed).
  6. Keep this structure intact: ShadasActivityLog.exe assets/ # configs, skins, audio, dotnetlitedb.dll (see below) app_data/ # created on first run
  7. Double-click ShadasActivityLog.exe.
  8. Required files next to the EXE
  9. assets/config.ini (and any .ini/skins you use).
  10. assets/dotnetlitedb.dllRequired to read Playnite's games.db (LiteDB) directly. You can copy it from playnite folder.
  11. Why: Playnite stores library metadata (e.g., game name, CoverImage) in a LiteDB database. This DLL provides a minimal, read-only bridge so the app can resolve names/covers consistently and prefetch the correct icon per GUID without relying on brittle file guesses.
  12. If missing: The app still runs, but library lookups and icon prefetch may be degraded (names might fall back to IDs; covers may be missing or generic).
  13. Packaging note: For one-file EXE builds, include it via your packager's "add data" mechanism so it ends up in assets/ at runtime.

Data retention & Playnite deletions (read this)

  • If you delete a game in Playnite, you usually lose its playtime history in Playnite.

  • This app preserves your history. It keeps local copies of GameActivity JSON under app_data/database/playdata/, so playtime remains visible here even after you remove the game from Playnite.

  • Want it gone here too? Manually delete the corresponding JSON in app_data/database/playdata/ (and optionally its icon folder in app_data/icons/<GUID>/ and any snapshots in app_data/log_backups/backup_YYYY-MM-DD/). That's the only way to fully purge it from this app.

First launch: folder layout

On first run the app will create:

app_data/ database/ playdata/ # copied GameActivity JSON games.db # copied Playnite DB (if found) icons/ # one cover per <GUID> (prefetched/pruned) log_backups/ backup_YYYY-MM-DD/ # daily JSON snapshots (read-only backups)

Configuration (INI)

  • Bar widths/caps per period, label fonts, colors, and skin PNGs.

  • Day view can map hours to multiple "skins."

  • Backup behavior (enable/retention/auto-zip).

  • Top bar/list/ledger font sizes.

  • Scrollbar skinning (width/radius/pngs).

  • Gamepad and audio (volumes, enable/disable).

Controls & Audio

  • Gamepad: XInput (Xbox-style) supported out of the box (D-pad/ABXY/shoulders/back).

  • Audio: Optional SFX/music if Qt Multimedia is available; volumes are INI-controlled.

Logs & Support

  • A playactivity.log file is written next to the EXE. If something looks wrong (no icons, empty chart), check the log and confirm app_data/database/playdata and app_data/database/games.db exist.

Known limitations

  • Windows-only paths assumed for Playnite (%AppData%\Roaming\Playnite). If Playnite isn't installed, manually place your JSONs in app_data/database/playdata and (optionally) a valid games.db in app_data/database.

  • If assets/dotnetlitedb.dll is missing, names/covers may be incomplete (the app won't touch your Playnite DB; it is read-only even when present).

Straight talk

This EXE build prioritizes reliability and deterministic visuals. If you need a portable build without games.db access, it will run—but expect reduced metadata and icon accuracy. Keep assets/dotnetlitedb.dll in place if you want full fidelity for names and covers.

Controls

Gamepad (XInput)

  • D-pad / Left stick — navigate lists

  • Right stick — fast scroll

  • A — confirm / open (on a game = open Sessions)

  • B — back / close

  • XFilter dialog (disabled in All Activity)

  • YDate picker

  • LB / RB — switch period (Day ⇄ Week ⇄ Month ⇄ Year)

  • LT / RT — decreasing/increasing date on picked filter

  • START / MenuSort dialog

  • L3 (press left stick) — toggle Top Activity overlay

  • L3+R3 — exit app

Keyboard

  • Arrow keys — navigate

  • Enter — confirm / open

  • Backspace — back / close

  • F — Filter, S — Sort, D — Date

  • D / W / M / Y — Day / Week / Month / Year

  • PgUp / PgDn / Home / End — fast scrolling

  • Alt+F4 — exit app

License / credits

  • App code & docs: MIT (LICENSE included).

  • Third-party:

    • PySide6/Qt (LGPLv3),

    • Matplotlib (BSD),

    • LiteDB (MIT; used via dotnetlitedb.dll),

    • Python (PSF), if embedded.

  • Playnite is a trademark of its owner. This project is not affiliated with or endorsed by Playnite.

Download Shadas Activity Log V1.0:  https://www.mediafire.com/file/e61rvsi85fpxjs7/Shadas_PlayActivity_V1.zip/file

Download testing Database

https://www.mediafire.com/file/ik1j2br316lt243/Shadas_Activity_Testing_Database.zip/file

Vytvořte si webové stránky zdarma! Tento web je vytvořený pomocí Webnode. Vytvořte si vlastní stránky zdarma ještě dnes! Vytvořit stránky