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#
set up stats
make the stats posts go to #stats
turn off voice tracking
set up server stats
add a booster counter
remove server statsset 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#
!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 serverEvery 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#
!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#
/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 chartTwo 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#
!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 leaderboardThe 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 overviewHow busy the server has been this week, and who is talking.
- !lbbumpalso /stats lbOne 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 invitesYour 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 lbThis server's invite leaderboard.
- !ginvitesalso /stats ginvitesYour invites across every Dispresso server.
- !lbginvitesalso /stats lbThe platform wide invite leaderboard.
- !srepalso /stats srepManual 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.