Skip to content

Modules

Stats

Activity charts, themed stat cards, server leaderboards, and the member counters in your channel list.

Every message and every minute in voice is counted, per member and per channel, from the day the bot arrives. What you do with that is a card you can post, a board people can climb, and a chart on the dashboard.

Or just tell the bot#

Say it in chat
set up stats
make the stats posts go to #stats
turn off voice tracking
set up server stats
add a booster counter
remove server stats

set up server stats is the other kind of stats: a Server Stats category at the top of the server with All Members, Humans and Bots channels that rename themselves on their own, never sooner than every ten minutes. add an online counter, add a humans counter and the rest add one at a time. The same counters, and a one-press starter set for All Members, Humans and Bots, are on the dashboard under Tracker channels. Start with dispresso or mention it. It asks for anything it still needs, writes the same settings the dashboard writes, and the whole list of sentences is on Talk to Dispresso.

Your own numbers#

Copy and paste
!stats                 /stats user            your activity card for this server
!msgs      [member]    /stats msgs            one number: messages here
!voicetime [member]    /stats voicetime       one number: voice time here
!bumps     [member]    /stats bumps           how many times you have bumped this server
!gmsgs / !gvoice / !gbumps    /stats gmsgs, gvoice, gbumps
                       the same three, added up across every Dispresso server

Every one of them takes a member, so !voicetime @someone works as well as !voicetime. The g in front is the only difference between the server number and the platform one.

The boards#

Copy and paste
!lb                    /stats lb              the overview: the top five of every board
!lbmsgs   !lbvoice     this server's messages and voice
!lblevels !lbcoins     this server's levels and wallets
!lbbump   !lbinvites   this server's bumps and invites
!lbglobal  !lbgvoice   the same two across the whole platform
!lbgbumps  !lbginvites the platform wide bump and invite boards

!lb is the one to remember. It opens a two column overview with the top five of each board and a button to open any of them in full, so nobody has to know the other nine words.

Leaderboard page 1 shows the top 10. Page 2 shows ranks 1-50, and each later page shows the next 50 in five columns. Use the Previous, Next, leaderboard switcher, and My rank buttons below the card to navigate.

For the whole server#

Copy and paste
/stats home            the menu, if you would rather click than remember
/stats server          the server overview card
/stats overview [#channel]   how busy the week has been, and who is talking
/stats top [members|channels]   the top of one or the other
/stats chart           the activity chart

Two more need Manage Server. /stats setup is a wizard for what is counted and where it goes, and /stats theme previews the look of the cards before you commit a server to it.

What's tracked#

  • Messages per channel and per member
  • Voice minutes per channel and per member
  • Joins, leaves, and net growth over time
  • Invites: who brought each member in, when Track invites is on

Invites#

Copy and paste
!invitedby [member]  who invited them, and who they have brought in
!invites            your invites in this server
!lbinvites          this server's invite leaderboard
!ginvites           your invites across every Dispresso server
!lbginvites         the platform wide invite leaderboard

The switch is Track invites on the Stats page of the dashboard, and the Invites tile in /botdashboard is the same switch. It is on by default. Dispresso keeps a copy of the server's invite links and works out which one was used on every join, so both the count and the record only start from the moment the bot is in the server with it on.

Who invited who#

Every join is written down with the invite that was used and the member who owns it, so it can be read back later. !invitedby @someone shows who brought them in and how many people they have brought in themselves. The Invites page on the dashboard shows the same thing as a table, plus the top inviters.

Discord never tells a bot which invite a member used, so some joins cannot be attributed and those say so rather than being left blank. A vanity URL has no owner. A join through the server widget or an OAuth link used no invite at all. And when two people's links both gain a use in the same instant there is no way to tell which one it was, so it is recorded as unknown instead of credited to a guess. Somebody who leaves and comes back keeps the member who first brought them in.

Invite rewards#

A server can pay server currency and server XP for a successful invite. Both are off until you turn the Invites module on and set an amount, on the Invites page of the dashboard.

The reward is not paid the moment somebody joins. It is owed, and paid once the invited member has been in the server for the stay window (a day by default). If they leave inside it, nobody is paid. On top of that: an invite of yourself pays nothing, a bot being added pays nothing, somebody rejoining pays nothing because that pair was already counted, an account younger than the minimum account age pays nothing, and each member can only be paid for so many invites in a day. An inviter who has left the server by the time the reward comes due does not collect it.

Commands#

  • /stats overview
    How busy the server has been this week, and who is talking.
  • !lbbumpalso /stats lb
    One number and one rank, for `!msgs` and friends. Deliberately a small embed rather than a card: these are the commands people spam mid-conversation, and a full render on every one of them would be slow and noisy in a busy channel. `!stats @member` is the card.
  • !lblevelsalso /stats lb
    `!lb` opens the two-column top-5 overview; each board is one click away.
  • !lbcoinsalso /stats lb
    `!lb` opens the two-column top-5 overview; each board is one click away.
  • !lbalso /stats lb
    `!lb` opens the two-column top-5 overview; each board is one click away.
  • !invitesalso /stats invites
    Your invites in this server. Tracked by Stats: switch on Track invites on the Stats page.
  • !invitedbyalso /stats invitedby
    `!invitedby @someone` says who invited them and who they have brought in. The pairing is kept per member, so a rejoin cannot be counted twice, and when Discord cannot tell which invite was used it says so instead of guessing. A server can reward an inviter in its own currency and XP from the Invites page.
  • !lbinvitesalso /stats lb
    This server's invite leaderboard.
  • !ginvitesalso /stats ginvites
    Your invites across every Dispresso server.
  • !lbginvitesalso /stats lb
    The platform wide invite leaderboard.
  • !srepalso /stats srep
    Manual re-check for Status Rep. Presence updates already grant/remove the role automatically. This is only for "I want it right now" instead of waiting on Discord to report the status change. Deliberately does not gate on the stats module: Status Rep is its own module, and !stats rep (via _dispatch_stats_action) incorrectly required stats to be on too.