Files
firefrost-operations-manual/docs/guides/discord-onboarding-mvc-support-guide.md
Claude 69f9956d1b Add Discord Onboarding & MVC Support Infrastructure Guide
Complete implementation guide for Holly covering:

PART 1: TWO-STAGE ONBOARDING SYSTEM
- Stage 1: Wanderer onboarding (Discord Native)
  - Forced rules acceptance
  - See ALL channels (FOMO strategy)
  - Can post in #general, #rules, #open-a-ticket
  - "Stop wandering. You found home."

- Stage 2: Subscriber onboarding (Carl-bot + Arbiter)
  - BOTH: Carl-bot DM + #choose-your-roles mention
  - Fire/Frost path selection
  - Server role selection
  - Notification preferences
  - "You're family now. Make this place yours."

PART 2: MODPACKCHECKER SUPPORT ECOSYSTEM
- #mvc-general (public peer support chat)
- #mvc-support (private tickets via Ticket Tool, role-gated)
- 🎙️ MVC Voice Support (live troubleshooting)
- 📋 MVC Help Forum (searchable FAQs, pre-seeded threads)

Complete with:
- Step-by-step setup instructions
- Permission configurations
- Carl-bot reaction role templates
- Ticket Tool 7th category setup
- Forum pre-seed content (3 starter threads)
- Testing checklists
- 2-3 hour implementation timeline

Strategy approved by Michael and Holly.

Chronicler #64 - Building welcoming infrastructure
2026-04-06 22:01:58 +00:00

23 KiB

Discord Onboarding & MVC Support Infrastructure Setup

Document ID: FFG-DISCORD-002
Created: April 6, 2026
Created By: Chronicler #64
For: Holly (The Catalyst) — Discord/LuckPerms Manager
Status: Ready to Implement


📋 OVERVIEW

This guide covers two major Discord infrastructure updates:

  1. Two-Stage Onboarding System — Wanderers (minimal) → Subscribers (full role selection)
  2. ModpackChecker Support Ecosystem — Tickets, chat, voice, and forum channels

Philosophy: Wanderers should feel welcomed home while experiencing FOMO. Subscribers get full customization. MVC owners get comprehensive support options.


PART 1: TWO-STAGE ONBOARDING SYSTEM

🎯 THE STRATEGY

Stage 1: Wanderer Onboarding (Discord Native)

  • New members join → See welcome message
  • Forced: Must accept rules before seeing channels
  • Result: Wanderer role → See ALL channels (read-only for most)
  • Goal: "Stop wandering. You found home. Feel the FOMO."

Stage 2: Subscriber Onboarding (Carl-bot + Arbiter)

  • User subscribes → Arbiter assigns tier role
  • Carl-bot DMs welcome message
  • Message posted in #choose-your-roles with @mention
  • User customizes: Fire/Frost path, server selections, preferences
  • Goal: "You're family now. Make this place yours."

🛠️ STAGE 1: DISCORD NATIVE ONBOARDING

Step 1: Enable Discord Onboarding

  1. Go to Server Settings → Onboarding
  2. Click "Enable Onboarding"
  3. You'll see the onboarding editor

Step 2: Configure Welcome Screen

Screen 1: Welcome Message

Title:

🔥❄️ Welcome to Firefrost Gaming!

Description:

We're a community of modded Minecraft players who believe in passion, precision, and finding your tribe.

Whether you're Fire (bold, passionate, unfiltered) or Frost (strategic, calculated, precise), there's a place for you here.

Before you explore, please review our community guidelines.

Background Image: (Optional) Firefrost Gaming banner or Fire/Frost gradient

Button Text: Continue


Step 3: Configure Rules Acceptance (REQUIRED)

Screen 2: Community Rules

  1. In onboarding editor, click "Add Default Channel"
  2. Select #rules from dropdown
  3. Toggle ON: "Require members to accept rules"
  4. Accept Button Text: I Accept the Rules

What this does:

  • Shows #rules channel content in onboarding flow
  • User cannot proceed without clicking "I Accept the Rules"
  • Once accepted, they receive Wanderer role

Step 4: Configure Default Channels (Optional)

Screen 3: Get Started

Discord will ask if you want to show "recommended channels" in onboarding.

Our Answer: Skip this screen.

Why: We want Wanderers to see ALL channels (FOMO strategy), not a curated list. They'll discover channels organically.

How to skip:

  • In onboarding editor, don't add any "Default Channels" beyond #rules
  • Just have: Welcome Screen → Rules Acceptance → Finish

Step 5: Configure Completion Action

What happens when they click "Finish":

  1. In onboarding editor, go to "Completion Settings"
  2. Role to assign: @Wanderer
  3. Channel to send them to: #welcome or #general

Completion Message (in #welcome or #general):

Welcome to Firefrost Gaming, [username]! 🔥❄️

You've joined as a **Wanderer** — explore our community, chat in #general, and see what we're all about.

Ready to dive deeper? Subscribe to unlock full access:
🔗 firefrostgaming.com

Need help? Open a ticket in #open-a-ticket anytime.

Step 6: Set Wanderer Permissions

In Server Settings → Roles → @Wanderer:

Channel Access:

  • See ALL channels (FOMO!)
  • Can post in: #rules, #general, #open-a-ticket
  • Cannot post in: Subscriber-only channels, Fire/Frost-specific channels, server channels

Specific Permissions:

View Channels: ✅ YES (for all channels)
Send Messages: ✅ YES (only in #general, #rules, #open-a-ticket)
Read Message History: ✅ YES
Add Reactions: ✅ YES
Use External Emojis: ✅ YES
Attach Files: ✅ YES (in allowed channels)

How to set "can post in some channels but not others":

  • Base @Wanderer role: Send Messages = ❌ NO (deny by default)
  • Per-channel overrides: Go to each channel → Permissions → @Wanderer → Send Messages = ✅ YES
    • #general: Allow
    • #rules: Allow
    • #open-a-ticket: Allow
    • All other channels: Neutral (inherits deny from role)

Step 7: Test Wanderer Onboarding

  1. Create a test Discord account (or use alt account)
  2. Join server with invite link
  3. Verify flow:
    • See welcome message
    • See #rules content
    • Cannot skip without clicking "I Accept the Rules"
    • Assigned @Wanderer role after acceptance
    • Can see ALL channels
    • Can post in #general, #rules, #open-a-ticket
    • Cannot post in subscriber channels
  4. If anything fails, review permissions and onboarding settings

🎨 STAGE 2: SUBSCRIBER ONBOARDING

Overview

When Arbiter assigns a subscriber role (Awakened, Elemental, Knight, Master, Legend, Sovereign), we want BOTH:

  1. Carl-bot DMs the new subscriber
  2. Welcome message posted in #choose-your-roles with @mention

Goal: Make them feel seen, welcomed, and excited to customize their experience.


Step 1: Create #choose-your-roles Channel

In Discord → Server Settings → Channels:

  1. Create new text channel: #choose-your-roles
  2. Category: Support (or create "Subscriber Lounge" category)
  3. Channel Description:
🔥❄️ Customize Your Firefrost Experience

Choose your path, select your servers, and make this community yours.

Permissions:

  • @everyone: Cannot see
  • @Wanderer: Cannot see
  • @Awakened (and all higher tiers): Can see and post
  • @Staff: Full access

How to set:

  • Channel Settings → Permissions
  • Remove @everyone / @Wanderer view access
  • Add each subscriber role with View Channel + Send Messages

Step 2: Set Up Carl-bot Reaction Roles in #choose-your-roles

Pin a message at the top:

🔥❄️ **Welcome to the Family!** 🔥❄️

You're no longer a Wanderer — you're home.

Use the reaction roles below to customize your experience:

Reaction Role Setup (via Carl-bot dashboard or commands):

Fire or Frost Path

!rr create

**Choose Your Path:**
🔥 Fire — Bold, Passionate, Unfiltered
❄️ Frost — Strategic, Calculated, Precise

React below to choose your identity.

Add reactions:

  • 🔥@Fire role
  • ❄️@Frost role

Server Selection

!rr create

**Which servers do you play on?**
Select all that apply — you can change these anytime.

React to unlock server-specific channels:

Add reactions (examples — adjust to your actual servers):

  • 🌍@Overworld Players role
  • 🔮@Arcane Academy Players role
  • 🏰@Kingdom Builders role
  • 🚀@Modpack Testers role

Each role unlocks the corresponding server channel(s).


Notification Preferences (Optional)

!rr create

**Notification Preferences:**
📢 Announcements — Server news and updates
🎉 Events — Community events and giveaways
📰 Patch Notes — Modpack updates and changes

React to opt IN to notifications:

Add reactions:

  • 📢@Announcement Pings role
  • 🎉@Event Pings role
  • 📰@Patch Notes Pings role

Note: These roles should be mentionable and used in respective channels for pings.


Step 3: Configure Carl-bot Welcome DM

In Carl-bot Dashboard → Welcomer:

  1. Enable "Send welcome message via DM"
  2. Trigger: When user receives @Awakened role (or any subscriber tier)

DM Message Template:

🔥❄️ **Welcome to Firefrost Gaming, {user}!** 🔥❄️

You've unlocked full access as an **{role}** subscriber.

Here's what's new:
✅ All channels unlocked
✅ Full chat permissions
✅ Server-specific channels (choose in #choose-your-roles)
✅ Fire or Frost path selection
✅ Priority support

**Next step:** Visit #choose-your-roles to customize your experience and choose your path!

Questions? Open a ticket in #open-a-ticket anytime.

— The Firefrost Team 💙🔥❄️

Variables:

  • {user} — Mentions the user
  • {role} — Shows their subscriber tier (Awakened, Elemental, etc.)

How to set trigger:

  • Carl-bot dashboard → Welcomer → "Trigger on role add"
  • Select all subscriber tier roles: Awakened, Elemental, Knight, Master, Legend, Sovereign

Step 4: Configure Welcome Message in #choose-your-roles

Option A: Manual (Holly posts when someone subscribes)

When you see a new subscriber in the server member list:

  1. Go to #choose-your-roles
  2. Post:
Welcome, @username! 🔥❄️

You're officially part of the Firefrost family. Choose your path and servers below to customize your experience.

If you have any questions, we're here to help!

Option B: Automated (via Carl-bot or custom webhook)

If Arbiter can trigger a webhook when assigning roles, send to Carl-bot or Discord webhook:

Webhook Payload:

{
  "content": "Welcome, <@user_id>! 🔥❄️\n\nYou're officially part of the Firefrost family. Choose your path and servers below to customize your experience.\n\nIf you have any questions, we're here to help!"
}

Webhook URL: #choose-your-roles webhook (create in Channel Settings → Integrations)

Option C: Michael can add webhook call to Arbiter

In Arbiter 3.5.0, after assigning Discord role via API, call Discord webhook:

// After successful role assignment
await fetch('https://discord.com/api/webhooks/[WEBHOOK_ID]/[WEBHOOK_TOKEN]', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    content: `Welcome, <@${discordUserId}>! 🔥❄️\n\nYou're officially part of the Firefrost family. Choose your path and servers below to customize your experience.\n\nIf you have any questions, we're here to help!`
  })
});

Recommended: Start with Option A (manual) until subscriber volume requires automation.


Step 5: Test Subscriber Onboarding

  1. Have Michael manually assign a subscriber role to a test account
  2. Verify:
    • User receives Carl-bot DM
    • Welcome message appears in #choose-your-roles (if automated)
    • User can see #choose-your-roles channel
    • User can react to role selection messages
    • Roles are assigned correctly when reacting
    • Server channels unlock based on selections

PART 2: MODPACKCHECKER SUPPORT ECOSYSTEM

🎯 THE STRUCTURE

MVC owners need comprehensive support options:

  1. #mvc-general — Public chat for peer support, tips, discussion
  2. #mvc-support — Private tickets via Ticket Tool (role-gated)
  3. 🎙️ MVC Voice Support — Voice channel for live troubleshooting
  4. 📋 MVC Help Forum — Forum channel for FAQs, guides, troubleshooting threads

Access: All gated to @ModpackChecker Owner role


🛠️ STEP 1: CREATE MODPACKCHECKER CATEGORY

In Discord → Server Settings → Channels:

  1. Create new category: 📦 ModpackChecker
  2. Position: Below subscriber channels, above staff channels
  3. Permissions:
    • @everyone: Cannot see
    • @Wanderer: Cannot see
    • @ModpackChecker Owner: Can see all channels
    • @Wizard (Michael): Full access
    • @Staff / @Moderators: Can see (optional — for community helpers later)

📱 STEP 2: CREATE #mvc-general (Text Chat)

Channel Name: #mvc-general
Type: Text Channel
Category: 📦 ModpackChecker

Channel Topic:

Chat, tips, and peer support for ModpackChecker owners. Ask questions, share configs, help each other troubleshoot. For official support, open a ticket in #mvc-support.

Permissions:

  • Inherits from category (MVC Owner can see/post)

Pin a welcome message:

🔌 **Welcome to #mvc-general!**

This is your space to:
✅ Ask quick questions
✅ Share configs and tips
✅ Help other MVC owners troubleshoot
✅ Discuss feature requests

**Need official support?** Open a ticket in #mvc-support — Michael typically responds within 24 hours.

**Resources:**
📖 Full Documentation: [GitBook URL when ready]
🔧 Troubleshooting Guide: [Direct link]
🎟️ Official Support: #mvc-support

Happy troubleshooting! 🔥❄️

🎟️ STEP 3: ADD MVC SUPPORT TICKET CATEGORY

In Ticket Tool Dashboard (tickettool.xyz):

  1. Go to Panels → Edit Panel (your existing support panel in #open-a-ticket)
  2. Click "Add Ticket Type"

Ticket Type Configuration:

Field Value
Name ModpackChecker Support
Emoji 🔌 (or 📦 or ⚙️)
Button Color Purple
Welcome Message See below
Support Roles @Wizard (Michael only — you're the only one who knows the code)
Required Role @ModpackChecker OwnerCRITICAL SETTING
Category (Discord) 📦 ModpackChecker
Ticket Name Format mvc-{username}
Max Open Tickets Per User 1

Welcome Message:

Thanks for purchasing ModpackChecker! 🔌

Please describe your issue and include the following information:

**Panel Info:**
✅ Pterodactyl Panel version
✅ Blueprint version
✅ PHP version

**Modpack Info:**
✅ Platform (CurseForge/Modrinth/FTB/Technic)
✅ Modpack name and ID (if manual config)

**Error Details:**
✅ What you expected to happen
✅ What actually happened
✅ Screenshots of errors (if any)

**Response Time:** We typically respond within 24 hours. Support hours are Monday-Friday, 9 AM - 5 PM CST.

While you wait:
📖 Check the documentation: [GitBook URL]
💬 Ask in #mvc-general — other owners may have solved similar issues
📋 Browse the MVC Help Forum for FAQs

We'll be with you shortly!

Save and Deploy Panel.

What this does:

  • Only users with @ModpackChecker Owner role can see the "ModpackChecker Support" button
  • Creates private ticket in 📦 ModpackChecker category
  • Michael gets notified
  • Ticket includes pre-filled troubleshooting info

🎙️ STEP 4: CREATE MVC VOICE SUPPORT CHANNEL

Channel Name: 🎙️ MVC Voice Support
Type: Voice Channel
Category: 📦 ModpackChecker

Channel Settings:

  • User Limit: 10 (Michael + up to 9 buyers for group troubleshooting)
  • Bitrate: 64 kbps (standard voice quality)
  • Video Quality: Auto (allows screen sharing)

Permissions:

  • Inherits from category (MVC Owner can join)
  • @Wizard: Full permissions (priority speaker, mute/deafen others if needed)

Channel Description:

Voice support for real-time troubleshooting. 

**When to use:** Complex issues that need screen-sharing or live debugging.
**Availability:** Monday-Friday, 9 AM - 5 PM CST (when Michael is available).

Not required for most issues — text tickets in #mvc-support work great!

Pin a message in #mvc-general about voice support:

🎙️ **Voice Support Available**

For complex issues that need screen-sharing or live debugging, you can join 🎙️ MVC Voice Support.

**Availability:** Mon-Fri, 9 AM - 5 PM CST
**Use when:** Text troubleshooting isn't cutting it

Most issues are resolved via tickets — voice is optional!

📋 STEP 5: CREATE MVC HELP FORUM CHANNEL

Channel Name: 📋 MVC Help Forum
Type: Forum Channel
Category: 📦 ModpackChecker

Forum Settings:

Default Reaction Emoji: (marks as solved)

Available Tags: (Create these in Forum Settings → Tags)

  1. FAQ (Color: Blue)
  2. Troubleshooting (Color: Orange)
  3. Configuration (Color: Green)
  4. Bug Report (Color: Red)
  5. Feature Request (Color: Purple)
  6. CurseForge (Color: Orange)
  7. Modrinth (Color: Green)
  8. FTB (Color: Yellow)
  9. Technic (Color: Light Blue)
  10. Solved (Color: Green) ← Auto-applied when thread is marked solved

Default Layout: List View

Permissions:

  • Inherits from category (MVC Owner can create threads, post, react)
  • @Wizard: Can manage threads, pin, lock, mark as solved

Channel Guidelines (Pin at top):

📋 **MVC Help Forum**

This is a searchable knowledge base for ModpackChecker owners.

**How to use:**
1. Search existing threads before posting — your question may already be answered!
2. Create a new thread for your question or tip
3. Add relevant tags (CurseForge, Modrinth, Troubleshooting, etc.)
4. Mark thread as ✅ Solved when your issue is resolved

**What to post:**
✅ Common issues and solutions
✅ Configuration examples
✅ Tips and tricks
✅ Feature requests
✅ Bug reports

**What NOT to post:**
❌ Support tickets (use #mvc-support for private help)
❌ Off-topic discussion (use #mvc-general)

Let's build a great resource together! 🔥❄️

Pre-Seed Forum with Initial Threads

Michael (or Holly) should create these starter threads:

Thread 1: FAQ - Getting Started

Title: [FAQ] Getting Started with ModpackChecker
Tags: FAQ, Configuration
Content:

Welcome to ModpackChecker! Here's how to get started:

1. **Install the extension** via Blueprint
2. **Configure API keys** in Admin Panel → Extensions → ModpackChecker
3. **Wait for auto-detection** (runs every hour via cron)
4. **Check your dashboard** for update badges

**Supported Platforms:**
✅ CurseForge (auto-detection)
✅ Modrinth (auto-detection)
⚙️ FTB (manual config required)
⚙️ Technic (manual config required)

**Full Documentation:** [GitBook URL when ready]

Questions? Ask in #mvc-general or open a ticket in #mvc-support!

Mark as solved (), pin the thread.


Thread 2: Troubleshooting - Badge is Gray

Title: [Troubleshooting] My badge shows gray / "Not Configured"
Tags: Troubleshooting
Content:

If your dashboard badge is gray or says "Not Configured," this means:

❌ No modpack was auto-detected
❌ Manual configuration has not been set

**Common Causes:**
1. **Vanilla Server** — No modpack manifest exists
2. **Custom Modpack** — Not using CurseForge/Modrinth
3. **FTB/Technic Server** — Requires manual configuration
4. **Manifest File Deleted** — The installer removed manifest.json

**Solution:**
Use manual configuration in the server's Console Widget:
1. Click "Configure Manually"
2. Select platform (CurseForge, Modrinth, FTB, Technic)
3. Enter modpack ID
4. Save

The badge will update on the next cron run (every hour).

**Still stuck?** Open a ticket in #mvc-support with:
- Panel version
- Blueprint version
- Server details (modpack name, platform)

Mark as solved (), pin the thread.


Thread 3: Configuration - Where to Find Modpack IDs

Title: [Configuration] How to find your modpack ID for manual config
Tags: Configuration, CurseForge, Modrinth, FTB, Technic
Content:

When manually configuring a server, you need the modpack ID from the platform.

**CurseForge:**
1. Go to the modpack page (e.g., `curseforge.com/minecraft/modpacks/all-the-mods-9`)
2. Look at the URL — the ID is the number at the end: `715572`
3. OR: Look at `manifest.json` → `projectID` field

**Modrinth:**
1. Go to the modpack page (e.g., `modrinth.com/modpack/adrenaserver`)
2. The slug is the last part of the URL: `adrenaserver`
3. OR: Look at `modrinth.index.json` → Extract from `versionId` field

**FTB:**
1. Go to the FTB App modpack page
2. The ID is usually in the URL or modpack details
3. Contact FTB support if unclear

**Technic:**
1. Go to `technicpack.net/modpack/[slug]`
2. The slug is the modpack identifier (e.g., `tekkit-classic`)

**Still confused?** Open a ticket in #mvc-support with the modpack name and we'll help!

Mark as solved (), pin the thread.


STEP 6: TEST MVC SUPPORT ECOSYSTEM

Test Checklist:

  1. Create test account with @ModpackChecker Owner role
  2. Test #mvc-general access:
    • Can see channel
    • Can post messages
    • Welcome message is pinned
  3. Test ticket access:
    • Can see "ModpackChecker Support" button in #open-a-ticket
    • Clicking button creates ticket in 📦 ModpackChecker category
    • Welcome message shows correct info
    • Ticket is private (only user + Michael can see)
  4. Test voice channel:
    • Can see 🎙️ MVC Voice Support
    • Can join channel
    • Can share screen (if needed for troubleshooting)
  5. Test forum channel:
    • Can see 📋 MVC Help Forum
    • Can create new thread
    • Can add tags
    • Can mark as solved ()
    • Starter threads are visible and pinned

If any tests fail, review permissions and channel settings.


📊 WHAT THIS CREATES

For Wanderers:

  • Simple onboarding: Accept rules → Welcome home
  • See ALL channels (FOMO effect)
  • Can chat in #general, get support in #open-a-ticket
  • Clear path to subscribe for full access

For Subscribers:

  • Warm welcome via DM + #choose-your-roles mention
  • Full customization: Fire/Frost path, server selections
  • Feel special, welcomed, part of the family

For MVC Owners:

  • #mvc-general — Quick questions, peer support, community
  • #mvc-support — Private tickets, Michael responds 24 hrs
  • 🎙️ MVC Voice Support — Live troubleshooting when needed
  • 📋 MVC Help Forum — Searchable FAQs, guides, solved issues

Complete support ecosystem. Professional, welcoming, scalable. 🔥❄️💙


🔄 HANDOFF TO HOLLY

Holly, here's your implementation checklist:

Part 1: Onboarding (30-60 minutes)

  • Enable Discord Native Onboarding
  • Configure welcome screen
  • Set rules acceptance (required)
  • Set @Wanderer role as completion action
  • Configure Wanderer permissions (see all, post in some)
  • Test with alt account

Part 2: Subscriber Onboarding (30-60 minutes)

  • Create #choose-your-roles channel
  • Set up Carl-bot reaction roles (Fire/Frost, servers, notifications)
  • Configure Carl-bot DM on role assignment
  • Decide: Manual welcome messages or automated webhook?
  • Test with test subscriber account

Part 3: MVC Support (60-90 minutes)

  • Create 📦 ModpackChecker category
  • Create #mvc-general (text chat)
  • Add MVC Support ticket type in Ticket Tool
  • Create 🎙️ MVC Voice Support (voice channel)
  • Create 📋 MVC Help Forum (forum channel)
  • Pre-seed forum with 3 starter threads
  • Test with test MVC Owner account

Total Time: 2-3 hours

Questions? Tag Michael or open a ticket in #open-a-ticket.


Fire + Frost + Foundation = Where Love Builds Legacy 💙🔥❄️

Created by: Chronicler #64
Date: April 6, 2026
Status: Ready for Holly to implement