Skip to content

v2.26

Choose a tag to compare

@brianmiller brianmiller released this 05 Feb 03:45
· 373 commits to master since this release

New Features

  • Collapsible worlds sections in admin UI: Split worlds table into "Active Worlds" and "Offline Worlds" sections
    • Active Worlds shows all non-stopped worlds (running, starting, stopping, updating, etc.)
    • Offline Worlds shows only stopped worlds
    • Click section headers to toggle collapse/expand
    • User preferences saved in cookies for session persistence
    • Worlds automatically move between sections when status changes
    • Real-time section count updates via AJAX polling
  • Scrollable world tables: Both Active and Offline sections now have scrollable containers (375px max height)
  • Offline worlds sorted by last updated: Most recently updated worlds appear first
  • Dynamic world creation: New worlds are automatically added to tables via AJAX without page refresh
  • GitHub and Discord links: Added social icons to bottom left footer with version number
  • Real-time world status in public UI: World cards now update within seconds when worlds go online/offline
    • Uses pgrep-based process detection for instant status updates
    • Both initial page load and AJAX polling use real-time detection
    • Memory shows "pending..." while waiting for cron to report actual usage
    • Removed Citizens field from world cards

UI Improvements

  • Added visual separation between table header and collapsible sections with accent borders
  • Section count badges (green for active, gray for offline)
  • Smooth chevron rotation animation on collapse/expand
  • Global violet scrollbar styling across entire site
  • Fixed column widths for consistent table alignment between sections
  • Moved version number to footer next to social links

Bug Fixes

  • Fixed steamcmd installation failures for cloned worlds
    • Added retry logic (up to 5 attempts) when steamcmd fails
    • Clean Steam directories between retries to avoid stale state
    • Verify valheim_server.x86_64 exists after installation
    • Abort world update and set failed status if Valheim install fails
    • Fixes issue where cloned worlds would have mods but no game binary
  • Fixed ~1 minute delay in public UI world status updates
    • Now detects world online/offline state in real-time via process detection
    • No longer depends on minute-based cron job for status updates
  • Fixed worlds showing online on initial page load when actually offline
    • Initial page render now uses same real-time process detection as AJAX

Technical Details

  • Cookie-based preference storage (1 year expiration)
  • Dynamic DOM manipulation for world movement between sections
  • Maintains compatibility with existing AJAX polling and live updates
  • API now returns dateUpdated for proper offline world sorting
  • New getMyWorldsStatus API endpoint for public UI polling
  • isWorldRunning() helper uses pgrep with character class trick to avoid self-matching

Screenshots

image image image