Task #30: Pterodactyl Modpack Version Display
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 💙🔥❄️
This commit is contained in:
@@ -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+
|
||||
|
||||
279
docs/tasks/pterodactyl-modpack-version-display/README.md
Normal file
279
docs/tasks/pterodactyl-modpack-version-display/README.md
Normal file
@@ -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**
|
||||
Reference in New Issue
Block a user