Engagement Features
Suggestions, reminders, AFK, temporary voice channels, auto-responses, voice XP, reaction XP, role persistence, birthdays, timezones, polls, events, and invite tracking.
Zagreus provides a suite of engagement features designed to increase community activity and improve quality of life for members. These tools run alongside the core trading and moderation systems and are independently configurable.
Suggestions
A structured suggestion system that lets members submit ideas and lets staff review and track them through a defined lifecycle.
Commands
| Command | Description |
|---|---|
/suggest setup <channel> | Set the channel where suggestions are posted. Suggestions appear as embeds with upvote and downvote reactions. |
/suggest submit <idea> [anonymous] | Submit a suggestion. Optionally mark it as anonymous to hide the author's name from the public embed. |
/suggest review <number> <status> [reason] | Review a suggestion by its number. Set the status and optionally provide a reason. |
Suggestion Lifecycle
| Status | Description |
|---|---|
| Pending | The default status when a suggestion is submitted. Open for community voting. |
| Approved | A moderator has approved the suggestion for implementation. |
| Denied | A moderator has denied the suggestion with an optional reason. |
| Implemented | The suggestion has been implemented. |
When a suggestion is submitted, the bot automatically adds upvote and downvote reactions to the embed for community feedback. Staff can review the vote counts alongside the suggestion when making a decision.
Reminders
Personal reminders that DM the user at a specified time.
Commands
| Command | Description |
|---|---|
/remind set <time> <message> | Set a reminder. The time can be a relative duration (e.g., 2h, 30m, 1d) or a specific date/time. The bot DMs you the message when the time arrives. |
/remind list | View all your active reminders with their scheduled times and messages. |
/remind cancel <number> | Cancel a specific reminder by its number from the list. |
Limits
| Limit | Value |
|---|---|
| Max reminders per user | 25 |
| Max duration | 1 year |
Reminders are delivered via DM. If the user has DMs disabled, the reminder is silently skipped.
AFK
Set an AFK status that notifies anyone who mentions you while you are away.
| Command | Description |
|---|---|
/afk [reason] | Mark yourself as AFK with an optional reason. |
Behavior
- When someone mentions an AFK user, the bot replies with an ephemeral message saying the user is AFK and showing their reason
- When the AFK user sends a message in any channel, their AFK status is automatically removed
- A welcome-back message is shown when AFK is cleared, including how long the user was away
Temporary Voice Channels
A join-to-create voice channel system that gives members personal, ephemeral voice channels.
Setup
| Command | Description |
|---|---|
/voice setup <channel> [category] | Designate a voice channel as the creator channel. Optionally specify the category where temporary channels are created. |
How It Works
- A member joins the designated creator channel
- The bot immediately creates a new voice channel and moves the member into it
- The member who created the channel is the owner and can manage it with the commands below
- When the last member leaves the temporary channel, it is automatically deleted
Management Commands
| Command | Description |
|---|---|
/voice rename <name> | Rename your temporary voice channel. |
/voice limit <number> | Set a user limit on your channel (0 for unlimited). |
/voice lock | Lock your channel — only users you have permitted can join. |
/voice unlock | Unlock your channel — anyone can join. |
/voice permit @user | Allow a specific user to join your locked channel. |
/voice reject @user | Remove a user from your channel and prevent them from rejoining. |
Only the channel owner can run management commands. Ownership cannot be transferred — if the owner leaves, the channel is unmanaged until it empties and is deleted.
Auto-Responses
Automatic replies triggered by message content. Useful for answering frequently asked questions, providing links, or fun community interactions.
Trigger Types
| Type | Description |
|---|---|
| Contains | Triggers when the message contains the keyword anywhere in its text. |
| Exact | Triggers only when the entire message matches the keyword exactly. |
| Starts with | Triggers when the message begins with the keyword. |
| Regex | Triggers when the message matches a regular expression pattern. |
Filtering
Auto-responses support granular filtering to control where and for whom they activate:
| Filter | Description |
|---|---|
| Role filter | Only trigger for users with (or without) specific roles. |
| Channel filter | Only trigger in specific channels. |
| Cooldown | Minimum time between activations of the same auto-response to prevent spam. |
Limits
| Limit | Value |
|---|---|
| Max auto-responses per server | 50 |
Auto-responses are configured and managed through the web dashboard at Settings > Auto-Responses.
Voice XP
Awards XP to members for time spent in voice channels. Voice XP contributes to the same leveling system as message XP, rewarding members who participate in voice conversations.
How It Works
- Members earn XP for every minute spent in a voice channel
- XP is awarded at a configurable rate (e.g., 5 XP per minute)
- The system checks voice state every minute and awards XP to eligible members
Requirements
To earn voice XP, a member must meet all of the following conditions:
| Requirement | Description |
|---|---|
| Not deafened | The member must not be server-deafened or self-deafened. |
| Not alone | At least one other non-bot, non-deafened member must be in the same channel. |
| Not in AFK channel | The server's designated AFK voice channel is excluded. |
| Not in blacklisted channel | Specific voice channels can be excluded from XP earning. |
Configuration
Voice XP is configured through the web dashboard at Settings > Voice XP.
| Setting | Description |
|---|---|
| XP per minute | How much XP is awarded per eligible minute in voice. |
| Minimum members | The minimum number of non-bot, non-deafened members required in the channel (default 2). |
| Blacklisted channels | Voice channels where XP is not earned. |
Reaction XP
Awards a small amount of XP when a member reacts to another user's message. Encourages engagement with community content.
Rules
- Self-reactions do not award XP — you cannot earn XP by reacting to your own messages
- A configurable cooldown prevents rapid reaction farming
- The XP amount per reaction is configurable
Configuration
| Setting | Description |
|---|---|
| XP per reaction | How much XP is awarded per qualifying reaction. |
| Cooldown | Minimum time between XP-earning reactions for the same user. |
Role Persistence
Role persistence saves a member's roles when they leave the server and restores them automatically when they rejoin. This prevents users from evading moderation punishments by leaving and rejoining.
Modes
| Mode | Description |
|---|---|
| All roles | All assignable roles are saved and restored. Roles above the bot's highest role are excluded since they cannot be assigned. |
| Allowlist | Only roles explicitly added to the allowlist are saved and restored. Use this for selective persistence (e.g., only persist punishment roles). |
Use Cases
- Moderation evasion prevention: Muted or restricted users cannot clear their roles by leaving and rejoining
- Role recovery: Members who accidentally leave do not lose their earned roles
- Verification persistence: Verified members do not need to re-verify after rejoining
Role persistence does not restore roles that have been deleted from the server while the member was absent. Only roles that still exist are restored.
Birthdays
Track member birthdays and see upcoming celebrations.
Commands
| Command | Description | Permission |
|---|---|---|
/birthday set <date> [timezone] | Set your birthday (YYYY-MM-DD format, optional IANA timezone) | Everyone |
/birthday remove | Remove your birthday | Everyone |
/birthday view [user] | View a birthday (default: yourself) | Everyone |
/birthday upcoming | Show birthdays in the next 7 days | Everyone |
Timezone defaults to UTC if not specified. Use IANA format like America/New_York or Europe/London.
Timezones
Store your timezone for easy time conversion between members.
Commands
| Command | Description | Permission |
|---|---|---|
/timezone set <tz> | Set your IANA timezone (e.g. America/New_York) | Everyone |
/timezone remove | Clear your stored timezone | Everyone |
/timezone view [user] | Show a user's current local time | Everyone |
/timezone convert <time> <from> <to> | Convert a time (HH:MM 24h) between two users' timezones | Everyone |
Polls
Create polls with button-based voting and live results.
Commands
| Command | Description | Permission |
|---|---|---|
/poll create <question> <options> [duration] [anonymous] | Create a poll (options separated by |, 2-10 options) | Manage Messages |
/poll end <poll-id> | End a poll early and show final results | Manage Messages |
Polls display live progress bars and vote counts. Duration supports formats like 30m, 1h, 7d. Anonymous mode hides voter identities.
Scheduled Events
Create community events with RSVP tracking.
Commands
| Command | Description | Permission |
|---|---|---|
/event create <title> <starts> <channel> [description] | Create an event with RSVP buttons | Everyone |
/event list | View upcoming events (up to 20) | Everyone |
/event cancel <id> | Cancel an event (creator or admin only) | Creator / Admin |
Events post an announcement embed with three RSVP buttons: Going, Decline, and Maybe. The starts option accepts ISO 8601 format (e.g. 2026-04-15T20:00Z).
Invite Tracking
Track who invited whom and see invite statistics.
Commands
| Command | Description | Permission |
|---|---|---|
/invites stats [user] | View invite count, leaves, and net invites | Everyone |
/invites leaderboard | View the top 15 inviters | Everyone |
/invites setup [log-channel] | Enable invite tracking (optionally set a log channel) | Administrator |
The bot monitors server joins and leaves, attributing each to the invite link used. The leaderboard ranks members by total invites.