Add comprehensive Support cog that automatically disables and replaces Red's built-in contact and dm commands with enhanced, feature-rich versions. Features: - Command override mechanism (disables core commands on load, restores on unload) - Multi-category support system with dedicated channels - Custom emojis, greetings, and descriptions per category - User blocking/unblocking system - Comprehensive logging to dedicated log channel - Anonymous mode for staff replies - Enhanced embed formatting - Category selection dropdown UI - Staff control buttons (Close Thread, Block User) - Reply modal for staff responses - Background thread cleanup task Commands: - [p]contact - Enhanced contact command (DM only) - [p]dm - Enhanced DM command with logging - [p]supportset - 15 admin configuration commands Documentation: - README.md - Full documentation (7.9K) - QUICKSTART.md - Quick setup guide (2.5K) - EXAMPLES.md - Configuration examples (8.1K) - TECHNICAL.md - Technical docs (8.6K) - CHANGELOG.md - Version history - test_override.py - Override mechanism reference Technical: - 625 lines of code - 33 async functions - Full type hints - Config-based data storage - Red 3.5.0+ compatible - Follows NexusCore patterns Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
7.9 KiB
Support
A modernized DM/contact system that replaces Red's built-in contact and dm commands with enhanced features including categories, channels, custom greetings, logging, and more.
⚠️ Important: When loaded, this cog automatically disables Red's core
contactanddmcommands, replacing them with its own enhanced versions. The core commands are re-enabled if you unload this cog.
Features
Core Features
- 🎯 Category System - Organize support messages by department/topic
- 📂 Custom Channels - Route different categories to specific channels
- 💬 Enhanced DM System - More powerful than the built-in dm command
- 🔒 User Blocking - Block abusive users from contacting staff
- 📝 Logging - Track all support interactions in a dedicated log channel
- 🎨 Customizable - Custom greetings, emojis, and messages per category
Advanced Options
- 👻 Anonymous Mode - Hide staff names in replies
- 📋 Category Selection - Optional or required category selection
- 💎 Embed Replies - Beautiful embed formatting for messages
- ⏱️ Thread Timeout - Auto-close inactive support threads
- 🎭 Role Permissions - Category-specific staff roles
Installation
[p]repo add evecogs https://github.com/yourusername/EveCogs
[p]cog install evecogs support
[p]load support
When you load this cog, it will:
- ✅ Disable Red's core
contactcommand - ✅ Disable Red's core
dmcommand - ✅ Register its own enhanced versions of these commands
If you unload the cog, the original core commands are automatically restored.
Setup
Basic Setup
-
Enable the system:
[p]supportset enable -
Create a category:
[p]supportset addcategory general #support-general General support questions -
Set default category (optional):
[p]supportset defaultcategory general -
Configure logging (optional):
[p]supportset logchannel #support-logs
Advanced Setup
Add multiple categories:
[p]supportset addcategory billing #billing-support Billing and payment questions
[p]supportset addcategory technical #tech-support Technical issues
[p]supportset addcategory reports #reports User reports and moderation
Customize categories:
[p]supportset setemoji billing 💳
[p]supportset setemoji technical 🔧
[p]supportset setgreeting billing Thank you for contacting billing support!
Configure options:
[p]supportset anonymous true # Hide staff names in replies
[p]supportset requirecategory true # Force users to select a category
[p]supportset embed true # Use embeds for replies
[p]supportset showinfo true # Show staff info in replies
Commands
User Commands
[p]contact <message>
Can only be used in DMs
Send a message to server staff. Users will be prompted to select a category if multiple are available.
Examples:
[p]contact I need help with my account
[p]contact Bug report: commands not working
Staff Commands
[p]dm <user> <message>
Requires: Manage Server permission
Send a DM to a user from the server. Replaces Red's built-in dm command with enhanced logging and formatting.
Examples:
[p]dm @User Hello! We received your support request
[p]dm 123456789012345678 Your issue has been resolved
Admin Commands
All admin commands require Manage Server permission.
[p]supportset enable
Enable the support system for your server.
[p]supportset disable
Disable the support system for your server.
[p]supportset addcategory <name> <channel> [description]
Create a new support category.
Example:
[p]supportset addcategory billing #billing "Billing questions and payment issues"
[p]supportset removecategory <name>
Remove a support category.
[p]supportset setemoji <category> <emoji>
Set an emoji for a category (shown in category selection).
Example:
[p]supportset setemoji billing 💳
[p]supportset setgreeting <category> <message>
Set a custom greeting shown to users when they contact this category.
Example:
[p]supportset setgreeting billing Thanks for contacting billing! We'll respond within 24 hours.
[p]supportset defaultcategory <name>
Set the default category (used if only one category or user preference).
[p]supportset logchannel [channel]
Set or clear the log channel for support messages.
Examples:
[p]supportset logchannel #support-logs
[p]supportset logchannel # Clear log channel
[p]supportset anonymous <true/false>
Toggle anonymous mode (hides staff member names in replies).
[p]supportset requirecategory <true/false>
Toggle whether users must select a category.
[p]supportset embed <true/false>
Toggle using embeds for replies.
[p]supportset showinfo <true/false>
Toggle showing staff member info in replies.
[p]supportset list
Display all categories and current settings.
[p]supportset block <user>
Block a user from using the support system.
[p]supportset unblock <user>
Unblock a user from using the support system.
Usage Examples
Example 1: Simple Support Setup
Single category for all support:
[p]supportset enable
[p]supportset addcategory support #support-tickets General support
[p]supportset defaultcategory support
Example 2: Multi-Category Setup
Different departments:
[p]supportset enable
[p]supportset addcategory general #general-support General questions
[p]supportset addcategory billing #billing Billing and payments
[p]supportset addcategory technical #tech-support Technical issues
[p]supportset addcategory reports #reports Report users or content
[p]supportset setemoji general 📝
[p]supportset setemoji billing 💳
[p]supportset setemoji technical 🔧
[p]supportset setemoji reports 🚨
[p]supportset requirecategory true
[p]supportset logchannel #support-logs
Example 3: Anonymous Support
For servers that want anonymous staff replies:
[p]supportset enable
[p]supportset addcategory anonymous #anon-support Anonymous support
[p]supportset anonymous true
[p]supportset showinfo false
How It Works
User Experience
- User sends
[p]contact <message>in DMs - If multiple categories exist, they select one from a dropdown
- Message is sent to the configured channel for that category
- Staff can reply using
[p]dm <user> <message> - User receives the reply in DMs
Staff Experience
- Support messages appear in category-specific channels
- Each message shows user info, category, roles, join date
- Staff reply with
[p]dm @user message - All interactions are logged (if log channel is set)
- Staff can block abusive users with control buttons
Configuration Storage
- Guild Settings: Categories, channels, logging, options
- User Settings: Block status, category preferences, last contact time
Comparison to Built-in Commands
| Feature | Red Built-in | Support Cog |
|---|---|---|
| Basic contact/dm | ✅ | ✅ |
| Categories | ❌ | ✅ |
| Custom channels | ❌ | ✅ |
| Custom greetings | ❌ | ✅ |
| User blocking | ❌ | ✅ |
| Logging | Limited | ✅ Full |
| Embeds | Basic | ✅ Enhanced |
| Anonymous mode | ❌ | ✅ |
| Category emojis | ❌ | ✅ |
| Multi-server | Limited | ✅ Better |
Tips
- Use categories to organize by department (billing, tech, general)
- Set custom greetings to set response time expectations
- Enable logging to keep track of all support interactions
- Use anonymous mode if staff prefer to keep names private
- Block abusive users to prevent spam
Support & Feedback
For issues, suggestions, or contributions, please visit the EveCogs repository.
Credits
Created for Red-DiscordBot V3 as a modernized replacement for the built-in contact/dm system.