Daily streaks
Members keep a streak going by chatting a little every day. Reward roles can go to the longest streaks.
Setting it up
,streak enable 10
That turns streaks on with a goal of 10 messages a day (10 is also the default). You can change everything on the dashboard under Leveling → Daily streaks. The settings commands need Manage Server.
How a streak works
- A day is a UTC calendar day, the same for everyone. Each message a member sends counts towards that day's goal.
- When they reach the goal, the day is claimed: the bot reacts 🔥 to the message that reached it. With autoclaim off, members run
,streak claimthemselves. - Claiming the next day adds one to the streak. Missing a day starts it again from 1, unless you allow grace days.
- Turning streaks off keeps everyone's streak and calendar for when they're back on.
Settings
| Setting | Default | Range | Does |
|---|---|---|---|
goal | 10 | 1–500 | Messages a day to claim it |
minlength | 0 | 0–200 characters | Shorter messages don't count |
cooldown | 0 | 0–3600 seconds | Time between messages that count, so spamming doesn't fill the goal |
grace | 0 | 0–7 days | How many days in a row a member can miss without losing their streak |
channel | none | a text channel | Where the bot announces a member reaching a streak that has a reward |
,streak set goal 25 ,streak set cooldown 30 ,streak set grace 1 ,streak set channel #streaks
And four switches, flipped with ,streak toggle:
| Toggle | Default | When it's on |
|---|---|---|
autoclaim | on | The day is claimed as soon as the goal is reached |
removelower | off | Members only keep their highest streak reward role |
stripbreak | off | The reward roles are taken away when a streak breaks |
rejoinroles | off | A member who leaves and comes back with a live streak gets its roles back |
Reward roles
,streak rewards add 7 @Week Streak ,streak rewards add 30 @Month Streak
A role is given when a member claims a day with that streak or longer. A server can have up to 25 rewards, and each role can only be the reward for one streak length. The bot needs Manage Roles, and the role has to be below the bot's highest role. Roles with dangerous permissions are refused. Jailed members never get reward roles.
Commands for everyone
| Command | Does |
|---|---|
| ,streak | Your streak (or a member's), your best and today's progress |
| ,streak calendar | The last 5 weeks: 🟩 claimed, ⬛ missed, 🟨 today |
| ,dailystreak | Your own calendar |
| ,streak leaderboard | The longest streaks still going |
| ,streak claim | Claim today when autoclaim is off |
Resetting
,streak reset member @someone and ,streak reset all clear streaks and calendars, and ,streak rewards reset removes every reward. Each one asks you to confirm first.
Common problems
- "My streak reset at a weird time." Days follow UTC, not your timezone, so a day may end in the afternoon or evening where you live.
- A reward role wasn't given. Check the bot has Manage Roles and its highest role is above the reward role. Members get it the next time they claim a day.
- Messages aren't counting. They may be shorter than
minlength, or sent within the cooldown. Bot messages, commands and channels or members the bot ignores never count.