Social/EXP Ranking

The Social module tracks users’ activity in a server (and globally) and rewards a certain number of experience points on each message. A server and a global leaderboards exist, making users aware of how much they are engaging with the community.

Warning

These limitations are applied to avoid users manipulating their EXP:

  • EXP is calculated on the amount of messages that are sent by the user. Message length doesn’t change the amount of EXP earned on each message.

  • Each message is given a random EXP value, ranging from 10 to 20 EXP.

  • A cooldown is applied after each EXP gain to avoid users spamming messages to power level their profile.

If the level up notifications are enabled on a server, users may be notified by DM or in the current channel as soon as they level up. Global level ups are never notified.

!profile

Command Syntax

!profile [user id/mention]

Command Description

Shows the server profile (including the EXP status) of a user. By default, it will show the profile of the user that runs the command. Users can check someone else’s profile by tagging them or using their ID.

Examples

!profile
!profile @cycloptux#1543
!profile 123456789098765432

!gprofile

Command Syntax

!gprofile [user id/mention]

Command Description

Shows the global profile (including the EXP status) of a user. By default, it will show the profile of the user that runs the command. Users can check someone else’s profile by tagging them or using their ID.

Examples

!gprofile
!gprofile @cycloptux#1543
!gprofile 123456789098765432

!leaderboard

Command Syntax

!lb [page #] [--days {# of days}]

Command Description

Prints the server social leaderboard. Use the --days parameter to look at the leaderboard limited to the latest X days.

Examples

!leaderboard
!leaderboard 2
!leaderboard --days 30

!gleaderboard

Command Syntax

!glb [page #] [--days {# of days}]

Command Description

Prints the global social leaderboard. Use the --days parameter to look at the leaderboard limited to the latest X days.

Examples

!gleaderboard
!gleaderboard 2
!gleaderboard --days 30

!expaddrole

Command Syntax

!expar (level) (role id(s)/mention(s)/q_name(s)) [--persistent] [--volatile]

Command Description

Adds one (or more) existing role(s) as reward for reaching a certain EXP level.

By default, obtained roles are removed if, and when, a reward of higher tier is reached. This behavior can be customized by using the --persistent or --volatile tags:

  • A persistent role is kept “forever”, even after obtaining a role given at a higher tier (level).

  • A volatile role is removed as soon as the user reaches the immediate next level.

“Adding” a role that already exists on a level replaces its settings with the new settings.

Note

Let’s make a practical example. User X is currently Lv. 4, and the server currently has these settings:

  • “Rookie”, obtained at level 5, volatile;

  • “Known Member”, obtained at level 5, persistent;

  • “Junior”, obtained at level 7;

  • “Senior”, obtained at level 10.

Upon levelling up to Lv. 5, X will obtain Rookie and Known Member. Upon levelling up to Lv. 6, X will lose Rookie (volatile). Upon levelling up to Lv. 7, X will obtain Junior, and keep Known Member (persistent). Upon levelling up to Lv. 10, X will obtain Senior, lose Junior, and keep Known Member (persistent).

Permissions Needed

User: Manage Roles
Bot: Manage Roles

Examples

!expar 5 @Rookie --volatile
!expar 5 "Known Member" --persistent
!expar 7 Junior
!expar 10 @Senior
!expar 15 "VIP Member" 123456789098765432 --persistent

!expremrole

Command Syntax

!exprr (level) (role id(s)/mention(s)/q_name(s))

Command Description

Removes one (or more) role(s) as reward for reaching a certain EXP level.

Note

This command will not remove any previously aquired role(s) from server members. It will only stop server members from obtaining the role(s) upon levelling up.

Permissions Needed

User: Manage Roles
Bot: Manage Roles

Examples

!exprr 5 @Rookie
!exprr 15 123456789098765432

!exproles

Command Syntax

!exproles

Command Description

Lists all of the EXP roles that are currently set in the current server.

Permissions Needed

Bot: Manage Roles

!exprapply

Command Syntax

!exprapply

Command Description

Recalculates the EXP role(s) each server member is entitled to have, and applies the correct set of roles to each user.

The command will apply the highest EXP tier role(s) and every “persistent” role below the current user level.

Note

This command will not remove any previously aquired role(s) from server members, even if the role in question is set as EXP role and no longer available to the user based on the current EXP roles chain.

Permissions Needed

User: Manage Roles
Bot: Manage Roles

!notifychannel

Command Syntax

!notifychannel [channel id(s)/mention(s)/q_name(s)]

Command Description

If used without any channel identifier, this command will toggle the in-channel notification for level ups in the whole server.

If used with one or more channel identifiers, it will toggle the channel into the blacklist/whitelist of channels that will show the in-channel notification. See below for more details.

Permissions Needed

User: Manage Channels

Examples

!notifychannel
!notifychannel #spam #bot-commands

!notifychannelmode

Command Syntax

!notifychannelmode

Command Description

Toggles the notification channel mode from blacklist (default) to whitelist and viceversa.

Blacklist mode will make any channel that is added with the above command not to show the level up message, while the rest of the channels will show the in-channel level up message.

Whitelist mode will only make the in-channel level up message appear in the selected channels.


!notifydm

Command Syntax

!notifydm

Command Description

Toggles the DM notification for level ups for all server members.


!notifystatus

Command Syntax

!notifystatus

Command Description

Shows the current status of the level up notification settings, as set by the above commands.