Document ModpackChecker Phase 11: Licensing & Support Infrastructure
GEMINI CONSULTATION ROUND 3 COMPLETE Added Phase 11 (6-8 hours) to flagship completion plan: - License validation system (BuiltByBit Order ID as key) - Discord verification bot (/verify-mvc command) - Gated support channels (#mvc-general + #mvc-support) - Descriptive UI error messages (highest ROI) - GitBook knowledge base migration - Business hours & boundaries (protect Michael's time) - Community Helper program (6-12 month strategy) Gemini's Core Philosophy: "The real anti-piracy measure is gating updates and Discord support" Key Decisions: - NO complex DRM/IonCube (breaks panels) - YES BuiltByBit Order ID validation - 72-hour phone-home via cron (NOT page load) - 7-day grace period for validation failures - SLA: 24-48 hours (underpromise, overdeliver) - Support hours: Mon-Fri 9am-5pm CST - Peer support in #mvc-general reduces ticket load Database schema updated with: - max_activations, current_activations - hardware_ids (JSONB for multi-panel) - status (active/suspended/refunded) Updated: - docs/tasks/modpack-version-checker/FLAGSHIP-PRODUCT-COMPLETION-PLAN.md Added complete Phase 11 section (300+ lines) Updated time estimates: 20-29 hours total Updated launch criteria (licensing + support) Updated feature matrix Created: - docs/consultations/gemini-modpackchecker-round3-licensing-support/GEMINI-RECOMMENDATIONS-SUMMARY.md Complete strategic summary Implementation checklist Success metrics Scaling strategy for 10+ products Total flagship time: 20-29 hours (3-4 work sessions) Chronicler #64 - Flagship Standard: Do it right or don't do it
This commit is contained in:
@@ -0,0 +1,346 @@
|
||||
# Gemini Consultation Summary: Licensing & Support Strategy
|
||||
|
||||
**Document ID:** FFG-GEMINI-MVC-003
|
||||
**Consultation Date:** April 6, 2026
|
||||
**Consulted By:** Chronicler #64 + Michael
|
||||
**Topic:** ModpackChecker licensing, support infrastructure, and long-term sustainability
|
||||
|
||||
---
|
||||
|
||||
## 🎯 GEMINI'S CORE PHILOSOPHY
|
||||
|
||||
> **"The real anti-piracy measure is gating your updates and your Discord support."**
|
||||
|
||||
**Translation:** Don't fight pirates with DRM hell. Fight them by making legitimate ownership MORE VALUABLE than piracy.
|
||||
|
||||
---
|
||||
|
||||
## ✅ KEY STRATEGIC DECISIONS
|
||||
|
||||
### **1. License Key Simplification**
|
||||
|
||||
**❌ DON'T BUILD:**
|
||||
- Complex UUID generation systems
|
||||
- Encrypted license keys
|
||||
- Heavy DRM / IonCube obfuscation (breaks panel updates, triggers malware scanners)
|
||||
- Phone-home on every page load (crashes panels if validation server is down)
|
||||
|
||||
**✅ DO BUILD:**
|
||||
- BuiltByBit Order ID as "the key"
|
||||
- Lightweight validation API on your server
|
||||
- 72-hour phone-home frequency (via cron, not page load)
|
||||
- 7-day grace period for validation failures
|
||||
- Multi-panel support (2 activations: dev + production)
|
||||
|
||||
---
|
||||
|
||||
### **2. Discord Support Architecture**
|
||||
|
||||
**✅ THE GATED COMMUNITY APPROACH:**
|
||||
|
||||
**Structure:**
|
||||
1. Buyer purchases on BuiltByBit
|
||||
2. Buyer joins Firefrost Gaming Discord
|
||||
3. Buyer runs `/verify-mvc [order-id]`
|
||||
4. Bot validates → assigns `ModpackChecker Owner` role
|
||||
5. Channels `#mvc-general` and support tickets appear
|
||||
|
||||
**Channels:**
|
||||
- `#mvc-general` — Public peer support (MVC owners help each other)
|
||||
- `#mvc-support` — Private tickets via Ticket Tool (role-gated)
|
||||
|
||||
**Ticket Tool:**
|
||||
- Add 7th ticket type: "ModpackChecker Support"
|
||||
- Require `ModpackChecker Owner` role to see/open
|
||||
- Auto-responder sets boundaries (24-48 hours, business hours)
|
||||
|
||||
**When you hit 5+ products:**
|
||||
- Create unified "Extension Support" category
|
||||
- Use dropdown menu to select which product
|
||||
- One `Pterodactyl Customer` role for all extensions
|
||||
|
||||
---
|
||||
|
||||
### **3. Support SLA (Underpromise, Overdeliver)**
|
||||
|
||||
**❌ DON'T SAY:** "12 hours"
|
||||
|
||||
**✅ DO SAY:** "We aim to respond to all tickets within 24-48 business hours."
|
||||
|
||||
**Gemini's Wisdom:**
|
||||
- Promise 12 hours, reply in 13 → 1-star review
|
||||
- Promise 24 hours, reply in 4 → you're a hero
|
||||
|
||||
**Business Hours:** Monday-Friday, 9 AM - 5 PM CST
|
||||
|
||||
**Critical Boundary:**
|
||||
> "Do not answer tickets at 11 PM on a Saturday, even if you are awake and bored. You train your customers on how to treat you."
|
||||
|
||||
**Why this matters:**
|
||||
- Answer instantly on weekends → customers EXPECT instant weekend support forever
|
||||
- Set boundaries now → protect future you from burnout
|
||||
|
||||
---
|
||||
|
||||
### **4. Piracy Prevention Reality Check**
|
||||
|
||||
**Gemini's Brutal Truth:**
|
||||
> "You cannot stop a determined pirate. PHP is an interpreted language."
|
||||
|
||||
**What DOESN'T Work:**
|
||||
- ❌ IonCube obfuscation (breaks panel updates)
|
||||
- ❌ Complex encryption (server admins hate it)
|
||||
- ❌ Heavy DRM (triggers false malware alerts)
|
||||
|
||||
**What DOES Work:**
|
||||
- ✅ Gate updates (pirates can't download v1.1 without BuiltByBit account)
|
||||
- ✅ Gate support (pirates can't get help without Discord role)
|
||||
- ✅ Frequent updates (pirated v1.0 breaks when APIs change)
|
||||
|
||||
**The Reality:**
|
||||
- Pirate downloads v1.0
|
||||
- Modrinth API changes in 3 months
|
||||
- v1.0 breaks
|
||||
- Pirate has no BuiltByBit account → can't download v1.1
|
||||
- Pirate has no Discord role → can't get support
|
||||
- **Pirate gives up and buys it**
|
||||
|
||||
---
|
||||
|
||||
### **5. Self-Service Support (Highest ROI)**
|
||||
|
||||
**Gemini says the #1 ticket reducer is NOT documentation — it's UX.**
|
||||
|
||||
**Priority Order:**
|
||||
1. **Descriptive UI Error Messages** (HIGHEST ROI)
|
||||
- Bad: API fails → badge just breaks
|
||||
- Good: API fails → Red icon + hover text: "CurseForge API Key Missing. [Configure Now]"
|
||||
|
||||
2. **Pre-Ticket Forms** (Ticket Tool feature)
|
||||
- Before ticket opens, collect: Panel version, Blueprint version, PHP version
|
||||
- Force: "Have you checked the Troubleshooting Guide? [Yes/No]"
|
||||
|
||||
3. **Peer Support Channel** (`#mvc-general`)
|
||||
- Users help each other
|
||||
- Zero time cost for you
|
||||
- Identifies future "Community Helper" moderators
|
||||
|
||||
4. **GitBook Knowledge Base** (not GitHub README)
|
||||
- Searchable
|
||||
- Professional appearance
|
||||
- Better for screenshots
|
||||
- SEO-friendly
|
||||
|
||||
---
|
||||
|
||||
### **6. Long-Term Sustainability**
|
||||
|
||||
**Community Helper Program (6-12 months post-launch):**
|
||||
|
||||
**How it works:**
|
||||
1. Identify the most helpful person in `#mvc-general`
|
||||
2. Offer them:
|
||||
- Free access to all future extensions
|
||||
- "Community Helper" role (special color, recognition)
|
||||
- Listing on website/docs
|
||||
3. They handle Tier 1 support (setup questions)
|
||||
4. You handle Tier 2 support (code bugs, complex issues)
|
||||
|
||||
**Benefits:**
|
||||
- Reduces your support load by 50-70%
|
||||
- Builds community loyalty
|
||||
- Creates advocates who promote your products
|
||||
- Identifies potential future staff
|
||||
|
||||
---
|
||||
|
||||
## 📋 IMPLEMENTATION CHECKLIST
|
||||
|
||||
### **Phase 11A: License Validation System**
|
||||
- [ ] Create database table: `mvc_licenses`
|
||||
- [ ] Build validation API: `POST /api/validate-mvc`
|
||||
- [ ] Add Order ID entry to extension admin panel
|
||||
- [ ] Implement 72-hour phone-home (cron job)
|
||||
- [ ] Implement 7-day grace period logic
|
||||
- [ ] Add UI warning for invalid licenses
|
||||
- [ ] Test valid/invalid/grace period scenarios
|
||||
|
||||
### **Phase 11B: Discord Infrastructure**
|
||||
- [ ] Create Discord role: `ModpackChecker Owner`
|
||||
- [ ] Create channel: `#mvc-general` (public to role)
|
||||
- [ ] Add 7th Ticket Tool category: "ModpackChecker Support" (role-gated)
|
||||
- [ ] Write auto-responder message (business hours, SLA)
|
||||
- [ ] Configure pre-ticket form (collect panel/blueprint/PHP versions)
|
||||
|
||||
### **Phase 11C: Verification Bot**
|
||||
- [ ] Build Discord bot: `/verify-mvc [order-id]`
|
||||
- [ ] Bot calls validation API
|
||||
- [ ] Bot assigns `ModpackChecker Owner` role on success
|
||||
- [ ] Bot DMs confirmation message
|
||||
- [ ] Implement anti-sharing (1 order = 1 Discord account)
|
||||
- [ ] Add transfer support via tickets
|
||||
|
||||
### **Phase 11D: Descriptive UI Errors**
|
||||
- [ ] Red icon + hover text for missing API keys
|
||||
- [ ] Red icon + hover text for invalid API keys
|
||||
- [ ] Yellow icon + hover text for rate limits
|
||||
- [ ] Red icon + hover text for license invalid
|
||||
- [ ] Gray badge for offline servers
|
||||
- [ ] Yellow badge for manifest not found
|
||||
- [ ] Link errors directly to fix locations
|
||||
|
||||
### **Phase 11E: GitBook Migration**
|
||||
- [ ] Create GitBook account
|
||||
- [ ] Port all 7 markdown docs to GitBook
|
||||
- [ ] Add screenshots for each step
|
||||
- [ ] Enable search functionality
|
||||
- [ ] Add to BuiltByBit listing: "📖 Documentation: [URL]"
|
||||
|
||||
### **Phase 11F: BuiltByBit Listing Updates**
|
||||
- [ ] Add Support section (24-48 hours, Discord-based)
|
||||
- [ ] Add verification instructions (`/verify-mvc`)
|
||||
- [ ] Add "Read Before You Buy" warnings
|
||||
- [ ] Link to GitBook documentation
|
||||
- [ ] Add license validation disclosure
|
||||
|
||||
### **Phase 11G: Business Hours & Boundaries**
|
||||
- [ ] Document support hours: Mon-Fri 9am-5pm CST
|
||||
- [ ] Add to BuiltByBit listing
|
||||
- [ ] Add to Ticket Tool auto-responder
|
||||
- [ ] Add to GitBook FAQ
|
||||
- [ ] Create weekend/holiday auto-responder
|
||||
- [ ] **ENFORCE BOUNDARIES** (do not answer outside hours)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 SUCCESS METRICS
|
||||
|
||||
**After 30 days post-launch, track:**
|
||||
- Support tickets per week
|
||||
- Ticket resolution time
|
||||
- Repeat tickets from same buyer
|
||||
- `#mvc-general` activity (peer support working?)
|
||||
- Documentation page views (which docs are most-read?)
|
||||
- License validation failures (legitimate or pirates?)
|
||||
|
||||
**After 6 months:**
|
||||
- Identify Community Helper candidate
|
||||
- Evaluate if GitBook is reducing tickets
|
||||
- Decide if business hours need adjustment
|
||||
|
||||
---
|
||||
|
||||
## 💡 GEMINI'S SPECIFIC RECOMMENDATIONS
|
||||
|
||||
### **Database Schema:**
|
||||
```sql
|
||||
-- Gemini's recommended additions:
|
||||
max_activations INT DEFAULT 2,
|
||||
current_activations INT DEFAULT 0,
|
||||
hardware_ids JSONB, -- Store panel domains/IPs
|
||||
status VARCHAR(20) DEFAULT 'active' -- active, suspended, refunded
|
||||
```
|
||||
|
||||
### **Validation Frequency:**
|
||||
- ✅ Every 72 hours via cron
|
||||
- ❌ NOT on page load (crashes panels if server down)
|
||||
|
||||
### **Grace Period:**
|
||||
- ✅ 7 days after validation failure
|
||||
- Extension keeps working during grace period
|
||||
- After 7 days: Disable auto-detection, show warning, manual config still works
|
||||
|
||||
### **Error Message Examples:**
|
||||
- "CurseForge API Key Missing. Configure in Admin → Extensions → ModpackChecker Settings"
|
||||
- "API rate limit hit. Retrying in 60 seconds."
|
||||
- "License validation failed. Grace period: 5 days remaining. [Update License]"
|
||||
|
||||
### **Auto-Responder Template:**
|
||||
```
|
||||
Thanks for reaching out about ModpackChecker!
|
||||
|
||||
Our official support hours are Monday-Friday, 9 AM - 5 PM CST.
|
||||
We typically respond within 24 hours.
|
||||
|
||||
While you wait, please check:
|
||||
📖 Documentation: [GitBook URL]
|
||||
🔍 Troubleshooting Guide: [Direct link]
|
||||
💬 #mvc-general: Other owners may have solved similar issues
|
||||
|
||||
Please ensure your ticket includes:
|
||||
✅ Pterodactyl Panel version
|
||||
✅ Blueprint version
|
||||
✅ PHP version
|
||||
✅ Platform (CurseForge/Modrinth/FTB/Technic)
|
||||
✅ Screenshots of any errors
|
||||
|
||||
We'll be with you shortly!
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 IMMEDIATE ACTIONS (GEMINI'S ORDERS)
|
||||
|
||||
1. **Research BuiltByBit Integration**
|
||||
- Does BBB have Discord OAuth?
|
||||
- Does BBB have API for purchase verification?
|
||||
- Can we hook into purchase webhooks?
|
||||
|
||||
2. **Build Verification Bot**
|
||||
- Simple Node.js bot with single command: `/verify-mvc`
|
||||
- Calls validation API
|
||||
- Assigns role on success
|
||||
|
||||
3. **Write Auto-Responder**
|
||||
- Draft boundary-setting message for Ticket Tool
|
||||
- Include business hours, SLA, docs links
|
||||
|
||||
4. **Set Up GitBook**
|
||||
- Port README to GitBook "Getting Started"
|
||||
- Add search functionality
|
||||
- Link from BuiltByBit listing
|
||||
|
||||
---
|
||||
|
||||
## 📊 SCALING STRATEGY (5+ Products)
|
||||
|
||||
**When you launch multiple extensions:**
|
||||
|
||||
**Discord Structure:**
|
||||
- Single role: `Pterodactyl Customer`
|
||||
- Single channel: `#extension-general`
|
||||
- Single ticket category: "Extension Support" with dropdown menu
|
||||
- Pre-ticket form asks: "Which extension?"
|
||||
|
||||
**License Database:**
|
||||
- One table per product: `mvc_licenses`, `scheduler_licenses`, etc.
|
||||
- OR: Unified table with `product_id` column
|
||||
|
||||
**GitBook:**
|
||||
- One knowledge base per product
|
||||
- OR: Unified docs with product tabs
|
||||
|
||||
**Community Helpers:**
|
||||
- One helper per product
|
||||
- OR: General helpers who know all products
|
||||
|
||||
---
|
||||
|
||||
## 💙 THE FLAGSHIP STANDARD
|
||||
|
||||
Gemini's recommendations ensure:
|
||||
1. ✅ Your time is protected (business hours, boundaries)
|
||||
2. ✅ Support is sustainable (peer support, community helpers)
|
||||
3. ✅ Pirates are discouraged (gated updates, gated support)
|
||||
4. ✅ Legitimate buyers are happy (descriptive errors, fast responses)
|
||||
5. ✅ System scales to 10+ products (unified structure)
|
||||
|
||||
**This isn't just ModpackChecker support — this is the template for every commercial product you'll ever launch.**
|
||||
|
||||
---
|
||||
|
||||
**Fire + Frost + Foundation = Where Love Builds Legacy** 💙🔥❄️
|
||||
|
||||
**Consultation Summary by:** Chronicler #64
|
||||
**Date:** April 6, 2026
|
||||
**Status:** Active — To be implemented in Phase 11
|
||||
@@ -385,6 +385,414 @@ Three-command install via Blueprint (see documentation for details)
|
||||
|
||||
---
|
||||
|
||||
### **Phase 11: Licensing & Support Infrastructure** (6-8 hours)
|
||||
**Priority:** CRITICAL — Protects your time and prevents support burnout
|
||||
|
||||
**Gemini's Core Philosophy:**
|
||||
> "The real anti-piracy measure is gating your updates and your Discord support."
|
||||
|
||||
**Don't fight pirates with DRM. Fight them by making legitimate ownership MORE VALUABLE than piracy.**
|
||||
|
||||
#### **A) BuiltByBit Order ID Validation System** (3-4 hours)
|
||||
|
||||
**The Simplified License Model:**
|
||||
- ❌ NO complex UUID generation
|
||||
- ❌ NO encrypted license keys
|
||||
- ❌ NO IonCube obfuscation (breaks panel updates)
|
||||
- ✅ YES BuiltByBit Order ID as "the key"
|
||||
- ✅ YES lightweight validation API
|
||||
- ✅ YES 7-day grace period
|
||||
|
||||
**Validation Flow:**
|
||||
1. Buyer purchases on BuiltByBit (receives Order ID)
|
||||
2. Buyer installs extension on their panel
|
||||
3. Extension admin panel asks for: **BuiltByBit Order ID** + **Discord Username**
|
||||
4. Extension calls validation API: `POST https://panel.firefrostgaming.com/api/validate-mvc`
|
||||
5. API checks BuiltByBit API: "Is this Order ID valid?"
|
||||
6. If valid → extension fully functional
|
||||
7. If invalid → 7-day grace period starts
|
||||
|
||||
**Validation Frequency:**
|
||||
- Once every 72 hours via cron job
|
||||
- **NEVER on page load** (if validation server is down, panels don't crash)
|
||||
- Store last validation timestamp in database
|
||||
|
||||
**Grace Period Logic:**
|
||||
- If validation fails (network issue, server down, etc.) → 7-day grace period
|
||||
- During grace period: Extension works normally
|
||||
- After grace period expires: Disable auto-detection cron, show "License Invalid" warning
|
||||
- UI remains functional (manual configuration still works)
|
||||
|
||||
**Database Schema:**
|
||||
```sql
|
||||
CREATE TABLE mvc_licenses (
|
||||
id SERIAL PRIMARY KEY,
|
||||
license_key VARCHAR(64) UNIQUE NOT NULL, -- This is the BuiltByBit Order ID
|
||||
builtbybit_order_id VARCHAR(50),
|
||||
buyer_email VARCHAR(255),
|
||||
buyer_discord_id VARCHAR(20),
|
||||
buyer_discord_username VARCHAR(100),
|
||||
purchase_date TIMESTAMP,
|
||||
|
||||
-- Multi-panel support
|
||||
max_activations INT DEFAULT 2, -- Allow dev + production panels
|
||||
current_activations INT DEFAULT 0,
|
||||
hardware_ids JSONB, -- Store panel domains/IPs as array
|
||||
|
||||
-- Activation tracking
|
||||
is_activated BOOLEAN DEFAULT false,
|
||||
activated_panel_domain VARCHAR(255), -- Primary panel
|
||||
activation_date TIMESTAMP,
|
||||
last_check_in TIMESTAMP,
|
||||
last_validation_attempt TIMESTAMP,
|
||||
validation_failures INT DEFAULT 0,
|
||||
grace_period_expires TIMESTAMP,
|
||||
|
||||
-- Status management
|
||||
status VARCHAR(20) DEFAULT 'active', -- active, suspended, refunded, expired
|
||||
is_revoked BOOLEAN DEFAULT false,
|
||||
revoke_reason TEXT,
|
||||
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX idx_license_key ON mvc_licenses(license_key);
|
||||
CREATE INDEX idx_buyer_email ON mvc_licenses(buyer_email);
|
||||
CREATE INDEX idx_buyer_discord ON mvc_licenses(buyer_discord_id);
|
||||
CREATE INDEX idx_activated_panel ON mvc_licenses(activated_panel_domain);
|
||||
CREATE INDEX idx_status ON mvc_licenses(status);
|
||||
```
|
||||
|
||||
**Validation API Endpoint:**
|
||||
```
|
||||
POST /api/validate-mvc
|
||||
Body: {
|
||||
"order_id": "BBB-12345",
|
||||
"panel_domain": "panel.example.com",
|
||||
"discord_username": "frostystyle"
|
||||
}
|
||||
|
||||
Response: {
|
||||
"valid": true,
|
||||
"status": "active",
|
||||
"grace_period_expires": null,
|
||||
"max_activations": 2,
|
||||
"current_activations": 1,
|
||||
"message": "License validated successfully"
|
||||
}
|
||||
```
|
||||
|
||||
**Code Changes:**
|
||||
- Add admin panel UI for Order ID entry
|
||||
- Add cron job for 72-hour validation check
|
||||
- Add grace period tracking
|
||||
- Add UI warning for invalid licenses
|
||||
- Add BuiltByBit API integration
|
||||
|
||||
**Testing:**
|
||||
- Test valid Order ID
|
||||
- Test invalid Order ID (grace period triggers)
|
||||
- Test network failure (grace period triggers)
|
||||
- Test grace period expiration (cron disables, UI shows warning)
|
||||
- Test multi-panel activation (dev + production)
|
||||
|
||||
---
|
||||
|
||||
#### **B) Discord Support Infrastructure** (2-3 hours)
|
||||
|
||||
**The Gated Community Approach:**
|
||||
- Keep everything in Firefrost Gaming Discord (no separate server)
|
||||
- Gate support channels to `ModpackChecker Owner` role
|
||||
- Buyers verify purchase → auto-assigned role → channels appear
|
||||
|
||||
**Discord Channel Structure:**
|
||||
1. **#mvc-general** (Public to all MVC Owners)
|
||||
- Peer-to-peer support
|
||||
- Tips and tricks
|
||||
- Community discussion
|
||||
- Identifies future "Community Helper" moderators
|
||||
|
||||
2. **#mvc-support** (Ticket Tool category, role-gated)
|
||||
- Private tickets for official support
|
||||
- Only visible to MVC Owners
|
||||
- Response SLA: 24-48 business hours
|
||||
|
||||
**Ticket Tool Configuration:**
|
||||
- Add 7th ticket type: "ModpackChecker Support"
|
||||
- Require `ModpackChecker Owner` role to see/open tickets
|
||||
- Auto-responder message sets boundaries
|
||||
|
||||
**Auto-Responder Message:**
|
||||
```
|
||||
Thanks for reaching out about ModpackChecker!
|
||||
|
||||
Our official support hours are Monday-Friday, 9 AM - 5 PM CST. We typically respond within 24 hours.
|
||||
|
||||
While you wait, please check:
|
||||
📖 Documentation: [GitBook URL]
|
||||
🔍 Troubleshooting Guide: [Direct link]
|
||||
💬 #mvc-general: Other owners may have solved similar issues
|
||||
|
||||
Please ensure your ticket includes:
|
||||
✅ Pterodactyl Panel version
|
||||
✅ Blueprint version
|
||||
✅ PHP version
|
||||
✅ Platform (CurseForge/Modrinth/FTB/Technic)
|
||||
✅ Screenshots of any errors
|
||||
|
||||
We'll be with you shortly!
|
||||
```
|
||||
|
||||
**Pre-Ticket Form (Ticket Tool feature):**
|
||||
Before ticket opens, collect:
|
||||
- Panel Version: _______
|
||||
- Blueprint Version: _______
|
||||
- PHP Version: _______
|
||||
- Have you checked the Troubleshooting Guide? [Yes/No]
|
||||
- Have you verified your API key spelling? [Yes/No]
|
||||
|
||||
---
|
||||
|
||||
#### **C) Discord Verification Bot** (1-2 hours)
|
||||
|
||||
**Purpose:** Link BuiltByBit purchases to Discord roles automatically
|
||||
|
||||
**Flow:**
|
||||
1. Buyer purchases on BuiltByBit (receives Order ID via email/DM)
|
||||
2. Buyer joins Firefrost Gaming Discord
|
||||
3. Buyer runs command: `/verify-mvc [order-id]`
|
||||
4. Bot calls validation API to check Order ID
|
||||
5. If valid → assigns `ModpackChecker Owner` role
|
||||
6. Channels `#mvc-general` and support ticket button appear
|
||||
7. Bot DMs buyer: "Verification successful! You now have access to MVC support channels."
|
||||
|
||||
**Implementation Options:**
|
||||
|
||||
**Option A: Extend Existing Bot (Carl-bot or custom)**
|
||||
- Add `/verify-mvc` command
|
||||
- Calls validation API
|
||||
- Assigns role on success
|
||||
|
||||
**Option B: Standalone Verification Bot**
|
||||
- Simple Node.js bot
|
||||
- Single command: `/verify-mvc`
|
||||
- Minimal maintenance
|
||||
|
||||
**Option C: BuiltByBit Native Integration**
|
||||
- Research if BuiltByBit has Discord OAuth
|
||||
- May auto-assign role on purchase
|
||||
|
||||
**Recommended:** Start with Option B (standalone bot), evaluate Option C availability
|
||||
|
||||
**Bot Database Table:**
|
||||
```sql
|
||||
CREATE TABLE discord_verifications (
|
||||
id SERIAL PRIMARY KEY,
|
||||
discord_id VARCHAR(20) NOT NULL,
|
||||
discord_username VARCHAR(100),
|
||||
order_id VARCHAR(50) NOT NULL,
|
||||
verified_at TIMESTAMP DEFAULT NOW(),
|
||||
role_assigned BOOLEAN DEFAULT true,
|
||||
|
||||
FOREIGN KEY (order_id) REFERENCES mvc_licenses(license_key)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_discord_id ON discord_verifications(discord_id);
|
||||
CREATE INDEX idx_order_id ON discord_verifications(order_id);
|
||||
```
|
||||
|
||||
**Anti-Sharing Logic:**
|
||||
- 1 Order ID = 1 Discord account
|
||||
- If Order ID already verified → "This order has already been verified by another Discord account. Please contact support if you changed accounts."
|
||||
- Allow transfer via support ticket (verify ownership, unlink old account, link new account)
|
||||
|
||||
---
|
||||
|
||||
#### **D) Descriptive UI Error Messages** (1 hour)
|
||||
|
||||
**Gemini's Highest ROI Recommendation:**
|
||||
> "The highest ROI for support reduction isn't a Discord channel; it's UX and Error Handling within the extension itself."
|
||||
|
||||
**Bad UX:**
|
||||
- API call fails → badge just breaks silently
|
||||
- User confused → opens support ticket
|
||||
|
||||
**Good UX:**
|
||||
- API call fails → Red warning icon on badge
|
||||
- Hover text: "CurseForge API Key Missing. Configure in Admin → Extensions → ModpackChecker Settings"
|
||||
- Console widget shows: "⚠️ No API key configured. [Click here to add one]"
|
||||
|
||||
**Error States to Handle:**
|
||||
|
||||
| Error | UI Display | Hover Text | Action Link |
|
||||
|-------|------------|------------|-------------|
|
||||
| Missing API Key | Red warning icon | "CurseForge API key not configured" | "Configure Now" → Admin panel |
|
||||
| Invalid API Key | Red warning icon | "CurseForge API key invalid (check spelling)" | "Update Key" → Admin panel |
|
||||
| API Rate Limited | Yellow warning icon | "API rate limit hit. Retrying in 60 seconds." | "Learn More" → Docs |
|
||||
| License Invalid | Red warning icon | "License validation failed. Grace period: 5 days remaining." | "Update License" → Admin panel |
|
||||
| Server Offline | Gray badge | "Server offline. Version check skipped." | No action |
|
||||
| Manifest Not Found | Yellow badge | "No modpack manifest detected. Configure manually." | "Configure" → Console widget |
|
||||
|
||||
**Implementation:**
|
||||
- Add error state enum to database
|
||||
- Update badge component to show error icons
|
||||
- Add tooltip text for each error state
|
||||
- Link errors directly to fix location
|
||||
|
||||
---
|
||||
|
||||
#### **E) GitBook Knowledge Base** (1-2 hours)
|
||||
|
||||
**Why GitBook over GitHub README:**
|
||||
- ✅ Searchable (users can find answers instantly)
|
||||
- ✅ Professional appearance
|
||||
- ✅ Screenshot support (better than markdown)
|
||||
- ✅ SEO (Google indexes it)
|
||||
- ✅ Analytics (see which docs are most-read)
|
||||
|
||||
**Migration Plan:**
|
||||
1. Create free GitBook account (gitbook.com)
|
||||
2. Port all 7 docs from markdown to GitBook:
|
||||
- README.md → Getting Started
|
||||
- INSTALLATION.md → Installation Guide
|
||||
- CONFIGURATION.md → API Key Setup
|
||||
- HOW-IT-WORKS.md → How Detection Works
|
||||
- MANUAL-CONFIGURATION.md → Manual Configuration
|
||||
- TROUBLESHOOTING.md → Troubleshooting
|
||||
- FAQ.md → Frequently Asked Questions
|
||||
3. Add screenshots for each step
|
||||
4. Enable search
|
||||
5. Link from BuiltByBit listing: "📖 Full Documentation: [GitBook URL]"
|
||||
|
||||
**Structure:**
|
||||
```
|
||||
ModpackChecker Documentation
|
||||
├── 🚀 Getting Started
|
||||
├── 📦 Installation
|
||||
├── 🔑 API Key Setup
|
||||
│ ├── CurseForge
|
||||
│ ├── Modrinth
|
||||
│ └── FTB (manual only)
|
||||
├── ⚙️ How It Works
|
||||
│ ├── Tiered Detection System
|
||||
│ ├── Egg Variables
|
||||
│ ├── File Detection
|
||||
│ └── Manual Configuration
|
||||
├── 🛠️ Manual Configuration
|
||||
│ ├── CurseForge
|
||||
│ ├── Modrinth
|
||||
│ ├── FTB
|
||||
│ └── Technic
|
||||
├── 🔍 Troubleshooting
|
||||
│ ├── Badge is Gray
|
||||
│ ├── API Rate Limits
|
||||
│ ├── License Issues
|
||||
│ └── Version Mismatches
|
||||
└── ❓ FAQ
|
||||
├── What platforms are supported?
|
||||
├── Does it work with custom modpacks?
|
||||
├── Can I use one license on multiple panels?
|
||||
└── How do I get support?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### **F) BuiltByBit Listing Updates** (30 minutes)
|
||||
|
||||
**Add to Product Description:**
|
||||
|
||||
**Support Section:**
|
||||
```markdown
|
||||
## 🎟️ Support
|
||||
|
||||
Support is provided via our Discord server.
|
||||
|
||||
**Response Time:** We aim to respond to all tickets within 24-48 business hours.
|
||||
**Support Hours:** Monday-Friday, 9 AM - 5 PM CST
|
||||
**Discord:** [Invite Link]
|
||||
|
||||
After purchase:
|
||||
1. Join our Discord
|
||||
2. Run `/verify-mvc [your-order-id]`
|
||||
3. Access #mvc-support and #mvc-general channels
|
||||
|
||||
📖 **Full Documentation:** [GitBook URL]
|
||||
```
|
||||
|
||||
**Read Before You Buy Section (Bottom of Listing):**
|
||||
```markdown
|
||||
## ⚠️ Read Before You Buy
|
||||
|
||||
1. **License Validation:** This extension performs a lightweight validation check every 72 hours. If your panel cannot reach our validation server, you have a 7-day grace period before features are disabled.
|
||||
|
||||
2. **Multi-Panel Use:** Your license allows installation on up to 2 panels (e.g., dev + production). Contact support to increase this limit.
|
||||
|
||||
3. **Support Requirements:** Support is provided via Discord only. You must verify your purchase to access support channels.
|
||||
|
||||
4. **Vanilla Servers:** This extension will not auto-detect vanilla Minecraft servers (no modpack manifest exists).
|
||||
|
||||
5. **Manifest Dependency:** Auto-detection requires `manifest.json` (CurseForge) or `modrinth.index.json` (Modrinth) in server root.
|
||||
|
||||
6. **Exact String Matching:** Version comparison uses exact string matching, not semantic versioning. If modpack authors change naming formats, the extension will flag for your review.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### **G) Business Hours & Boundaries** (Documentation Only)
|
||||
|
||||
**Gemini's Critical Warning:**
|
||||
> "Do not answer tickets at 11 PM on a Saturday, even if you are awake and bored. You train your customers on how to treat you."
|
||||
|
||||
**Establish NOW (Before First Sale):**
|
||||
- ✅ Support hours: Monday-Friday, 9 AM - 5 PM CST
|
||||
- ✅ Response SLA: 24-48 business hours
|
||||
- ✅ Weekend/holiday auto-responder: "Thanks for your ticket. Our team is away for the weekend/holiday. We'll respond on [next business day]."
|
||||
- ✅ DO NOT answer tickets outside business hours (even if awake)
|
||||
- ✅ DO NOT promise faster SLA (underpromise, overdeliver)
|
||||
|
||||
**Document in:**
|
||||
- BuiltByBit listing
|
||||
- Ticket Tool auto-responder
|
||||
- GitBook FAQ
|
||||
- Discord #mvc-general pinned message
|
||||
|
||||
---
|
||||
|
||||
#### **H) Future: Community Helper Program** (6-12 months post-launch)
|
||||
|
||||
**The Long-Term Sustainability Plan:**
|
||||
|
||||
After 6-12 months:
|
||||
1. Identify the most helpful person in `#mvc-general`
|
||||
2. Offer them:
|
||||
- ✅ Free access to all future extensions
|
||||
- ✅ "Community Helper" role (special color, permissions)
|
||||
- ✅ Recognition on website/docs
|
||||
3. They handle Tier 1 support (setup questions, basic troubleshooting)
|
||||
4. You handle Tier 2 support (code bugs, complex issues, feature requests)
|
||||
|
||||
**Benefits:**
|
||||
- Reduces your support load by 50-70%
|
||||
- Builds community loyalty
|
||||
- Identifies potential future staff/moderators
|
||||
- Creates "super users" who become advocates
|
||||
|
||||
**Document this strategy now** so future you remembers the plan.
|
||||
|
||||
---
|
||||
|
||||
**Deliverable (Phase 11 Complete):**
|
||||
- License validation system operational
|
||||
- Discord verification bot functional
|
||||
- Support channels gated and configured
|
||||
- GitBook documentation published
|
||||
- BuiltByBit listing updated with support info
|
||||
- Business hours boundaries established
|
||||
- Descriptive UI errors implemented
|
||||
|
||||
---
|
||||
|
||||
## 📋 COMPLETE FEATURE MATRIX
|
||||
|
||||
| Feature | Status | Priority | Time Estimate |
|
||||
@@ -397,11 +805,16 @@ Three-command install via Blueprint (see documentation for details)
|
||||
| Admin panel | ✅ Complete | Critical | Done |
|
||||
| "Ignore Version" button | ⏳ Phase 6 | Critical | 2-3 hours |
|
||||
| Backoff logic | ⏳ Phase 7 | High | 1-2 hours |
|
||||
| Documentation | ⏳ Phase 8 | Critical | 3-4 hours |
|
||||
| Documentation (Markdown) | ⏳ Phase 8 | Critical | 3-4 hours |
|
||||
| BuiltByBit listing | ⏳ Phase 9 | Critical | 2-3 hours |
|
||||
| Blueprint packaging | ⏳ Phase 10 | High | 2-3 hours |
|
||||
| FTB auto-detection | 📦 Phase 11 (v1.1) | Medium | 4-6 hours |
|
||||
| Technic auto-detection | 📦 Phase 11 (v1.1) | Low | 4-6 hours |
|
||||
| License validation API | ⏳ Phase 11 | Critical | 3-4 hours |
|
||||
| Discord verification bot | ⏳ Phase 11 | Critical | 1-2 hours |
|
||||
| Descriptive UI errors | ⏳ Phase 11 | Critical | 1 hour |
|
||||
| GitBook migration | ⏳ Phase 11 | High | 1-2 hours |
|
||||
| Gated support channels | ⏳ Phase 11 | Critical | 30 min |
|
||||
| FTB auto-detection | 📦 v1.1 | Medium | 4-6 hours |
|
||||
| Technic auto-detection | 📦 v1.1 | Low | 4-6 hours |
|
||||
|
||||
---
|
||||
|
||||
@@ -411,11 +824,12 @@ Three-command install via Blueprint (see documentation for details)
|
||||
- Phase 5: Modrinth auto-detection — 4-6 hours
|
||||
- Phase 6: "Ignore Version" feature — 2-3 hours
|
||||
- Phase 7: Backoff logic — 1-2 hours
|
||||
- Phase 8: Documentation — 3-4 hours
|
||||
- Phase 8: Documentation (Markdown) — 3-4 hours
|
||||
- Phase 9: BuiltByBit listing — 2-3 hours
|
||||
- Phase 10: Blueprint packaging — 2-3 hours
|
||||
- **Phase 11: Licensing & Support Infrastructure — 6-8 hours**
|
||||
|
||||
**Total: 14-21 hours** (2-3 work sessions)
|
||||
**Total: 20-29 hours** (3-4 work sessions)
|
||||
|
||||
### **Premium Flagship (Optional Enhancements)**
|
||||
- In-panel Setup Wizard — 3-4 hours
|
||||
@@ -439,39 +853,57 @@ Product is launch-ready when ALL of these are true:
|
||||
- ✅ Dashboard badge working (all states)
|
||||
- ✅ Console widget working (all features)
|
||||
- ✅ Admin panel working
|
||||
- ✅ Descriptive UI error messages
|
||||
- ✅ Clean install process documented/automated
|
||||
|
||||
### **Licensing & Support Complete:**
|
||||
- ✅ License validation API operational
|
||||
- ✅ 72-hour phone-home + 7-day grace period working
|
||||
- ✅ Discord verification bot functional (`/verify-mvc`)
|
||||
- ✅ `#mvc-general` channel created (peer support)
|
||||
- ✅ `#mvc-support` ticket category configured (role-gated)
|
||||
- ✅ Ticket Tool auto-responder with business hours
|
||||
- ✅ BuiltByBit Order ID validation tested
|
||||
|
||||
### **Documentation Complete:**
|
||||
- ✅ README.md (overview)
|
||||
- ✅ INSTALLATION.md (step-by-step)
|
||||
- ✅ CONFIGURATION.md (API keys)
|
||||
- ✅ HOW-IT-WORKS.md (tiered system explanation)
|
||||
- ✅ MANUAL-CONFIGURATION.md (platform-specific guides)
|
||||
- ✅ TROUBLESHOOTING.md (common issues + solutions)
|
||||
- ✅ FAQ.md (edge cases covered)
|
||||
- ✅ GitBook knowledge base published
|
||||
- ✅ Getting Started guide
|
||||
- ✅ Installation guide
|
||||
- ✅ API Key Setup (CurseForge + Modrinth)
|
||||
- ✅ How It Works (tiered system explanation)
|
||||
- ✅ Manual Configuration (all platforms)
|
||||
- ✅ Troubleshooting (common issues + solutions)
|
||||
- ✅ FAQ (edge cases covered)
|
||||
|
||||
### **Marketing Complete:**
|
||||
- ✅ BuiltByBit product description written
|
||||
- ✅ Compatibility matrix included
|
||||
- ✅ "Read Before You Buy" section added
|
||||
- ✅ Support info clearly stated (24-48 hours, Discord-based)
|
||||
- ✅ All 7 screenshots taken
|
||||
- ✅ Pricing tier decided ($14.99 or $19.99)
|
||||
- ✅ GitBook documentation link added
|
||||
|
||||
### **Testing Complete:**
|
||||
- ✅ Tested on CurseForge pack (auto-detection)
|
||||
- ✅ Tested on Modrinth pack (auto-detection)
|
||||
- ✅ Tested on FTB pack (manual config)
|
||||
- ✅ Tested on vanilla server (graceful failure)
|
||||
- ✅ Tested on vanilla server (graceful failure + backoff)
|
||||
- ✅ Tested "Ignore Version" button
|
||||
- ✅ Tested offline server handling
|
||||
- ✅ Tested API rate limiting
|
||||
- ✅ Tested license validation (valid + invalid + grace period)
|
||||
- ✅ Tested Discord verification bot
|
||||
- ✅ Fresh install tested on clean panel
|
||||
|
||||
### **Support Ready:**
|
||||
- ✅ Documentation prevents 70% of tickets
|
||||
- ✅ "Ignore Version" prevents 90% of false-positive complaints
|
||||
- ✅ Compatibility matrix sets accurate expectations
|
||||
- ✅ [Support strategy/tooling discussed with Michael — TBD]
|
||||
- ✅ Business hours established (Mon-Fri 9am-5pm CST)
|
||||
- ✅ SLA documented (24-48 hours)
|
||||
- ✅ Auto-responders configured
|
||||
- ✅ Discord roles and channels configured
|
||||
- ✅ GitBook documentation prevents 70% of tickets
|
||||
- ✅ Descriptive UI errors reduce confusion
|
||||
- ✅ Pre-ticket forms collect necessary info
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user