Zagreus

Gaming Stats

Track gaming activity through Discord presence detection with playtime analytics, achievements, role rewards, and leaderboards.

Zagreus tracks gaming activity for every member in your server by reading Discord presence data. It records play sessions, calculates playtime, tracks streaks, awards achievements, assigns roles, and powers server-wide leaderboards — all without any manual input from users.

Enable Discord Activity Status in Settings > Activity Privacy for game tracking to work. If your activity status is disabled, Zagreus cannot detect what you are playing.

How It Works

Presence detection

When a member starts playing a game, Discord broadcasts a presence update to all servers they share with the bot. Zagreus listens for these updates and begins a play session.

Session recording

The bot records the start time, game name, and user ID. When the user stops playing (presence changes away from the game), the session end time is captured.

Periodic flush

Every 30 seconds, the bot flushes active session data to the database. This ensures that even if the bot restarts unexpectedly, at most 30 seconds of playtime is lost.

Playtime rollups

Sessions are aggregated into per-user per-game totals. These rollups power leaderboards, streak calculations, milestone tracking, and role rewards.

Analytics and display

Users and moderators can query playtime data via slash commands or the web dashboard. Data is presented as charts, leaderboards, and detailed session histories.


Valid Sessions

A session must be 10 minutes or longer to count as a valid session. Sessions shorter than 10 minutes are still recorded for total playtime, but only valid sessions count toward session counts, achievements, and milestone tracking.


Commands

All commands are under /playtime. Options marked with * are required.

Your Stats

CommandDescription
/playtime top [count] [period]Your top games by playtime. Period: all-time, 7/30/365 days.
/playtime game <name>*Detailed playtime stats for a specific game.
/playtime sessions [game] [count]Your recent gaming sessions (up to 25).
/playtime mytopQuick view of your top 10 most played games.
/playtime recentYour last 5 recently played games.
/playtime profile [user]View a gaming profile card with stats, streaks, and badges.
/playtime streakYour current and longest gaming streak + streak leaderboard.
/playtime achievementsView your earned achievements and progress toward locked ones. Newly earned achievements are awarded automatically.
/playtime wrapped [period]Your personalized gaming recap — month or year summary.
/playtime peakhoursServer gaming activity heatmap by hour and day.
/playtime scoreServer-wide gaming activity score (0-100).
/playtime exportExport your complete gaming data as JSON.

Server & Social

CommandDescription
/playtime leaderboardServer gaming leaderboard — all-time top players by hours.
/playtime insightsGaming activity insights for the whole server.
/playtime trends <game>*Game popularity trend over the last 8 weeks.
/playtime compare <user>* [game]Head-to-head playtime comparison with another user.
/playtime playnow <game>*See who is currently playing a specific game.
/playtime lfg <game>* [platform] [message] [max_players]Create a "Looking For Group" request to find players.
/playtime challenge <user>* [game] [duration] [action]Challenge another player to a gaming duel (1 day, 3 days, or 1 week).

Privacy

CommandDescription
/playtime privacy statusView your current tracking settings.
/playtime privacy opt-outStop all game tracking. Existing data is retained but hidden.
/playtime privacy opt-inRe-enable game tracking.
/playtime privacy set-public <public>*Toggle whether your gaming profile is publicly visible.
/playtime privacy blacklist-add <game>*Hide a specific game from your profile and stats.
/playtime privacy blacklist-remove <game>*Un-hide a previously blacklisted game.
/playtime privacy blacklist-listView all your blacklisted games.

Alerts

CommandDescription
/playtime alerts add <game>*Get a DM when someone in the server starts playing a game.
/playtime alerts remove <game>*Remove a game alert.
/playtime alerts listView your active game alerts.

Goals

CommandDescription
/playtime goals set <type>* <hours>* [game]Set a daily or weekly gaming time goal (overall or per-game).
/playtime goals remove <type>* [game]Remove a gaming time goal.
/playtime goals checkCheck progress on your active goals.

Admin Commands

The following commands require Administrator permission.

CommandDescription
/playtime admin enableEnable game tracking for this server.
/playtime admin disableDisable game tracking for this server.
/playtime admin set-live-feed <channel>*Set the channel for the persistent "Currently Playing" embed.
/playtime admin set-digest-channel <channel>*Set the channel for periodic gaming digests.
/playtime admin set-digest-frequency <freq>*Set digest frequency: daily, weekly, monthly, or disabled.
/playtime admin send-digestSend the gaming digest immediately without affecting the schedule.
/playtime admin milestones-enableEnable milestone announcements.
/playtime admin milestones-disableDisable milestone announcements.
/playtime admin milestones-channel <channel>*Set the channel for milestone announcements.
/playtime admin milestones-add <type>* <threshold>*Add a custom milestone threshold.
/playtime admin milestones-remove <type>* <threshold>*Remove a milestone threshold.
/playtime admin milestones-listView all configured milestone thresholds.

Features

Achievements

Zagreus awards 13 achievements for gaming milestones and behaviors. When earned, achievements are displayed on your profile and can automatically assign Discord roles (configurable per server).

AchievementRequirement
Night Owl10+ late-night gaming sessions (after midnight)
Early Bird10+ early morning sessions (before 8 AM)
Marathon RunnerA single session lasting 6+ hours
Variety Gamer10+ different games played in one week
Dedicated100+ hours in a single game
Centurion500+ total hours of gaming
Explorer25+ different games played
Grand Explorer50+ different games played
On Fire7-day gaming streak
Unstoppable30-day gaming streak
Living Legend100-day gaming streak
Regular100+ total gaming sessions
Veteran1,000+ total gaming sessions

Role Rewards

Servers can configure Discord roles to be automatically assigned when:

  • An achievement is earned — e.g., earning "Centurion" gives the @Centurion role
  • A playtime threshold is reached — e.g., 50 cumulative hours gives the @ICG Guild role

Role rewards are configured per server via the dashboard (Settings > Gaming > Role Rewards) and assigned automatically. Achievement roles are granted when a user runs /playtime achievements. Playtime roles are assigned on every session flush (every 30 seconds).

Streaks

Zagreus tracks daily play streaks for each user. A streak increments for every consecutive day with a valid 10+ minute session. Missing a day resets the streak.

  • Current streak and longest streak are shown on profiles
  • Streak milestones (7, 30, 60, 100, 365 days) can trigger announcements
  • Streaks power the On Fire, Unstoppable, and Living Legend achievements

Milestones

When cumulative stats cross configurable thresholds, the bot announces the achievement in the designated channel. Default thresholds:

TypeDefault Thresholds
Game Hours50, 100, 250, 500, 1,000 hours per game
Total Hours100, 250, 500, 1,000, 2,500 hours overall
Unique Games10, 25, 50, 100 different games
Sessions100, 500, 1,000, 5,000 valid sessions
Streak7, 30, 60, 100, 365 consecutive days

Admins can add or remove custom thresholds via /playtime admin milestones-add and /playtime admin milestones-remove.

Challenges

Players can challenge each other to head-to-head gaming duels using /playtime challenge. Choose a game, set the duration (1 day, 3 days, or 1 week), and whoever logs more playtime in that game wins. Challenges are tracked live and the winner is announced automatically.

Game Metadata (IGDB)

Zagreus enriches game data using the IGDB database — cover art, genres, ratings, and summaries are displayed alongside your stats wherever possible.

Live Feed

A persistent embed in a designated channel shows who is currently playing and what they're playing. The embed auto-updates as members start and stop gaming sessions.

Digests

Periodic gaming digests summarize server activity:

  • Daily/Weekly/Monthly frequency (configurable)
  • Top games, most active players, trending games, busiest day
  • Comparison stats vs. the previous period
  • Posted automatically or on-demand with /playtime admin send-digest

Privacy

Opt-Out

Users can opt out of game tracking entirely with /playtime privacy opt-out. When opted out, no sessions are recorded, and the user is hidden from leaderboards and feeds. Existing data is retained but not displayed.

Blacklist

The blacklist commands let users hide specific games from their profile. Useful for non-gaming apps that Discord detects as games, or games you'd rather keep private.

Profile Control

Users control their public visibility with /playtime privacy set-public. When set to private, your gaming profile is only visible to you and server admins.

Even when opted out, server admins can see aggregate (anonymous) statistics. Individual user data is never exposed without the user's consent.

On this page