Difference between revisions of "Dedicated Server Guide"
From Unofficial Stationeers Wiki
(Storm/Start commands have changed) |
(misspelt english month of october) |
||
| (25 intermediate revisions by 6 users not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||
| − | == Requirements == | + | == General Requirements == |
| − | * Linux or Windows system, either physical or | + | * Linux or Windows system, either physical or virtualized |
| − | * | + | * It is NOT recommended also running a Stationeers client, so '''hosting the server on your PC while playing at the same time might lead to issues'''. (there will be issues with router NAT-loopback). |
| − | * | + | * 16 or more Gigabytes of RAM. The server will load with less, but will run out of RAM quickly, potentially leading to instability or crashes. |
| − | |||
| − | |||
| − | == | + | == Quickstarts & Panels == |
| − | |||
| − | |||
| − | ''This is a command line tool'' | + | === StationeersServerUI === |
| + | |||
| + | ''Docker + Native Linux & Windows'' | ||
| + | |||
| + | [https://github.com/SteamServerUI/StationeersServerUI StationeersServerUI] offers an intuitive webUI, easy configuration, smart backups, full steamcmd handling with auto-updates, <br> | ||
| + | a discord integration for your community to interact with the server, tons of other helpful features like a remote console '''and works straight out of the box'''. <br> | ||
| + | Created in 2024 with love and attention to detail, updated regularly by [https://github.com/JacksonTheMaster JacksonTheMaster] & the [https://github.com/orgs/SteamServerUI/people StationeersServerUI Team] | ||
| + | |||
| + | === Pterodactyl === | ||
| + | [https://github.com/BadDucky52 BadDucky52] has updated the [https://github.com/HaseoTM/parkervcp-eggs/blob/master/game_eggs/steamcmd_servers/stationeers/stationeers_vanilla/egg-stationeers.json older] pterodactyl egg for the current Dedicated Server:<br> | ||
| + | [https://github.com/BadDucky52/PterodactylGameEggs/blob/main/egg-stationeers.json Current Pterodactyl Egg by BadDucky52] <br> | ||
| + | |||
| + | == DIY Solutions == | ||
| + | |||
| + | === Requirements === | ||
| + | ** '''Linux: Glibc 2.38''' (Ubuntu '''24'''.04 LTS, Debian '''Bookworm''' (12), Debian '''Trixie''' (13)) | ||
| + | ** '''Windows: Microsoft Visual C++ 2015, 2017 and 2019 runtime''' [https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 click here to download it]. | ||
| + | |||
| + | It is, of course, possible to run the server without external images or tools simply by downloading it from SteamCMD and executing it. Everything you ''should'' need is Documented below. | ||
| + | |||
| + | === Getting the server files === | ||
| + | SteamCmd installed on the operating system you are running the server with. See [https://developer.valvesoftware.com/wiki/SteamCMD The SteamCMD Documentation] | ||
| + | ''(This is a command line tool)'' | ||
For the stable branch: | For the stable branch: | ||
| + | ''(The "stable" branch is what you Download by default when you select Stationeers in your Steam Library)'' | ||
<code>steamcmd +login anonymous +app_update 600760 validate +quit</code> | <code>steamcmd +login anonymous +app_update 600760 validate +quit</code> | ||
| − | |||
For the beta branch: | For the beta branch: | ||
| Line 23: | Line 41: | ||
<code>steamcmd +login anonymous +app_update 600760 -beta beta validate +quit</code> | <code>steamcmd +login anonymous +app_update 600760 -beta beta validate +quit</code> | ||
| − | + | ''For getting back from beta to public use -beta public, SteamCMD has trouble with caching sometimes'' | |
| − | == Default ports == | + | === Default ports === |
| − | + | 27016: Game port (UDP). | |
| − | 27016: Game port (UDP). | + | 27015: Steam update port. (UDP). |
| − | 27015: Steam update port (UDP). | + | |
| + | === Server Startup Arguments (Post September 2025)=== | ||
| + | |||
| + | With the release of the [https://store.steampowered.com/news/app/544550/view/533235259603419415 terrain update], the flags the Dedicated Server accepts where changed. <br> | ||
| + | ''If you are running an older version (such as the prerocket or preterrain branch, ask on the Stationeers Discord server in either #modding or #dedicated-server'''' | ||
| − | |||
String parameters can take space with double quotes. | String parameters can take space with double quotes. | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| − | ! | + | ! Flag !! Value !! Description |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | - | + | | <code>-file start</code> |
| + | | <code><stationname> [worldid] [difficulty] [startcondition] [startlocation]</code> | ||
| + | | Tries to load the latest save for the specified station. If not found, starts a new world with the given parameters and saves it.<br> | ||
| + | - <code>stationname</code>: Required. This is the name of your save.<br> | ||
| + | - <code>worldid</code>: Optional, but required to start a new game if no existing station is found.<br> | ||
| + | - <code>difficulty</code>: Optional, defaults to "Normal" if not provided.<br> | ||
| + | - <code>startcondition</code>: Optional, defaults to the default start condition for the world setting if not provided.<br> | ||
| + | - <code>startlocation</code>: Optional, defaults to "DefaultStartLocation" if not provided.<br> | ||
| + | - '''When you add optional arguments, you cannot leave one out.''' <br> For example, <stationname> [worldid] [startlocation] '''would not work''', <br> you would need to add [difficulty] and [startcondition] too. | ||
|- | |- | ||
| − | | - | + | | <code>-logFile</code> |
| − | | "path" | + | | <code>"path"</code> |
| − | | | + | | Specifies a custom log file path if <code>output_log.txt</code> is not used. Example:<br> |
| + | <code>-logFile "server.log"</code> | ||
|- | |- | ||
| − | | - | + | | <code>-settings</code> |
| + | | see below | ||
| + | | Changes the default settings to desired values e.g -settings ServerName "MyNewStationeersServer". '''For a full list and examples, see below.''' | ||
|- | |- | ||
|} | |} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | === World types (October 2025) === | ||
| + | ''Note:'' RoundRobin StartLocations and Community StartConditions are only available on BETA at the moment. | ||
{| class="wikitable" | {| class="wikitable" | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | + | ! World Name !! WorldID !! Difficulty IDs !! StartCondition IDs !! StartLocation IDs | |
| − | |||
| − | |||
|- | |- | ||
| − | | < | + | | Lunar (The Moon) |
| − | | | + | | <code> Lunar </code> |
| − | | | + | | <code>Creative, Easy, Normal, Stationeer</code> |
| + | | <code>DefaultStart, DefaultStartCommunity, Brutal, BrutalCommunity</code> | ||
| + | | <code>LunarSpawnCraterVesper, LunarSpawnMontesUmbrarum, LunarSpawnCraterNox, LunarSpawnMonsArcanus, LunarSpawnRoundRobin</code> | ||
|- | |- | ||
| − | |||
|- | |- | ||
| − | | < | + | | Mars |
| − | | | + | | <code> Mars2 </code> |
| − | | | + | | <code>Creative, Easy, Normal, Stationeer</code> |
| + | | <code>DefaultStart, DefaultStartCommunity, Brutal, BrutalCommunity</code> | ||
| + | | <code>MarsSpawnCanyonOverlook, MarsSpawnButchersFlat, MarsSpawnFindersCanyon, MarsSpawnHellasCrags, MarsSpawnDonutFlats, MarsSpawnRoundRobin</code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | < | + | | Europa |
| − | | | + | | <code> Europa3</code> |
| − | | | + | | <code>Creative, Easy, Normal, Stationeer</code> |
| + | | <code>EuropaDefault, EuropaDefaultCommunity, EuropaBrutal, EuropaBrutalCommunity</code> | ||
| + | | <code>EuropaSpawnIcyBasin, EuropaSpawnGlacialChannel, EuropaSpawnBalgatanPass, EuropaSpawnFrigidHighlands, EuropaSpawnTyreValley, EuropaSpawnRoundRobin</code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | < | + | | Mimas |
| − | | | + | | <code> MimasHerschel</code> |
| − | | | + | | <code>Creative, Easy, Normal, Stationeer</code> |
| + | | <code>MimasDefault, MimasDefaultCommunity, MimasBrutal, MimasBrutalCommunity</code> | ||
| + | | <code>MimasSpawnCentralMesa, MimasSpawnHarrietCrater, MimasSpawnCraterField, MimasSpawnDustBowl, MimasSpawnRoundRobin</code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Vulcan |
| − | + | | <code> Vulcan </code> | |
| − | + | | <code>Creative, Easy, Normal, Stationeer</code> | |
| − | + | | <code>VulcanDefault, VulcanDefaultCommunity, VulcanBrutal, VulcanBrutalCommunity</code> | |
| − | + | | <code>VulcanSpawnVestaValley, VulcanSpawnEtnasFury, VulcanSpawnIxionsDemise, VulcanSpawnTitusReach, VulcanSpawnRoundRobin</code> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | < | + | | Venus |
| − | | | + | | <code> Venus </code> |
| − | | | + | | <code>Creative, Easy, Normal, Stationeer</code> |
| + | | <code>VenusDefault, VenusDefaultCommunity, VulcanBrutal, VulcanBrutalCommunity</code><br>Note: Yes, Venus is using '''Vulcan'''Brutal & '''Vulcan'''BrutalCommunity | ||
| + | | <code>VenusSpawnGaiaValley, VenusSpawnDaisyValley, VenusSpawnFaithValley, VenusSpawnDuskValley, VenusSpawnRoundRobin</code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
|} | |} | ||
| + | When selecting a start location you can pick ''<WorldID>Random'' to have each new player spawn in a randomly selected location on the map. This is designed to be used with the <WorldID>BrutalCommunity StartCondition which spawns each new player with a brutal start crate. | ||
| − | + | Tutorial Maps | |
| − | |||
{| class="wikitable" | {| class="wikitable" | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | + | ! World Name !! WorldID | |
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Inventory Tutorial |
| − | + | | <code> Tutorial1 </code> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Connection Tutorial |
| − | | | + | | <code> Tutorial2 </code> |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Atmospherics Tutorial |
| − | + | | <code> Tutorial3 </code> | |
| − | | | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Airlocks Tutorial |
| + | | <code> Airlock </code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Furnace Tutorial |
| + | | <code> FurnaceBasics </code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | Manufacturing Tutorial |
| + | | <code> Manufacturing </code> | ||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | |} |
| − | + | ||
| − | + | ===== Configuration ===== | |
| − | + | In your server directory, a file called setting.xml will be created once you start it up for the first time. <br> | |
| − | + | While you can ''technically'' edit that, '''this approach is not guaranteed to work (bugged for a while)'''. <br> | |
| − | + | '''It is recommended to use the -setting flag instead.''' | |
| − | + | ||
| − | + | {| class="wikitable" | |
| − | |||
| − | |||
| − | |||
| − | | | ||
| − | |||
|- | |- | ||
| − | + | ! Setting !! Value !! Description | |
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | ServerVisible |
| − | | | + | | true / false |
| − | | | + | | Shows / hides the server in the ingame server list |
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | GamePort |
| − | | | + | | 27016 / any port |
| − | | | + | | The port that players connect to |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | UpdatePort |
| − | | | + | | 27015 / any port |
| − | | | + | | Steam update port. ''Unclear if this is actually used by the game at the moment.'' |
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | UPNPEnabled |
| − | | | + | | true / false |
| − | | | + | | Enable or disable UniversalPlugAndPlay (Auto port forwarding, your router must support) |
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | ServerName |
| − | | | + | | "My Game Server" / your desired server name |
| − | | | + | | Description |
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | ServerPassword |
| − | | | + | | "MySuperSecurePassword" / your desired server password |
| − | | | + | | Description |
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | ServerAuthSecret |
| − | | | + | | "MySuperSecureSecret" / your desired admin secret |
| − | | | + | | Description |
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | ServerMaxPlayers |
| − | | | + | | 1-20 |
| − | | | + | | The number of available player slots. Shouln't exceed 20. |
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | AutoSave |
| − | | | + | | true / false |
| − | | | + | | Enable or disable autosaves |
|- | |- | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | SaveInterval |
| − | | | + | | 300 |
| − | + | | Time in seconds between each autosave. Shouldn't be below 60 sec. | |
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | AutoPauseServer |
| − | | | + | | true / false |
| − | | | + | | Weather the server should auto pause or not if no players are connected |
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | UseSteamP2P |
| − | | | + | | true / false |
| − | | | + | | Weather the server should allow SteamP2P connections. Keep this disabled. |
|- | |- | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | | + | | StartLocalHost |
| − | | | + | | true / false |
| − | + | | Do not change this, this is required to be able to connect. | |
|- | |- | ||
| − | + | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| − | == | + | === Command Examples === |
| − | ''' | + | |
| − | + | ==== '''Linux''' ==== | |
| + | Note: Logging to console on Linux is slightly broken - we recommend to log to a log file instead and <code> tail -f </code> that | ||
| + | |||
| + | Explanation: ''Server starts a new Map on <code> Lunar </code> saved to <code> saves/MyLunarMap </code> , advertises itself with 6 player slots in the server list as <code> MyLunarServer </code> on port </code> 27016 </code> with password <code> MySuperSecurePassword </code> and saves every 5 minutes.<br>'' | ||
| + | |||
| + | <code>./rocketstation_DedicatedServer.x86_64 -file start MyLunarMap Lunar -logFile "./server.log" -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log</code> | ||
| + | |||
| + | Explanation: ''Server starts a new Map on <code> Lunar </code> with Difficulty <code>Easy</code>, Startcondition <code>DefaultStart</code> and StartLocation <code>LunarSpawnCraterVesper</code>, saved to <code> saves/MyLunarMap </code> , advertises itself with 6 player slots in the server list as <code> MyLunarServer </code> on port </code> 27016 </code> with password <code> MySuperSecurePassword </code> and saves every 5 minutes.<br>'' | ||
| + | |||
| + | <code>./rocketstation_DedicatedServer.x86_64 -file start MyLunarMap Lunar Easy DefaultStart LunarSpawnCraterVesper -logFile "./server.log" -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log</code> | ||
| + | |||
| + | Explanation: ''Server starts a new Map on <code> Mars2 </code> saved to <code> saves/MyLunarMap </code> , advertises itself in the server with 6 player slots in the server list as <code> MyLunarServer </code> on port </code> 27016 </code> '''without''' password and saves every 5 minutes.<br>'' | ||
| + | |||
| + | <code>./rocketstation_DedicatedServer.x86_64 -file start MyMarsMap Mars2 -logFile "./server.log" -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log</code> | ||
| + | |||
| + | Explanation: ''Server starts a new Map on <code> Lunar </code> saved to <code> saves/MyLunarMap </code>, '''does not advertise itself in the server list''' but is available for 6 players to direct connection via <code> <serverIP>:27016 </code> </code> with password <code> MySuperSecurePassword </code> and saves every 5 minutes.<br>'' | ||
| + | |||
| + | <code>./rocketstation_DedicatedServer.x86_64 -file start MyLunarMap Lunar -logFile "./server.log" -settings StartLocalHost true ServerVisible false GamePort 27016 UPNPEnabled false ServerName "MyHiddenLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log</code> | ||
| + | |||
| + | ===== Additional info about the Linux commands ===== | ||
| + | * LocalIpAddress 0.0.0.0 is required to allow the server to bind to all network interfaces on your Linux Server. On some distros, you might wanna specify the actual interface IP instead. | ||
| + | * The server starts with the specified values, but technically in the background (& sign at the end of the command). You can foreground it again by using <code fg </fg> | ||
| + | * tail -f debug.log runs in the foreground, showing the log output in your current attached terminal. | ||
| + | * When you now Ctrl+C, '''the server will not stop''' - instead it will remain in the '''background as long as your session is open''' If you, for example, disconnect your SSH connection the server will stop because an ending SSH connection typically sends a SIGHUP (hangup signal) to all processes in the session, including background processes,. You might wanna look into using [https://youtu.be/UxbiDtEXuxg?si=_j3MumpVcCCk4xGQ tmux]. | ||
| + | |||
| + | ==== '''Windows''' ==== | ||
| + | |||
| + | Explanation: ''Server starts a new Map on <code> Lunar </code> saved to <code> saves/MyLunarMap </code> , advertises itself with 6 player slots in the server list as <code> MyLunarServer </code> on port <code> 27016 </code> with password <code> MySuperSecurePassword </code> and saves every 5 minutes.<br>'' | ||
| + | |||
| + | <code>.\rocketstation_DedicatedServer.exe -file start MyLunarMap Lunar -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false</code> | ||
| + | |||
| + | Explanation: ''Server starts a new Map on <code> Lunar </code> with Difficulty <code>Easy</code>, Startcondition <code> DefaultStart </code> and StartLocation <code> LunarSpawnCraterVesper </code>, saved to <code> saves/MyLunarMap </code> , advertises itself with 6 player slots in the server list as <code> MyLunarServer </code> on port <code> 27016 </code> with password <code> MySuperSecurePassword </code> and saves every 5 minutes.<br>'' | ||
| − | + | <code>.\rocketstation_DedicatedServer.exe -file start MyLunarMap Lunar Easy DefaultStart LunarSpawnCraterVesper -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false</code> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | Explanation: ''Server starts a new Map on <code> Lunar </code> saved to <code> saves/MyLunarMap </code>, does NOT advertise itself in the server list but is available for 6 players to direct connect via <code> <serverIP>:27016 </code> </code> with password <code> MySuperSecurePassword </code> and saves every 5 minutes.<br>'' | |
| − | |||
| − | |||
| − | + | <code>.\rocketstation_DedicatedServer.exe -file start MyLunarMap Lunar -settings StartLocalHost true ServerVisible false GamePort 27016 UPNPEnabled false ServerName "MyHiddenLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false</code> | |
| − | |||
| − | + | ===== Additional info about the commands ===== | |
| − | + | The server will stay running until you close the terminal. When you close (don't logoff) a RDP session, the server does not stop. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | == | + | == Administrator: run a command on the server == |
| − | + | The same <code> ServerAuthSecret </code> parameter must be added to the -setting flag (see above) and inside the clients setting.xml ''("client"=your local PC, '''not''' the server)'' | |
| − | |||
| − | |||
| − | + | All commands are typed in the client console (F3) and prefixed by a <code> serverrun </code> like so: | |
| − | + | ||
| + | <code> serverrun say Hello World </code> | ||
| + | |||
| + | === Server Terminal Console=== | ||
| + | When running the server from windows, you can type commands in the terminal application which acts like a console | ||
| + | |||
| + | === Command Lists === | ||
| + | {| class="wikitable" | ||
| + | !Command | ||
| + | !Details | ||
| + | !Parameter | ||
| + | |- | ||
| + | | HELP | ||
| + | | Displays the list of commands. | ||
| + | | Arguments: | ||
| + | * commands | ||
| + | * list (l) | ||
| + | * <key> | ||
| + | * tofile: prints the help output to file | ||
| + | |} | ||
| + | |||
| + | == Modding on Servers == | ||
| + | ''removed very outdated information here - please ask on the Stationeers Discord server in either #modding or #dedicated-server'' | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
There are some examples of how to make your own mods in: | There are some examples of how to make your own mods in: | ||
| Line 564: | Line 318: | ||
| − | + | [https://github.com/rocket2guns/StationeersDedicatedServerGuide/blob/main/README.md%20Official%20Server%20Guide VERY Outdated official guide] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Latest revision as of 10:23, 11 November 2025
Contents
General Requirements[edit]
- Linux or Windows system, either physical or virtualized
- It is NOT recommended also running a Stationeers client, so hosting the server on your PC while playing at the same time might lead to issues. (there will be issues with router NAT-loopback).
- 16 or more Gigabytes of RAM. The server will load with less, but will run out of RAM quickly, potentially leading to instability or crashes.
Quickstarts & Panels[edit]
StationeersServerUI[edit]
Docker + Native Linux & Windows
StationeersServerUI offers an intuitive webUI, easy configuration, smart backups, full steamcmd handling with auto-updates,
a discord integration for your community to interact with the server, tons of other helpful features like a remote console and works straight out of the box.
Created in 2024 with love and attention to detail, updated regularly by JacksonTheMaster & the StationeersServerUI Team
Pterodactyl[edit]
BadDucky52 has updated the older pterodactyl egg for the current Dedicated Server:
Current Pterodactyl Egg by BadDucky52
DIY Solutions[edit]
Requirements[edit]
- Linux: Glibc 2.38 (Ubuntu 24.04 LTS, Debian Bookworm (12), Debian Trixie (13))
- Windows: Microsoft Visual C++ 2015, 2017 and 2019 runtime click here to download it.
It is, of course, possible to run the server without external images or tools simply by downloading it from SteamCMD and executing it. Everything you should need is Documented below.
Getting the server files[edit]
SteamCmd installed on the operating system you are running the server with. See The SteamCMD Documentation (This is a command line tool)
For the stable branch: (The "stable" branch is what you Download by default when you select Stationeers in your Steam Library)
steamcmd +login anonymous +app_update 600760 validate +quit
For the beta branch:
steamcmd +login anonymous +app_update 600760 -beta beta validate +quit
For getting back from beta to public use -beta public, SteamCMD has trouble with caching sometimes
Default ports[edit]
27016: Game port (UDP). 27015: Steam update port. (UDP).
Server Startup Arguments (Post September 2025)[edit]
With the release of the terrain update, the flags the Dedicated Server accepts where changed.
If you are running an older version (such as the prerocket or preterrain branch, ask on the Stationeers Discord server in either #modding or #dedicated-server''
String parameters can take space with double quotes.
| Flag | Value | Description |
|---|---|---|
-file start
|
<stationname> [worldid] [difficulty] [startcondition] [startlocation]
|
Tries to load the latest save for the specified station. If not found, starts a new world with the given parameters and saves it. - |
-logFile
|
"path"
|
Specifies a custom log file path if output_log.txt is not used. Example:
|
-settings
|
see below | Changes the default settings to desired values e.g -settings ServerName "MyNewStationeersServer". For a full list and examples, see below. |
World types (October 2025)[edit]
Note: RoundRobin StartLocations and Community StartConditions are only available on BETA at the moment.
| World Name | WorldID | Difficulty IDs | StartCondition IDs | StartLocation IDs |
|---|---|---|---|---|
| Lunar (The Moon) | Lunar
|
Creative, Easy, Normal, Stationeer
|
DefaultStart, DefaultStartCommunity, Brutal, BrutalCommunity
|
LunarSpawnCraterVesper, LunarSpawnMontesUmbrarum, LunarSpawnCraterNox, LunarSpawnMonsArcanus, LunarSpawnRoundRobin
|
| Mars | Mars2
|
Creative, Easy, Normal, Stationeer
|
DefaultStart, DefaultStartCommunity, Brutal, BrutalCommunity
|
MarsSpawnCanyonOverlook, MarsSpawnButchersFlat, MarsSpawnFindersCanyon, MarsSpawnHellasCrags, MarsSpawnDonutFlats, MarsSpawnRoundRobin
|
| Europa | Europa3
|
Creative, Easy, Normal, Stationeer
|
EuropaDefault, EuropaDefaultCommunity, EuropaBrutal, EuropaBrutalCommunity
|
EuropaSpawnIcyBasin, EuropaSpawnGlacialChannel, EuropaSpawnBalgatanPass, EuropaSpawnFrigidHighlands, EuropaSpawnTyreValley, EuropaSpawnRoundRobin
|
| Mimas | MimasHerschel
|
Creative, Easy, Normal, Stationeer
|
MimasDefault, MimasDefaultCommunity, MimasBrutal, MimasBrutalCommunity
|
MimasSpawnCentralMesa, MimasSpawnHarrietCrater, MimasSpawnCraterField, MimasSpawnDustBowl, MimasSpawnRoundRobin
|
| Vulcan | Vulcan
|
Creative, Easy, Normal, Stationeer
|
VulcanDefault, VulcanDefaultCommunity, VulcanBrutal, VulcanBrutalCommunity
|
VulcanSpawnVestaValley, VulcanSpawnEtnasFury, VulcanSpawnIxionsDemise, VulcanSpawnTitusReach, VulcanSpawnRoundRobin
|
| Venus | Venus
|
Creative, Easy, Normal, Stationeer
|
VenusDefault, VenusDefaultCommunity, VulcanBrutal, VulcanBrutalCommunityNote: Yes, Venus is using VulcanBrutal & VulcanBrutalCommunity |
VenusSpawnGaiaValley, VenusSpawnDaisyValley, VenusSpawnFaithValley, VenusSpawnDuskValley, VenusSpawnRoundRobin
|
When selecting a start location you can pick <WorldID>Random to have each new player spawn in a randomly selected location on the map. This is designed to be used with the <WorldID>BrutalCommunity StartCondition which spawns each new player with a brutal start crate.
Tutorial Maps
| World Name | WorldID |
|---|---|
| Inventory Tutorial | Tutorial1
|
| Connection Tutorial | Tutorial2
|
| Atmospherics Tutorial | Tutorial3
|
| Airlocks Tutorial | Airlock
|
| Furnace Tutorial | FurnaceBasics
|
| Manufacturing Tutorial | Manufacturing
|
Configuration[edit]
In your server directory, a file called setting.xml will be created once you start it up for the first time.
While you can technically edit that, this approach is not guaranteed to work (bugged for a while).
It is recommended to use the -setting flag instead.
| Setting | Value | Description |
|---|---|---|
| ServerVisible | true / false | Shows / hides the server in the ingame server list |
| GamePort | 27016 / any port | The port that players connect to |
| UpdatePort | 27015 / any port | Steam update port. Unclear if this is actually used by the game at the moment. |
| UPNPEnabled | true / false | Enable or disable UniversalPlugAndPlay (Auto port forwarding, your router must support) |
| ServerName | "My Game Server" / your desired server name | Description |
| ServerPassword | "MySuperSecurePassword" / your desired server password | Description |
| ServerAuthSecret | "MySuperSecureSecret" / your desired admin secret | Description |
| ServerMaxPlayers | 1-20 | The number of available player slots. Shouln't exceed 20. |
| AutoSave | true / false | Enable or disable autosaves |
| SaveInterval | 300 | Time in seconds between each autosave. Shouldn't be below 60 sec. |
| AutoPauseServer | true / false | Weather the server should auto pause or not if no players are connected |
| UseSteamP2P | true / false | Weather the server should allow SteamP2P connections. Keep this disabled. |
| StartLocalHost | true / false | Do not change this, this is required to be able to connect. |
Command Examples[edit]
Linux[edit]
Note: Logging to console on Linux is slightly broken - we recommend to log to a log file instead and tail -f that
Explanation: Server starts a new Map on Lunar saved to saves/MyLunarMap , advertises itself with 6 player slots in the server list as MyLunarServer on port </code> 27016 </code> with password MySuperSecurePassword and saves every 5 minutes.
./rocketstation_DedicatedServer.x86_64 -file start MyLunarMap Lunar -logFile "./server.log" -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log
Explanation: Server starts a new Map on Lunar with Difficulty Easy, Startcondition DefaultStart and StartLocation LunarSpawnCraterVesper, saved to saves/MyLunarMap , advertises itself with 6 player slots in the server list as MyLunarServer on port </code> 27016 </code> with password MySuperSecurePassword and saves every 5 minutes.
./rocketstation_DedicatedServer.x86_64 -file start MyLunarMap Lunar Easy DefaultStart LunarSpawnCraterVesper -logFile "./server.log" -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log
Explanation: Server starts a new Map on Mars2 saved to saves/MyLunarMap , advertises itself in the server with 6 player slots in the server list as MyLunarServer on port </code> 27016 </code> without password and saves every 5 minutes.
./rocketstation_DedicatedServer.x86_64 -file start MyMarsMap Mars2 -logFile "./server.log" -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log
Explanation: Server starts a new Map on Lunar saved to saves/MyLunarMap , does not advertise itself in the server list but is available for 6 players to direct connection via <serverIP>:27016 </code> with password MySuperSecurePassword and saves every 5 minutes.
./rocketstation_DedicatedServer.x86_64 -file start MyLunarMap Lunar -logFile "./server.log" -settings StartLocalHost true ServerVisible false GamePort 27016 UPNPEnabled false ServerName "MyHiddenLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false LocalIpAddress 0.0.0.0 & tail -f server.log
Additional info about the Linux commands[edit]
- LocalIpAddress 0.0.0.0 is required to allow the server to bind to all network interfaces on your Linux Server. On some distros, you might wanna specify the actual interface IP instead.
- The server starts with the specified values, but technically in the background (& sign at the end of the command). You can foreground it again by using <code fg </fg>
- tail -f debug.log runs in the foreground, showing the log output in your current attached terminal.
- When you now Ctrl+C, the server will not stop - instead it will remain in the background as long as your session is open If you, for example, disconnect your SSH connection the server will stop because an ending SSH connection typically sends a SIGHUP (hangup signal) to all processes in the session, including background processes,. You might wanna look into using tmux.
Windows[edit]
Explanation: Server starts a new Map on Lunar saved to saves/MyLunarMap , advertises itself with 6 player slots in the server list as MyLunarServer on port 27016 with password MySuperSecurePassword and saves every 5 minutes.
.\rocketstation_DedicatedServer.exe -file start MyLunarMap Lunar -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false
Explanation: Server starts a new Map on Lunar with Difficulty Easy, Startcondition DefaultStart and StartLocation LunarSpawnCraterVesper , saved to saves/MyLunarMap , advertises itself with 6 player slots in the server list as MyLunarServer on port 27016 with password MySuperSecurePassword and saves every 5 minutes.
.\rocketstation_DedicatedServer.exe -file start MyLunarMap Lunar Easy DefaultStart LunarSpawnCraterVesper -settings StartLocalHost true ServerVisible true GamePort 27016 UPNPEnabled false ServerName "MyLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false
Explanation: Server starts a new Map on Lunar saved to saves/MyLunarMap , does NOT advertise itself in the server list but is available for 6 players to direct connect via <serverIP>:27016 </code> with password MySuperSecurePassword and saves every 5 minutes.
.\rocketstation_DedicatedServer.exe -file start MyLunarMap Lunar -settings StartLocalHost true ServerVisible false GamePort 27016 UPNPEnabled false ServerName "MyHiddenLunarServer" ServerPassword "MySuperSecurePassword" ServerMaxPlayers 6 AutoSave true SaveInterval 300 ServerAuthSecret "MySuperSecureSecret" UpdatePort 27015 AutoPauseServer true UseSteamP2P false
Additional info about the commands[edit]
The server will stay running until you close the terminal. When you close (don't logoff) a RDP session, the server does not stop.
Administrator: run a command on the server[edit]
The same ServerAuthSecret parameter must be added to the -setting flag (see above) and inside the clients setting.xml ("client"=your local PC, not the server)
All commands are typed in the client console (F3) and prefixed by a serverrun like so:
serverrun say Hello World
Server Terminal Console[edit]
When running the server from windows, you can type commands in the terminal application which acts like a console
Command Lists[edit]
| Command | Details | Parameter |
|---|---|---|
| HELP | Displays the list of commands. | Arguments:
|
Modding on Servers[edit]
removed very outdated information here - please ask on the Stationeers Discord server in either #modding or #dedicated-server
There are some examples of how to make your own mods in:
\Steam\steamapps\common\Stationeers\rocketstation_Data\StreamingAssets\
Look for ExampleMod.zip and AttributesExampleMod.zip .
