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