Skip to content

v5 is back in LTS! Added .save and new systems support and various other awesome features - #66

Merged
JacksonTheMaster merged 33 commits into
nightlyfrom
newterrain
Aug 4, 2025
Merged

v5 is back in LTS! Added .save and new systems support and various other awesome features#66
JacksonTheMaster merged 33 commits into
nightlyfrom
newterrain

Conversation

@JacksonTheMaster

@JacksonTheMaster JacksonTheMaster commented Aug 3, 2025

Copy link
Copy Markdown
Member

This pull request 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).

Important

To use SSUI on Beta, visit Config -> Beta Settings -> Use New Terrain and Save System -> True

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

Changes:

Backup Manager Enhancements:

  • Added support for .save files in the backup manager, watching the autosave directory just like SSUI did for the old system
  • 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".
  • Refactored backup manager initialization to be asynchronous and wait for Stationeers to create the world folder before starting the watcher in order for Stationeers to be able to detect that it needs to create a new world (Stationeers uses a DoesFolderExist there)

Full New Terrain and Save System Support:

  • Introduced IsNewTerrainAndSaveSystem config option to toggle between old and new Stationeers systems
    Added configuration options for Difficulty, StartCondition, and StartLocation to support the new terrain systems file start command fully (src/config/config.go, src/gamemgr/args.go).

  • Updated UI to include a "Beta Settings" section for configuring new terrain and world gen options

  • Modified command argument handling to support new -file flag structure for the terrain system

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).

Command-Line Interface (SSUICLI):

  • Introduced a non-blocking CLI with commands like help, reloadbackend, restartbackend, startserver, stopserver, and deleteconfig
  • Added a stylish startup message and first-time setup message for improved user experience
  • Enable the SSUICLI via IsConsoleEnabled config option. Defaults to false.

Miscellaneous:

  • Removed redundant ANSI color constants from src/detectionmgr/types.go as the logger handles them anyway.
  • Eliminated 2 sec sleep delay between logging and SteamCMD installation for smoother execution in intall.go
  • Moved SaveConfig function to loader package to be able to save config after fully started up (previously, It was required to save the config from the WebUI once to be able to edit it manually
    updated .gitignore in order to be able to develop on my new Linux install (previouly StationeersServerUI was developed on windows, while SteamServerUI was developed on Linux.
  • updated dependencies (fsnotify, gorilla/websocket, crypto, sys).
  • Added cleanup logic to rename old executables to _old for better startup scripting possibilites
  • updated default world type references to use 'Vulcan' in order to work on stable and beta / newterrain as Moon is now called Lunar
  • removed big red warning box (ok display = none as I may reuse it later for something else.

… 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
@JacksonTheMaster

Copy link
Copy Markdown
Member Author

Increment version before merge, change branch to release!!!

@JacksonTheMaster JacksonTheMaster self-assigned this Aug 4, 2025

@JacksonTheMaster JacksonTheMaster left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review ok, testing (stable stationeers) ok

… on stable and beta / newterrain as Moon is now called Lunar
…r stationeers to create the world folder before starting the watcher in order for stationeers to be able to detect that it needs to create a new world (stationeers uses DoesFolderExist there)
@JacksonTheMaster

Copy link
Copy Markdown
Member Author

verified stable and beta running in SSUIv5.5!

@JacksonTheMaster JacksonTheMaster left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

diff reviewed again

@JacksonTheMaster
JacksonTheMaster merged commit a3526d4 into nightly Aug 4, 2025
1 check passed
@JacksonTheMaster JacksonTheMaster changed the title v5 is back! Added .save and new systems support! v5 is back in LTS! Added .save and new systems support and various other awesome features Aug 4, 2025
@JacksonTheMaster
JacksonTheMaster deleted the newterrain branch August 6, 2025 01:55
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