SPRING-LEGACY(6)
π NAME π
spring-legacy β an open source RTS game engine, and this one's the Legacy Engine build. That's it, that's the whole identity. It's the manual page SPRING-LEGACY(6), filed under Games, and bestie we are going to read the whole thing together. π
β¨ SYNOPSIS β¨
okay so here's every way you can yell at it:
spring-legacy [-f|--fullscreen] [-w|--window] [-m|--minimise]
[--safemode] [-s|--server IP_OR_HOSTNAME] [-p|--projectiledump]
[-t|--textureatlas] [--benchmark TIME [--benchmarkstart TIME]]
[-i|--isolation] [--isolation-dir PATH] [-n|--name STRING] [-C|--config
FILE] [SCRIPT]
spring-legacy --list-ai-interfaces
spring-legacy --list-skirmish-ais
spring-legacy --list-def-tags
spring-legacy --list-config-vars
spring-legacy [-h|--help]
spring-legacy --sync-version
spring-legacy [-V|--version]
πΈ DESCRIPTION πΈ
Spring is a versatile 3D RTS game engine, periodt. The way it does this is by using Lua extensively for scripting game-specific code, which makes basically every aspect of the engine customizable β from the GUI, to unit AI, to pathfinding. literally all of it. π
It's mainly designed around online multiplayer games, but you can also play it in single-player mode against AIs. no friends online? no problem, the bots will humble you just as fast.
This engine version runs graphics and simulation in a single thread, and it may marginally increase the performance on single-core systems. β¨
π OPTIONS π
okay so this is the menu, read it carefully bestie:
-h,--helpβ prints the options help message and exits. bye π-V,--versionβ displays the program version and exits.--sync-versionβ displays the program sync version (the one for online gaming) and exits. important if you're playing with other people, iykyk.--nocolorβ disables colorized stdout. no more rainbow in the terminal, tragic π--quietβ ignores unrecognized arguments. it simply does not perceive them.-f,--fullscreenβ runs in fullscreen mode.-w,--windowβ runs in windowed mode.-b,--minimiseβ starts in the background (minimised). shy girl behaviour, love that.--safemodeβ turns off many things that are known to cause problems (like on PCs/Macs with lower-end graphic cards). your lil GPU says thank you π«Ά-s,--serverIP_OR_HOSTNAME β runs as a server on the address you hand it.-t,--textureatlasβ dumps each finalised textureatlas intotextureatlasN.tga.--benchmarkTIME β enables benchmark mode (writes abenchmark.datafile). The number you give specifies the timespan to test.--benchmarkstartTIME β benchmark start time, in minutes.-i,--isolationβ limits the data-dir (games & maps) scanner to one directory. see--isolation-dirand theSPRING_ISOLATEDenv var.--isolation-dirPATH β specifies the isolation-mode data-dir. see--isolationand theSPRING_ISOLATEDenv var.--write-dirPATH β specifies the directory used for all saving.-n,--nameNAME β sets your player name. choose wisely, it's your whole brand. π-C,--configFILE β exclusive configuration file.--list-ai-interfacesβ dumps a list of available AI Interfaces to STDOUT.--list-skirmish-aisβ dumps a list of available Skirmish AIs to STDOUT.--list-def-tagsβ dumps a list of available Definition Tags in JSON-format to STDOUT.--list-ceg-classesβ dumps a list of available Projectile classes in JSON-format to STDOUT.--list-config-varsβ dumps all default config vars in JSON-format to STDOUT.-g,--gameGAME β instantly starts the GAME with a minimal setup. Requires--mapto be present, too. Sets the modoptionminimalsetup = 1.-m,--mapMAP β requires--gameto be set, too. see--game.
not me noticing the SYNOPSIS and the OPTIONS list disagree on which letter does what π both are in the docs, so both are here, exactly as written. we don't editorialize on the source, we just report it. π
π¦ FILES π¦
~/.config/spring/β the default data-directory (see section DATA DIR).~/.config/spring/springsettings.cfgβ contains the user's 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 π
yes bestie, that's how it's spelled in the page, we keep it. π
SPRING_LOG_SECTIONSβ selective functionality to change the verbosity (separated by,).SPRING_WRITEDIRβ define custom primary write DATA DIR. The place where spring saves logs, settings, ...SPRING_DATADIRβ adds additional DATA DIRs Spring will search for files in (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, that path gets used as the isolation directory. See the--isolationand the--isolation-diroptions.SPRING_NOCOLORβ same asspring --nocolor.
π SCRIPT π
SCRIPT can be any one of these four things:
- a Spring URL (
spring://[username[:password]@]host[:port]) - a start script (often named
script.txt) - a replay file (
*.sdfz) - a save game (
*.ssf)
π PORTABLE MODE π
An all-in-one-folder setup, which lets you run Spring without installing anything. To do that, all the relevant files (binaries & basecontent) have to live in a single folder β especially spring(.exe), libunitsync.so/unitsync.dll and springsettings.cfg. Spring will then use that all-in-one-folder for writing and won't write anywhere else on the system, but it may still open other files & directories for reading.
π§ ISOLATION MODE π§
Not to be confused with Portable Mode, okay? Different thing, similar name, classic. This mode disables all automatic Data Dir scanning and limits reading & writing to a single folder. It's 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 the SPRING_ISOLATED env var. β¨
β DATA DIRS β
Data directories are searched for content, and among other things, they may contain:
- config files
- logs
- games
- maps
- AIs
- cache
Sorted by priority, the engine may use multiple data directories, but it will only use the one with the highest priority as writable β that's where cache & log files get written to. The hierarchy the engine loads DATA DIRs in can be grouped into 3 sections:
ββββββββββββ¬ββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββ
β priority β section β normal β portable β isolation β
ββββββββββββΌββββββββββββββΌββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββ€
β β β β β β
β high β custom user β -e directory β -e directory β -e directory β
β β write β defined via β defined via β defined via β
β β β --write-dir β --write-dir β --write-dir β
β β β β β β
β β β SPRING_WRITEDIR β SPRING_WRITEDIR β SPRING_WRITEDIR β
β β β envvar β envvar β envvar β
ββββββββββββΌββββββββββββββΌββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββ€
β β β β β β
β β automatic β -e CONFIG_HOME β -e INSTALL_DIR β ISOLATION_DIR β
β β scanned β β β β
β β β ETC_DIRS β CONFIG_HOME β β
β β β β β β
β β β USR_SHARE β ETC_DIRS β β
β β β β β β
β β β β USR_SHARE β β
ββββββββββββΌββββββββββββββΌββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββ€
β β β β β β
β low β custom user β -e β -e β -e β
β β read β SPRING_DATADIR β SPRING_DATADIR β SPRING_DATADIR β
β β β envvar β envvar β envvar β
β β β β β β
β β β SpringData β SpringData β SpringData β
β β β configtag β configtag β configtag β
ββββββββββββ΄ββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββ
CONFIG_HOME
Config directories in the 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 the spring-legacy 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
okay that's part one, hold on bestie, part two is coming π
π CONFIG FILES π
okay bestie so here's the tea β Spring doesn't just read one config file, it loads a whole squad of them and merges them together. So basically the same energy as DATA DIRs β there's one file the engine actually writes to, and a bunch of read-only files it just reads from. π
It goes scanning through these directories looking for config files:
- exclusive β the file you define with
--config(and when that's defined, it's the only one loaded, periodt) - high β the write DATA DIR
- - β
-e(skipped when you're 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 is the one that gets used for writing. π
And the filenames of these config files can be, from most to least important:
- high β
springsettings-%Engine_Version%.cfg - β
springsettings.cfg - β
springrc-%Engine_Version%(*nix/MacOSX only) - low β
springrc(*nix/MacOSX only)
(like, a real-life example of a versioned config file would be springsettings-94.1.cfg, iykyk π¦)
π SEE ALSO π
spring(6) spring-headless(6) spring-dedicated(6)
π¦ HOMEPAGE π¦
Want more info about Spring? It's all right here, bestie: https://springrts.com β¨
π AUTHOR π
Spring was written by the Spring developers. π
This manual page was written by Marco Amadori <marco.amadori@gmail.com[1]>, for the Debian project (and it may be used by others too, no gatekeeping here π«Ά).
π NOTES π
marco.amadori@gmail.commailto:marco.amadori@gmail.com
and that's the whole page, bestie!! π this was the Spring package manual, dated 11/23/2021, and the page itself is SPRING-LEGACY(6) β go forth and configure slayfully πβ¨π
π¦ where this page comes from
- ubuntu jammy: spring 105.0.1+dfsg-4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms