By default, settings.ini sets SavePath="", which (as expected) points to the platform's local save path:
- Linux:
~/.local/share/godot/app_userdata/Starground/saves - Windows:
C:\Users\<user>\AppData\Roaming\Godot\app_userdata\Starground\saves
However, when the server is run headlessly:
- It fails to create a save if one does not exist.
- Setting
SavePathto a full folder path (e.g./home/container/.local/share/godot/app_userdata/Starground/saves) results in an error like:
World node created!
Loading info and converting from /home/container/.local/share/godot/app\_userdata/Starground/saves
Save file not found or unreadable!
This happens even though the directory is fully writable.
🎯 Root Cause:
The server expects SavePath to point to the file (e.g. world.dat), not just the directory. But this isn’t standard for game servers, and it causes issues when a fresh world doesn’t exist.
✅ Suggested Fix: Replace SavePath with two clearer settings:
SaveDir: The directory to look in for existing saves (defaults to platform's user path)SaveName: The save file name without extension (defaults toworld→ looks forworld.dat)
🔄 On startup:
- Server checks if
{SaveDir}/{SaveName}.datexists. - If found → Load it and log to console its found the save + log progress
- If not found → Create a new one automatically and log to Console its progress