Setting Up A Space Engineers Dedicated Server



Dedicated servers in Space Engineers allow players to connect to a third party host, rather than using a player-host, in a peer-to-peer set-up. These are game instances that are designed for long-term multiplayer gaming. They don't depend on any player and they run without render and visual/audio effects. This will lead to a faster connection and a more fluid multiplayer performance with less latency. [1]



Alternatively you can rent a Space Engineers Dedicated Game server from one of the official hosting providers.



Notes:



- A licensed copy is not required to run dedicated servers. However to legally obtain the game server files, at least one Steam account needs to have a valid license. Dedicated Servers sub-forum



1 Dedicated Server Manual 1.1 Requirements Installation 1.3 Quick Setup 1.4 User Interface 1.4.1 Server List 1.4.2 2. Global Configuration 1.4.3 Service Management 1.4.4 Buttons



Guide for Dedicated Servers



1. Windows PC (if your server is to be used as a "service", you must use an administrator account) 2. .NET Redistributable (version 4.6.1 or higher) https://dotnet.microsoft.com/download/dotnet-framework 3. Visual C++ (VC++) Redistributable packages 2013 and 2015-2019 64bit. (2017 version is included in the 2015-2019 package. https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0 4. Static IP address, if you intend to host the game publicly, so that anyone from the Internet can connect to it. This is optional, but it makes it easier for regular players find your server in Favourites and History tab.


DS Minimum: CPU 3.2GHz, 3 logical cores 6G RAM



DS Recommended: CPU 4.5GHz, 3 logical Cores 10G RAM



SteamCMD allows you to set up a dedicated server



App ID for SE DS: 298740



Command line: [2]



Alternativly, you can create a shortcut on your computer and give it one or more of these locations:



steam://install/298740 [3]



https://steamdb.info/app/298740/[4]



(Many Thanks to u/Jeiwyn, u/ElyrianVanguard, Reddit for this information.



Quick Server Installation



Basic setup as a foreground process:



Setup as a service:



User Interface for Dedicated Servers



1. Server List



- Here you can see the list of the server instances. There is always a local/console instance. You can also choose to add custom names to other instances.



- The "Local/Console" instance is run on foreground as a standard application and is always there, while the other instances that the user creates are run in the background as Windows services.





2. Global Configuration



- You can here set whether the game log files will have dates added to them, and whether the log files should automatically be sent to Keen Software House on a crash.





3. Service Management



- This message is displayed when the application is not being run with administrator rights.



Administrator rights are required to create or manage a server as a service. The button "Run as Administrator" will restart the application with administrator rights.





4. Buttons



Dedicated Server User Interface - Server Management



1. Connect to Steam Some features of the UI use Steam for users to fill in correct values. To get your mods and friends list, you can connect directly to Steam. This feature can only be used if you are logged into Steam from that machine.



2. Features There are 4 main features on the UI:



3. New game / Saved worlds option Lets you choose between starting a new world generated from a scenario or loading a previously saved world The previously saved worlds are loaded either from the "AppData\Roaming\SpaceEngineersDedicated" folder in your home directory (e.g. "C:\Users\John.Doe") or from the "ProgramData\SpaceEngineersDedicated" folder in the system root. To be able to play a world on the dedicated server that you previously created and saved in the game, you will have to copy it from your save game directory "AppData\Roaming\SpaceEngineers" to the respective folder



4. Game settings Scenario can only be selected for the "New video" option. Other settings work the same as the game, but you can change the numerical options to any value that you like. (Warning! Values that are outside the allowed range of the game user interface cannot be tested and are not supported by official authorities. They can have a serious impact on the game's performance and experience.



5. General Listen IP - The address of the network interface on which the server will listen. This can also be set to "0.0.0.0", which is the default value. Port Number for which the server will listen. Server name Name that will be displayed in the server's server list. Steam Group ID: If non-zero, the dedicated servers will only be visible to the Steam group. Password to the server Remote API Remote API for controlling VRage Remote Client Server Description.



Users You can choose from the following tab: Admins; Banned; Reserved slots. You can use your friends list or from history of the world. Note: By "Steam ID" we mean the unique numerical identifier for a Steam account in the 64-bit format. Your Steam ID in this format can be found in the game log after running the game with Steam logged-in to your Steam account (see above) or using external tools like http://steamid.co/ or http://steamidfinder.ru/



Mods On this tab, you can choose Active Mods.WOWWIKI.ORG Steam lets you access your Subscribed Mods.



MotD Message of the Day On this tab, you can fill in Message of the Day or Message of the Day URL. When connected to the server, this message will be displayed to all players. Variables are allowed in the content. Use the context menu of the text field to insert a variable of your choice. This variable will be replaced when it is displayed to the player.



Maintenance You can setup Auto Restart and Auto Update features on this tab.



6. Configuration and server controls



- Save config - Saves the configuration for the current server instance - Edit config - Opens the current instance's configuration file in a text editor for manual editing - Save & start - Saves the current configuration and starts the server - Restart - Restarts the server - Stop - Stops the server - Back to instances - Returns to the screen with the list of server instances


Exit - Closes all configuration utilities (but not the dedicated servers if they are running as services). Setup Actions can be used to stop/restart servers with delay and chat message.



Plugins Management



You can use plugins administration to set up server-side plugins. Add plugin assembly and then select plugin.



Remote Management



Remote Client allows you remote access to your server and allow you to administer it. There is a monitoring tab with information about simulation speed and game play state. Admin tools tab is similar to Admin Screen (alt-F10). You can view global server chat, banned or kicked users, and a list of all grids.



Standalone executable Remote Client can be used as a standalone executable in the Dedicated Server folder. You can start it by executing VRageRemoteClient.exe file. The standalone version offers more features such as Profiles and Notifications.



Remote Management Software



Command Line Tool



You can run SpaceEngineersDedicated.exe with the following arguments:



- console: skips instance selection dialog, dedicated server configuration dialog, and goes directly to console application - noconsole: will run without black console window - path: will load config and store all files in path specified ("D:\Whatever\Something" in example) - ignorelastsession: ignores last automatic save of the world and uses values from config file - maxPlayers : overrides maximum players that can be in session - ip: overrides ip address of dedicated server stored in config file - port: overrides port value stored in config file


taskkill /IM SpaceEngineersDedicated.exe This will stop the dedicated server correctly, saving the world etc. To stop it immediately, add argument "/f". This will kill the server instantly without asking for it to stop and without saving any of the world's data.



Changing data directory on dedicated servers



The mklink command can be used to modify the data directory on a dedicated server.



1. Make sure 'D:\Something\DirForData' exists 2. Make sure 'C:\ProgramData\SpaceEngineersDedicated' does not exists 3. Run command: mklink /J C:\ProgramData\SpaceEngineersDedicated D:\Something\DirForData


More information here (see Junction)



Router and Firewall Configurations



Static IP: You will need a static public address if you want to run a game that everyone can connect to. Your internet service provider should tell you whether you have one or not. Without the static IP address, you will be able to host a dedicated server on your LAN, but people from outside the LAN won't be able to connect to it.


Port forwarding: The game uses UDP protocol to communicate. The default listen port of the game is 27016. But, this can easily be changed in the configuration tool.

In order for people to be able to reach your server, you will have to configure your router to forward all incoming UDP traffic on port 27016 (or any other that you have specified) to the computer where your dedicated server is running.
Firewall settings: Make sure to set the firewall on your server computer to allow incoming UDP traffic on the listen port.


Note: If you don't know how to open ports go to http://portforward.com/


How to find your group ID



Here's how to find your GroupID.



1. First you have to be a member of the group 2. On the group page (e.g. http://steamcommunity.com/groups/rps), click "Invite Friends" 3. On the new page that will open, you can find your Group ID (long number in bold) in the page's URL: http://steamcommunity.com/id/pikacc/friends/?invitegid= 103582791429554934


Remote API



Remote API is an RESTful web interface that allows you to get information about the server. To get the data, you can use VRage Remote Client. Or you can make your client. These are available resources



VRage remote management resources



You can get information about API by calling GET on api resource (for example http:\\localhost:8080\vrageremote\api )



Custom Client If you want to make your own client you have to properly create a request. Remote API uses HMAC (HMACSHA1) for computing hash from specific data. HMAC uses private key. This key should not ever be shared with anyone.



You must compute hash using string (lines). URL including query parameters. Nonce: Random string, can only used once Date UtcNow. Format R, RFC1123 pattern must be added.



This is converted into byte buffer from UTF8 strings and used to compute hash. Hash is converted from UTF8 string to Base64 string. It is then added to header of Authorization field in format "nonce.hash".

37 Views