Files
firefrost-operations-manual/docs/tasks/pterodactyl-modpack-version-display/README.md
The Chronicler d4e92bb27e 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 💙🔥❄️
2026-02-18 22:55:04 +00:00

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**