Actions

Difference between revisions of "Dedicated Server Guide"

From Unofficial Stationeers Wiki

(Update the world IDs to match what is actually in the game.)
Line 1: Line 1:
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]
 +
 +
== General Requirements ==
 +
* 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 ==
 +
 +
=== Docker image by 1Solon ===
 +
[https://github.com/1Solon Solon1] has made a simple to use, up-to-date Docker image for the current Dedicated Server:<br>
 +
[https://github.com/1Solon/stationeers-dedicated-server-docker Current Docker Image by 1Solon] <br>
 +
 +
=== 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 ===
 +
''As of writing this page, there are no updated Pterodactyl Panel ''chicken parts'' available that function without major editing. Good luck!''
 +
 +
== DIY Solutions ==
  
 
== Requirements ==
 
== Requirements ==
* Linux or Windows system, either physical or virtualised,
+
** '''Linux: Glibc 2.38''' (Ubuntu '''24'''.04 LTS, Debian '''Bookworm''' (12), Debian '''Trixie''' (13))
** NOT recommended also running a Stationeers client (there will be issues with router NAT-loopback).
+
** '''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].
** Linux Glibcxx 3.4.29 & Glibc 2.34 (Ubuntu 22.04 LTS)
 
** if running on Windows you must have the Microsoft Visual C++ 2015, 2017 and 2019 runtime installed, [https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 click here to download it].
 
* ~16GB RAM (Tested and confirmed on Linux). 8GB or less and the server won't load.  
 
  
== Getting the server files ==
+
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.
SteamCmd on Windows and Linux<br>
 
https://developer.valvesoftware.com/wiki/SteamCMD
 
  
''This is a command line tool''
+
=== 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 44:
 
<code>steamcmd +login anonymous +app_update 600760 -beta beta validate +quit</code>
 
<code>steamcmd +login anonymous +app_update 600760 -beta beta validate +quit</code>
  
<i>For getting back from beta to public use -beta public ,steamcmd has trouble with caching</i>
+
''For getting back from beta to public use -beta public, SteamCMD has trouble with caching sometimes''
 +
 
 +
=== Default ports ===
 +
27016: Game port (UDP).
 +
27015: Steam update port. (UDP).
 +
 
 +
=== Server Startup Arguments (Post September 2025)===
  
== Default ports ==
+
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>
8081: Meta Server port (TCP).<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''''
27016: Game port (UDP).<br>
 
27015: Steam update port (UDP).
 
  
== Server Startup Arguments ==
 
 
String parameters can take space with double quotes.
 
String parameters can take space with double quotes.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Parameter !! Value !! Description
+
! Flag !! Value !! Description
 
|-
 
|-
 
| <code>-file start</code>
 
| <code>-file start</code>
 
| <code><stationname> [worldid] [difficulty] [startcondition] [startlocation]</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>
 
| 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.<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>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>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>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.
+
- <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>-NEW</code>
 
| Worldtype (string)
 
| Starts a new game with the specified world type automatically from launch. Must provide a valid world type as an argument.
 
|-
 
| <code>-NEWGAME</code>
 
| Worldtype (string)
 
| Same as <code>-NEW</code>. Starts a new game with the specified world type.
 
|-
 
| <code>-LOAD</code>
 
| Savefolder (string)
 
| Loads a saved world file. A second argument can be provided with world type (see below); if loading fails, it will create a new world instead.
 
|-
 
| <code>-LOADGAME</code>
 
| Savefolder (string)
 
| Same as <code>-LOAD</code>. Loads a saved world file or creates a new world if loading fails.
 
 
|-
 
|-
| <code>-LOADLATEST</code>
+
| <code>-logFile</code>
| Savefolder (string)
 
| Loads the latest save or backup from the specified save folder (based on <code>world.xml</code> datestamp). A second argument can specify a world type to fall back to if loading fails.
 
|-
 
| <code>-JOIN</code>
 
| <code>[address]:[port]</code>
 
| Joins a client to the server at the specified address and port.
 
|-
 
| <code>-JOINGAME</code>
 
| <code>[address]:[port]</code>
 
| Same as <code>-JOIN</code>. Joins a client to the server.
 
|-
 
| <code>-SETTINGSPATH</code>
 
| <code>"path"</code>
 
| Specifies the absolute base directory for a custom profile. Example:<br>
 
<code>-SETTINGSPATH C:\Profile\Player1</code><br>
 
- Config Path: <code>C:\Profile\Player1\default.ini</code><br>
 
- Save Path: <code>C:\Profile\Player1\saves\[worldname]</code>
 
|-
 
| <code>-logfile</code>
 
 
| <code>"path"</code>
 
| <code>"path"</code>
 
| Specifies a custom log file path if <code>output_log.txt</code> is not used. Example:<br>
 
| Specifies a custom log file path if <code>output_log.txt</code> is not used. Example:<br>
<code>-logfile C:\Logs\server.log</code>
+
<code>-logFile "server.log"</code>
|}
 
 
 
World types (September 2025)
 
 
 
{| class="wikitable"
 
 
|-
 
|-
| Main world IDs
+
| <code>-settings</code>
| rowspan=1 | <br>
+
| see below
<code>Europa3, Lunar, Mars2, MimasHerschel, Venus, Vulcan</code>
+
| Changes the default settings to desired values e.g -settings ServerName "MyNewStationeersServer". '''For a full list and examples, see below.'''
|}
 
{| class="wikitable"
 
| Tutorial world IDs
 
| rowspan=1 | <br>
 
<code>Tutorial1, Tutorial2, Tutorial3, Airlock, FurnaceBasics, Manufacturing</code>
 
|}
 
{| class="wikitable"
 
 
|-
 
|-
| Difficulty IDs
 
| rowspan=1 | <br>
 
<code>Easy, Normal, Stationeer</code>
 
 
|}
 
|}
{| class="wikitable"
 
|-
 
| Startcondition IDs
 
| rowspan=1 | <br>
 
Europa3: <code>EuropaDefault, EuropaBrutal</code><br>
 
Lunar: <code>DefaultStart, Brutal</code><br>
 
Mars2: <code>DefaultStart, Brutal</code><br>
 
MimasHerschel: <code>MimasDefault, MimasBrutal</code><br>
 
Venus: <code>VenusDefault, VulcanBrutal</code><br>
 
Venus: <code>VulcanDefault, VulcanBrutal</code><br>
 
|}
 
{| class="wikitable"
 
|-
 
| Startlocation IDs
 
| rowspan=1 | <br>
 
Europa3: <code>EuropaSpawnIcyBasin, EuropaSpawnGlacialChannel, EuropaSpawnBalgatanPass, EuropaSpawnFrigidHighlands, EuropaSpawnTyreValley</code><br>
 
Lunar: <code>LunarSpawnCraterVesper, LunarSpawnMontesUmbrarum, LunarSpawnCraterNox, LunarSpawnMonsArcanus</code><br>
 
Mars2: <code>MarsSpawnCanyonOverlook, MarsSpawnButchersFlat, MarsSpawnFindersCanyon, MarsSpawnHellasCrags, MarsSpawnDonutFlats</code><br>
 
MimasHerschel: <code>MimasSpawnCentralMesa, MimasSpawnHarrietCrater, MimasSpawnCraterField, MimasSpawnDustBowl</code><br>
 
Venus: <code>VenusSpawnGaiaValley, VenusSpawnDaisyValley, VenusSpawnFaithValley, VenusSpawnDuskValley</code><br>
 
Venus: <code>VulcanSpawnVestaValley, VulcanSpawnEtnasFury, VulcanSpawnIxionsDemise, VulcanSpawnTitusReach</code><br>
 
|}
 
 
batchmode, nographics and logfile are Unity3D commands.
 
 
https://docs.unity3d.com/Manual/CommandLineArguments.html
 
 
[[https://github.com/rocket2guns/StationeersDedicatedServerGuide/blob/main/README.md Official Server Guide]]
 
 
=== Logging ===
 
 
* Linux <code>rocketstation_DedicatedServer.x86_64 2>&1 | tee filename.txt</code>
 
** extra options would be --a or --append in front of the filename to keep appending to the logfile
 
* Windows (powershell) <code>rocketstation_DedicatedServer.exe &> | tee -file filename.txt</code>
 
** extra options would be -Append at the end to keep appending to the logfile
 
** Command Prompt <code>powershell rocketstation_DedicatedServer.exe ^| tee -File filename.txt</code>
 
 
== Quickstart ==
 
https://github.com/mandusm/stationeers-dedicated-server/tree/main
 
 
== Examples ==
 
 
<span style="font-size: 120%;"> Dedicated server starts new Mars world. Autosave every 5 mins to Mars1. </span><br>
 
<code>rocketstation_DedicatedServer.exe -LOAD Mars1 Mars -SETTINGSPATH "C:\Server\User1" -settings StartLocalHost true ServerVisible true GamePort 27016 UpdatePort 27015 AutoSave true SaveInterval 300</code>
 
 
 
<span style="font-size: 120%;"> Load Mothership file. Autosave every 5 mins. </span><br>
 
<code>rocketstation_DedicatedServer.exe -LOAD Mothership -settings StartLocalHost true ServerVisible true GamePort 27016 UpdatePort 27015 AutoSave true SaveInterval 300</code>
 
 
 
<span style="font-size: 120%;"> Load Mothership file. Autosave  every 5 mins. C:\Profile\Player1\saves\Mothership </span><br>
 
<code>rocketstation_DedicatedServer.exe -LOAD Mothership -SETTINGSPATH "C:\Profile\Player1" -settings StartLocalHost true ServerVisible true GamePort 27016 UpdatePort 27015 AutoSave true SaveInterval 300</code>
 
 
 
<span style="font-size: 120%;"> Example <code>-logfile</code> syntax </span><br>
 
<code>-logFile "C:\Server_Path\rocketstation_DedicatedServer_Data\output_log.txt"</code>
 
 
 
<span style="font-size: 120%;"> Example <code>-LOAD "myworld"</code> directory structure. </span><br>
 
'''Note:''' ''BaseDirectory'' is by default in SteamApps/common/Stationeers Dedicated Server/''<Contents of BaseDirectory>'' if installed with SteamCMD<br>
 
 
 
<big>'''Linux:'''</big><br>
 
<code>-LOAD "myworld"</code> will look for a folder named "myworld" in the ''saves'' directory like this:<br>
 
''BaseDirectory''/saves/myworld/<br>
 
 
 
<big>'''Windows:'''</big><br>
 
<code>-LOAD "myworld"</code> will look for a folder named "myworld" in the ''saves'' directory like this:<br>
 
''BaseDirectory''\saves\myworld\
 
 
 
<big>'''Details:'''</big><br>
 
In the world directory named "myworld", these files must be present:
 
* world.bin
 
* world.xml
 
* world_meta.xml
 
'''Note:''' The names of these files ''do not'' correspond to your custom world name. These will always be called world.bin etc..<br>
 
The server will automatically generate these upon first start. If you are importing another world, make sure these are in place in the correct directory for the server to load them.<br>
 
There is also one more file that will be created:
 
* worldsettings.xml
 
 
===== Configuration from setting.xml =====
 
setting.xml will be created once you start it up for the first time. <u>Command parameters reset setting.xml to default</u>
 
<hr>''The server is mostly a stripped down client as such it inherits certain features''
 
<hr>
 
Example Setting.xml
 
<pre>
 
  <?xml version="1.0" encoding="utf-8"?>
 
  <SettingData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
 
  <AutoSave>true</AutoSave>
 
  <SaveInterval>300</SaveInterval>
 
  <SavePath />
 
 
  <StartingConditions>Default</StartingConditions>
 
  <RespawnCondition>Easy</RespawnCondition>
 
  <HungerRate>0.5</HungerRate>
 
  <SunOrbitPeriod>1</SunOrbitPeriod>
 
 
  <ResearchPoolKey>ResearchOff</ResearchPoolKey>
 
 
  <RoomControlTickSpeed>1</RoomControlTickSpeed>
 
  <WorldOrigin>false</WorldOrigin>
 
 
<ServerName>Stationeers</ServerName>
 
  <StartLocalHost>true</StartLocalHost>
 
  <ServerVisible>true</ServerVisible>
 
  <ServerPassword />
 
  <AdminPassword>randomstringhere</AdminPassword>
 
  <ServerMaxPlayers>10</ServerMaxPlayers>
 
  <UpdatePort>27015</UpdatePort>
 
  <GamePort>27016</GamePort>
 
  <UPNPEnabled>true</UPNPEnabled>
 
  <DisconnectTimeout>10000</DisconnectTimeout>
 
  <NetworkDebugFrequency>500</NetworkDebugFrequency>
 
</pre><hr>
 
  
 +
=== World types (September 2025) ===
  
 
{| class="wikitable"
 
{| class="wikitable"
! XML Attribute
 
! Parameter<br>''Case Sensitive''
 
! Details
 
 
|-
 
|-
| <RespawnCondition>
+
! World Name !! WorldID !! Difficulty IDs !! StartCondition IDs !! StartLocation IDs
| Easy, Normal, Stationeer
 
| Or a custom key from a mod.<br>''Seems to be used as spawn conditions instead for new players''
 
 
|-
 
|-
| <StartingConditions>
+
| Lunar (The Moon)
| Default, Minimal, Vulcan, Venus, BareBones
+
| <code> Lunar </code>
| Or a custom key from a mod.<br>''Server ignores this, define custom worldtype''
+
| <code>Creative, Easy, Normal, Stationeer</code>
 +
| <code>DefaultStart, Brutal</code>
 +
| <code>LunarSpawnCraterVesper, LunarSpawnMontesUmbrarum, LunarSpawnCraterNox, LunarSpawnMonsArcanus</code>
 
|-
 
|-
| <ResearchPoolKey>
 
| ResearchOff, ResearchOn
 
| Or a custom key from a mod.<br>''Server ignores this''
 
 
|-
 
|-
| <SunOrbitPeriod>
+
| Mars
| default=1
+
| <code> Mars2 </code>
| Multiplier on the time it takes for the sun to orbit, default is 20 minutes, 10 minute day 10 night.
+
| <code>Creative, Easy, Normal, Stationeer</code>
 +
| <code>DefaultStart, Brutal</code>
 +
| <code>MarsSpawnCanyonOverlook, MarsSpawnButchersFlat, MarsSpawnFindersCanyon, MarsSpawnHellasCrags, MarsSpawnDonutFlats</code>
 
|-
 
|-
! colspan=3 | Undocumented
 
 
|-
 
|-
| <UseCustomWorkThreadsCount>false</UseCustomWorkThreadsCount>
+
| Europa
| true, false
+
| <code> Europa3</code>
|
+
| <code>Creative, Easy, Normal, Stationeer</code>
 +
| <code>EuropaDefault, EuropaBrutal</code>
 +
| <code>EuropaSpawnIcyBasin, EuropaSpawnGlacialChannel, EuropaSpawnBalgatanPass, EuropaSpawnFrigidHighlands, EuropaSpawnTyreValley</code>
 +
|-
 
|-
 
|-
| <MinWorkerThreads>
+
| Mimas
| number
+
| <code> MimasHerschel</code>
| default=8
+
| <code>Creative, Easy, Normal, Stationeer</code>
 +
| <code>MimasDefault, MimasBrutal</code>
 +
| <code>MimasSpawnCentralMesa, MimasSpawnHarrietCrater, MimasSpawnCraterField, MimasSpawnDustBowl</code>
 
|-
 
|-
| <MinCompletionPortThreads>
 
| number
 
| default=8
 
 
|-
 
|-
| <MaxWorkerThreads>100</MaxWorkerThreads>
+
| Vulcan
| number
+
| <code> Vulcan </code>
| default=100
+
| <code>Creative, Easy, Normal, Stationeer</code>
 +
| <code>VulcanDefault, VulcanBrutal</code>
 +
| <code>VulcanSpawnVestaValley, VulcanSpawnEtnasFury, VulcanSpawnIxionsDemise, VulcanSpawnTitusReach</code>
 
|-
 
|-
| <MaxCompletionPortThreads>50</MaxCompletionPortThreads>
 
| number
 
| default=50
 
 
|-
 
|-
| <CoroutineTimeBudget>1</CoroutineTimeBudget>
+
| Venus
| number
+
| <code> Venus </code>
| default=1
+
| <code>Creative, Easy, Normal, Stationeer</code>
 +
| <code>VenusDefault, VulcanBrutal</code><br>Note: Yes, Venus is using '''Vulcan'''Brutal
 +
| <code>VenusSpawnGaiaValley, VenusSpawnDaisyValley, VenusSpawnFaithValley, VenusSpawnDuskValley</code>
 
|-
 
|-
|}
 
 
== Savegames ==
 
=== Configuration from worldsettings.xml ===
 
'''Undocumented feature'''
 
 
''The server is mostly a stripped down client as such it inherits certain features''
 
 
{| class="wikitable"
 
! XML Attribute
 
! Parameter
 
! Details
 
 
|-
 
|-
| <GameMode>
+
| Inventory Tutorial
| Creative, Survival
+
| <code> Tutorial1 </code>
 +
|  
 +
|
 
|  
 
|  
 
|-
 
|-
| <HungerRate>
+
| Connection Tutorial
| default=0.25
+
| <code> Tutorial2 </code>
| Multiplier on the amount of hunger generated per game tick.
+
|
 +
|
 
|-
 
|-
| <StartingCondition>
 
| N/A
 
| Can only be defined in custom world before generation
 
 
|-
 
|-
|}
+
| Atmospherics Tutorial
 
+
| <code> Tutorial3 </code>
=== Configuration from world.xml ===
+
|
 
+
|
{| class="wikitable"
+
|
! XML Attribute
 
! Parameter
 
! Details
 
 
|-
 
|-
| <ResearchKey>
 
| ResearchOff, ResearchOn
 
| Or a custom key from a mod.
 
 
|-
 
|-
| <RespawnCondition>
+
| Airlocks Tutorial
| Easy, Normal, Stationeer
+
| <code> Airlock </code>
| Or a custom key from a mod.<br>''Seems to be used as spawn conditions instead for new players''
+
|
|-
+
|
|}
+
|
 
+
|
 
 
== Server Administrator ==
 
 
 
===In Game Admin===
 
<ServerAuthSecret/> parameter must be added to setting.xml on both server and client and be the same token.
 
 
 
All commands are typed in the chat (F3) by default and prefixed by <code>serverrun</code>
 
 
 
=== Server Program Console===
 
You can type commands in the running application which acts like a console
 
 
 
=== Command Lists ===
 
{| class="wikitable"
 
!Command
 
!Details
 
!Parameter
 
 
|-
 
|-
| HELP
 
| Displays helpful stuff
 
| Arguments:
 
* commands
 
* list (l)
 
* <key>
 
* tofile: prints the help output to file
 
 
|-
 
|-
| CLEAR
+
| Furnace Tutorial
| Clears all console text ||
+
| <code> FurnaceBasics </code>
|-
+
|
| QUIT
+
|
| immediately quits the game without any prompts
 
 
|
 
|
 
|-
 
|-
| EXIT
 
| rowspan=2 | Leaves a game session and goes back to 'StartMenu'
 
| rowspan=2 |
 
 
|-
 
|-
| LEAVE
+
| Manufacturing Tutorial
|-
+
| <code> Manufacturing </code>
| NEW
+
|
| rowspan=2 | Starts a new game at specific world automatically from launch.Must provide world name as argument
 
| rowspan=2 | worldName
 
|-
 
| NEWGAME
 
|-
 
| LOAD
 
| rowspan=2 | Loads a saved world file
 
| rowspan=2 | <foldername>
 
|-
 
| LOADGAME
 
|-
 
| LOADLATEST
 
| Loads the latest saved file, including auto saves
 
| <foldername>
 
|-
 
| JOIN
 
| rowspan=2 | Joins a client to the server
 
| rowspan=2 | [address]:[port]
 
|-
 
| JOINGAME
 
|-
 
| STEAM
 
| Commands to test Facepunch API. Just checks if steam is initialised and if DLC is purchased
 
 
|
 
|
 
|-
 
|-
| LISTNETWORKDEVICES
 
| No help text :(
 
| id
 
 
|-
 
|-
| TESTBYTEARRAY
+
|}
| Tests every item in world to check its network read/write functions are parallel. Only enabled in Editor.
+
 
Supply a reference Id to check ONLY that item
+
===== 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>
| ROCKETBINARY
+
'''It is recommended to use the -setting flag instead.'''
| Starts logging the size of each section of a delta update.
+
 
| Arguments:
+
{| class="wikitable"
* toggleloglength
 
* togglelogbps
 
|-
 
| IMGUI
 
| Toggles ImguiInWorldTestCube on/off
 
|
 
|-
 
| ATMOS
 
| Enables atmosphere debugging
 
| Arguments:
 
* pipe
 
* world
 
* room
 
* global
 
* thing
 
 
|-
 
|-
| THING
+
! Setting !! Value !! Description
| Thing related commands
 
| Arguments:
 
* No args returns total thing count
 
* find
 
* delete
 
* spawn
 
 
|-
 
|-
| KEYBINDINGS
+
| ServerVisible
| Displays all the keybindings bound to LocalHuman
+
| true / false
| Arguments:
+
| Shows / hides the server in the ingame server list
* reset (Resets the keybindings stack. Can help solve input issues)
 
 
|-
 
|-
| RESET
 
| Restarts the application
 
|
 
 
|-
 
|-
| VERSION
+
| GamePort
| Returns the game version
+
| 27016 / any port
|  
+
| The port that players connect to
|-
 
| LOGTOCLIPBOARD
 
| Copies the content of the console buffer to the system clipboard buffer
 
|
 
 
|-
 
|-
| KICK
 
| Kick clients from server commands
 
| clientId - disconnects the client from the game
 
 
|-
 
|-
| BAN
+
| UpdatePort
| Bans a client from the server (server only command)
+
| 27015 / any port
| clientId
+
| Steam update port. ''Unclear if this is actually used by the game at the moment.''
 
|-
 
|-
| UPNP
 
| returns universal plug and play (upnp) state
 
|
 
 
|-
 
|-
| NETWORK
+
| UPNPEnabled
| returns the current network status
+
| true / false
|  
+
| Enable or disable UniversalPlugAndPlay (Auto port forwarding, your router must support)
 
|-
 
|-
| PAUSE
 
| will pause/unpause the game (including for clients)
 
| Arguments:
 
* true
 
* false
 
 
|-
 
|-
| SAY
+
| ServerName
| sends a message to all connected players
+
| "My Game Server" / your desired server name
|  
+
| Description
 
|-
 
|-
| SAVE
 
| Saves the current game to specified path
 
| Arguments:
 
* <foldername>
 
* delete <foldername>
 
* list
 
 
|-
 
|-
| LOG
+
| ServerPassword
| Dumps all the logs to a file
+
| "MySuperSecurePassword" /  your desired server password
| Arguments:
+
| Description
<logname> (optional)
 
clear
 
 
|-
 
|-
| DISCORD
 
| Interaction with the Discord SDK
 
|
 
 
|-
 
|-
| SETTINGS
+
| ServerAuthSecret
| Change the settings.xml. e.g settings servermaxplayers 5
+
| "MySuperSecureSecret" /  your desired admin secret
| Arguments:
+
| Description
* list
 
* print
 
<PropertyName> <Value>
 
 
|-
 
|-
| NETCONFIG
 
| Change the master server setting in NetConfig.xml. e.g netconfig ip 127.0.0.1
 
| Arguments:
 
* list
 
* print
 
* <PropertyName> <Value>
 
 
|-
 
|-
| SETTINGSPATH
+
| ServerMaxPlayers
| Sets the default settings path to a new location. Launch command only. If none found default is used.
+
| 1-20
| <full-directory-path>
+
| The number of available player slots. Shouln't exceed 20.
 
|-
 
|-
|  DIFFICULTY
 
| Sets game difficulty to one of the predefined settings
 
|  -DIFFICULTY [<difficulty>]
 
 
|-
 
|-
| REGENERATEROOMS
+
| AutoSave
| Regenerates all rooms for the world
+
| true / false
|  
+
| Enable or disable autosaves
 
|-
 
|-
| STORM START
 
| Starts weather event
 
|
 
 
|-
 
|-
| STORM STOP
+
| SaveInterval
| Stops weather event
+
| 300
|
+
| Time in seconds between each autosave. Shouldn't be below 60 sec.
 
|-
 
|-
| DEBUGTHREADS
 
| Show the times that the worker threads take to run.
 
| GameTick
 
 
|-
 
|-
| STATUS
+
| AutoPauseServer
| Displays a bunch of info to give insight into state of server.
+
| true / false
|  
+
| Weather the server should auto pause or not if no players are connected
 
|-
 
|-
| MASTERSERVER
 
| Commands to help with interacting with the Master Server.
 
| refresh
 
 
|-
 
|-
| DELETELOOSEITEMS
+
| UseSteamP2P
| Removes all items in world that isn't in a slot
+
| true / false
|
+
| Weather the server should allow SteamP2P connections. Keep this disabled.
 
|-
 
|-
| SUNTIME
 
| Set the time of day between 0 and 1 (e.g. 0 is sunrise, 0.5 is sunset)
 
| Arguments:
 
* time
 
 
|-
 
|-
| CLEANUPPLAYERS
+
| StartLocalHost
| Cleans up player bodies
+
| true / false
| Arguments:
+
| Do not change this, this is required to be able to connect.
* dead
 
* disconnected
 
* all
 
 
|-
 
|-
| TEST
+
 
| No help text :(
 
|
 
 
|}
 
|}
  
== Modding on Servers ==
+
== Command Examples ==
'''Undocumented feature'''<br>
+
 
Mods are supported on Dedicated servers, however it requires additional manual configuration - Necessitating direct file access and editing on the dedicated server. To install mods, you'll need to manually obtain the mod data first - Either from the Steam Workshop, or built yourself. Upload/Store the mods in a specific folder on the server - You will also likely want to edit default.ini on the server to point to a particular server folder rather then the default directory, defined below. Then manually add ModConfig.xml in the root directory of the server executible files, and manually edit the file to add each individual mod.<br>
+
=== '''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 in the server 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> 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).
 +
* 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://www.youtube.com/watch?v=nTqu6w2wc68 tmux].
 +
 
 +
=== '''Windows''' ===
 +
 
 +
Explanation: ''Server starts a new Map on <code> Lunar </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> 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>
 +
 
  
=== modconfig.xml ===
+
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>''
Place a modconfig.xml in the serverfiles root (next to executable).  Filename case is significant on Linux.
 
  
<HR><pre>
+
<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>
<?xml version="1.0" encoding="utf-8"?>
 
<ModConfig xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
  <Mods>
 
    <ModData>
 
      <Id>1</Id>
 
      <IsEnabled>true</IsEnabled>
 
      <LocalPath />
 
    </ModData>
 
    <ModData>
 
      <Id>0</Id>
 
      <IsEnabled>true</IsEnabled>
 
      <LocalPath>YourFirstModFolderHere</LocalPath>
 
    </ModData>
 
    <ModData>
 
      <Id>0</Id>
 
      <IsEnabled>true</IsEnabled>
 
      <LocalPath>YourSecondModFolderHere</LocalPath>
 
    </ModData>
 
  </Mods>
 
</ModConfig>
 
</pre><HR>
 
  
Local mods have Id 0.<br>
+
==== Additional info about the commands ====
So try and keep the same structure in the server to prevent complications.<br>
+
The server will stay running until you close the terminal. When you close (don't logoff) a RDP session, the server does not stop.
''1 is core file and always need to be enabled''
 
  
===Alternate ModConfig.xml===
 
If the above modconfig don't work, try this one:
 
  
<HR><pre>
 
<?xml version="1.0" encoding="utf-8"?>
 
<ModConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
    <Mods>
 
        <unsignedLong>1</unsignedLong>
 
        <unsignedLong>1001</unsignedLong>
 
        <unsignedLong>1002</unsignedLong>
 
    </Mods>
 
    <DisabledMods>
 
    </DisabledMods>
 
    <LocalMods>
 
        <LocalMod>
 
            <folder>"FirstModFolderPath"</folder>
 
            <modID>1001</modID>
 
        </LocalMod>
 
        <LocalMod>
 
            <folder>"SecondModFolderPath"</folder>
 
            <modID>1002</modID>
 
        </LocalMod>
 
    </LocalMods>
 
</ModConfig>
 
</pre>
 
  
=== Storing Mods ===
+
== Administrator: run a command on the server ==
  
WIN: C:\Users\'''USERNAME_HERE'''\Documents\My Games\Stationeers\mods\
+
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)''  
LIN: /home/'''USERNAME_HERE'''/My Games/Stationeers/mods/
 
OSX: /Users/'''USERNAME_HERE'''/My Games/Stationeers/mods/
 
  
Mods folder root is displaced by the <SavePath> setting in setting.xml,<br>
+
All commands are typed in the client console (F3) and prefixed by a <code> serverrun </code> like so:
not sure if it's a bug or feature
 
  
\Modname or workshopid\About\
+
<code> serverrun say Hello World </code>
(file containing description about mod and thumbnail)
 
\Modname or workshopid\GameData\
 
(files you want to <u>append</u> to the core gamedata)
 
  
It's recommended to only put entries in the mod files you want to add or replace,<br>
+
=== Server Terminal Console===
do not try and replace the whole file for compatibility issues and errors.
+
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 - 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 624: Line 320:
  
  
Note: There seems to be some changes as to how where the dedicated server loads mods from. The above solution seems to be deprecated, see below if above solution doesn't work.
+
[https://github.com/rocket2guns/StationeersDedicatedServerGuide/blob/main/README.md%20Official%20Server%20Guide VERY Outdated official guide]
 
 
WIN:[Where you've installed the server]/Steam/steamapps/common/Stationeers Dedicated Server/rocketstation_DedicatedServer_Data/StreamingAssets/Data/Mods <br>
 
LIN:/home/'''USERNAME_HERE'''/Steam/steamapps/common/Stationeers Dedicated Server/rocketstation_DedicatedServer_Data/StreamingAssets/Data/Mods <br>
 
OSX:[Where you've installed the server]/Steam/steamapps/common/Stationeers Dedicated Server/rocketstation_DedicatedServer_Data/StreamingAssets/Data/Mods <br>
 
 
 
The Mods folder in /StreamingAssets/ is not premade, but needs to be added manually. Put the mods you want in here, and the server will load them. It is unknown if a ModConfig is even needed when doing it this way.
 

Revision as of 07:02, 22 September 2025


General Requirements

  • 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

Docker image by 1Solon

Solon1 has made a simple to use, up-to-date Docker image for the current Dedicated Server:
Current Docker Image by 1Solon

StationeersServerUI

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

As of writing this page, there are no updated Pterodactyl Panel chicken parts available that function without major editing. Good luck!

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 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 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

27016: Game port (UDP). 27015: Steam update port. (UDP).

Server Startup Arguments (Post September 2025)

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.

- stationname: Required. This is the name of your save.
- worldid: Optional, but required to start a new game if no existing station is found.
- difficulty: Optional, defaults to "Normal" if not provided.
- startcondition: Optional, defaults to the default start condition for the world setting if not provided.
- startlocation: Optional, defaults to "DefaultStartLocation" if not provided.
- When you add optional arguments, you cannot leave one out.
For example, <stationname> [worldid] [startlocation] would not work,
you would need to add [difficulty] and [startcondition] too.

-logFile "path" Specifies a custom log file path if output_log.txt is not used. Example:

-logFile "server.log"

-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 (September 2025)

World Name WorldID Difficulty IDs StartCondition IDs StartLocation IDs
Lunar (The Moon) Lunar Creative, Easy, Normal, Stationeer DefaultStart, Brutal LunarSpawnCraterVesper, LunarSpawnMontesUmbrarum, LunarSpawnCraterNox, LunarSpawnMonsArcanus
Mars Mars2 Creative, Easy, Normal, Stationeer DefaultStart, Brutal MarsSpawnCanyonOverlook, MarsSpawnButchersFlat, MarsSpawnFindersCanyon, MarsSpawnHellasCrags, MarsSpawnDonutFlats
Europa Europa3 Creative, Easy, Normal, Stationeer EuropaDefault, EuropaBrutal EuropaSpawnIcyBasin, EuropaSpawnGlacialChannel, EuropaSpawnBalgatanPass, EuropaSpawnFrigidHighlands, EuropaSpawnTyreValley
Mimas MimasHerschel Creative, Easy, Normal, Stationeer MimasDefault, MimasBrutal MimasSpawnCentralMesa, MimasSpawnHarrietCrater, MimasSpawnCraterField, MimasSpawnDustBowl
Vulcan Vulcan Creative, Easy, Normal, Stationeer VulcanDefault, VulcanBrutal VulcanSpawnVestaValley, VulcanSpawnEtnasFury, VulcanSpawnIxionsDemise, VulcanSpawnTitusReach
Venus Venus Creative, Easy, Normal, Stationeer VenusDefault, VulcanBrutal
Note: Yes, Venus is using VulcanBrutal
VenusSpawnGaiaValley, VenusSpawnDaisyValley, VenusSpawnFaithValley, VenusSpawnDuskValley
Inventory Tutorial Tutorial1
Connection Tutorial Tutorial2
Atmospherics Tutorial Tutorial3
Airlocks Tutorial Airlock
Furnace Tutorial FurnaceBasics
Manufacturing Tutorial Manufacturing
Configuration

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

Linux

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 in the server 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 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

  • 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).
  • 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

Explanation: Server starts a new Map on Lunar saved to saves/MyLunarMap , advertises itself in the server 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.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 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.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

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 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

When running the server from windows, you can type commands in the terminal application which acts like a console

Command Lists

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 - 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 .


VERY Outdated official guide