In this article, we will create a tier-based XP reward system for the number of messages sent by a user.


No. of Messages Sent

XP Reward

Level 0



Level 1

>=10 & <20


Level 2

>=20 & <40


Level 3



Step 1: Set-up the Member Fields

  1. Go to your BotDisco Dashboard

  2. Click on the Member Fields tab on your left

  3. Now create 3 Member Fields as follows:






To store XP Points of the user



To store the level of the user



To store the no. of messages user sent

Step 2: Create a Trigger for Channel Message on BotDisco's Dashboard

Suppose I want to create a trigger for any message sent out by users in the channel named "General".

  1. Open the BotDisco Dashboard.

  2. Click on the "+ New Flow" button.

  3. Select the trigger named "New Channel Message".

  4. Identify which text channel you want to create a trigger for any message sent out by users.

Step 3: Update message count of the user

Next, we want to update the message count by 1 for the user that sent the message.

  1. Open the BotDisco Dashboard.

  2. Click "Add Action" and then select "Set Member Field" option.

  3. Select the message count member field and increase its value by "1"

This increases the message count of the user each time he/she sends a message in your channel.

Step 4: Check and Reward XP to the user

Now we know the message count of the user, we'll see which level he gets and then reward him the XP points accordingly (as per the table above).

  1. Click "Add Action" and select "Filter".

  2. Check if the member qualifies for Level 1. Select member field Msg_Count is >= 10

  3. If that is true, Click 'Add Action" and select "Set Member Field". Then set Level to "1". Also repeat this step again to set XP to 10.

Do Step 2 and Step 3 again twice, to check for Level 2 and Level 3 qualification (refer to the video above).

Step 5: Create a custom command for user to check his XP and Level

Lastly, create a custom command for your server so any user can check their current server stats which is their XP and Level.

Step 6: Check the trigger and command on your server

Did this answer your question?