docs: Add comprehensive deployment guides for Holly
Created two detailed deployment guides for server-side infrastructure: 1. Server-Side Mod Deployment Guide (976 lines) - Complete mod installation walkthrough (LuckPerms, FTB suite, WorldEdit, etc.) - MySQL database setup instructions for Michael - Per-mod configuration with exact commands - Version-flexible Discord integration (1.16.5, 1.20.x, 1.21.x) - Testing checklist and troubleshooting - Accessibility-focused (Holly can follow step-by-step) 2. Subscription Automation Guide (1000+ lines) - Michael's pre-setup section (Discord bot deployment) - Complete Paymenter → Discord → LuckPerms automation - Discord role configuration - LuckPerms group creation (all 11 tiers) - Webhook integration setup - End-to-end testing procedures Both guides designed for Holly to implement with Michael handling backend setup (MySQL, Discord bot, SSL certificates). Covers: Forge/NeoForge versions, subscriber tier automation, cross-server permission sync via MySQL, whitelist automation. Chronicler #40
This commit is contained in:
976
docs/guides/server-side-mod-deployment-guide.md
Normal file
976
docs/guides/server-side-mod-deployment-guide.md
Normal file
@@ -0,0 +1,976 @@
|
||||
# Firefrost Gaming - Server-Side Mod Deployment Guide
|
||||
|
||||
**Version:** 1.0
|
||||
**Date:** March 23, 2026
|
||||
**Author:** Chronicler #40
|
||||
**Audience:** Holly (Lead Builder) - Step-by-step implementation guide
|
||||
**Purpose:** Deploy all required server-side mods across 13+ Minecraft servers
|
||||
|
||||
---
|
||||
|
||||
## 📋 TABLE OF CONTENTS
|
||||
|
||||
1. [Overview](#overview)
|
||||
2. [Before You Start - Michael's Setup Tasks](#before-you-start)
|
||||
3. [Required Mods List](#required-mods-list)
|
||||
4. [Installation Process](#installation-process)
|
||||
5. [Per-Mod Configuration](#per-mod-configuration)
|
||||
6. [Testing & Verification](#testing-verification)
|
||||
7. [Troubleshooting](#troubleshooting)
|
||||
8. [Reference](#reference)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 OVERVIEW
|
||||
|
||||
### What This Guide Does
|
||||
|
||||
This guide walks you through installing and configuring server-side mods on all Firefrost Gaming Minecraft servers. These mods handle:
|
||||
- Permissions and ranks (LuckPerms)
|
||||
- Chunk claiming (FTB Chunks)
|
||||
- Homes and teleports (FTB Essentials)
|
||||
- Building tools (WorldEdit)
|
||||
- Discord integration
|
||||
- And more
|
||||
|
||||
### Servers You'll Configure
|
||||
|
||||
**Total: 13 servers** across two dedicated machines:
|
||||
|
||||
**TX1 Dallas (38.68.14.26):**
|
||||
- 6-7 modpack servers
|
||||
|
||||
**NC1 Charlotte (216.239.104.130):**
|
||||
- 6-7 modpack servers
|
||||
|
||||
### Time Estimate
|
||||
|
||||
- **Per server:** 30-45 minutes
|
||||
- **All 13 servers:** 6-8 hours (spread across multiple days is fine)
|
||||
|
||||
### What You Need
|
||||
|
||||
- SSH access to TX1 and NC1
|
||||
- Pterodactyl Panel access (panel.firefrostgaming.com)
|
||||
- This guide
|
||||
- Michael's help for MySQL setup (see next section)
|
||||
|
||||
---
|
||||
|
||||
## 🔧 BEFORE YOU START - MICHAEL'S SETUP TASKS
|
||||
|
||||
**STOP: Michael needs to complete this section BEFORE you start installing mods.**
|
||||
|
||||
### Task 1: MySQL Database Setup on Command Center
|
||||
|
||||
Michael will set up a MySQL database that all 13 servers will connect to for LuckPerms.
|
||||
|
||||
**Michael's Steps:**
|
||||
|
||||
```bash
|
||||
# SSH to Command Center
|
||||
ssh root@63.143.34.217
|
||||
|
||||
# Access MySQL
|
||||
mysql -u root -p
|
||||
|
||||
# Create database
|
||||
CREATE DATABASE luckperms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
# Create user (change password!)
|
||||
CREATE USER 'luckperms'@'%' IDENTIFIED BY 'CHANGE_THIS_PASSWORD';
|
||||
|
||||
# Grant permissions
|
||||
GRANT ALL PRIVILEGES ON luckperms.* TO 'luckperms'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
# Verify
|
||||
SHOW DATABASES;
|
||||
SELECT User, Host FROM mysql.user WHERE User='luckperms';
|
||||
|
||||
# Exit
|
||||
exit
|
||||
```
|
||||
|
||||
**What Michael gives you:**
|
||||
- Database host: `63.143.34.217`
|
||||
- Database name: `luckperms`
|
||||
- Database user: `luckperms`
|
||||
- Database password: `[password Michael sets]`
|
||||
- Database port: `3306` (default MySQL)
|
||||
|
||||
**Save these credentials securely - you'll need them for EVERY server.**
|
||||
|
||||
### Task 2: Store Credentials in Vaultwarden
|
||||
|
||||
Michael will store the MySQL credentials in Vaultwarden so you can access them securely.
|
||||
|
||||
**Location:** Vaultwarden → Firefrost Gaming → "LuckPerms MySQL Credentials"
|
||||
|
||||
---
|
||||
|
||||
## 📦 REQUIRED MODS LIST
|
||||
|
||||
### Core Mods (Required on ALL servers)
|
||||
|
||||
#### 1. **LuckPerms**
|
||||
**What it does:** Permission management system. Controls who can do what (ranks, permissions, subscriber tiers).
|
||||
|
||||
**Why we need it:** This is how subscriber tiers work. Awakened subscribers get 1 home, Elemental gets 5 homes, etc. LuckPerms manages all of that.
|
||||
|
||||
**Versions needed:**
|
||||
- 1.16.5: LuckPerms Forge v5.4.x
|
||||
- 1.20.x: LuckPerms Forge/NeoForge v5.4.x
|
||||
- 1.21.x: LuckPerms NeoForge v5.4.x
|
||||
|
||||
**Download:** https://luckperms.net/download
|
||||
|
||||
---
|
||||
|
||||
#### 2. **FTB Chunks (Forge/NeoForge)**
|
||||
**What it does:** Chunk claiming and protection. Players claim chunks to protect their builds.
|
||||
|
||||
**Why we need it:** Subscriber tiers give different chunk limits. Awakened = 0 chunks, Elemental = 25 chunks, Knight = 49 chunks, etc.
|
||||
|
||||
**Versions needed:**
|
||||
- 1.16.5: FTB Chunks Forge
|
||||
- 1.20.x: FTB Chunks Forge/NeoForge
|
||||
- 1.21.x: FTB Chunks NeoForge
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/ftb-chunks-forge
|
||||
|
||||
---
|
||||
|
||||
#### 3. **FTB Essentials**
|
||||
**What it does:** Essential commands like /home, /sethome, /rtp (random teleport), /spawn, /back.
|
||||
|
||||
**Why we need it:** Subscriber tiers have different home limits and /rtp cooldowns. This mod enforces those limits.
|
||||
|
||||
**Versions needed:**
|
||||
- 1.16.5: FTB Essentials Forge
|
||||
- 1.20.x: FTB Essentials Forge/NeoForge
|
||||
- 1.21.x: FTB Essentials NeoForge
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/ftb-essentials-forge
|
||||
|
||||
---
|
||||
|
||||
#### 4. **FTB Library** (Dependency)
|
||||
**What it does:** Required library for FTB Chunks and FTB Essentials to work.
|
||||
|
||||
**Why we need it:** FTB mods won't run without this.
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/ftb-library-forge
|
||||
|
||||
---
|
||||
|
||||
#### 5. **FTB Teams**
|
||||
**What it does:** Team system that integrates with FTB Chunks. Players can form teams and share chunk claims.
|
||||
|
||||
**Why we need it:** Better than solo chunk claiming - teams can build together.
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/ftb-teams-forge
|
||||
|
||||
---
|
||||
|
||||
#### 6. **WorldEdit**
|
||||
**What it does:** Powerful building and editing tool. Copy/paste structures, fill areas, replace blocks, etc.
|
||||
|
||||
**Why we need it:** Essential for builders (like you!). Staff rank gets full WorldEdit access.
|
||||
|
||||
**Versions needed:**
|
||||
- 1.16.5: WorldEdit Forge
|
||||
- 1.20.x: WorldEdit Forge/NeoForge
|
||||
- 1.21.x: WorldEdit NeoForge
|
||||
|
||||
**Download:** https://enginehub.org/worldedit
|
||||
|
||||
---
|
||||
|
||||
#### 7. **YAWP (Yet Another World Protector)**
|
||||
**What it does:** Advanced world protection and region management. Protect spawn areas, create safe zones, etc.
|
||||
|
||||
**Why we need it:** Protects important areas like spawn, prevents griefing in public spaces.
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/yawp (check version availability)
|
||||
|
||||
---
|
||||
|
||||
### Performance & Optimization Mods (Highly Recommended)
|
||||
|
||||
#### 8. **ServerCore**
|
||||
**What it does:** Server-side performance optimizations. Reduces lag, improves TPS (ticks per second).
|
||||
|
||||
**Why we need it:** Running 13 servers requires good performance. This helps.
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/servercore
|
||||
|
||||
---
|
||||
|
||||
#### 9. **FerriteCore**
|
||||
**What it does:** Reduces memory usage significantly (up to 30-40% in some cases).
|
||||
|
||||
**Why we need it:** Less RAM per server = more stable operation across all 13 servers.
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/ferritecore
|
||||
|
||||
---
|
||||
|
||||
#### 10. **Spark**
|
||||
**What it does:** Performance profiling and monitoring. Helps diagnose lag.
|
||||
|
||||
**Why we need it:** When a server lags, Spark tells us why (which mod, which chunk, etc.).
|
||||
|
||||
**Download:** https://spark.lucko.me/download
|
||||
|
||||
---
|
||||
|
||||
### Protection & Rollback Mods
|
||||
|
||||
#### 11. **Prism** (if available for your version)
|
||||
**What it does:** Block logging and rollback protection. Records who placed/broke what blocks.
|
||||
|
||||
**Why we need it:** If someone griefs a subscriber's build, we can roll it back and prove who did it.
|
||||
|
||||
**Status:** Check if Prism exists for Forge/NeoForge on your version. If not available, rely on backups.
|
||||
|
||||
**Download:** Search CurseForge for "Prism Forge" + your version
|
||||
|
||||
---
|
||||
|
||||
### Quality of Life Mods (Optional but Recommended)
|
||||
|
||||
#### 12. **Waystones**
|
||||
**What it does:** Fast travel between waystone structures. Players place waystones and teleport between them.
|
||||
|
||||
**Why we might use it:** Nice QoL feature. Could tie cooldowns to subscriber tiers (like /rtp).
|
||||
|
||||
**Status:** Optional - only install if the modpack doesn't already include it.
|
||||
|
||||
**Download:** https://www.curseforge.com/minecraft/mc-mods/waystones
|
||||
|
||||
---
|
||||
|
||||
#### 13. **Corpse** or **You're In Grave Danger**
|
||||
**What it does:** When you die, your items are stored in a grave/corpse instead of scattering.
|
||||
|
||||
**Why we might use it:** Much better death experience for subscribers. Items protected, easy to retrieve.
|
||||
|
||||
**Download:** Search CurseForge for your version
|
||||
|
||||
---
|
||||
|
||||
### Discord Integration (Version-Dependent)
|
||||
|
||||
#### 14. **Discord Integration Mod**
|
||||
|
||||
**What it does:** Connects Minecraft server to Discord. Shows in-game chat in Discord channel, and vice versa.
|
||||
|
||||
**Recommended mods by version:**
|
||||
|
||||
**For 1.16.5:**
|
||||
- **DiscordSRV (Forge fork)** or **Discord Integration by Cadiboo**
|
||||
- Download: Search "DiscordSRV Forge 1.16.5" or "Discord Integration Forge"
|
||||
|
||||
**For 1.20.x (NeoForge):**
|
||||
- **dcintegration**
|
||||
- Download: https://www.curseforge.com/minecraft/mc-mods/dcintegration
|
||||
|
||||
**For 1.21.x (NeoForge):**
|
||||
- **dcintegration** (if updated) or check modpack for built-in integration
|
||||
- Download: https://www.curseforge.com/minecraft/mc-mods/dcintegration
|
||||
|
||||
---
|
||||
|
||||
### Monitoring & Analytics
|
||||
|
||||
#### 15. **Plan** (Optional)
|
||||
**What it does:** Player analytics dashboard. Track playtime, most active players, server performance over time.
|
||||
|
||||
**Why we might use it:** Helps Michael/Meg understand player engagement and server health.
|
||||
|
||||
**Download:** https://www.playeranalytics.net/
|
||||
|
||||
---
|
||||
|
||||
### Voice Chat (Optional, if modpack includes it)
|
||||
|
||||
#### 16. **Simple Voice Chat**
|
||||
**What it does:** Proximity voice chat in-game. Talk to players near you.
|
||||
|
||||
**Status:** Only configure if the modpack already has it installed. Don't add it separately.
|
||||
|
||||
**If present:** Configure permissions via LuckPerms (which tiers can use voice).
|
||||
|
||||
---
|
||||
|
||||
## 🚀 INSTALLATION PROCESS
|
||||
|
||||
### Step 1: Access the Server
|
||||
|
||||
You'll be working through **Pterodactyl Panel** (easier) or **SSH** (advanced).
|
||||
|
||||
#### Option A: Via Pterodactyl Panel (Recommended)
|
||||
|
||||
1. Go to https://panel.firefrostgaming.com
|
||||
2. Log in
|
||||
3. Click on the server you want to configure
|
||||
4. Go to **Files** tab
|
||||
5. Navigate to `/mods/` directory
|
||||
|
||||
#### Option B: Via SSH (Advanced)
|
||||
|
||||
```bash
|
||||
# SSH to TX1
|
||||
ssh root@38.68.14.26
|
||||
|
||||
# Or SSH to NC1
|
||||
ssh root@216.239.104.130
|
||||
|
||||
# Find your server directory
|
||||
cd /var/lib/pterodactyl/volumes/[server-uuid]/mods/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 2: Download Mods
|
||||
|
||||
**For each mod:**
|
||||
|
||||
1. Go to the mod's download page (links above)
|
||||
2. Select your Minecraft version
|
||||
3. Select Forge or NeoForge (match what the modpack uses)
|
||||
4. Download the `.jar` file
|
||||
|
||||
**Example: Downloading LuckPerms for 1.20.1 NeoForge**
|
||||
|
||||
1. Go to https://luckperms.net/download
|
||||
2. Click "Forge/NeoForge"
|
||||
3. Find version compatible with 1.20.1
|
||||
4. Download `LuckPerms-Forge-5.4.xxx.jar`
|
||||
|
||||
---
|
||||
|
||||
### Step 3: Upload Mods to Server
|
||||
|
||||
#### Via Pterodactyl Panel:
|
||||
|
||||
1. In the **Files** tab, navigate to `/mods/`
|
||||
2. Click **Upload** button (top right)
|
||||
3. Drag and drop the `.jar` file
|
||||
4. Wait for upload to complete
|
||||
|
||||
#### Via SSH (if you prefer):
|
||||
|
||||
```bash
|
||||
# Upload from your local machine using SCP
|
||||
scp LuckPerms-Forge-5.4.xxx.jar root@38.68.14.26:/var/lib/pterodactyl/volumes/[server-uuid]/mods/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Step 4: Verify Mod Installation
|
||||
|
||||
**After uploading all mods:**
|
||||
|
||||
1. In Pterodactyl Panel, go to **Console** tab
|
||||
2. Click **Start** to start the server
|
||||
3. Watch the console for mod loading messages
|
||||
4. Look for lines like:
|
||||
```
|
||||
[Server thread/INFO] [LuckPerms]: Loading LuckPerms v5.4.xxx
|
||||
[Server thread/INFO] [FTB Chunks]: Loading FTB Chunks
|
||||
```
|
||||
|
||||
**If you see errors:**
|
||||
- Check that you downloaded the correct version (Forge vs NeoForge)
|
||||
- Check that you downloaded for the correct Minecraft version
|
||||
- Check server logs for "dependency missing" errors
|
||||
|
||||
---
|
||||
|
||||
### Step 5: Stop Server for Configuration
|
||||
|
||||
**Before configuring mods, stop the server:**
|
||||
|
||||
1. In Pterodactyl Console, click **Stop**
|
||||
2. Wait for server to fully shut down
|
||||
3. Now you can edit configuration files
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ PER-MOD CONFIGURATION
|
||||
|
||||
### LuckPerms Configuration
|
||||
|
||||
**Location:** `/config/luckperms/luckperms.conf`
|
||||
|
||||
#### Step 1: Switch to MySQL Storage
|
||||
|
||||
**Find this section:**
|
||||
```conf
|
||||
storage-method = h2
|
||||
```
|
||||
|
||||
**Change to:**
|
||||
```conf
|
||||
storage-method = mysql
|
||||
```
|
||||
|
||||
#### Step 2: Configure MySQL Connection
|
||||
|
||||
**Find the `data` section and configure:**
|
||||
|
||||
```conf
|
||||
data {
|
||||
# MySQL connection details
|
||||
address = "63.143.34.217:3306"
|
||||
database = "luckperms"
|
||||
username = "luckperms"
|
||||
password = "PASSWORD_FROM_MICHAEL"
|
||||
|
||||
# Connection pool settings (leave these default)
|
||||
pool-settings {
|
||||
maximum-pool-size = 10
|
||||
minimum-idle = 10
|
||||
maximum-lifetime = 1800000
|
||||
connection-timeout = 5000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Replace:**
|
||||
- `PASSWORD_FROM_MICHAEL` with the actual password Michael gave you
|
||||
|
||||
#### Step 3: Configure Sync Settings
|
||||
|
||||
**Find the `messaging-service` section:**
|
||||
|
||||
```conf
|
||||
messaging-service = none
|
||||
```
|
||||
|
||||
**Change to:**
|
||||
```conf
|
||||
messaging-service = sql
|
||||
```
|
||||
|
||||
**This enables cross-server permission sync via MySQL.**
|
||||
|
||||
#### Step 4: Save and Close
|
||||
|
||||
**Via Pterodactyl Panel:**
|
||||
1. Click **Save Content** button
|
||||
2. Close the editor
|
||||
|
||||
---
|
||||
|
||||
### FTB Chunks Configuration
|
||||
|
||||
**Location:** `/config/ftbchunks/common-config.snbt`
|
||||
|
||||
**This file configures chunk claiming limits and force-loading.**
|
||||
|
||||
#### Default Configuration
|
||||
|
||||
The default config works, but you'll set limits via LuckPerms permissions instead. Leave this file as-is for now.
|
||||
|
||||
**Key settings to note:**
|
||||
- `max_claimed_chunks: 100` (default max, overridden by permissions)
|
||||
- `max_force_loaded_chunks: 25` (default max, overridden by permissions)
|
||||
|
||||
**We'll set per-tier limits in the Subscription Automation Guide.**
|
||||
|
||||
---
|
||||
|
||||
### FTB Essentials Configuration
|
||||
|
||||
**Location:** `/config/ftbessentials.snbt`
|
||||
|
||||
**This file configures homes and teleports.**
|
||||
|
||||
#### Key Settings to Configure
|
||||
|
||||
**Find and modify:**
|
||||
|
||||
```snbt
|
||||
{
|
||||
# Home settings
|
||||
max_homes: 1 # Default (will be overridden by LuckPerms)
|
||||
|
||||
# RTP settings
|
||||
rtp_cooldown: 600 # 10 minutes default (will be overridden by LuckPerms)
|
||||
rtp_min_distance: 500
|
||||
rtp_max_distance: 10000
|
||||
|
||||
# Spawn settings
|
||||
spawn_dimension: "minecraft:overworld"
|
||||
}
|
||||
```
|
||||
|
||||
**Leave defaults for now - we'll set per-tier values via LuckPerms permissions.**
|
||||
|
||||
---
|
||||
|
||||
### WorldEdit Configuration
|
||||
|
||||
**Location:** `/config/worldedit/worldedit.properties`
|
||||
|
||||
**Default settings are fine for most servers.**
|
||||
|
||||
#### Optional: Increase Max Blocks for Staff
|
||||
|
||||
**If you want staff (Builder rank) to have higher limits:**
|
||||
|
||||
```properties
|
||||
# Maximum number of blocks that can be changed at once
|
||||
max-blocks-changed=1000000
|
||||
|
||||
# Maximum number of polygonal points
|
||||
max-polygon-points=20
|
||||
|
||||
# Maximum radius for commands
|
||||
max-radius=1000
|
||||
|
||||
# Maximum super pickaxe size
|
||||
max-super-pickaxe-size=100
|
||||
```
|
||||
|
||||
**For regular subscribers, limits are set via LuckPerms permissions.**
|
||||
|
||||
---
|
||||
|
||||
### YAWP Configuration
|
||||
|
||||
**Location:** `/config/yawp/` (exact path depends on YAWP version)
|
||||
|
||||
**YAWP is typically configured in-game via commands.**
|
||||
|
||||
**Basic setup:**
|
||||
|
||||
1. Start the server
|
||||
2. Join as an admin/op
|
||||
3. Use commands like:
|
||||
```
|
||||
/yawp region create spawn
|
||||
/yawp region flag spawn pvp deny
|
||||
/yawp region flag spawn mob-spawning deny
|
||||
```
|
||||
|
||||
**Full YAWP configuration is beyond this guide - configure as needed per server.**
|
||||
|
||||
---
|
||||
|
||||
### Discord Integration Configuration
|
||||
|
||||
**Configuration varies by mod - choose based on your server version:**
|
||||
|
||||
#### For DiscordSRV (1.16.5):
|
||||
|
||||
**Location:** `/config/discordsrv/config.yml`
|
||||
|
||||
```yaml
|
||||
# Discord bot token (get from Michael or Discord Developer Portal)
|
||||
BotToken: "YOUR_DISCORD_BOT_TOKEN"
|
||||
|
||||
# Channel IDs
|
||||
Channels:
|
||||
global: "DISCORD_CHANNEL_ID"
|
||||
|
||||
# Options
|
||||
DiscordChatChannelConsoleCommandNotificationsEnabled: false
|
||||
DiscordChatChannelServerStartupMessageEnabled: true
|
||||
DiscordChatChannelServerShutdownMessageEnabled: true
|
||||
```
|
||||
|
||||
#### For dcintegration (1.20.x / 1.21.x NeoForge):
|
||||
|
||||
**Location:** `/config/dcintegration/config.toml`
|
||||
|
||||
```toml
|
||||
[discord]
|
||||
# Bot token
|
||||
token = "YOUR_DISCORD_BOT_TOKEN"
|
||||
|
||||
# Channel ID for chat relay
|
||||
channelId = "DISCORD_CHANNEL_ID"
|
||||
|
||||
[minecraft]
|
||||
# Enable chat relay
|
||||
enableChatRelay = true
|
||||
|
||||
# Webhook settings (optional)
|
||||
useWebhook = false
|
||||
```
|
||||
|
||||
**Get bot token and channel IDs from Michael.**
|
||||
|
||||
---
|
||||
|
||||
### Spark Configuration
|
||||
|
||||
**Location:** No config file needed!
|
||||
|
||||
**Spark works out of the box.**
|
||||
|
||||
**Usage:**
|
||||
1. In-game, run `/spark profiler start`
|
||||
2. Let it run for 30-60 seconds
|
||||
3. Run `/spark profiler stop`
|
||||
4. Spark gives you a web link to view results
|
||||
|
||||
**Only staff (Builder rank and above) should have access to Spark commands.**
|
||||
|
||||
---
|
||||
|
||||
## ✅ TESTING & VERIFICATION
|
||||
|
||||
### Test Checklist - Per Server
|
||||
|
||||
After configuring all mods on a server, test the following:
|
||||
|
||||
#### 1. Server Starts Successfully
|
||||
|
||||
- [ ] Server starts without errors
|
||||
- [ ] All mods load (check console)
|
||||
- [ ] No "missing dependency" errors
|
||||
- [ ] Server reaches "Done" state
|
||||
|
||||
#### 2. LuckPerms Works
|
||||
|
||||
```
|
||||
# In-game or console, run:
|
||||
/lp info
|
||||
|
||||
# Should show LuckPerms version and connection status
|
||||
# Should say "Storage: MySQL" (not h2 or sqlite)
|
||||
```
|
||||
|
||||
#### 3. FTB Chunks Works
|
||||
|
||||
```
|
||||
# In-game:
|
||||
/ftbchunks
|
||||
|
||||
# Should open chunk claiming GUI
|
||||
# Try claiming a chunk (right-click a chunk on the map)
|
||||
```
|
||||
|
||||
#### 4. FTB Essentials Works
|
||||
|
||||
```
|
||||
# In-game:
|
||||
/sethome test
|
||||
/home test
|
||||
/delhome test
|
||||
|
||||
# Should set, teleport to, and delete home successfully
|
||||
```
|
||||
|
||||
#### 5. WorldEdit Works
|
||||
|
||||
```
|
||||
# In-game (as Builder rank):
|
||||
//wand
|
||||
|
||||
# Should give you a wooden axe (WorldEdit selection tool)
|
||||
```
|
||||
|
||||
#### 6. Discord Integration Works
|
||||
|
||||
```
|
||||
# In-game, type a message in chat
|
||||
# Check Discord channel - message should appear
|
||||
# Type in Discord - message should appear in-game
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 TROUBLESHOOTING
|
||||
|
||||
### Server Won't Start
|
||||
|
||||
**Symptom:** Server crashes on startup or gets stuck loading.
|
||||
|
||||
**Common Causes:**
|
||||
1. **Wrong Forge/NeoForge version** - Make sure mod matches server type
|
||||
2. **Missing dependencies** - Check for "missing required mod" errors
|
||||
3. **Incompatible mods** - Some mods conflict with each other
|
||||
4. **Corrupted jar file** - Re-download and re-upload
|
||||
|
||||
**Solution:**
|
||||
1. Check server console for specific error messages
|
||||
2. Look for lines like "Missing required mod: [modname]"
|
||||
3. Download missing dependencies
|
||||
4. If still broken, remove mods one by one to find the problem
|
||||
|
||||
---
|
||||
|
||||
### LuckPerms Can't Connect to MySQL
|
||||
|
||||
**Symptom:** LuckPerms loads but shows errors about database connection.
|
||||
|
||||
**Common Causes:**
|
||||
1. **Wrong MySQL credentials** - Double-check username, password, host, port
|
||||
2. **Firewall blocking connection** - Server can't reach Command Center
|
||||
3. **MySQL not running** - Database server is down
|
||||
|
||||
**Solution:**
|
||||
1. Check credentials in `/config/luckperms/luckperms.conf`
|
||||
2. Test connection from server to MySQL:
|
||||
```bash
|
||||
telnet 63.143.34.217 3306
|
||||
```
|
||||
3. If connection fails, ask Michael to check firewall rules
|
||||
|
||||
---
|
||||
|
||||
### FTB Chunks Claims Not Working
|
||||
|
||||
**Symptom:** Players can't claim chunks or claims don't protect.
|
||||
|
||||
**Common Causes:**
|
||||
1. **Permission not granted** - Player doesn't have `ftbchunks.claim` permission
|
||||
2. **Chunk limit reached** - Player hit their claim limit for their tier
|
||||
3. **Protected area** - Trying to claim in spawn protection zone
|
||||
|
||||
**Solution:**
|
||||
1. Grant permission via LuckPerms:
|
||||
```
|
||||
/lp group awakened permission set ftbchunks.claim true
|
||||
```
|
||||
2. Check player's claim count:
|
||||
```
|
||||
/ftbchunks admin info <playername>
|
||||
```
|
||||
3. Adjust claim limits in config or via permissions
|
||||
|
||||
---
|
||||
|
||||
### Discord Integration Not Working
|
||||
|
||||
**Symptom:** Messages don't relay between Minecraft and Discord.
|
||||
|
||||
**Common Causes:**
|
||||
1. **Wrong bot token** - Discord bot token is incorrect or expired
|
||||
2. **Wrong channel ID** - Pointing to wrong Discord channel
|
||||
3. **Bot not in server** - Discord bot hasn't been invited to your Discord server
|
||||
4. **Missing bot permissions** - Bot doesn't have Send Messages / Read Messages permissions
|
||||
|
||||
**Solution:**
|
||||
1. Double-check bot token in config file
|
||||
2. Verify channel ID (right-click channel in Discord, Copy ID)
|
||||
3. Re-invite bot to Discord server with proper permissions
|
||||
4. Restart Minecraft server after config changes
|
||||
|
||||
---
|
||||
|
||||
## 📚 REFERENCE
|
||||
|
||||
### Quick Command Reference
|
||||
|
||||
#### LuckPerms Commands
|
||||
|
||||
```bash
|
||||
# View user info
|
||||
/lp user <username> info
|
||||
|
||||
# View group info
|
||||
/lp group <groupname> info
|
||||
|
||||
# Add user to group
|
||||
/lp user <username> parent add <groupname>
|
||||
|
||||
# Set permission
|
||||
/lp group <groupname> permission set <permission> true
|
||||
|
||||
# View all groups
|
||||
/lp listgroups
|
||||
```
|
||||
|
||||
#### FTB Chunks Commands
|
||||
|
||||
```bash
|
||||
# Open chunk claiming GUI
|
||||
/ftbchunks
|
||||
|
||||
# View player's claims
|
||||
/ftbchunks admin info <playername>
|
||||
|
||||
# Force claim for player (admin only)
|
||||
/ftbchunks admin claim <playername>
|
||||
|
||||
# Unclaim chunk
|
||||
/ftbchunks unclaim
|
||||
```
|
||||
|
||||
#### FTB Essentials Commands
|
||||
|
||||
```bash
|
||||
# Set home
|
||||
/sethome <name>
|
||||
|
||||
# Go to home
|
||||
/home <name>
|
||||
|
||||
# Delete home
|
||||
/delhome <name>
|
||||
|
||||
# List homes
|
||||
/homes
|
||||
|
||||
# Random teleport
|
||||
/rtp
|
||||
|
||||
# Go back to previous location
|
||||
/back
|
||||
```
|
||||
|
||||
#### WorldEdit Commands (Staff Only)
|
||||
|
||||
```bash
|
||||
# Get selection wand
|
||||
//wand
|
||||
|
||||
# Set position 1
|
||||
//pos1
|
||||
|
||||
# Set position 2
|
||||
//pos2
|
||||
|
||||
# Replace blocks in selection
|
||||
//replace <from> <to>
|
||||
|
||||
# Fill area
|
||||
//set <block>
|
||||
|
||||
# Copy selection
|
||||
//copy
|
||||
|
||||
# Paste selection
|
||||
//paste
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### File Locations Quick Reference
|
||||
|
||||
```
|
||||
Server Root
|
||||
├── mods/
|
||||
│ ├── LuckPerms-Forge-5.4.xxx.jar
|
||||
│ ├── ftbchunks-forge-xxx.jar
|
||||
│ ├── ftbessentials-xxx.jar
|
||||
│ ├── ftblibrary-xxx.jar
|
||||
│ ├── ftbteams-xxx.jar
|
||||
│ ├── worldedit-forge-xxx.jar
|
||||
│ ├── ServerCore-xxx.jar
|
||||
│ ├── FerriteCore-xxx.jar
|
||||
│ └── ... (other mods)
|
||||
│
|
||||
├── config/
|
||||
│ ├── luckperms/
|
||||
│ │ └── luckperms.conf
|
||||
│ ├── ftbchunks/
|
||||
│ │ └── common-config.snbt
|
||||
│ ├── ftbessentials.snbt
|
||||
│ ├── worldedit/
|
||||
│ │ └── worldedit.properties
|
||||
│ └── ... (other configs)
|
||||
│
|
||||
└── logs/
|
||||
└── latest.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Subscriber Tier Limits (Quick Reference)
|
||||
|
||||
| Tier | Homes | Claimed Chunks | Force-Load Chunks | /rtp Cooldown |
|
||||
|------|-------|----------------|-------------------|---------------|
|
||||
| Wanderer | 0 | 0 | 0 | None (no access) |
|
||||
| Awakened | 1 | 0 | 0 | None (no access) |
|
||||
| Elemental | 5 | 25 | 0 | 60 min |
|
||||
| Knight | 10 | 49 | 4 | 30 min |
|
||||
| Master | 20 | 100 | 9 | 15 min |
|
||||
| Legend | 35 | 121 | 16 | 10 min |
|
||||
| Sovereign | 50 | 225 | 81 | None (unlimited) |
|
||||
|
||||
**These limits are configured in the Subscription Automation Guide (separate document).**
|
||||
|
||||
---
|
||||
|
||||
### Important Reminders
|
||||
|
||||
1. **Always stop the server before editing config files**
|
||||
2. **Test changes on ONE server before applying to all 13**
|
||||
3. **MySQL credentials are the SAME for all servers** (they all connect to the same database)
|
||||
4. **Make backups before making major changes**
|
||||
5. **Ask Michael if you're unsure** - don't guess
|
||||
|
||||
---
|
||||
|
||||
### Getting Help
|
||||
|
||||
**If something isn't working:**
|
||||
|
||||
1. **Check server console** - Most errors are logged there
|
||||
2. **Check `/logs/latest.log`** - More detailed error information
|
||||
3. **Ask Michael** - He can check from the backend
|
||||
4. **Discord/Pterodactyl Panel** - Michael can see console remotely
|
||||
|
||||
**When asking for help, provide:**
|
||||
- Which server (name/IP)
|
||||
- What you were trying to do
|
||||
- Exact error message from console/logs
|
||||
- What you've already tried
|
||||
|
||||
---
|
||||
|
||||
## 🎯 DEPLOYMENT CHECKLIST
|
||||
|
||||
Use this checklist to track your progress across all 13 servers.
|
||||
|
||||
### TX1 Dallas Servers
|
||||
|
||||
- [ ] Server 1: All mods installed, configured, tested
|
||||
- [ ] Server 2: All mods installed, configured, tested
|
||||
- [ ] Server 3: All mods installed, configured, tested
|
||||
- [ ] Server 4: All mods installed, configured, tested
|
||||
- [ ] Server 5: All mods installed, configured, tested
|
||||
- [ ] Server 6: All mods installed, configured, tested
|
||||
- [ ] Server 7: All mods installed, configured, tested (if applicable)
|
||||
|
||||
### NC1 Charlotte Servers
|
||||
|
||||
- [ ] Server 1: All mods installed, configured, tested
|
||||
- [ ] Server 2: All mods installed, configured, tested
|
||||
- [ ] Server 3: All mods installed, configured, tested
|
||||
- [ ] Server 4: All mods installed, configured, tested
|
||||
- [ ] Server 5: All mods installed, configured, tested
|
||||
- [ ] Server 6: All mods installed, configured, tested
|
||||
- [ ] Server 7: All mods installed, configured, tested (if applicable)
|
||||
|
||||
### Post-Deployment
|
||||
|
||||
- [ ] All servers connecting to MySQL successfully
|
||||
- [ ] LuckPerms syncing across all servers
|
||||
- [ ] FTB Chunks working on all servers
|
||||
- [ ] FTB Essentials working on all servers
|
||||
- [ ] WorldEdit permissions configured for Builder rank
|
||||
- [ ] Discord integration tested on at least one server per modpack type
|
||||
- [ ] Documented any server-specific issues or configurations
|
||||
|
||||
---
|
||||
|
||||
**End of Server-Side Mod Deployment Guide**
|
||||
|
||||
**Next Step:** Proceed to **Subscription Automation Guide** to configure the Paymenter → Discord → LuckPerms integration.
|
||||
|
||||
**Fire + Frost + Foundation = Where Love Builds Legacy** 🔥❄️
|
||||
|
||||
---
|
||||
|
||||
**Document Version:** 1.0
|
||||
**Last Updated:** March 23, 2026
|
||||
**Maintained By:** Firefrost Gaming Infrastructure Team
|
||||
1338
docs/guides/subscription-automation-guide.md
Normal file
1338
docs/guides/subscription-automation-guide.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user