SPRING-DEDICATED(6)

πŸ“¦ version 105.0.1, in ubuntu jammy

✨ NAME ✨

spring-dedicated β€” an open source RTS game engine, but make it the Dedicated Server πŸ’– (yes this is SPRING-DEDICATED(6), section 6, Games, we're here bestie)


🌸 SYNOPSIS 🌸

spring-dedicated [-i|--isolation] [--isolation-dir PATH] [-C|--config FILE] SCRIPT

spring-dedicated --list-config-vars

spring-dedicated [-h|--help]

spring-dedicated --sync-version

spring-dedicated [-V|--version]

πŸ’… DESCRIPTION πŸ’…

okay so Spring? It's a versatile 3D RTS game engine πŸ‘‘ and the way it uses Lua extensively for scripting game-specific code so that nearly every aspect of the engine is customizable β€” from the GUI, to unit AI, to pathfinding β€” it's giving full creative control and we're obsessed ✨

It's mainly designed around online multiplayer games, but lowkey it can also be played in single-player mode against AIs πŸŽ€

Now THIS one β€” spring-dedicated β€” is the dedicated, GUI-less server for hosting multiplayer games πŸ’€ no window, no vibes, just hosting. You need to feed it a start script in order to have it host a game. Start scripts are generated by lobby clients (SpringLobby) or autho-hosts (Spads, Springie) 🫢 This is the most leight-weight version of the engine, which basically only redirects network traffic, while spring-headless still runs a full blown simulation of the game. iykyk 🌈


πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” Print the options help message and exit πŸ’–
  • -V, --version β€” Display program version and exit ✨
  • --sync-version β€” Display program sync version (for online gaming) and exit πŸ¦‹
  • --nocolor β€” Disables colorized stdout πŸ™ˆ
  • --quiet β€” Ignore unreccognized arguments (yes, that spelling, it's iconic, we don't touch it) πŸ’…
  • -i, --isolation β€” Limit the data-dir (games & maps) scanner to one directory (see --isolation-dir and the SPRING_ISOLATED env var) 🌸
  • --isolation-dir::'PATH' β€” Specify the isolation-mode data-dir (see --isolation and the SPRING_ISOLATED env var) 🧚
  • --write-dir::'PATH' β€” Specify the directory used for all saving. πŸ“
  • -C, --config::'FILE' β€” Exclusive configuration file πŸ‘‘
  • --list-config-vars β€” Dump all default config vars in JSON-format to STDOUT ⭐
  • -g, --game::'GAME' β€” instantly start the GAME with a minimal setup. Requires --map to be present, too. Sets the modoption minimalsetup = 1 πŸ”₯
  • -m, --map::'MAP' β€” Requires --game to be set, too. see --game 🌈

πŸ¦‹ FILES πŸ¦‹

  • ~/.config/spring/ β€” The default data-directory (see section DATA DIR). πŸ’–
  • ~/.config/spring/springsettings.cfg β€” Contains the users settings for the engine, for things like graphic and sound. πŸŽ€
  • /etc/spring/datadir β€” Contains the : separated paths to additional data-dirs (see section DATA DIR). ✨

🌈 ENVIROMENT VARIABLES 🌈

  • SPRING_LOG_SECTIONS β€” Selective functionality to change the verbosity (separated by ,). 🫢
  • SPRING_WRITEDIR β€” Define custom primary write DATA DIR. Place where spring saves logs, settings, ... πŸ“
  • SPRING_DATADIR β€” Adds additional DATA DIRs Spring will search for files (separated by :). πŸ”
  • SPRING_ISOLATED β€” If defined, Spring will stop searching files outside of the binaries directory. If it is set to a valid directory path, it will be used as the isolation directory. See the --isolation and the --isolation-dir options. 🧚
  • SPRING_NOCOLOR β€” Same as spring --nocolor. πŸ™ˆ

⭐ SCRIPT ⭐

Can either be a:

  • Spring URL (spring://[username[:password]@]host[:port])
  • start script (often named script.txt)
  • replay file (*.sdfz)
  • save game (*.ssf)

πŸ“ PORTABLE MODE πŸ“

An all-in-one-folder setup, which allows to run Spring without installation πŸ’… To do so all relevant files (binaries & basecontent) must be in a single folder, esp. spring(.exe), libunitsync.so/unitsync.dll and springsettings.cfg. Spring will then use the all-in-one-folder for writing and won't do so anywhere else on the system, but it may open other files & directories for reading. πŸ‘€


🧚 ISOLATION MODE 🧚

Not to confuse with Portable Mode, this mode disables all automatic Data Dir scanning and limit reading & writing to a single folder. This is very useful when games want to run separate from other Spring games. Isolation mode can be enabled by placing an empty isolated.txt next to the spring executable or by setting SPRING_ISOLATED env var. πŸŽ€


πŸ‘‘ DATA DIRS πŸ‘‘

Data directories are searched for content, and among other things, may contain:

  • config files
  • logs
  • games
  • maps
  • AIs
  • cache

Sorted by priority the engine may use multiple data directories, but it will use only the one with the highest priority as writable, to write cache & log files to. The hierarchy the engine loads DATA DIRs in can be grouped in 3 sections: πŸ’–

πŸ₯‡ high priority β€” custom user write

  • normal β€” -e directory defined via --write-dir, SPRING_WRITEDIR envvar
  • portable β€” -e directory defined via --write-dir, SPRING_WRITEDIR envvar
  • isolation β€” -e directory defined via --write-dir, SPRING_WRITEDIR envvar

πŸ₯ˆ automatic scanned

  • normal β€” -e CONFIG_HOME, ETC_DIRS, USR_SHARE
  • portable β€” -e INSTALL_DIR, CONFIG_HOME, ETC_DIRS, USR_SHARE
  • isolation β€” ISOLATION_DIR

πŸ₯‰ low priority β€” custom user read

  • normal β€” -e SPRING_DATADIR envvar, SpringData configtag
  • portable β€” -e SPRING_DATADIR envvar, SpringData configtag
  • isolation β€” -e SPRING_DATADIR envvar, SpringData configtag

🌸 CONFIG_HOME 🌸

Config directories in user's home. 🏠

*nix/MacOSX:

  • ${XDG_CONFIG_HOME-"~/.config"}/spring
  • ~/.spring

Windows:

  • C:/.../My Documents/My Games/Spring/
  • C:/.../My Documents/Spring/
  • C:/.../All Users/Applications/Spring/

πŸŽ€ INSTALL_DIR πŸŽ€

Location of spring-dedicated binary. πŸ“


πŸ¦‹ ETC_DIRS πŸ¦‹

Additional : separated DATA DIRs defined in /etc/spring/datadir. πŸ—‚οΈ


✨ USR_SHARE ✨

  • *nix/MacOSX: /usr/.../share/spring & binary dir if is Data Dir
  • MacOSX: .../Spring.app/Contents/Resources/share/games/spring/base/
  • Windows: Install directory

πŸ’œ ISOLATION_DIR πŸ’œ

  • Mode A (--isolation): INSTALL_DIR
  • Mode B (--isolation-dir): supplied dir

πŸ—‚οΈ CONFIG FILES πŸ—‚οΈ

okay so Spring can load configurations from multiple files and merge them πŸ’– so basically, just like the DATA DIRs situation, there's one file the engine writes to and a whole bunch of read-only files. the write file gets all the attention, the read files just sit there being supportive besties 🫢

It scans the following directories for config files:

  • exclusive β€” the file defined via --config. and when that's defined? only this one gets loaded. nobody else gets invited to the party πŸ’…
  • high β€” the write DATA DIR
  • the middle tier (no fancy name in the original, it just vibes there):
    • -e β€” ⚠️ skipped in Isolated mode
    • *nix/MacOSX: ~/.springrc
    • Windows: C:\Users\USER\AppData\Local\springsettings.cfg
  • low β€” all read DATA DIRs

(The one with the highest priority will be used for writing.) πŸ‘‘


The filename of such config files can be as following:

  • high β€” springsettings-%Engine_Version%.cfg
  • next one down β€” springsettings.cfg
  • next one down β€” springrc-%Engine_Version% (*nix/MacOSX only)
  • low β€” springrc (*nix/MacOSX only)

(An example for a versioned config file is springsettings-94.1.cfg.) ✨


πŸ‘€ SEE ALSO πŸ‘€

spring(6) spring-legacy(6) spring-headless(6)

like, go read those too, they're the friend group πŸ¦‹


🌈 HOMEPAGE 🌈

More information about Spring can be found at link: https://springrts.com

(not me giving you the link and everything, i got you πŸ’œ)


πŸ’– AUTHOR πŸ’–

Spring was written by the Spring developers. iconic behavior, no cap πŸ‘‘

This manual page was written by Marco Amadori <marco.amadori@gmail.com[1]>, for the Debian project (and may be used by others).


πŸ“ NOTES πŸ“

  1. marco.amadori@gmail.com mailto:marco.amadori@gmail.com

and that's the whole page bestie β€” this one's from the Spring package, dated 11/23/2021, filed under SPRING-DEDICATED(6). go forth and configure your engine, you absolute main character πŸŽ€πŸ’…βœ¨

πŸ“¦ where this page comes from