Auto Level
Plugin name: autolevel
The AutoLevel plugin provides a guild leveling system that can reward roles to members for participating in text and voice channels.
The HepBoat autoleveling system also provides a means to have multiple guild leveling systems running at the same time, since each category can be set up with its own levelling system.
Commands
Arguments in {}
are required. Arguments in []
are optional.
Name | Description | Default Level | Usage |
---|---|---|---|
!level OR !rank | Shows the calling user's current points and levels in the guild. This level is not calculated based on the assigned levels in the configuration. | Default | !level OR !rank |
!top [index] | Shows the guild's top 10 ranked users overall or in the given index in addition to the calling user's current ranking. | Default | !top |
!alevel show [user] OR !alevel ls [user] | Shows all the indexes that the calling or given user is currently collecting points in. | Moderator | !alevel show 76685590585671680 OR !alevel ls 76685590585671680 |
!alevel level [rank] OR !alevel rank [rank] | Shows how many points are required to reach a specific rank. This rank is not calculated based on the assigned levels in the configuration. | Moderator | !alevel level 6 |
!alevel give {user} {points} [index] OR !alevel add {user} {points} [index] | Adds the given number of points to the given user in the given index. If no index is specified, it will use the default base configuration 0:0 index. | Administrator | !alevel give 76685590585671680 10000 0:0 |
!alevel take {user} {points/all} [index] OR !alevel rm {user} {points/all} [index] | Removes the given number of points to the given user in the given index. If no index is specified, it will use the default base configuration 0:0 index. | Administrator | !alevel take 76685590585671680 10000 0:0 |
!alevel reset [index] | Deletes all guild data for the given index. If no index is specified, it will use the default base configuration 0:0 index. | Administrator | !alevel reset 579304983896391681:0 |
!alevel import {type} {guild_id} [index] | Imports Mee6 or Tatsumaki points into the current guild in the given index. If no index is specified, it will use the default base configuration 0:0 index. Available types: Mee6 , Tatsumaki | Global Administrator | !alevel import tatsumaki 76685590585671680 0:0 |
The import command is only available to Global Admins. Please join our support guild to ask for assistance.
Configuration Options
Levelling indexes are assigned based on base and category configurations.
A default base configuration uses the index 0:0
. A base configuration that enables include_roles
and not include_channels
uses the index 0:role
. A base configuration that enables include_channels
uses the index 0:channel
.
Similarly, a default category configuration uses the index {category_id}:0
. A category configuration that enables include_roles
and not include_channels
uses the index {category_id}:role
. A category configuration that enables include_channels
uses the index {category_id}:channel
.
Option | Description | Type | Default |
---|---|---|---|
include_roles | A list of whitelisted roles. If empty, all roles are included by default. | list(snowflake) | empty |
exclude_roles | A list of excluded roles. | list(snowflake) | empty |
include_channels | A list of whitelisted channels. If empty, all channels are included by default. If set, only whitelisted channels (text or voice) will be counted. | list(snowflake) | empty |
exclude_channels | A list of excluded channels. | list(snowflake) | empty |
include_voice | A list of whitelisted voice channels. Voice channels need to be explicitly whitelisted, or they will not be counted. | list(snowflake) | empty |
include_voice_category | A list of whitelisted categories with child voice channels. Voice channels need to be explicitly whitelisted, or they will not be counted. | list(snowflake) | empty |
include_category | A list of whitelisted categories. | list(snowflake) | empty |
exclude_category | A list of excluded categories. | list(snowflake) | empty |
multiplier | A multiplier configuration that decides how many points are awarded for each message or period of voice activity. A multiplier must be manually set or the levelling system will not award any points. | dict | None |
multiplier_roles | A mapping of roles to an additional multiplier. Format of values is roleid: 3 | dict | empty |
weight | A weight configuration that will randomize the multiplier point value. | dict | None |
levels | A mapping of number of points to a role ID that will be assigned. | dict | None |
keep_previous | Whether or not to keep previous level roles when a new level is reached. | bool | False |
announce_msg | Message to post when a user reaches a new level role. | str | None |
announce_chan | The channel the announce message will be posted to | snowflake | None |
announce_dm | Whether or not to DM the announce_msg to the user when they reach a new level role. | bool | False |
seconds_per_point | Number of seconds before more points are awarded to a user. | int | 60 |
category | A mapping of category IDs to category autolevel configurations. | dict | None |
level_footer_url | An image URL for the level footer. If unset, it will default to the guild icon. | str | None |
Blacklists are respected over whitelists in a conflict.
Multiplier Configuration
Option | Description | Type | Default |
---|---|---|---|
message | Number of points to assign per message. | int | 25 |
voice | Number of points to assign per seconds_per_point period. | int | 25 |
If no multiplier configuration is set in a category configuration, it will inherit values from the parent base configuration.
Weight Configuration
Option | Description | Type | Default |
---|---|---|---|
message | +/- the number of points to the multiplier message value. | int | 5 |
voice | +/- the number of points to the multiplier voice value. | int | 5 |
seconds | +/- the number of seconds to the seconds_per_point value. | int | 15 |
If no weight configuration is set in a category configuration, it will inherit values from the parent base configuration.
Category AutoLevel Configuration
Option | Description | Type | Default |
---|---|---|---|
include_roles | A list of whitelisted roles. If empty, all roles are included by default. | list(snowflake) | empty |
exclude_roles | A list of excluded roles. | list(snowflake) | empty |
include_channels | A list of whitelisted channels. If empty, all channels are included by default. | list(snowflake) | empty |
exclude_channels | A list of excluded channels. | list(snowflake) | empty |
include_voice | A list of whitelisted voice channels. Voice channels need to be explicitly whitelisted, or they will not be counted. | list(snowflake) | empty |
include_voice_category | A list of whitelisted categories with child voice channels. Voice channels need to be explicitly whitelisted, or they will not be counted. | list(snowflake) | empty |
multiplier | A multiplier configuration that decides how many points are awarded for each message or period of voice activity. A multiplier must be manually set or the levelling system will not award any points. | dict | None |
multiplier_roles | A mapping of roles to an additional multiplier. Format of values is roleid: 3 | dict | empty |
weight | A weight configuration that will randomize the multiplier point value. | dict | None |
levels | A mapping of number of points to a role ID that will be assigned. | dict | None |
keep_previous | Whether or not to keep previous level roles when a new level is reached. | bool | False |
announce_msg | Message to post when a user reaches a new level role. | str | None |
announce_chan | The channel the announce message will be posted to | snowflake | None |
announce_dm | Whether or not to DM the announce_msg to the user when they reach a new level role. | bool | False |
seconds_per_point | Number of seconds before more points are awarded to a user. | int | 60 |
announce_msg
Message Tokens
The following tokens can be used in the announce_msg
contents to dynamically generate content when a new role is assigned.
Token | Description |
---|---|
{user} | Will mention the awarded user. |
{server} | Will include the server name. |
{channel} | Will mention the current channel. |
{new_role} | Will mention the newly assigned role. |
{r<snowflake>} | Will mention the specified role. |
{c<snowflake>} | Will mention the specified channel. |
{u<snowflake>} | Will mention the specified user. |
Configuration Example
plugins:
autolevel: # base configuration uses index 0:0, no voice channels enabled.
seconds_per_point: 1
keep_previous: true
multiplier:
message: 8
levels:
1000: 536728628680196126
2000: 536728691795951619
3000: 536728730714898442
category:
9843950989345098345: # uses index 9843950989345098345:role
include_roles:
- 3245098734095345980340
- 239045823094823094823
include_voice_category: # will give points for voice channels in this category.
- 9843950989345098345
multiplier:
message: 12
voice: 25
multiplier_roles:
536728691795951619: 2
weight:
message: 2
voice: 10
seconds: 4
levels:
500: 2385947349805897345
1500: 3245987345987345987
3000: 34534509834509340598
10000: 324590834509853450985
keep_previous: true
seconds_per_point: 15
announce_msg: '{user} has leveled up!! yeet!'
announce_chan: 3454908448974987444
2394823904823487897: # uses index 2394823904823487897:0
exclude_channels:
- 238945723472384234987
- 2354987324598734598755
multiplier:
message: 100
levels:
10000: 3458973458937534598
25000: 23458974328974234984
50000: 3459083450983458738
seconds_per_point: 30
keep_previous: true