From d4e92bb27e4f5a24a87d324a554a0ee83ba7f645 Mon Sep 17 00:00:00 2001 From: The Chronicler Date: Wed, 18 Feb 2026 22:55:04 +0000 Subject: [PATCH] Task #30: Pterodactyl Modpack Version Display MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created new quality-of-life task for tracking modpack versions in Pterodactyl panel. TASK DETAILS: - Add custom egg variable for modpack version display - Visible in Startup tab for all modpack servers - Manual entry (simple, low complexity) - Improves version tracking and troubleshooting SCOPE: - 9 modpack servers (All The Mons, Stoneblock 4, etc.) - Excludes Vanilla, Hytale, FoundryVTT (not applicable) IMPLEMENTATION: - Phase 1: Add variable to Minecraft egg (15 min) - Phase 2: Populate current versions (30 min) - Phase 3: Document update procedure (15 min) - Total time: 1-2 hours BENEFITS: - Version visibility at a glance - Change tracking when modpacks update - Troubleshooting clarity (identify version mismatches) - Professional operations appearance ALTERNATIVE METHODS DOCUMENTED: - Script-based auto-detection (future enhancement) - Include version in server name (quick hack) Updated tasks.md: Total tasks now 30 Status: Ready to implement Fire + Frost + Foundation 💙🔥❄️ --- docs/core/tasks.md | 15 +- .../README.md | 279 ++++++++++++++++++ 2 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 docs/tasks/pterodactyl-modpack-version-display/README.md diff --git a/docs/core/tasks.md b/docs/core/tasks.md index e14bac2..0675e2c 100644 --- a/docs/core/tasks.md +++ b/docs/core/tasks.md @@ -359,11 +359,24 @@ Weekly Among Us community events for subscriber engagement. --- +### 30. Pterodactyl Modpack Version Display +**Time:** 1-2 hours +**Status:** READY +**Documentation:** `docs/tasks/pterodactyl-modpack-version-display/` + +Add custom "Modpack Version" field to Pterodactyl panel for version tracking visibility. + +**Method:** Custom egg variable in Startup tab +**Scope:** 9 modpack servers (excludes Vanilla, Hytale, FoundryVTT) +**Benefits:** Version visibility, change tracking, troubleshooting clarity + +--- + --- ## 📊 QUICK STATS -**Total Tasks:** 29 +**Total Tasks:** 30 **Completed:** 1 (NC1 cleanup) **In Progress:** 2 (Vaultwarden, Terraria Arc, Photo Processing) **Ready to Build:** 20+ diff --git a/docs/tasks/pterodactyl-modpack-version-display/README.md b/docs/tasks/pterodactyl-modpack-version-display/README.md new file mode 100644 index 0000000..5ee35d5 --- /dev/null +++ b/docs/tasks/pterodactyl-modpack-version-display/README.md @@ -0,0 +1,279 @@ +# Pterodactyl Modpack Version Display + +**Status:** Ready +**Priority:** Tier 3 - Quality of Life +**Time:** 1-2 hours +**Last Updated:** 2026-02-18 +**Created By:** The Chronicler + +--- + +## Overview + +Add a custom "Modpack Version" field to Pterodactyl panel that displays the current modpack version for each Minecraft server. Makes version tracking visible at a glance without digging through server files. + +**Problem:** Currently no easy way to see which modpack version is running on each server +**Solution:** Custom egg variable that displays in Startup tab + +--- + +## Benefits + +- ✅ **Version visibility** - See modpack version at a glance +- ✅ **Change tracking** - Know when updates were applied +- ✅ **Troubleshooting** - Quickly identify version mismatches +- ✅ **Documentation** - Server state clearly visible in panel +- ✅ **Staff clarity** - Everyone knows what's running + +--- + +## Scope + +**Affected Servers:** +- All The Mons (Cobblemon) +- Stoneblock 4 +- Society: Sunlit Valley +- Reclamation +- The Ember Project +- Minecolonies: Create and Conquer +- All The Mods 10 +- Homestead +- EMC Subterra Tech + +**Not applicable:** +- Vanilla 1.21.11 (no modpack) +- Hytale (different game) +- FoundryVTT (not Minecraft) + +--- + +## Implementation Methods + +### Method 1: Egg Variable (Recommended) + +**Pros:** +- Clean UI integration +- Per-server editable +- No code changes needed +- Visible in Startup tab + +**Cons:** +- Manual entry (not auto-detected) +- Must update when modpack updates + +**Complexity:** Low + +--- + +### Method 2: Custom Script Parser + +**Pros:** +- Auto-detects from modpack manifest +- No manual updates needed +- Always accurate + +**Cons:** +- Requires custom Pterodactyl extension +- More complex to maintain +- Breaks on Pterodactyl updates + +**Complexity:** High + +--- + +## Recommended Approach: Egg Variable + +**Create custom variable in Minecraft egg:** + +### Variable Details + +**Name:** Modpack Version +**Description:** Current version of the modpack running on this server +**Environment Variable:** `MODPACK_VERSION` +**Default Value:** `Not Set` +**User Viewable:** Yes +**User Editable:** Yes (allows updates) +**Rules:** None (free text) + +--- + +## Implementation Steps + +### Phase 1: Add Variable to Egg (15 minutes) + +**Location:** Pterodactyl Admin Panel → Nests → Minecraft → [Egg] + +1. Log into Pterodactyl admin panel +2. Navigate to **Nests** → **Minecraft** +3. Click on the egg used for modded servers (likely "Forge" or "NeoForge") +4. Go to **Variables** tab +5. Click **New Variable** + +**Configuration:** + +``` +Name: Modpack Version +Description: Current version of the modpack (e.g., "1.2.3" or "2024-02-18") +Environment Variable: MODPACK_VERSION +Default Value: Not Set +Display Order: 10 (or any position you prefer) + +Permissions: +☑ User Viewable +☑ User Editable +☐ Hidden from users +``` + +6. Click **Save** +7. The variable now appears in Startup tab for all servers using this egg + +--- + +### Phase 2: Populate Current Versions (30 minutes) + +**For each modpack server:** + +1. Research current modpack version + - Check modpack manifest file + - Check CurseForge/Modrinth page + - Check server files for version.json + +2. Go to server in Pterodactyl panel +3. Click **Startup** tab +4. Find "Modpack Version" field +5. Enter current version (e.g., "1.5.2" or "2024-02-18") +6. Click **Save** + +--- + +### Phase 3: Document Process (15 minutes) + +**Create update procedure:** + +When updating a modpack: +1. Update modpack files +2. Test server restart +3. Update "Modpack Version" field in Pterodactyl +4. Document in changelog + +**Location:** `docs/procedures/modpack-update-procedure.md` + +--- + +## Alternative: Display in Server Name + +**Quick hack (no code needed):** + +Include version in server display name: + +**Before:** "All The Mons" +**After:** "All The Mons [v1.5.2]" + +**Pros:** +- Instantly visible in server list +- No panel modifications needed +- Works immediately + +**Cons:** +- Clutters server name +- Must manually update name field +- Looks less professional + +--- + +## Version Format Standards + +**Recommended formats:** + +### Semantic Versioning +- Format: `MAJOR.MINOR.PATCH` +- Example: `1.5.2`, `2.0.1` +- Best for: Official modpack releases + +### Date-Based +- Format: `YYYY-MM-DD` +- Example: `2026-02-18` +- Best for: Custom/internal modpacks + +### Hybrid +- Format: `VERSION (DATE)` +- Example: `1.5.2 (2026-02-18)` +- Best for: Tracking both + +**Pick ONE format and use consistently across all servers.** + +--- + +## Automation Opportunities (Future) + +### Auto-Detection Script + +**Concept:** Script that reads modpack version from manifest and updates Pterodactyl via API + +```bash +#!/bin/bash +# Auto-update modpack version in Pterodactyl + +SERVER_ID="668a5220-7e72-4379-9165-bdbb84bc9806" +MANIFEST="/var/lib/pterodactyl/volumes/${SERVER_ID}/manifest.json" + +# Extract version from manifest +VERSION=$(jq -r '.version' "$MANIFEST") + +# Update via Pterodactyl API +curl -X PUT "https://panel.firefrostgaming.com/api/application/servers/${SERVER_ID}/startup" \ + -H "Authorization: Bearer ${PTERO_API_KEY}" \ + -H "Content-Type: application/json" \ + -d "{\"environment\": {\"MODPACK_VERSION\": \"${VERSION}\"}}" +``` + +**Status:** Future enhancement (not needed for MVP) + +--- + +## Success Criteria + +- ✅ Egg variable created in Pterodactyl +- ✅ Variable visible in Startup tab for all modded servers +- ✅ Current versions documented for all 9 modpack servers +- ✅ Update procedure documented +- ✅ Staff trained on updating field when modpacks update + +--- + +## Rollback + +**If implementation causes issues:** + +1. Delete custom variable from egg +2. Field disappears from all servers +3. No data loss (versions can be recorded elsewhere) + +**Risk:** None (purely cosmetic addition) + +--- + +## Related Tasks + +- **Task #23:** Game Server Startup Script Audit (same servers affected) +- **Future:** Automated version detection system +- **Future:** Changelog integration (link version to release notes) + +--- + +## Notes + +- This is a **tracking feature**, not a functional requirement +- Servers will run fine without it +- Primary benefit is **operational clarity** +- Consider extending to other metadata fields: + - Minecraft version + - Java version + - Last updated date + - Responsible admin + +--- + +**Fire + Frost + Foundation = Where Love Builds Legacy** 💙🔥❄️ + +**Version tracking = Professional operations**