feat: Rewrite Part 3 with dual method approach (web editor + console)

Part 3 now offers TWO ways to create LuckPerms groups:

METHOD A: Web Editor (RECOMMENDED)
- 30-45 minutes instead of 2-3 hours
- Visual interface with drag-and-drop
- Color picker for chat prefixes
- Built-in validation prevents mistakes
- Better for learning the structure
- Step-by-step guide for all 13 groups

METHOD B: Console Commands (ALTERNATIVE)
- Original ~150 command approach
- Exact and reproducible
- Good for documentation
- No internet upload required
- Same functionality as Method A

Benefits:
- Holly can choose based on comfort level
- Web editor is faster and less error-prone
- Console commands still available for automation/reproducibility
- Both methods produce identical results

Chronicler #40
This commit is contained in:
Claude
2026-03-22 12:33:17 +00:00
parent 7255275fd3
commit 8302b4aaa5

View File

@@ -828,18 +828,432 @@ journalctl -u firefrost-discord-bot -f
## ⚙️ PART 3: LUCKPERMS GROUPS & PERMISSIONS
**This is the longest section - you'll configure 11 groups across 13 servers.**
**This is the most important section - you'll configure 13 groups (11 subscriber tiers + 2 staff ranks) that control all in-game permissions.**
### Step 1: Create LuckPerms Groups
**⚠️ IMPORTANT:** Because all 13 servers connect to the SAME MySQL database, you only need to do this ONCE. Changes sync automatically to all servers.
**Access ONE game server's console first (we'll sync to others after):**
---
1. Go to https://panel.firefrostgaming.com
2. Click on any server (doesn't matter which - they all share the MySQL database)
## 🎯 CHOOSE YOUR METHOD
You have **two ways** to create LuckPerms groups:
### Method A: Web Editor (RECOMMENDED - Fast & Visual)
-**Time:** 30-45 minutes
-**Difficulty:** Easy (point and click)
-**Visual interface** - see group hierarchy, drag-and-drop permissions
-**Color picker** for chat prefixes
-**Built-in validation** - prevents mistakes
-**Better for learning** - understand the structure visually
- ⚠️ **Requires:** Server running, able to join in-game
**Best for:** Holly (Lead Builder) who might need to adjust permissions later
### Method B: Console Commands (Alternative - Exact & Reproducible)
- ⏱️ **Time:** 2-3 hours
- 📝 **Difficulty:** Moderate (lots of copy/paste)
-**Exact commands** - reproducible script
-**No internet upload** - stays on your servers
-**Good documentation** - can see exactly what was configured
- ⚠️ **Tedious:** ~150+ commands to paste one by one
**Best for:** Documentation purposes, automated deployment, or if you prefer terminal
---
**Choose one method below and follow those instructions:**
---
## 🌐 METHOD A: WEB EDITOR (RECOMMENDED)
### Step 1: Access the Web Editor
1. **Join any Minecraft server** (doesn't matter which - they all share the database)
2. **Run this command in-game:**
```
/lp editor
```
3. **Click the link** that appears in chat (looks like `https://luckperms.net/editor/xxxxxxxx`)
4. **Web editor opens** in your browser
**What you'll see:**
- Left sidebar: List of groups
- Main panel: Selected group's permissions and settings
- Top toolbar: Save, create group, import/export
---
### Step 2: Create Subscriber Groups
**Create these groups in order. For each group:**
1. Click **"Create Group"** button (top left)
2. Fill in the settings as shown below
3. Move to next group
---
#### Group 1: Wanderer (Free)
**Basic Settings:**
- **Name:** `wanderer`
- **Weight:** `10`
- **Display Name:** Wanderer
- **Parents:** None
**Prefix:**
- Click **"Add Prefix"**
- **Priority:** 100
- **Prefix:** `&7[Wanderer] ` (gray color)
- Use color picker or type `&7` for gray
**Permissions:** None needed
**Notes:** Default group for non-subscribers. No server access.
---
#### Group 2: The Awakened ($1 one-time)
**Basic Settings:**
- **Name:** `awakened`
- **Weight:** `20`
- **Parents:** Click "Add Parent" → Select `wanderer`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&f[The Awakened] ` (`&f` = white)
**Permissions:**
- Click **"Add Permission"**
- Add: `ftbessentials.home.set` → Set to `true`
- Add: `ftbessentials.home.teleport` → Set to `true`
**Meta (Data):**
- Click **"Add Meta"**
- **Key:** `max-homes` | **Value:** `1`
**Notes:** Entry tier. Gets server whitelist access and 1 home only.
---
#### Group 3: Fire Elemental ($5/month)
**Basic Settings:**
- **Name:** `fire_elemental`
- **Weight:** `30`
- **Parents:** `awakened`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&c[🔥 Fire Elemental] ` (`&c` = red/fire orange)
- You can paste the 🔥 emoji directly
**Permissions:**
- `ftbchunks.claim` → `true`
- `ftbessentials.rtp` → `true`
**Meta:**
- `max-homes` → `5`
- `max-claimed-chunks` → `25`
- `rtp-cooldown` → `3600` (60 minutes in seconds)
---
#### Group 4: Frost Elemental ($5/month)
**Basic Settings:**
- **Name:** `frost_elemental`
- **Weight:** `30`
- **Parents:** `awakened`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&b[❄️ Frost Elemental] ` (`&b` = cyan/frost blue)
**Permissions:**
- `ftbchunks.claim` → `true`
- `ftbessentials.rtp` → `true`
**Meta:**
- `max-homes` → `5`
- `max-claimed-chunks` → `25`
- `rtp-cooldown` → `3600`
**Notes:** Same perks as Fire Elemental, different path/color.
---
#### Group 5: Fire Knight ($10/month)
**Basic Settings:**
- **Name:** `fire_knight`
- **Weight:** `40`
- **Parents:** `fire_elemental`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&c[🔥 Fire Knight] `
**Meta:**
- `max-homes` → `10`
- `max-claimed-chunks` → `49`
- `max-force-loaded-chunks` → `4`
- `rtp-cooldown` → `1800` (30 minutes)
**Permissions:** Inherits from Fire Elemental (no new permissions needed)
---
#### Group 6: Frost Knight ($10/month)
**Basic Settings:**
- **Name:** `frost_knight`
- **Weight:** `40`
- **Parents:** `frost_elemental`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&b[❄️ Frost Knight] `
**Meta:**
- `max-homes` → `10`
- `max-claimed-chunks` → `49`
- `max-force-loaded-chunks` → `4`
- `rtp-cooldown` → `1800`
---
#### Group 7: Fire Master ($15/month)
**Basic Settings:**
- **Name:** `fire_master`
- **Weight:** `50`
- **Parents:** `fire_knight`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&c[🔥 Fire Master] `
**Meta:**
- `max-homes` → `20`
- `max-claimed-chunks` → `100`
- `max-force-loaded-chunks` → `9`
- `rtp-cooldown` → `900` (15 minutes)
---
#### Group 8: Frost Master ($15/month)
**Basic Settings:**
- **Name:** `frost_master`
- **Weight:** `50`
- **Parents:** `frost_knight`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&b[❄️ Frost Master] `
**Meta:**
- `max-homes` → `20`
- `max-claimed-chunks` → `100`
- `max-force-loaded-chunks` → `9`
- `rtp-cooldown` → `900`
---
#### Group 9: Fire Legend ($20/month)
**Basic Settings:**
- **Name:** `fire_legend`
- **Weight:** `60`
- **Parents:** `fire_master`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&c[🔥 Fire Legend] `
**Meta:**
- `max-homes` → `35`
- `max-claimed-chunks` → `121`
- `max-force-loaded-chunks` → `16`
- `rtp-cooldown` → `600` (10 minutes)
---
#### Group 10: Frost Legend ($20/month)
**Basic Settings:**
- **Name:** `frost_legend`
- **Weight:** `60`
- **Parents:** `frost_master`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&b[❄️ Frost Legend] `
**Meta:**
- `max-homes` → `35`
- `max-claimed-chunks` → `121`
- `max-force-loaded-chunks` → `16`
- `rtp-cooldown` → `600`
---
#### Group 11: Sovereign ($499 lifetime)
**Basic Settings:**
- **Name:** `sovereign`
- **Weight:** `100`
- **Parents:** `awakened` (not Legend - Sovereign is separate from paths)
**Prefix:**
- **Priority:** 100
- **Prefix:** `&6[⚡ Founder] ` (`&6` = gold/amber)
**Permissions:**
- `ftbessentials.rtp` → `true`
- `ftbchunks.claim` → `true`
**Meta:**
- `max-homes` → `50`
- `max-claimed-chunks` → `225`
- `max-force-loaded-chunks` → `81`
- **No rtp-cooldown meta** (unlimited /rtp for Sovereign)
**Notes:** Sovereign gets BOTH Fire + Frost path access (configured in Discord, not LuckPerms).
---
### Step 3: Create Staff Groups
**CRITICAL: WorldEdit is powerful. Only staff should have access.**
#### Group 12: Builder (Holly - Lead Builder)
**Basic Settings:**
- **Name:** `builder`
- **Weight:** `1000`
- **Parents:** `default` (or none)
**Prefix:**
- **Priority:** 100
- **Prefix:** `&6[🔨 Builder] `
**Permissions:**
- `worldedit.*` → `true` (gives ALL WorldEdit permissions)
- `minecraft.command.gamemode` → `true`
- `ftbchunks.*` → `true`
**Meta:**
- `max-homes` → `100`
- `max-claimed-chunks` → `1000`
- `max-force-loaded-chunks` → `100`
---
#### Group 13: Owner (Michael/Frostystyle)
**Basic Settings:**
- **Name:** `owner`
- **Weight:** `10000`
- **Parents:** `builder`
**Prefix:**
- **Priority:** 100
- **Prefix:** `&c[👑 Owner] ` (`&c` = red)
**Permissions:**
- `*` → `true` (ALL permissions - full admin)
**Notes:** Owner inherits Builder's WorldEdit access plus everything else.
---
### Step 4: Deny WorldEdit to ALL Subscribers
**CRITICAL SECURITY STEP:**
For **each subscriber group** (wanderer through sovereign), add this permission:
- **Permission:** `worldedit.*`
- **Value:** `false` (red X)
**Groups to set this on:**
- wanderer
- awakened
- fire_elemental
- frost_elemental
- fire_knight
- frost_knight
- fire_master
- frost_master
- fire_legend
- frost_legend
- sovereign
**Why:** Prevents subscribers (even $499 Sovereign) from using WorldEdit to duplicate items, grief, or bypass protections.
---
### Step 5: Save and Apply
1. **Click "Save" button** (top right)
2. **Web editor generates a command** that starts with `/lp applyedits`
3. **Copy the entire command**
4. **Go back to Minecraft**
5. **Paste the command in console** (or in-game chat if you have permission)
6. **Press Enter**
**You'll see:**
```
[LuckPerms] Applied changes from editor session.
```
**Done! All 13 groups are now created and synced across all servers.**
---
### Step 6: Assign Users to Groups
**Still in Minecraft console, assign Holly and yourself:**
```
/lp user unicorn20089 parent set builder
/lp user Frostystyle parent set owner
```
**Replace `Frostystyle` with your actual Minecraft username.**
---
### Step 7: Verify Groups Exist
```
/lp listgroups
```
**You should see all 13 groups listed with their weights.**
---
## 📝 METHOD B: CONSOLE COMMANDS (ALTERNATIVE)
**If you prefer console commands over the web editor, use these commands instead.**
### Step 1: Access Server Console
1. Go to Pterodactyl Panel: https://panel.firefrostgaming.com
2. Click on any server (doesn't matter which)
3. Click **Console** tab
4. Make sure server is **running** (start it if stopped)
4. Make sure server is **running**
**Then run these commands in the console:**
---
### Step 2: Run These Commands (Copy/Paste Each One)
**All commands must be run in the server console. They will sync to all 13 servers automatically via MySQL.**
---
#### Create Wanderer Group (Free Tier)
@@ -847,9 +1261,10 @@ journalctl -u firefrost-discord-bot -f
/lp creategroup wanderer
/lp group wanderer setweight 10
/lp group wanderer meta setprefix "&7[Wanderer] "
/lp group wanderer meta setsuffix ""
```
---
#### Create Awakened Group ($1 Tier)
```
@@ -857,13 +1272,13 @@ journalctl -u firefrost-discord-bot -f
/lp group awakened parent add wanderer
/lp group awakened setweight 20
/lp group awakened meta setprefix "&f[The Awakened] "
# Permissions
/lp group awakened permission set ftbessentials.home.set true
/lp group awakened permission set ftbessentials.home.teleport true
/lp group awakened meta setmeta max-homes 1
```
---
#### Create Fire Elemental Group ($5/mo)
```
@@ -871,8 +1286,6 @@ journalctl -u firefrost-discord-bot -f
/lp group fire_elemental parent add awakened
/lp group fire_elemental setweight 30
/lp group fire_elemental meta setprefix "&c[🔥 Fire Elemental] "
# Permissions
/lp group fire_elemental meta setmeta max-homes 5
/lp group fire_elemental permission set ftbchunks.claim true
/lp group fire_elemental meta setmeta max-claimed-chunks 25
@@ -880,6 +1293,8 @@ journalctl -u firefrost-discord-bot -f
/lp group fire_elemental meta setmeta rtp-cooldown 3600
```
---
#### Create Frost Elemental Group ($5/mo)
```
@@ -887,8 +1302,6 @@ journalctl -u firefrost-discord-bot -f
/lp group frost_elemental parent add awakened
/lp group frost_elemental setweight 30
/lp group frost_elemental meta setprefix "&b[❄️ Frost Elemental] "
# Permissions (same as Fire Elemental)
/lp group frost_elemental meta setmeta max-homes 5
/lp group frost_elemental permission set ftbchunks.claim true
/lp group frost_elemental meta setmeta max-claimed-chunks 25
@@ -896,6 +1309,8 @@ journalctl -u firefrost-discord-bot -f
/lp group frost_elemental meta setmeta rtp-cooldown 3600
```
---
#### Create Fire Knight Group ($10/mo)
```
@@ -903,14 +1318,14 @@ journalctl -u firefrost-discord-bot -f
/lp group fire_knight parent add fire_elemental
/lp group fire_knight setweight 40
/lp group fire_knight meta setprefix "&c[🔥 Fire Knight] "
# Permissions
/lp group fire_knight meta setmeta max-homes 10
/lp group fire_knight meta setmeta max-claimed-chunks 49
/lp group fire_knight meta setmeta max-force-loaded-chunks 4
/lp group fire_knight meta setmeta rtp-cooldown 1800
```
---
#### Create Frost Knight Group ($10/mo)
```
@@ -918,14 +1333,14 @@ journalctl -u firefrost-discord-bot -f
/lp group frost_knight parent add frost_elemental
/lp group frost_knight setweight 40
/lp group frost_knight meta setprefix "&b[❄️ Frost Knight] "
# Permissions (same as Fire Knight)
/lp group frost_knight meta setmeta max-homes 10
/lp group frost_knight meta setmeta max-claimed-chunks 49
/lp group frost_knight meta setmeta max-force-loaded-chunks 4
/lp group frost_knight meta setmeta rtp-cooldown 1800
```
---
#### Create Fire Master Group ($15/mo)
```
@@ -933,14 +1348,14 @@ journalctl -u firefrost-discord-bot -f
/lp group fire_master parent add fire_knight
/lp group fire_master setweight 50
/lp group fire_master meta setprefix "&c[🔥 Fire Master] "
# Permissions
/lp group fire_master meta setmeta max-homes 20
/lp group fire_master meta setmeta max-claimed-chunks 100
/lp group fire_master meta setmeta max-force-loaded-chunks 9
/lp group fire_master meta setmeta rtp-cooldown 900
```
---
#### Create Frost Master Group ($15/mo)
```
@@ -948,14 +1363,14 @@ journalctl -u firefrost-discord-bot -f
/lp group frost_master parent add frost_knight
/lp group frost_master setweight 50
/lp group frost_master meta setprefix "&b[❄️ Frost Master] "
# Permissions
/lp group frost_master meta setmeta max-homes 20
/lp group frost_master meta setmeta max-claimed-chunks 100
/lp group frost_master meta setmeta max-force-loaded-chunks 9
/lp group frost_master meta setmeta rtp-cooldown 900
```
---
#### Create Fire Legend Group ($20/mo)
```
@@ -963,14 +1378,14 @@ journalctl -u firefrost-discord-bot -f
/lp group fire_legend parent add fire_master
/lp group fire_legend setweight 60
/lp group fire_legend meta setprefix "&c[🔥 Fire Legend] "
# Permissions
/lp group fire_legend meta setmeta max-homes 35
/lp group fire_legend meta setmeta max-claimed-chunks 121
/lp group fire_legend meta setmeta max-force-loaded-chunks 16
/lp group fire_legend meta setmeta rtp-cooldown 600
```
---
#### Create Frost Legend Group ($20/mo)
```
@@ -978,14 +1393,14 @@ journalctl -u firefrost-discord-bot -f
/lp group frost_legend parent add frost_master
/lp group frost_legend setweight 60
/lp group frost_legend meta setprefix "&b[❄️ Frost Legend] "
# Permissions
/lp group frost_legend meta setmeta max-homes 35
/lp group frost_legend meta setmeta max-claimed-chunks 121
/lp group frost_legend meta setmeta max-force-loaded-chunks 16
/lp group frost_legend meta setmeta rtp-cooldown 600
```
---
#### Create Sovereign (Founder) Group ($499 Lifetime)
```
@@ -993,30 +1408,20 @@ journalctl -u firefrost-discord-bot -f
/lp group sovereign parent add awakened
/lp group sovereign setweight 100
/lp group sovereign meta setprefix "&6[⚡ Founder] "
# Permissions (maximum everything)
/lp group sovereign meta setmeta max-homes 50
/lp group sovereign meta setmeta max-claimed-chunks 225
/lp group sovereign meta setmeta max-force-loaded-chunks 81
/lp group sovereign permission set ftbessentials.rtp true
# No rtp cooldown for Sovereign
```
---
#### Create Staff Groups (Builder & Owner)
**IMPORTANT: WorldEdit is a powerful tool. Only staff should have access.**
**Create Builder Group (for Holly):**
#### Create Builder Staff Group (Holly)
```
/lp creategroup builder
/lp group builder parent add default
/lp group builder setweight 1000
/lp group builder meta setprefix "&6[🔨 Builder] "
# WorldEdit permissions
/lp group builder permission set worldedit.* true
/lp group builder permission set worldedit.navigation.* true
/lp group builder permission set worldedit.selection.* true
@@ -1027,8 +1432,6 @@ journalctl -u firefrost-discord-bot -f
/lp group builder permission set worldedit.schematic.* true
/lp group builder permission set worldedit.brush.* true
/lp group builder permission set worldedit.tool.* true
# Other staff permissions
/lp group builder permission set minecraft.command.gamemode true
/lp group builder permission set ftbchunks.* true
/lp group builder meta setmeta max-homes 100
@@ -1036,32 +1439,23 @@ journalctl -u firefrost-discord-bot -f
/lp group builder meta setmeta max-force-loaded-chunks 100
```
**Create Owner Group (for Michael/Frostystyle):**
---
#### Create Owner Group (Michael/Frostystyle)
```
/lp creategroup owner
/lp group owner parent add builder
/lp group owner setweight 10000
/lp group owner meta setprefix "&c[👑 Owner] "
# Full permissions
/lp group owner permission set * true
```
**Assign Users to Staff Groups:**
---
#### Deny WorldEdit to ALL Subscriber Groups (CRITICAL)
```
# Assign Holly to Builder
/lp user unicorn20089 parent set builder
# Assign Michael to Owner (replace with your actual Minecraft username)
/lp user Frostystyle parent set owner
```
**CRITICAL: Deny WorldEdit to ALL Subscriber Groups:**
```
# Prevent subscribers from using WorldEdit (even Sovereign)
/lp group wanderer permission set worldedit.* false
/lp group awakened permission set worldedit.* false
/lp group fire_elemental permission set worldedit.* false
@@ -1075,34 +1469,32 @@ journalctl -u firefrost-discord-bot -f
/lp group sovereign permission set worldedit.* false
```
**This ensures:**
- ✅ Holly (Builder) has full WorldEdit access
- ✅ Michael (Owner) has all permissions
- ❌ NO subscribers (even $499 Sovereign) can use WorldEdit
- ❌ Prevents duplication exploits and griefing via WorldEdit
---
### Step 2: Verify Groups Created
#### Assign Users to Groups
```
/lp user unicorn20089 parent set builder
/lp user Frostystyle parent set owner
```
**Replace `Frostystyle` with your actual Minecraft username.**
---
### Step 3: Verify Groups Created
```
/lp listgroups
```
**You should see all 11 groups listed.**
**You should see all 13 groups listed.**
### Step 3: Sync to All Other Servers
---
**Because all servers connect to the SAME MySQL database, the groups are already synced!**
## ✅ NEXT STEP (AFTER EITHER METHOD)
**To verify on another server:**
1. Go to Pterodactyl Panel
2. Open console for a different server
3. Run `/lp listgroups`
4. Should show the same 11 groups
**If groups don't appear:**
- Check that server's LuckPerms config points to the MySQL database
- Restart the server
Once groups are created (via web editor OR console commands), proceed to **Part 4: LuckPerms Discord Integration** to connect Discord roles to in-game groups.
---