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 💙🔥❄️
280 lines
6.2 KiB
Markdown
280 lines
6.2 KiB
Markdown
# 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**
|