Invite Tracking
Who invited whom, counted automatically, with a leaderboard and manual adjustments.
Overview#
Iris watches every invite in the server and works out which one a new member came through. Nobody has to claim a join, and nothing has to be set up: as long as Iris can read the invite list, counting starts the moment it joins.
A count is not one number. Iris separates people who joined and stayed from those who left again, and from accounts too new to be genuine, so an invite contest is judged on real members rather than on a total somebody farmed.
How a count is made up#
.invite-manage addbonus, for anything Iris cannot see.Custom join and leave messages#
With the join log on, turn on Custom message on the dashboard to post your own text instead of the default log embed. The join and leave messages each take the variables below. Mentions show as names and never ping anyone.
{user.mention}The member who joined or left{user.name}Their username{user.created_at}When their account was made{user.joined_at}When they joined the server{inviter.mention}Who invited them{inviter.invites}The inviter's total invites{inviter.regular}, {inviter.bonus}, {inviter.left}, {inviter.fake}The inviter's counts, split up{invite.code}The invite code used{invite.uses}How many times it has been used (joins only){invite.channel}The channel the invite points to (joins only){server}The server name{server.member_count}Members in the serverAvatar links are {user.avatar_url}, {inviter.avatar_url} and {server.icon_url}. Any number also answers to .ordinal, so {inviter.invites.ordinal} gives 12th. When Iris cannot tell who invited someone, the inviter and invite variables read "Unknown".
Commands#
Anyone#
/invites [user]Invite count for you or somebody else, broken down into the five figures above. Anyone
Staff#
.invite-manage leaderboard [limit]The members who have invited the most people.limitsets how many places are shown. Anyone.invite-manage inviter <user>Show who invited a given member. Anyone.invite-manage list [user] [role]List the members somebody has invited. Defaults to you, and can be narrowed to those holding one role. Anyone.invite-manage codes [user]Every invite code, with uses and expiry. Anyone.invite-manage addbonus <user> <amount>Grant bonus invites. Manage Server.invite-manage removebonus <user> <amount>Take bonus invites away. Manage Server.invite-manage addinvites <user> <amount>Add to the regular count directly. Manage Server.invite-manage removeinvites <user> <amount>Subtract from the regular count. Manage Server.invite-manage reset <target>Reset counts.targetis a member,serverto clear every count in the server, orleftto zero only the left figures. Manage Server.invite-manage liveboard <channel|off>Post a top 10 leaderboard in a channel that keeps itself up to date, move it by naming another channel, or remove it withoff. The same control is on the Leaderboard tab of the dashboard. Manage Server
Permissions#
What it looks like#
Tips and gotchas#
Every count is zero.
Iris is missing Manage Server. That permission is what lets it read the invite list, and nothing can be attributed without it.
A join was not credited to anyone.
It came through a vanity URL, a widget, or an invite created while Iris was offline. Those cannot be matched to an inviter after the fact.
Somebody is inviting alt accounts.
New accounts are counted as fake and do not add to the total. For a harder stop, verification blocks the second account outright.
Can I give a role for reaching a number of invites?
Not automatically. Check .invite-manage leaderboard and hand the role out with /role add.