QuestLog Bot for Discord
Complete guide to every feature - setup, configuration, and day-to-day usage.
Table of Contents
- QuestLog Bot for Discord - Complete Guide
- Table of Contents
- Getting Started
- XP & Leveling
- Looking for Group (LFG)
- Welcome & Goodbye Messages
- Verification
- Moderation & Auto-Mod
- Reaction Roles
- Role Management
- RSS Feeds
- Live Stream Alerts
- Raffles
- Scheduled Messages
- Audit Logging
- Channel Management
- Flairs & Ranks
- QuestLog Network Integration
- Slash Commands Reference
QuestLog Bot for Discord - Complete Guide
Everything you need to know to get the most out of QuestLog Bot on your Discord server. Every feature can be configured from the web dashboard - no slash commands required for most settings.
Table of Contents
- Getting Started
- XP & Leveling
- Looking for Group (LFG)
- Welcome & Goodbye Messages
- Verification
- Moderation & Auto-Mod
- Reaction Roles
- Role Management
- RSS Feeds
- Live Stream Alerts
- Raffles
- Scheduled Messages
- Audit Logging
- Channel Management
- Flairs & Ranks
- QuestLog Network Integration
- Slash Commands Reference
Getting Started
Add the Bot
- Click Add to Discord
- Select your server and approve the permissions
- Run
/questlog synconce to register all slash commands in your server
Access the Dashboard
Go to casual-heroes.com/ql/dashboard/discord/ - you'll be prompted to authenticate with Discord. Once logged in, you'll see all servers you manage.
Required Permissions
| Permission | Used for |
|---|---|
| Administrator | Full feature access (recommended) |
| Manage Roles | Auto-roles, level roles, verification, reaction roles |
| Manage Channels | Channel management, stat trackers |
| Kick/Ban Members | Moderation commands |
| Moderate Members | Timeout command |
| Send Messages | All bot responses and announcements |
| Embed Links | Rich embeds for all features |
| Read Message History | Audit logging, moderation |
| Add Reactions | Reaction role setup |
| Use Application Commands | Slash commands |
XP & Leveling
Members earn XP through activity across multiple sources. XP accumulates into levels with configurable rewards.
XP Sources
| Source | Default | Cooldown | Notes |
|---|---|---|---|
| Messages | 2 XP | 60 sec | Per channel, per user |
| Media/Images | Multiplier | 60 sec | Applied on top of message XP |
| Voice chat | Configurable | Per interval | While connected and not muted |
| Reactions | Configurable | Per reaction | Given to the reactor |
| Slash commands | Configurable | Configurable | Any command usage |
| Gaming activity | Configurable | Per interval | Discord presence/activity detection |
| Invites | Configurable | Per invite | When someone joins via your invite link |
Configuration (Dashboard)
Go to Dashboard > XP & Leveling to configure:
- Enable/disable XP - Toggle the whole system on or off
- Per-source rates - Set XP amounts individually for each source
- Cooldowns - Control how often each source can earn XP per user
- Media multiplier - Bonus multiplier when a message includes an image or attachment
- Max level - Cap progression (default: 99)
- Level-up messages - Announce when someone levels up
- Excluded channels/roles - Channels or roles that earn no XP
Level Formula
XP required for each level uses a progressive curve: level_xp = 7 * (level + 1)^1.5
This means early levels are quick, later levels take more time - rewarding long-term active members.
Level Roles
Automatically assign roles at milestone levels:
- Go to Dashboard > XP & Leveling > Level Roles
- Add a role and the level required to earn it
- The bot assigns the role automatically when a member hits that level
XP Boost Events
Run time-limited multipliers for game launches, events, or milestones:
- Go to Dashboard > XP & Leveling > Boost Events
- Set a name, multiplier, start time, and end time
- The boost activates and expires automatically
Multiple active boosts stack additively: 2x + 2x = 3x total.
Hero Tokens
Alongside XP, members earn Hero Tokens used across the QuestLog economy: - Active XP sources (messages, voice, reactions): 15 tokens per 100 XP - Passive XP sources (gaming activity): 5 tokens per 100 XP
Tokens are spent on raffles, flair purchases, and featured pool entries.
Looking for Group (LFG)
A full group-finding system for any game. Members create posts, others join, threads keep communication organized.
Setup
- Go to Dashboard > LFG
- Enable LFG and set the announcement channel
- Configure optional settings: threads, attendance tracking, group expiry
Creating a Group
Members use /lfg create in Discord or create groups from the QuestLog web portal. When created, the bot:
- Posts a formatted embed in your LFG channel
- Creates a dedicated thread for group discussion (if enabled)
- Lists the group in the web portal's LFG browser
Slash Commands
| Command | Description |
|---|---|
/lfg create |
Create a new group |
/lfg list |
Browse active groups |
/lfg join <id> |
Join a group |
/lfg leave |
Leave your current group |
/lfg delete |
Delete your group (admins can delete any) |
Game Search
When creating a group, the bot searches IGDB for the game name you type. It returns the canonical name and cover art to use in the LFG embed. You can also use custom games defined by your server admins.
Roles (Game-Specific)
For games with structured roles (Tank/Healer/DPS, etc.), members can specify which role they're filling. Your server can configure custom role systems for your specific games.
Threads
When thread mode is enabled, the bot creates a dedicated thread for each group. It cleans up the automatic "X joined the thread" system messages to keep things tidy.
Attendance Tracking
With attendance tracking enabled, the bot records who attended each session. Members can see their attendance stats and admins can view session history in the dashboard.
Welcome & Goodbye Messages
Fully customizable messages when members join or leave.
Setup
Go to Dashboard > Welcome to configure all options.
Welcome Channel Message
Post to a public channel when someone joins. Supports text or a full embed (title, description, color, thumbnail, footer).
Available variables:
| Variable | Value |
|---|---|
{user} |
@mention of the new member |
{username} |
Display name |
{discriminator} |
User discriminator (#0000) |
{user_id} |
Discord user ID |
{server} |
Server name |
{member_count} |
Total member count |
{member_count_ord} |
Ordinal (e.g. "42nd") |
{join_number} |
Which join this is (your server's sequence) |
{join_number_ord} |
Ordinal form of join number |
{created_at} |
When their Discord account was created |
{avatar_url} |
Link to their profile picture |
Welcome DM
Send a private welcome message directly to the new member. Same variables supported. Good for rules, invite links, or getting-started guides.
Goodbye Messages
Announce when a member leaves. Supports {username} and {server}. Set a separate channel from welcome if preferred.
Auto-Role
Assign one or more roles automatically when a member joins. Use this for your default "member" role, verified role, or any role all members should have.
Verification
Gate new members behind a verification step before they can access your server.
Setup
- Go to Dashboard > Verification
- Choose a verification type
- Set quarantine and verified role IDs
- Configure timeout (auto-kick if unverified after N minutes)
Verification Types
| Type | Description | Best For |
|---|---|---|
| None | No verification - all members get access instantly | Small, trusted servers |
| Button | Member clicks an "I agree" button | Simple rules acceptance |
| Captcha | Member solves an image CAPTCHA (6 characters) | Blocking basic bot attacks |
| Account Age | Auto-verify if account is older than X days | Filtering brand-new accounts |
| Multi-Step | Combination of steps + intro message | High-security servers |
How the Quarantine Works
Unverified members: - Are assigned the quarantine role (no channel access) - Can only see the verification channel - Have N minutes to complete verification before being auto-kicked
Once verified: - Quarantine role is removed - Verified role is assigned - Full server access granted
CAPTCHA Details
The captcha is a server-side image challenge: - 6 random characters displayed in a distorted image - 5-minute expiry - Member types the code in a modal - Incorrect answers prompt them to try again
Moderation & Auto-Mod
Manual moderation tools plus automatic detection of harmful content.
Manual Commands
| Command | Permission | Description |
|---|---|---|
/mod warn <user> [reason] |
Manage Messages | Issue a formal warning |
/mod timeout <user> <duration> [reason] |
Moderate Members | Temporarily mute |
/mod kick <user> [reason] |
Kick Members | Remove from server |
/mod ban <user> [reason] |
Ban Members | Permanently ban |
/mod jail <user> [reason] |
Manage Roles | Restrict all channel access |
/mod mute <user> [reason] |
Manage Roles | Block send message permission |
Auto-Moderation
Enable auto-mod from Dashboard > Moderation > Auto-Mod.
What it detects: - Racist and xenophobic slurs - Homophobic slurs - Ableist slurs - Hate speech and suicide baiting
Escalation system: - 3 warnings in 30 days - automatic timeout - 5 warnings in 30 days - automatic jail (restricted access) - The bot will never automatically ban - that always requires a human decision
Warning Decay: Warnings older than 30 days don't count toward escalation thresholds.
Strict Mode: Enable an additional set of lower-confidence patterns for servers that want more aggressive filtering.
Dashboard
Go to Dashboard > Moderation to: - View all warnings for every member - Pardon individual warnings - Configure the jail role and muted role - Set escalation thresholds
Reaction Roles
Members self-assign roles by reacting to a message with a specific emoji.
Setup
- Go to Dashboard > Reaction Roles
- Add a new reaction role setup - paste the message ID and channel
- Map emoji to roles
- Save - the bot starts watching that message immediately
How it Works
- Member adds a reaction: bot assigns the corresponding role
- Member removes the reaction: bot removes the role
- Works with both Unicode emoji and custom server emoji
Role Management
Tools for managing roles at scale.
Features
| Feature | Description |
|---|---|
| Role Templates | Save a role configuration and reapply it to create consistent roles |
| Mass Operations | Add or remove a role from multiple members at once |
| Temp Roles | Assign a role for a limited time - auto-expires |
| Role Requests | Members request specific roles; mods approve or deny |
| Level Roles | Auto-assign roles at XP level milestones |
| Access Audit | Export a CSV of which members hold which roles |
Safety
The bot flags and blocks operations on roles with dangerous permissions: - Administrator - Ban/Kick Members - Manage Guild, Roles, or Channels - Manage Webhooks or Messages - Mention @everyone
These will never be mass-assigned or included in templates.
RSS Feeds
Subscribe to any RSS or Atom feed and post new articles to a channel automatically.
Setup
- Go to Dashboard > Discovery > RSS Feeds (or use
/rss add <url>) - Enter the feed URL and select a channel
- Set the poll interval
Feed Limits
| Plan | Max Feeds |
|---|---|
| Free | 3 feeds |
| Premium+ | Unlimited |
How it Works
The bot checks feeds on your configured interval (5, 10, 15, 30, or 60 minutes). New entries are posted as embeds with title, description, link, thumbnail, and publish date.
To prevent duplicate posts across restarts, the bot tracks all posted entries in the database.
Security
Feeds pointing to private IP ranges, localhost, or internal domains are blocked to prevent SSRF attacks. All standard public RSS feeds (news, blogs, YouTube, game stores) work fine.
Backoff
If a feed returns errors repeatedly, the bot backs off exponentially up to 60 minutes between checks to avoid hammering a down server.
Live Stream Alerts
Notify your server when streamers go live.
Setup
- Go to Dashboard > Live Alerts
- Set the alert channel and optional role ping
- Add streamers by their platform handle
Supported Platforms
| Platform | How to Add |
|---|---|
| Twitch | Enter their Twitch username |
| YouTube | Enter their @handle or channel ID |
How it Works
The bot checks every 3 minutes. When a streamer goes live, it posts an embed with stream title, viewer count, game, thumbnail, and a direct link.
Live status is tracked in the database - the bot won't re-alert for the same ongoing stream session. A new alert fires when they start a new stream.
Raffles
Run giveaways with ticket-based entry.
Setup
- Go to Dashboard > Raffles
- Create a new raffle with a title, entry cost (Hero Tokens), end time, and number of winners
- The bot announces the raffle in your configured channel
How Members Enter
Members enter via the web portal or the bot's raffle command. They can spend Hero Tokens on extra tickets for better odds.
Winner Selection
Winners are selected using a cryptographically random weighted draw based on ticket count. Multiple winners are drawn without replacement.
Templates
Customize announcement and winner messages using variables:
Announcement: {title}, {cost}, {end}, {role}, {guild}
Winner: {user}, {title}, {guild}
Scheduled Messages
Post recurring announcements automatically.
Setup
- Go to Dashboard > Messages > Scheduled
- Create a message with content, target channel, and schedule
- The bot posts on schedule without any manual intervention
Good for: daily reminders, weekly event announcements, rotating tips, server rules refreshers.
Audit Logging
Comprehensive logging of all server events.
What Gets Logged
| Category | Events |
|---|---|
| Members | Join, leave, ban, unban, kick, timeout, nickname change |
| Roles | Add, remove, create, delete, update |
| Channels | Create, delete, update |
| Messages | Delete, bulk delete |
| Server | Settings changes, permission updates |
| Security | Raid detection, lockdowns, verification passes/fails |
Log Retention
| Plan | Retention |
|---|---|
| Free | 7 days |
| Premium | 30 days |
| Pro | 90 days |
Viewing Logs
Go to Dashboard > Audit to browse, filter, and search logs by action type, user, or date range. Logs can be exported as CSV.
Channel Management
Tools for managing channels at scale.
Features
| Feature | Description |
|---|---|
| Channel Templates | Save a channel's permission and settings config to reuse |
| Template Application | Create a new channel from a saved template |
| Bulk Slowmode | Apply slowmode to multiple channels at once |
| Permission Audit | Verify what a role or member can actually do in each channel |
| Channel Archival | Archive old channels instead of deleting them |
Setup
Use /channels save-template [#channel] to capture a channel's current settings as a template.
Flairs & Ranks
Cosmetic rewards that members earn as they level up.
How it Works
- Members earn rank titles at level milestones (e.g. "Adventurer", "Champion", "Legend")
- Flairs are emoji badges earned or purchased with Hero Tokens in the flair shop
- Equipped flairs appear beside usernames in posts and on member profiles
- The bot assigns a corresponding Discord role named
Flair: {emoji} {name}when a flair is equipped - Only one flair role is active at a time
Configuration
Go to Dashboard > Flairs to create server-specific flairs with custom names, emoji, Hero Token costs, and level requirements.
Go to Dashboard > XP > Rank Titles to create and order the rank titles members progress through.
QuestLog Network Integration
Connect your server to the QuestLog Network for cross-platform features.
What You Get
- Members' Discord XP flows into their unified QuestLog profile alongside Fluxer and site activity
- One leaderboard across all platforms
- Your server gets a public community profile in the QuestLog community directory
- Members can view stats and their social profile at casual-heroes.com/ql/
How to Join
- Create a QuestLog account at casual-heroes.com/ql/register/
- Link your Discord account in Settings > Linked Accounts
- Apply at casual-heroes.com/ql/communities/register/
- Once approved, your server is part of the network
Member Linking
Each member links their own Discord account at casual-heroes.com/ql/settings/ under "Linked Accounts". Once linked, their XP unifies automatically. No bot action required.
Slash Commands Reference
| Command | Permission | Description |
|---|---|---|
/questlog setup |
Admin | Initial bot configuration wizard |
/questlog sync |
Admin | Sync slash commands to this server |
/lfg create |
Everyone | Create an LFG group |
/lfg list |
Everyone | Browse active groups |
/lfg join <id> |
Everyone | Join a group |
/lfg leave |
Everyone | Leave your group |
/lfg delete |
Group owner / Admin | Delete a group |
/lfg setup |
Admin | Configure LFG settings |
/mod warn <user> |
Manage Messages | Issue a warning |
/mod timeout <user> <duration> |
Moderate Members | Timeout a member |
/mod kick <user> |
Kick Members | Kick a member |
/mod ban <user> |
Ban Members | Ban a member |
/mod jail <user> |
Manage Roles | Jail a member |
/mod mute <user> |
Manage Roles | Mute a member |
/automod config |
Admin | Configure auto-moderation |
/verification setup |
Admin | Configure member verification |
/welcome setup |
Admin | Configure welcome messages |
/rss add <url> |
Admin | Add an RSS feed |
/roles templates |
Admin | Manage role templates |
/channels save-template |
Admin | Save a channel config as template |
/audit logs |
Admin | View audit log |
/emergency lockdown |
Admin | Restrict server to mods only |
/emergency unlock |
Admin | Restore normal permissions |
/admin setup |
Admin | Server-wide admin settings |
Ready to get started?
Add the bot to your server and open the dashboard - everything configures from the browser.
Final Fantasy XIV
Elder Scrolls Online