SPRING(6)
๐ SPRING(6) โ Games ๐
okay bestie, sit down, hydrate, because this is the manual page for spring (section 6, Games) and she is long. It's the Default Engine build of an open source RTS game engine, and she's iconic, she's customizable, she's a whole ecosystem. Let's go ๐ฆ
โจ NAME โจ
spring โ an open source RTS game engine, Default Engine edition ๐
โจ SYNOPSIS โจ
spring [-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 --list-ai-interfaces
spring --list-skirmish-ais
spring --list-def-tags
spring --list-config-vars
spring [-h|--help]
spring --sync-version
spring [-V|--version]
like yes, she has that many modes. main character energy fr fr ๐
โจ DESCRIPTION โจ
Spring is a versatile 3D RTS game engine. She uses extensively Lua for scripting game-specific code, which is the whole reason nearly every aspect of the engine is customizable โ from the GUI, to unit AI, to pathfinding. literally everything is a vibe you can tweak ๐
She's mainly designed around online multiplayer games, but no cap, you can also play her in single-player mode against AIs. solo queen behavior ๐
The engine can run graphics and simulation in two separate threads, depending on the game and engine settings. On multi-core systems this will typically boost the performance. threads slay, periodt ๐ฅ
โจ 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 unrecognized arguments ๐คซ-f,--fullscreenโ Run in fullscreen mode ๐ฅ๏ธ-w,--windowโ Run in windowed mode ๐ช-b,--minimiseโ Start in background (minimised) ๐ค--safemodeโ Turns off many things that are known to cause problems (i.e. on PC/Mac's with lower-end graphic cards) ๐-s,--serverIP_OR_HOSTNAMEโ Run as a server on the given address ๐-t,--textureatlasโ Dump each finalised textureatlas intotextureatlasN.tga๐ผ๏ธ--benchmarkTIMEโ Enable benchmark mode (writes abenchmark.datafile). The given number specifies the timespan to test โฑ๏ธ--benchmarkstartTIMEโ Benchmark start time in minutes โณ-i,--isolationโ Limit the data-dir (games & maps) scanner to one directory (see--isolation-dirand theSPRING_ISOLATEDenv var) ๐ง--isolation-dirPATHโ Specify the isolation-mode data-dir (see--isolationand theSPRING_ISOLATEDenv var) ๐--write-dirPATHโ Specify the directory used for all saving โ๏ธ-n,--nameNAMEโ Set your player name ๐ท๏ธ-C,--configFILEโ Exclusive configuration file ๐--list-ai-interfacesโ Dump a list of available AI Interfaces to STDOUT ๐ค--list-skirmish-aisโ Dump a list of available Skirmish AIs to STDOUT โ๏ธ--list-def-tagsโ Dump a list of available Definition Tags in JSON-format to STDOUT ๐ท๏ธ--list-ceg-classesโ Dump a list of available Projectile classes in JSON-format to STDOUT ๐ฅ--list-config-varsโ Dump all default config vars in JSON-format to STDOUT โ๏ธ-g,--gameGAMEโ instantly start theGAMEwith a minimal setup. Requires--mapto be present, too. Sets the modoptionminimalsetup = 1๐-m,--mapMAPโ Requires--gameto be set, too. see--game๐บ๏ธ
heads up bestie: the synopsis says-m|--minimisebut the options list says-b, --minimiseand-mis--map. I am not touching that, I'm just reporting the lore as it was written ๐
โจ 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 โจ
(yes that's how the section is spelled in the real page, we respect her ๐ซถ)
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--isolationand the--isolation-diroptions. ๐งSPRING_NOCOLORโ Same asspring --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 limits 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: ๐
๐ the priority tea (normal / portable / isolation)
- priority: high โ custom user write
- normal:
-edirectory defined via--write-dir,SPRING_WRITEDIRenvvar - portable:
-edirectory defined via--write-dir,SPRING_WRITEDIRenvvar - isolation:
-edirectory defined via--write-dir,SPRING_WRITEDIRenvvar
- normal:
- priority: (none listed) โ automatic scanned
- normal:
-e CONFIG_HOME,ETC_DIRS,USR_SHARE - portable:
-e INSTALL_DIR,CONFIG_HOME,ETC_DIRS,USR_SHARE - isolation:
ISOLATION_DIR
- normal:
- priority: low โ custom user read
- normal:
-e SPRING_DATADIRenvvar,SpringDataconfigtag - portable:
-e SPRING_DATADIRenvvar,SpringDataconfigtag - isolation:
-e SPRING_DATADIRenvvar,SpringDataconfigtag
- normal:
๐ 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 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 bestie, there's more coming, don't go anywhere ๐
๐ CONFIG FILES ๐
okay so bestie, plot twist: Spring doesn't just read one config file โ it can load a whole lil squad of them and merge them together โจ. So like, super similar to how DATA DIRs work: there's one file where the engine actually writes to, and then a bunch of read-only files it just vibes with. ๐
Here's the directory scan situation โ it goes hunting through these, and priority decides everything:
- exclusive โ the file you define via
--config. When that's defined, ONLY that one gets loaded, no cap. Main character energy, honestly. ๐ - high โ the write DATA DIR ๐พ
- (middle vibes, no fancy label) โ these ones:
-eโ skipped in Isolated mode, just so you know ๐ซถ- *nix/MacOSX:
~/.springrc - Windows:
C:\Users\USER\AppData\Local\springsettings.cfg
- low โ literally all the read DATA DIRs ๐
The one with the highest priority is the one that gets used for writing. So if you're wondering "where did my setting go bestie" โ that's the answer. ๐
And the filenames of these config files can be any of these, again in priority order:
- high โ
springsettings-%Engine_Version%.cfg springsettings.cfgspringrc-%Engine_Version%โ *nix/MacOSX only ๐- low โ
springrcโ *nix/MacOSX only ๐
An example for a versioned config file is springsettings-94.1.cfg. cute right? the version number is literally right there in the name, iconic. โจ
๐ธ SEE ALSO ๐ธ
go read those too bestie, they're the whole friend group ๐ซถ
๐ฆ HOMEPAGE ๐ฆ
More information about Spring can be found at link: https://springrts.com โ yes it's a real link, go click it, it's giving official ๐
๐ 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 may be used by others). ๐ซถ
โญ NOTES โญ
marco.amadori@gmail.commailto:marco.amadori@gmail.com
okay that's the whole thing, bestie!! this page is from the Spring package, version date 11/23/2021, and it's SPRING(6) โ go forth and config responsibly, no cap ๐โจ๐๐ฆ๐ธ๐
๐ซถ๐ญ๐ฅ๐๐โญ๐๐๐๐ง๐
๐ฆ 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