Skip to content

v5 is back in LTS! Added .save and new systems support and various other awesome features merged from SteamServerUI (and fixes) - #70

Merged
JacksonTheMaster merged 115 commits into
mainfrom
nightly
Aug 13, 2025
Merged

v5 is back in LTS! Added .save and new systems support and various other awesome features merged from SteamServerUI (and fixes)#70
JacksonTheMaster merged 115 commits into
mainfrom
nightly

Conversation

@JacksonTheMaster

@JacksonTheMaster JacksonTheMaster commented Aug 6, 2025

Copy link
Copy Markdown
Member

Full support for OLD and NEW Terrain System!

Important

To use SSUI with the current Stationeers Beta, visit Config -> Beta Settings -> Use New Terrain and Save System -> True.

Most importantly: SSUI is back in LTS until end of 2026!

This update focuses on boosting performance, enhancing usability, and ensuring compatibility with Stationeers' upcoming terrain rework. Here are the key changes:

It introduces several significant enhancements to the StationeersServerUI project, updating backup management to handle the new and old system side by side with the switch of a config value, embedding web UI assets to eliminate excessive GitHub API requests , and introducing a command-line interface (SSUICLI).

The changes aim to improve QOL, usability, and full compatibility with Stationeers' upcoming terrain rework.

Changes:

🗺️ Full New Terrain and Save System Support

Core Compatibility Features

Ensure IsNewTerrainAndSaveSystem is set to True in Config -> Beta Settings for Stationeers Beta compatibility.

  • Dual system support: Toggle between old and new Stationeers systems with IsNewTerrainAndSaveSystem config option
    Added configuration options for Difficulty, StartCondition, and StartLocation to support the new terrain systems file start command fully
  • Enhanced UI: New "Beta Settings" (will change to World Settings once Beta is released to stable) section for configuring terrain and world generation options
  • Automatic saving into HEAD Save: When enabled with new terrain system, backup manager automatically saves to HEAD Save on every autosave
  • Default world update: Now uses 'Vulcan' (compatible with both stable and beta). 'Moon' has been renamed to 'Lunar'.

💾 Backup Manager Enhancements

New Features & Improvements

  • .save file support: Full compatibility with new backup format alongside legacy system
  • Smart directory watching: Monitors autosave directory for both old and new systems
  • Improved restore process: Refactored restore process to handle both .save files and legacy backup trios (.bin, .xml, world_meta.xml), with improved error messages using the term "autosave watcher".
  • Improved backup manager: Now starts asynchronously, ensuring smoother world creation and backup processes by waiting for Stationeers to initialize the world folder instead of creating it.
  • Squashed bugs across both new and old backup systems for a flawless experience.

📦 Performance & Asset Optimization

Web UI Asset Bundling

  • Embedded all web UI assets (HTML, CSS, JS) into the executable using Go's embed package, eliminating 20+ excessive GitHub API calls per startup
  • Added cleanup logic to remove old files (post-v5.5) and auto-migrate customdetections.json to the config folder (src/loader/loader.go).
  • All SSCM assets besides the actual DLL are now bundled to further reduce github.com api calls

🖥️ Introducing SSUICLI: The Command-Line Powerhouse:

  • Unleash a CLI with commands like:
    • help - Display available commands
    • reloadbackend - Reload backend systems
    • reloadconfig - Reload backend config only
    • restartbackend - Restart backend completely
    • startserver - Start game server
    • stopserver - Stop game server
    • deleteconfig - Remove configuration
    • runsteamcmd - Execute SteamCMD operations
  • Total control at your fingertips!
  • Stylish startup and first-time setup messages for a polished user experience.
  • Disable SSUICLI via the IsConsoleEnabled config option (defaults to true!).

SteamCMD integration:

  • Direct triggering: Launch SteamCMD from both the WebUI and SSUICLI
  • UI integration: Repurposed API info button as Update Server button
  • Rate limiting: 30-second cooldown to somewhat prevent spam

🎮 SSCM (Stationeers Server Command Manager)

Out of Beta & Enabled by default

  • Production ready: SSCM is no longer in beta status
  • Opt-out: SSCM is now enabled be default and requires an opt-out during setup.
  • Improved command handling: Can now run the same command without chaining requirements
  • Enhanced UI display: Command arguments properly rendered in interface
  • File cleanup: Removed unnecessary SSCM.pdb from downloads

🌍 Localization System

Multi-Language Support (Public Beta)

  • Only via config.json: As localization is not nearly close to done, no webUI config option has been added yet!
  • Languages available: English (default), German, and Swedish.
  • Localized sections:
    • Main page (/): Most buttons and UI elements
    • config page (/config): Whole page done
    • setup track (/setup): Whole visual page is done, but API responses still in English (e.g. "cannot finalize setup at this time)
  • API responses generally NOT localized: Messages like "Server started" or "backup restored successfully" are NOT" localized in this update and are shown in English.
  • Translation status: German and Swedish translations are available but will receive updates in the future.
  • Future plans: Additional languages and refined translations are planned.

🛠️ System Improvements & Bug Fixes

Configuration & Backend

  • Thread-safe config loading: Improved stability during configuration access
  • Full backend reloads: Config changes now trigger complete backend reload
  • Streamlined initialization: All systems initialized only once, reducing startup clutter
  • Improved setup flow: Setup finalize now performs full backend reload
  • Better config management: Moved SaveConfig to loader package for proper startup saving

User Experience

  • Enhanced setup: Added a "Pls read" step in setup to minimize user errors (fingers crossed 🤞).
  • Improved beta selection: Better emphasis on restart requirements
  • Cleaner logging: Added LogClutterToConsole config option to suppress unnecessary game server messages
  • Reduced sunset warning: Removed big red "This tool might break, use SteamServerUI" warning (since this update was made despite me thinking it would be too much work, turns out it was doable)
  • Better error handling: Enhanced backup manager error messages and flow

Development & Maintenance

  • Cleanup logic: Old executables rename automatically on update to _old<filename> for better startup scripting
  • Improved updater: Now correctly grabs prereleases with more verbose logging
  • API endpoint info: Now linked in footer on main page
  • Log message cleanup: Updated messages and removed unnecessary whitespace
  • Consistent CLI output: Re-added Arguments printing in start server CLI log output on Linux

🛠️ Miscellaneous:

  • Eliminated 2-second sleep delay between logging and SteamCMD installation for smoother execution (install.go).
  • Updated .gitignore for seamless development on Linux (previously Windows for StationeersServerUI, Linux for SteamServerUI).
  • Updated dependencies (gorilla/websocket, crypto, sys) for peak performance.
  • Fixed critical issue (Memory Leak in InternalIsServerRunning Due to Goroutine Accumulation on Windows #68): Memory leak in InternalIsServerRunning due to goroutine accumulation on Windows. 🐛
  • Moved ReloadBackupManager() to ReloadConfig() for better flow.
  • Enabled SSUICLI by default and clarified non-interactive shell usage in the console input stop message.
  • Re-added Arguments in start server CLI log output on Linux for consistency with Windows...
  • Config LOADING is now thread safe
  • Saving config from ui now redirects to /config instead of / for better UX
  • switched positions of AdminPassword and ServerAuthSecret in UI
  • Added AutoStartServerOnStartup config option
  • added function to loader to install a script (.ps1 or .sh) to configure an os based autostart behavior for SSUI automatically. You only need to run the script once, and SSUI will autostart from that point onwards.

Important

To use SSUI with the current Stationeers Beta, visit Config -> Beta Settings -> Use New Terrain and Save System -> True.

… dir of the worldFolder atm

technically supports old system too
…ons to config; update UI and command argument handling accordingly to handle both old and new system
-added SSUICLI (and some runtime commands), default is disabled, config -> IsConsoleEnabled
-added fancy startup message
-added setup.RestartMySelf(),  can be triggered via SSUICLI
-updated isFirstTimeSetup message
…ctly. reduces github api requests significantly
…led into the executable. Left functionality intact for later use, if needed
…ions.json to new location if it exists to persist user config
…tion, add CleanUpOldExecutables function that renames old executables to _old<filename>
… options, everything saves and loads. but I will leave this on the branch for later use - DO NOT MERGE YET
switched positions of AdminPassword and ServerAuthSecret in UI
…bilty with new dotsave system (saving head save on auto save, also just a nice feature to default to imho)
…and fulfill an autostart for SSUI. Windows implementation works, linux not implemented. Firstpass!
-Allows easier management of localizaton files for the person writing them
…E with improved structure and new entries for UI elements
…dded placeholder texts and removed obsolete information
…old approach sometimes did not sucessfully swtich from beta back to stable
@JacksonTheMaster JacksonTheMaster self-assigned this Aug 13, 2025
@JacksonTheMaster
JacksonTheMaster merged commit 260fc44 into main Aug 13, 2025
1 check passed
@JacksonTheMaster
JacksonTheMaster deleted the nightly branch August 13, 2025 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant