Lor Tracker Documentation

Complete guide to using Lor Tracker - your Discord bot for points, raffles, duels, and more.

βž• Add Bot to Discord

Getting Started

Basic Commands

  • /help - Display a paginated help menu with all available commands
  • /ping - Check if the bot is online and responsive

ℹ️ Permissions

Commands marked with πŸ”’ are admin-only. You need administrator permissions to use them.

Points System

The points system is the core feature of this bot. Users can earn, spend, and transfer points within your server.

User Commands

/points [user]

Check your current points or view another user's points.

Examples:
  • /points - View your own points
  • /points user:@username - View someone else's points
/pointsleaderboard [limit]

View the server's points leaderboard. Shows the top users by points.

Parameters:
  • limitoptional- Number of users to show (default: 10, max: 25)
Examples:
  • /pointsleaderboard limit:20
/transferpoints <user> <amount> [reason]

Transfer points to another user.

Parameters:
  • userrequired- The user to transfer points to
  • amountrequired- Number of points to transfer (must be positive)
  • reasonoptional- Reason for the transfer
Examples:
  • /transferpoints user:@friend amount:100 reason:Thanks for helping!

Admin Commands πŸ”’

/addpoints <user> <amount> [reason]πŸ”’ Admin

Add points to a user's account.

Examples:
  • /addpoints user:@member amount:50 reason:Event participation
/removepoints <user> <amount> [reason]πŸ”’ Admin

Remove points from a user's account.

Examples:
  • /removepoints user:@member amount:25 reason:Refund
/removeallpoints <confirm> [reason]πŸ”’ Admin

⚠️ Warning: This removes ALL points from ALL users in the server!

Parameters:
  • confirmrequired- Must be exactly "yes" to confirm
  • reasonoptional- Reason for the reset
Examples:
  • /removeallpoints confirm:yes reason:Monthly reset
/setpointsreset <enabled> [interval]πŸ”’ Admin

Configure automatic points reset settings for the server.

Parameters:
  • enabledrequired- true to enable automatic reset, false to disable
  • intervaloptional- Reset interval in months (1-12, default: 1)
When enabled, points will automatically reset based on the interval you set. Reset occurs on the scheduled date based on last_reset_date and interval_months. Each guild can have its own reset settings. Reset only affects users with points > 0 in that guild.
Examples:
  • /setpointsreset enabled:true interval:1 - Enable monthly reset (every 1 month)
  • /setpointsreset enabled:true interval:3 - Enable reset every 3 months
  • /setpointsreset enabled:false - Disable automatic reset
/getpointsresetπŸ”’ Admin

View current points reset settings for the server.

Shows: Whether automatic reset is enabled or disabled, Reset interval (in months), Last reset date (if any)
Examples:
  • /getpointsreset

Leveling System

The leveling system allows users to earn XP (experience points) by sending messages. Levels are calculated from your points balance using a Mee6-like formula, and XP earned from messages is added directly to your points that can be used in other features.

Features

  • Message-based XP: Earn XP for sending messages (configurable per server)
  • Cooldown System: Only 1 message per minute counts toward XP
  • Formula: Levels calculated using: XP = 5 * levelΒ² + 50 * level
  • Integrated with Points: XP earned from messages is added to your points balance
  • Level Leaderboard: View rankings based on level/XP

How it Works

  • When leveling is enabled, users earn XP for each message they send
  • XP is awarded as points (e.g., 0.1 points per message by default)
  • Your level is automatically calculated from your total points/XP
  • Only messages sent at least 1 minute apart count toward XP
  • Leveling must be enabled by administrators for each server

User Commands

/level [user]

Check your current level, XP, rank, and progress to the next level.

Parameters:
  • useroptional- User to check level for (defaults to you)
Shows: Current level, Total XP (same as points balance), Server rank, Progress bar showing progress to next level, XP needed to reach next level
Examples:
  • /level - View your own level
  • /level user:@username - View another user's level

Admin Commands πŸ”’

/levelsettingsπŸ”’ Admin

Open the leveling settings panel to configure the leveling system for your server.

What you can configure: Enable/Disable Leveling (Turn the leveling system on or off), Points per Message (Set how much XP (points) users earn per message, e.g., 0.1, 1, 1.5). How to use: 1. Run /levelsettings to open the settings panel, 2. Click 'Enable Leveling' or 'Disable Leveling' to toggle the system, 3. Click 'Set Points per Message' to configure XP rewards, 4. Enter the amount of points users should earn per message (supports decimals like 0.1). Examples: Set to 0.1 for 0.1 points per message (default), Set to 1 for 1 point per message, Set to 1.5 for 1.5 points per message. Notes: Leveling is disabled by default, Points per message can be any number >= 0 (supports decimals), XP earned from messages is added directly to user's points balance, Levels are calculated automatically from points balance, Only administrators can configure leveling settings.

Role Points

Configure automatic point rewards based on user roles. Users with specific roles can claim points at set intervals.

/setrolepoints <role> <points> [interval]πŸ”’ Admin

Set up points that users with a specific role can claim.

Parameters:
  • rolerequired- The Discord role
  • pointsrequired- Number of points to award
  • intervaloptional- Cooldown in minutes (default: 1440 = 24 hours)
Examples:
  • /setrolepoints role:@VIP points:100 - 100 points every 24 hours
  • /setrolepoints role:@Member points:50 interval:720 - 50 points every 12 hours
/listrolepointsπŸ”’ Admin

View all configured role points and their settings.

/togglerolepoints <role> <enabled>πŸ”’ Admin

Enable or disable role points for a specific role.

Parameters:
  • rolerequired- The Discord role
  • enabledrequired- true to enable, false to disable
/removerolepoints <role>πŸ”’ Admin

Remove the points configuration for a role.

/awardrolepoints <role> <points> [reason]πŸ”’ Admin

Manually award points to all users with a specific role.

Examples:
  • /awardrolepoints role:@Premium points:200 reason:Special event bonus

Claim Points

Users can claim daily points and weekly role-based points through claim panels.

Daily Claims

  • Users can claim daily points once per day
  • The amount is set when creating the claim panel

Weekly Role Claims

  • Users can claim points based on their highest-ranked role
  • Only the role with the highest points value is awarded (not cumulative)
  • Can be claimed once per week
/createclaimpanel [role_claims]πŸ”’ Admin

Create a claim points panel with buttons for daily claims and optional role-based claims.

Parameters:
  • role_claimsoptional- Format: @role1:points1,@role2:points2
Examples:
  • /createclaimpanel - Create basic daily claim panel
  • /createclaimpanel role_claims:@VIP:100,@Member:50 - Include role claims

Reaction Points

Users can earn points by reacting to messages in enabled channels!

How it Works

  • Each user who reacts to a message earns 1 point
  • Points are only awarded once per message per user
  • Message must be within 30 minutes of being sent
  • Only works in channels enabled by admins
  • Works in both text channels and announcement channels
/setreactionchannel <channel> [enable]πŸ”’ Admin

Enable or disable reaction points for a text or announcement channel.

Parameters:
  • channelrequired- The channel to configure
  • enableoptional- true to enable, false to disable (default: true)
Examples:
  • /setreactionchannel channel:#general enable:true
  • /setreactionchannel channel:#announcements
/listreactionchannelsπŸ”’ Admin

List all channels where reaction points are currently enabled.

Raffles

Create exciting raffles where users can spend points for a chance to win prizes!

/createraffle <name> <points> <winners> <duration> [required_role] [follow_required] [role_multipliers] [description]πŸ”’ Admin

Create a new raffle.

Parameters:
  • namerequired- Name of the raffle
  • pointsrequired- Points cost per entry
  • winnersrequired- Number of winners
  • durationrequired- Duration in hours
  • required_roleoptional- Role required to enter
  • follow_requiredoptional- Comma-separated X (Twitter) usernames that must be followed
  • role_multipliersoptional- Format: @role1:mult1,@role2:mult2 (entry multipliers)
  • descriptionoptional- Description of the raffle
Examples:
  • /createraffle name:Weekly Prize points:50 winners:3 duration:168
  • /createraffle name:VIP Raffle points:100 winners:1 duration:48 required_role:@VIP description:Exclusive VIP raffle!

How it works:

  • Users click the "Enter Raffle" button on the raffle message
  • Points are deducted when entering
  • Winners are randomly selected when the raffle ends
  • Winners receive points based on the prize pool
/editraffle <ticket_id> [name] [points] [winners] [duration] [required_role] [follow_required] [role_multipliers] [description]πŸ”’ Admin

Edit an existing active raffle by its ticket ID.

Parameters:
  • ticket_idrequired- The raffle ID (shown in raffle embeds footer)
  • nameoptional- New name for the raffle
  • pointsoptional- New points cost per entry
  • winnersoptional- New number of winners
  • durationoptional- Set new duration in hours from now (replaces current end time)
  • required_roleoptional- Role required to enter (use "none" to remove requirement)
  • follow_requiredoptional- Twitter usernames (comma-separated, without @). Use "none" to remove
  • role_multipliersoptional- Format: @role1:mult1,@role2:mult2. Use "none" to remove all multipliers
  • descriptionoptional- New description. Use "none" to remove description
Only active raffles can be edited. The raffle message is automatically updated when edited. To find the Ticket ID, look at the bottom of the raffle embed message.
Examples:
  • /editraffle ticket_id:123 name:Updated Prize Name
  • /editraffle ticket_id:123 points:75 duration:24 - Update points and set duration to 24 hours from now
  • /editraffle ticket_id:123 required_role:none - Remove required role
/raffle-list [status]πŸ”’ Admin

List all raffles in the server with their ticket IDs and information.

Parameters:
  • statusoptional- Filter by status: active, ended, cancelled, or all. If omitted, shows all raffles
Shows Active Raffles (first 10), Ended Raffles (first 5), and Cancelled Raffles (first 5) with their ticket IDs, making it easy to find IDs for editing.
Examples:
  • /raffle-list - Show all raffles
  • /raffle-list status:active - Show only active raffles
/checkraffleentry <raffle_id>πŸ”’ Admin

Check all raffle entries for a raffle (admin only).

Parameters:
  • raffle_idrequired- Ticket ID of the raffle (found in raffle footer or /raffle-list)
Shows complete list of all participants ranked by entries, including: Username, Number of entries, Points spent, Multiplier used, Total participants, total entries, and total points spent. Results are paginated if there are many entries (25 per page). Regular users can check their own entry using the 'My Entry' button on the raffle panel.
Examples:
  • /checkraffleentry raffle_id:123 - View all entries for the raffle

My Entry Button (User Feature)

Raffle panels now include a "My Entry" button that allows users to check their own raffle entry at any time.

How to use:
  1. Find the raffle message in the channel
  2. Click the "My Entry" button (πŸ“‹ icon)
  3. View your entry details:
    • Whether you have an entry
    • Number of entries
    • Points spent
    • Multiplier used
    • Entry timestamp

Notes: This button is available on all raffle panels. Shows "No Entry" if you haven't entered the raffle yet. Ephemeral response (only visible to you).

Duel Gamble (PvP)

Challenge other players to duels and bet your points! Winner takes all (minus a 5% fee).

Features

  • 1v1 Duels: Only two players per duel
  • 5% Fee: 5% of the total bet is deducted as a fee
  • Streaks: Track your winning streaks
  • Jackpot: Get a 5x bonus on your 10th consecutive win!
  • Auto-Expire: Duels that aren't accepted within 5 minutes are automatically cancelled and bets are refunded
/duel <bet> [challenge]

Create a duel challenge or challenge a specific player.

Parameters:
  • betrequired- Points to bet (both players bet the same amount)
  • challengeoptional- Specific user to challenge
Examples:
  • /duel bet:100 - Create an open duel panel (anyone can join)
  • /duel bet:500 challenge:@player - Directly challenge a specific player

Streak Bonuses:

10-win streak: Get 5x bonus points on the 10th win!

Example: If you bet 100 points and win your 10th streak, you receive: (100 * 2) * 0.95 * 5 = 950 points

/duelstreakleaderboard

View the duel win streak leaderboard. Shows players ranked by their current streak.

Marketplace

The marketplace allows users to purchase items using points. Admins can create items that users can buy, and items can grant roles or have requirements.

Features

  • Item Purchases: Users can purchase items with points from the marketplace
  • Role Rewards: Items can automatically grant roles upon purchase
  • Required Roles: Items can require users to have specific roles to purchase
  • Quantity Limits: Items can have limited stock or unlimited availability
  • Weekly Limits: Prevent users from purchasing the same item too frequently
  • Inventory Tracking: Users can view their purchased items

User Commands

/inventory [user]

View your inventory of purchased marketplace items, or view another user's inventory (admin only).

Parameters:
  • useroptional- User whose inventory to view (admin only)
Examples:
  • /inventory - View your own inventory
  • /inventory user:@member - View another user's inventory (admin only)

Admin Commands πŸ”’

/marketplace-add <name> <price> [description] [quantity] [weekly_limit] [role] [required_role]πŸ”’ Admin

Add a new item to the marketplace.

Parameters:
  • namerequired- Name of the item
  • pricerequired- Points cost to purchase
  • descriptionoptional- Item description
  • quantityoptional- Stock quantity (0 or empty = unlimited)
  • weekly_limitoptional- Maximum purchases per user per week (0 = no limit)
  • roleoptional- Role to grant when purchased
  • required_roleoptional- Role required to purchase this item
Examples:
  • /marketplace-add name:VIP Role price:1000 description:Get exclusive VIP access role:@VIP
  • /marketplace-add name:Special Badge price:500 quantity:10 weekly_limit:1
/marketplace-edit <item_id> [name] [price] [description] [quantity] [weekly_limit] [role] [required_role] [enabled]πŸ”’ Admin

Edit an existing marketplace item.

Parameters:
  • item_idrequired- ID of the item to edit
  • All other parameters are optionalinfo- Only provide what you want to change
Examples:
  • /marketplace-edit item_id:123 price:750 quantity:5 enabled:true
/marketplace-delete <item_id>πŸ”’ Admin

Delete a marketplace item permanently.

Examples:
  • /marketplace-delete item_id:123
/marketplace-listπŸ”’ Admin

List all marketplace items with their details.

/marketplace-panelπŸ”’ Admin

Create or update the marketplace panel in the current channel. The panel displays all available items with purchase buttons.

The panel auto-updates when items are added, edited, or deleted.

Vouchers

The voucher system allows admins to create and manage digital vouchers that users can purchase with points. Vouchers have unique codes that can be redeemed.

Features

  • Voucher Creation: Generate or import voucher codes
  • Point-based Purchases: Users purchase vouchers with points
  • Unique Codes: Each voucher has a unique code for redemption
  • Purchase History: Track all voucher purchases
  • Google Sheets Export: Export purchase history to Google Sheets
  • Weekly Limits: Prevent users from buying too many vouchers per week

How it works:

  1. Click "Purchase Voucher" button on the voucher panel
  2. Select a voucher from the dropdown menu
  3. Points are deducted and you receive a unique voucher code
  4. Save the code securely - you'll need it for redemption!

Admin Commands πŸ”’

/voucher-item-add <denomination> <price> [description] [weekly_limit]πŸ”’ Admin

Add a new voucher item to the voucher panel.

Parameters:
  • denominationrequired- Voucher value (e.g., 10.00 for $10 voucher)
  • pricerequired- Points cost to purchase
  • descriptionoptional- Description of the voucher
  • weekly_limitoptional- Maximum purchases per user per week
Examples:
  • /voucher-item-add denomination:10.00 price:1000 description:$10 Gift Card weekly_limit:2
/import-voucher <denomination> <count> [name]πŸ”’ Admin

Generate and import new voucher codes.

Parameters:
  • denominationrequired- Voucher value
  • countrequired- Number of codes to generate (1-1000)
  • nameoptional- Name for this voucher type
Returns a text file with all generated codes for your records.
Examples:
  • /import-voucher denomination:25.00 count:50 name:$25 Gift Card
/import-voucher-codes <denomination> <codes> [name] [price] [weekly_limit]πŸ”’ Admin

Import existing voucher codes.

Parameters:
  • denominationrequired- Voucher value
  • codesrequired- Voucher codes separated by commas, spaces, or newlines (max 1000)
  • nameoptional- Name for this voucher type
  • priceoptional- If provided, automatically adds to voucher panel
  • weekly_limitoptional- Weekly purchase limit
Examples:
  • /import-voucher-codes denomination:50.00 codes:CODE1,CODE2,CODE3 name:$50 Card price:5000
/update-voucher-codes <denomination> <codes> [name] [weekly_limit]πŸ”’ Admin

Add more codes to an existing voucher type.

Parameters:
  • denominationrequired- Must match existing voucher
  • codesrequired- Codes to add (separated by commas, spaces, or newlines)
  • nameoptional- Update the voucher name
  • weekly_limitoptional- Update weekly limit
Examples:
  • /update-voucher-codes denomination:10.00 codes:NEWCODE1,NEWCODE2
/voucher-panelπŸ”’ Admin

Create or update the voucher panel in the current channel.

/voucher-listπŸ”’ Admin

List all available voucher items with their prices and availability.

/voucher-check [page]πŸ”’ Admin

View all vouchers with their codes, usage status, and availability (paginated).

Parameters:
  • pageoptional- Page number to view (default: 0)
Shows both used and unused codes for each denomination.
/voucher-export-historyπŸ”’ Admin

Export all voucher purchase history to Google Sheets.

Requires Google Sheets integration to be set up. Creates a new spreadsheet with purchase details including user IDs, codes, denominations, and purchase dates.

Redeems

The redeems system allows users to redeem items they've purchased from the marketplace. This is useful for physical items, services, or manual fulfillment.

Features

  • Item Redemption: Users can redeem marketplace items they've purchased
  • Confirmation System: Two-step confirmation prevents accidental redemptions
  • Inventory Integration: Only items in user's inventory can be redeemed
  • Public Notifications: Redemption confirmations are posted publicly

How it works:

  1. Click "Redeem Items" button on the redeems panel
  2. Select items from your inventory using the dropdown menu (you can select multiple)
  3. Review your selection and click "Confirm Redemption"
  4. Items are removed from your inventory and a public confirmation is posted

Note: Once redeemed, items are permanently removed from your inventory. Make sure you want to redeem them!

/redeems-panelπŸ”’ Admin

Create or update the redeems panel in the current channel.

Random Selector

The random selector provides various tools for randomly selecting people or creating teams. These commands use the prefix system (typically !random, !teams, etc.).

Features

  • Random Selection: Pick random people from a list
  • Team Creation: Automatically create balanced teams
  • Weighted Selection: Random selection with probability weights
  • Interactive Modal: User-friendly form interface
!random <list> <count> [allow_duplicates]

Randomly select people from a list.

Parameters:
  • listrequired- Comma-separated list of people, or space-separated names
  • countrequired- Number of people to select
  • allow_duplicatesoptional- "yes" or "duplicate" to allow the same person multiple times
Examples:
  • !random "Alice,Bob,Charlie,Diana" 2
  • !random Alice Bob Charlie Diana 2 yes
!teams <list> <team_size> [num_teams]

Create random teams from a list of people.

Parameters:
  • listrequired- Comma-separated or space-separated list of people
  • team_sizerequired- Number of people per team
  • num_teamsoptional- Specific number of teams (if not provided, creates as many teams as possible)
Examples:
  • !teams "Alice,Bob,Charlie,Diana,Eve,Frank" 2
  • !teams Alice Bob Charlie Diana 2 2 - Creates exactly 2 teams of 2
!weighted <list> <count> [allow_duplicates]

Weighted random selection - people with higher weights have better chances.

Parameters:
  • listrequired- Format: name1:weight1,name2:weight2 (e.g., Alice:3,Bob:1,Charlie:2)
  • countrequired- Number of people to select
  • allow_duplicatesoptional- "yes" to allow duplicates
Higher weight = higher probability of being selected. Example: Alice:3, Bob:1 means Alice is 3 times more likely to be selected than Bob.
Examples:
  • !weighted "Alice:3,Bob:1,Charlie:2" 2 - Alice has 3x better chance than Bob
!random-modal

Open an interactive modal form for random selection with a user-friendly interface.

Stream Time Tracking

Track how long users have been streaming in voice channels!

/streamtime <user> <channel> <year> <month> <day> <hour>

Calculate stream time for a user in a voice channel for a specific hour.

Examples:
  • /streamtime user:@streamer channel:Streaming year:2025 month:1 day:15 hour:14
/streamboard <channel> [year] [month] [day] [start_hour] [end_hour]

Show a leaderboard of stream times for a voice channel.

Parameters:
  • All parameters except channel are optionalinfo- If omitted, defaults to today's data
Examples:
  • /streamboard channel:Streaming
  • /streamboard channel:Streaming year:2025 month:1 day:15 start_hour:0 end_hour:23
/mystreamtime <channel> <year> <month> <day> [start_hour] [end_hour]

Check your own stream time in a voice channel.

Examples:
  • /mystreamtime channel:Streaming year:2025 month:1 day:15
/streamboardnames <channel> <year> <month> <day> [start_hour] [end_hour]πŸ”’ Admin

List only usernames from the stream leaderboard (no times). Useful for exporting participant lists.

Voice Channel Tracking

Track how long users have been in voice channels and view live leaderboards!

/jointime <channel> [user]

Check how long a user has been in a voice channel (or your own time if no user specified).

Examples:
  • /jointime channel:General
  • /jointime channel:General user:@friend
/jointimeboard <channel>

Show a leaderboard of users currently in a voice channel, ranked by time spent.

Examples:
  • /jointimeboard channel:General
/exportvoiceboard <channel>

Export the voice channel leaderboard to a CSV file.

Examples:
  • /exportvoiceboard channel:General

Forms

Create custom forms for data collection, applications, feedback, and more!

Features

  • Custom Fields: Create forms with up to 5 custom fields
  • Submission Limits: Set maximum number of submissions per user (1 to unlimited)
  • Refill Control: Enable or disable the ability for users to update their submissions
  • View Submissions: Users can view their own submissions via button or command
  • Auto-export: Form submissions automatically sync to Google Sheets (if configured)

Form Panel Buttons

Forms have interactive buttons on the form panel:

  • πŸ“ Fill Out Form - Submit a new form response
  • πŸ”„ Re-fill Form - Update your existing submission (if enabled)
  • πŸ‘οΈ Check My Submission - View your submitted form data
  • ❌ Close Form - Close the form (admin only)

User Commands

/myformsubmission [form_id]

View your own form submissions. If form_id is provided, shows your submission for that specific form. If omitted, shows all your submissions across all forms.

Parameters:
  • form_idoptional- Specific form ID to view (get from /listforms)
Examples:
  • /myformsubmission - View all your form submissions
  • /myformsubmission form_id:123456789 - View your submission for a specific form

Admin Commands πŸ”’

/createform <title> <description> <fields> [max_submissions] [allow_refill] [allow_close_button]πŸ”’ Admin

Create a new form.

Parameters:
  • titlerequired- Form title
  • descriptionrequired- Form description
  • fieldsrequired- Format: field1:label1|field2:label2|field3:label3 (max 5 fields)
  • max_submissionsoptional- Maximum submissions per user (0 = unlimited, default: unlimited)
  • allow_refilloptional- Allow users to re-fill/update their submission (true/false, default: true)
  • allow_close_buttonoptional- Show close form button on the panel (true/false, default: true)
Max Submissions: 0 or null = Unlimited, 1 = One submission per user, etc. Allow Refill: true = Users can update, false = Users cannot update once submitted. Allow Close Button: true = Show close button (admin can close form via button), false = Hide close button (form can only be closed via edit command).
Examples:
  • /createform title:Event Registration description:Register for our event! fields:name:Full Name|email:Email Address|phone:Phone Number
  • /createform title:One-Time Survey description:Each user can only submit once fields:feedback:Your Feedback max_submissions:1 allow_refill:false
  • /createform title:Public Form description:Form without close button fields:feedback:Feedback allow_close_button:false - Hide close button
/editform <form_id> [title] [description] [fields] [max_submissions] [allow_refill] [allow_close_button]πŸ”’ Admin

Edit an existing form. You can update any property of the form, including title, description, fields, submission limits, refill settings, and close button visibility.

Parameters:
  • form_idrequired- The form ID to edit (get from /listforms)
  • All other parameters are optionalinfo- Only provide what you want to change
The form panel automatically updates when edited. Existing submissions are preserved when editing form properties. Changing fields only affects new submissions, existing data structure remains.
Examples:
  • /editform form_id:123456789 title:Updated Event Registration
  • /editform form_id:123456789 max_submissions:1 allow_refill:false - Limit to one submission and disable refill
  • /editform form_id:123456789 fields:name:Full Name|email:Email|phone:Phone|address:Address - Update form fields
  • /editform form_id:123456789 max_submissions:0 allow_refill:true - Allow unlimited submissions with refill
  • /editform form_id:123456789 allow_close_button:false - Hide close button from form panel
/listformsπŸ”’ Admin

List all created forms with their IDs, titles, and status.

Shows: Form ID, Form title, Number of submissions, Form status (open/closed), Max submissions per user setting, Refill enabled status
/viewsubmissions <form_id>πŸ”’ Admin

View all submissions for a specific form (admin only).

Shows: All user submissions with usernames and timestamps, All field values for each submission, Submission count and date range
Examples:
  • /viewsubmissions form_id:123456789
/exportform <form_id>πŸ”’ Admin

Export form submissions to a CSV file.

Exports: All submissions with user information, All field values, Submission timestamps. Ready to open in Excel or Google Sheets.
Examples:
  • /exportform form_id:123456789
/resendform <form_id> [channel] [update_form_data]πŸ”’ Admin

Resend form panel to a channel. Useful if the original form message was deleted or you want to post it in a different channel.

Parameters:
  • form_idrequired- The form ID to resend (get from /listforms)
  • channeloptional- Channel to send the form to (defaults to current channel)
  • update_form_dataoptional- Update form data with new message ID and channel (true/false, default: false)
If update_form_data is true, the form's channelId and messageId will be updated to point to the new message. If false, the original form data remains unchanged (useful for posting multiple copies). The form panel will be recreated with all current settings (buttons, limits, etc.). Only administrators can use this command.
Examples:
  • /resendform form_id:123456789 - Resend to current channel without updating form data
  • /resendform form_id:123456789 channel:#announcements - Resend to #announcements channel
  • /resendform form_id:123456789 channel:#announcements update_form_data:true - Resend and update form data with new message ID

Google Sheets Integration

The bot can integrate with Google Sheets to automatically export form submissions and voucher purchase history. This requires Google Cloud setup.

Features

  • Automatic Form Export: Form submissions automatically sync to Google Sheets
  • Voucher History Export: Export voucher purchase history to Google Sheets
  • Real-time Updates: Sheets update in real-time as submissions come in

Setup Requirements

To use Google Sheets integration:

  1. Create a Google Cloud Project
  2. Enable Google Sheets API and Google Drive API
  3. Create a Service Account
  4. Download the service account JSON key
  5. Save it as google-credentials.json in the bot's root directory
  6. Share your Google Drive folders with the service account email

Note: See GOOGLE_SHEETS_SETUP.md for detailed setup instructions.

Admin Commands πŸ”’

/check-google-sheetsπŸ”’ Admin

Check the Google Sheets setup and provide diagnostic information.

Checks: Credentials file exists and is valid, Required fields are present, Authentication can be initialized, Provides service account email and project ID
/check-quotasπŸ”’ Admin

Get links to check Google API quotas and usage.

Provides: Links to Google Sheets API quotas, Links to Google Drive API quotas, Service account information, Important notes about quota limits

Automatic Features

Forms:
  • When a form is created, a Google Sheet is automatically created
  • All form submissions are automatically added to the sheet
  • Sheets are organized in a designated Google Drive folder
Vouchers:
  • Use /voucher-export-history to export purchase history to Google Sheets
  • Creates timestamped spreadsheets with all purchase data

Whop Premium System

The bot supports Whop premium subscriptions that can be activated per server. Premium features unlock additional functionality like raffles with Twitter follow requirements.

Features

  • Per-Server Activation: Each subscription can only activate premium for 1 server
  • Multiple Subscriptions: Users can purchase multiple subscriptions to activate premium for multiple servers
  • Automatic Tracking: Subscription status is automatically updated via Whop webhooks
  • Server-Specific: Premium status is tracked per server independently

User Commands

/activate

Activate Premium for the current server using your active Whop subscription.

You must have an active Whop subscription. Each subscription can only be used for 1 server. If you have multiple subscriptions, the system will automatically find an available one. If all your subscriptions are already in use, you'll need to purchase a new one.
Examples:
  • /activate
/check-subscription

Check your Whop subscription status and see how many subscriptions you have available.

Shows: Total number of active subscriptions you have, How many subscriptions are currently in use (activated for servers), How many subscriptions are available for new activations
Examples:
  • /check-subscription

Admin Commands πŸ”’

/add-subscription <user> <membership_id> [product_id] [status]πŸ”’ Admin

Manually add a subscription to the database (for testing or manual setup).

Parameters:
  • userrequired- Discord user to add subscription for
  • membership_idrequired- Whop membership ID
  • product_idoptional- Whop product ID
  • statusoptional- Subscription status (active, cancelled, expired, trialing)
This is typically used for testing or when webhooks haven't been received yet. Normal users should purchase subscriptions through Whop.
Examples:
  • /add-subscription user:@member membership_id:mem_123456 product_id:prod_789 status:active

Important Rules:

  • 1 subscription = 1 server: Each subscription can only activate premium for one server at a time
  • Multiple subscriptions: You can purchase multiple subscriptions to activate premium for multiple servers
  • Server ownership: If a server already has premium activated by another user, you cannot activate it until they deactivate

Roles & Permissions

/addrole <user> <role> [reason]πŸ”’ Admin

Add a role to a specific user.

Parameters:
  • userrequired- The user to add the role to
  • rolerequired- The role to add
  • reasonoptional- Reason for adding the role (for audit logs)
You must have Manage Roles or Administrator permission. The bot must have Manage Roles permission. The role must be lower than the bot's highest role. If the user already has the role, you'll be notified.
Examples:
  • /addrole user:@member role:@VIP
  • /addrole user:@member role:@Moderator reason:Promoted to moderator
/assignroletoeveryone <role> [channel] [delay]πŸ”’ Admin

Assign a role to all members who don't have it. Optionally filter by channel.

Parameters:
  • rolerequired- The role to assign to all members
  • channeloptional- Only assign to members in this channel (voice, text, or thread)
  • delayoptional- Delay between assignments in milliseconds (default: 1000ms)
Without channel: Assigns role to all members in the server who don't have it (excluding bots). With voice channel: Only assigns to members currently connected to that voice channel. With text channel: Only assigns to members who have 'View Channel' permission for that channel. With thread: Only assigns to members who are in the thread. ⚠️ Use with caution on large servers - can take time to process. The delay helps prevent rate limits (default 1000ms = 1 second per member). Shows real-time progress updates every 10 members. Bots are automatically excluded. Members who already have the role are skipped. You must have Administrator permission.
Examples:
  • /assignroletoeveryone role:@Member - Assign role to all server members
  • /assignroletoeveryone role:@VIP channel:#General - Assign role only to members in #General text channel
  • /assignroletoeveryone role:@Active channel:#Voice-Lobby - Assign role only to members in voice channel
  • /assignroletoeveryone role:@Member channel:#General delay:500 - Assign with 500ms delay
/voicegrant <role> [channel]πŸ”’ Admin

Grant a role to all members currently in a voice channel.

Parameters:
  • rolerequired- The role to grant
  • channeloptional- Specific channel (if omitted, grants to all users in any voice channel)
Examples:
  • /voicegrant role:@In Voice channel:General
!threadrole <role_id>πŸ”’ Admin

Add a role to all members in the current thread.

Parameters:
  • role_idrequired- The ID of the role to grant
This is a prefix command (not a slash command) and can only be used in threads. Requirements: Must be used in a thread channel, Bot must have 'Manage Roles' permission, Bot's role must be higher than the role being granted
Examples:
  • !threadrole 123456789012345678 - Grants the role with that ID to all thread members

Settings

Configure bot settings for your server.

/setprefix <prefix>πŸ”’ Admin

Set a custom prefix for the bot (max 10 characters).

The bot primarily uses slash commands, but custom prefixes can be used for some features.
Examples:
  • /setprefix prefix:!
/setnotificationchannel <channel>πŸ”’ Admin

Set the channel where event notifications will be sent.

Examples:
  • /setnotificationchannel channel:#announcements

Statistics Tracking

The bot automatically tracks server statistics including member counts, messages, and activity. Statistics are collected daily and can be viewed by administrators.

Features

  • Automatic Tracking: Statistics are collected automatically without any setup
  • Daily Records: Data is recorded daily with hourly updates for member counts
  • Historical Data: View statistics for any time period
  • Member Activity: Tracks joins, leaves, online members, and messages

What Gets Tracked

  • Total Members: Total number of members in the server
  • Online Members: Number of members currently online
  • Members Joined: Number of members who joined
  • Members Left: Number of members who left
  • Messages: Total number of messages sent

Admin Commands πŸ”’

/stats-check [days]πŸ”’ Admin

Check statistics tracking status and view guild statistics.

Parameters:
  • daysoptional- Number of days to show summary for (default: 7)
What it shows: Database Status (Whether statistics tracking is active and how many records exist), Today's Statistics (Current day's data - members, joins, leaves, messages), Summary (Average, max, min values for the specified period), Current Guild Info (Real-time member count and online members). Notes: Statistics are collected automatically - no setup required, Data is recorded daily with hourly updates for member counts, Only administrators can view statistics, Historical data is preserved for analysis.
Examples:
  • /stats-check - View statistics for the last 7 days
  • /stats-check days:30 - View statistics for the last 30 days
/eventnotify <event>πŸ”’ Admin

Send a manual event notification to the configured notification channel.

Parameters:
  • eventrequired- Event ID or event name
Requires a notification channel to be set with /setnotificationchannel. This command is used to manually trigger event notifications.
Examples:
  • /eventnotify event:123456789

Admin Commands Summary

Commands marked with πŸ”’ require administrator permissions:

Points Management

  • /addpoints
  • /removepoints
  • /removeallpoints
  • /setpointsreset
  • /getpointsreset

Role Points

  • /setrolepoints
  • /listrolepoints
  • /togglerolepoints
  • /removerolepoints
  • /awardrolepoints

Raffles & Claims

  • /createraffle
  • /editraffle
  • /raffle-list
  • /createclaimpanel

Marketplace

  • /marketplace-add
  • /marketplace-edit
  • /marketplace-delete
  • /marketplace-list
  • /marketplace-panel
  • /inventory

Vouchers

  • /voucher-item-add
  • /import-voucher
  • /import-voucher-codes
  • /update-voucher-codes
  • /voucher-panel
  • /voucher-list
  • /voucher-check
  • /voucher-export-history

Redeems

  • /redeems-panel

Forms

  • /createform
  • /editform
  • /listforms
  • /viewsubmissions
  • /myformsubmission
  • /exportform
  • /resendform

Google Sheets

  • /check-google-sheets
  • /check-quotas

Settings

  • /setprefix
  • /setnotificationchannel
  • /setreactionchannel
  • /listreactionchannels

Leveling

  • /level
  • /levelsettings

Statistics

  • /stats-check
  • /eventnotify

Whop Premium

  • /activate
  • /check-subscription
  • /add-subscription

Stream Tracking

  • /streamboardnames

Roles

  • /addrole
  • /assignroletoeveryone
  • /voicegrant
  • !threadrole

Tips & Best Practices

For Users

  • Daily Claims: Don't forget to claim your daily points!
  • Weekly Role Claims: Claim your role points weekly for maximum earnings
  • Reaction Points: React to messages in enabled channels to earn points
  • Duels: Start with small bets until you get comfortable with the system
  • Streaks: Protect your duel streak - higher streaks mean bigger rewards!
  • Marketplace: Check the marketplace regularly for new items you can purchase with points
  • Vouchers: Save your voucher codes securely - you'll need them for redemption!
  • Inventory: Use /inventory to see what items you've purchased
  • Redeems: Redeem physical items or services you've purchased from the marketplace
  • Forms: Check your form submissions anytime using the "πŸ‘οΈ Check My Submission" button or /myformsubmission command
  • Form Updates: If allowed, use "πŸ”„ Re-fill Form" to update your submission if you made a mistake

For Admins

  • Role Points: Set up role points to reward active members automatically
  • Raffles: Use raffles to create engagement and excitement. Edit active raffles with /editraffle
  • Reaction Channels: Enable reaction points in active discussion channels
  • Notifications: Set up a dedicated notification channel for important events
  • Forms: Use forms for applications, feedback, and data collection
    • Set max_submissions:1 for one-time applications (e.g., event registration)
    • Set allow_refill:false to prevent users from changing their submission
    • Use max_submissions:0 for unlimited submissions (e.g., feedback forms)
  • Form Editing: Use /editform to update forms without recreating them
  • Marketplace: Create items with role rewards to incentivize purchases
  • Vouchers: Import voucher codes in bulk and set up automated purchase panels
  • Google Sheets: Set up Google Sheets integration for automatic form exports
  • Weekly Limits: Use weekly limits on marketplace items and vouchers to prevent abuse
  • Random Selector: Use random selection tools for giveaways, teams, and events

Multi-Server Support

This bot supports multiple Discord servers (guilds). Each server has:

  • Independent points system - Points don't transfer between servers
  • Separate leaderboards - Each server has its own rankings
  • Server-specific settings - Prefix, notification channels, and reaction channels are per-server
  • Isolated raffles and duels - All data is scoped to the server

When the bot joins a new server, it automatically initializes all necessary data structures.

Troubleshooting

Q: I can't see a command in the slash command menu

  • Make sure you're typing / and the command name
  • Commands are server-specific, make sure the bot is in your server
  • Some commands are admin-only (marked with πŸ”’)

Q: I'm not earning reaction points

  • Check if the channel is enabled with /listreactionchannels
  • Make sure the message is less than 30 minutes old
  • You can only earn points once per message

Q: My duel wasn't accepted and the points are gone

  • Duels that aren't accepted within 5 minutes are automatically cancelled
  • Your bet should be automatically refunded
  • Contact an admin if you don't receive your refund

Q: I can't claim role points

  • Make sure you have a role that has points configured
  • Check the claim interval - you can only claim once per interval
  • Use /listrolepoints (admin) to see available role points

Q: I purchased an item but didn't receive the role

  • The bot needs "Manage Roles" permission
  • The role must be below the bot's highest role in the hierarchy
  • Contact an admin if the issue persists

Q: How do I redeem my purchased items?

  • Look for the redeems panel in your server
  • Click "Redeem Items" and select what you want to redeem
  • Confirm your redemption - items will be removed from your inventory

Q: My voucher code doesn't work

  • Make sure you copied the code correctly (case-sensitive)
  • The voucher may have already been used
  • Contact an admin with your purchase information

Q: Google Sheets integration isn't working

  • Use /check-google-sheets to diagnose issues
  • Make sure google-credentials.json exists in the bot directory
  • Verify the service account has access to the Google Drive folders
  • Check API quotas with /check-quotas

Q: How do I find the ticket ID to edit a raffle?

  • The Ticket ID is displayed in the footer of every raffle embed message
  • Look at the bottom of the raffle message for "Ticket ID: [number]"
  • This ID is shown when the raffle is created and remains visible on all raffle messages
  • You can also use /raffle-list to see all raffles with their ticket IDs

Q: How do I find the form ID to edit a form or view submissions?

  • Use /listforms command to see all forms with their IDs
  • The form ID is displayed next to each form in the list
  • Copy the form ID and use it with /editform, /viewsubmissions, or /exportform

Q: I can't update my form submission (Re-fill button not working)

  • The form admin may have disabled refill functionality
  • Check the form panel footer - if it says "Re-fill Form" is not available, refill is disabled
  • Contact the form admin if you need to update your submission

Q: I reached the maximum submission limit for a form

  • Each form can have a maximum number of submissions per user
  • Check the form panel footer for the limit (e.g., "Max submissions per user: 1")
  • If you've reached the limit, you cannot submit again (but you can still view your submission)
  • Contact the form admin if you believe this is an error

Q: How do I view what I submitted to a form?

  • Click the "πŸ‘οΈ Check My Submission" button on the form panel
  • Or use /myformsubmission form_id:123456789 command with the form ID
  • Use /myformsubmission without form_id to see all your submissions

Q: How do I configure automatic points reset?

  • Use /setpointsreset enabled:true interval:1 to enable monthly reset
  • Use /setpointsreset enabled:true interval:3 to reset every 3 months
  • Use /getpointsreset to view current settings
  • Use /setpointsreset enabled:false to disable automatic reset

Q: I can't activate Premium for my server

  • Make sure you have an active Whop subscription
  • Check your subscription status with /check-subscription
  • Each subscription can only be used for 1 server - if all your subscriptions are in use, you need to purchase a new one
  • If the server already has premium activated by someone else, you'll see who activated it and need to contact them to deactivate first

Q: Can I use one subscription for multiple servers?

  • No, each subscription can only activate premium for 1 server at a time
  • If you want to activate premium for multiple servers, you need to purchase multiple subscriptions
  • Use /check-subscription to see how many subscriptions you have and how many are available

Support

If you encounter issues or have questions:

  1. Check this guide first
  2. Use /help in Discord to see all commands
  3. Contact your server administrators
  4. Check if the bot has the necessary permissions in your server

Last Updated: January 2025

Recent Updates

  • Leveling System: Added /level and /levelsettings commands for message-based XP and leveling system
  • Statistics Tracking: Added /stats-check command to view server statistics and tracking status
  • Form Editing: Added /editform command to modify existing forms
  • Submission Limits: Added ability to limit how many times users can submit a form
  • Refill Control: Added option to enable/disable form refill functionality
  • Check Submissions: Added "πŸ‘οΈ Check My Submission" button on form panels and /myformsubmission command
  • Form Resend: Added /resendform command to resend form panels to channels
  • Raffle Editing: Added /editraffle command to edit active raffles
  • Raffle List: Added /raffle-list command to view all raffles with ticket IDs
  • Raffle Entry Check: Added /checkraffleentry command and "My Entry" button for users to check their raffle entries
  • Points Reset Settings: Added /setpointsreset and /getpointsreset commands to configure automatic points reset with customizable intervals (1-12 months)
  • Whop Premium System: Added /activate and /check-subscription commands for Whop premium subscription management with per-server activation support
  • Role Management: Added /addrole and /assignroletoeveryone commands for better role management
  • Thread Roles: Added !threadrole command to grant roles to all thread members
  • Guild-Scoped Features: Marketplace and streamboard are now properly scoped per guild

This guide covers all features as of the latest version. Some features may vary based on your server's configuration.