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. They are game instances designed for long-term multiplayer games. They are independent of any player and run without render or visual/audio effects. This will result to a faster connection and a more fluent multiplayer performance with less lag. [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 Guide 1.1.1 Requirements 1.2 Installation 1.1.3 Quick Server Setup 1.4.1 User Interface 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 you want to run the server as a "service" you need to use administration account) 2. .NET Redistributable (version 4.6.1 or higher) https://dotnet.microsoft.com/download/dotnet-framework 3. Visual C++ Redistributable Packages 2013 and 2015-2019 64bit. (2017 version is in the 2015–2019 package. https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0 4. If you want to host the game publicly, a static IP address is required. This allows anyone on the Internet to connect to it. (Not required, but will make it easier for regular users to find your server under Favourites or History tab.
DS Minimum: CPU 3.2GHz, 3 logical cores 6G RAM
DS Recommended: CPU 4.5GHz, 3 logical Cores 10G RAM
You can install a dedicated server with SteamCMD
App ID for SE DS - 298740
Command line: "steamcmd.exe+login anonymous +force_install_dir anydirectorypath +app_update 2998740 +quit" [2]
Alternatively you can Make a shortcut on your desktop and give it one of these location paths:
steam://install/298740 [3]
https://steamdb.info/app/298740/[4]
(Many thanks to u/Jeiwyn and u/ElyrianVanguard on Reddit for this information.)
Quick Server Setup
Basic setup as a background process
Setup as a service:
User Interface for Dedicated Servers
1. Server List
Here you will see the list of server instances. There is always one instance called "Local/Console", and you can add additional instances with custom names.
- 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
- This is where you can choose whether the game log files should contain dates and whether the server should automatically send log files to Keen Software House when there is a crash.
3. Service Management
- This message is displayed when the application is not being run with administrator rights.
- If you want to create or manage the server as a service you need administrator rights. The button "Run as Admin", will restart the application using administrator rights.
4. Buttons
Server Management - Dedicated Server Interface
1. Connect to Steam Some features of the UI use Steam for users to fill in correct values. To access your mods and friends lists, you can connect to Steam. Evina You must log into Steam on the machine to be able to use this feature.
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 – Only available for the "New" 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 adversely affect the game experience or performance.
5. Server settings General ListenIP - The IP address of the network interface that will be listened to by the server. 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 This tab allows you to select from Admins, Banned, and Reserved slot users. You can use your friends list or from history of the world. Note: The unique 64-bit numerical identifier of a Steam account is called "Steam ID". 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 This tab allows you to select Active Mods. 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. This message will appear to all players, if they are connected to it. Variables can also be used in the MotD. To insert a variable of choice, use the context menu within the text field. This variable will be replaced by actual value, when it shows 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 of the current server instance. Edit config: Opens the current instance’s configuration file in a text editor to make manual edits. Save & Start – Saves the current configuration. Stop – Stops the server. Back to instances – Returns to the screen with a 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 choose plugin.
Remote Management
Remote Client allows you remote access to your server and allow you to administer it. You can view information about game play and simulation speed through the monitoring tab. The Admin tab is similar in appearance to Admin Screen. Global server chat, banned and kicked players, list all grids, characters floating objects, planets, asteroids, and more can be viewed on the Admin Tools tab.
Standalone executable There is standalone version of Remote Client in the Dedicated Server directory. You can start it by executing VRageRemoteClient.exe file. Standalone version has more features like Profiles or Notifications.
Remote Management - Standalone
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
You can use the mklink command to change data directory on 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, Firewall Settings
Static IP Address: This is necessary if you plan on running a game to which people can connect from all over the Internet. Your internet service provider should tell you whether you have one or not. You can host a dedicated server on your network, but it will not be accessible to anyone outside of the LAN.
Port forwarding: The game uses UDP protocol for communication. 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 identification
This is the best way to find your group ID.
1. First, you must be a member 2. On the group's 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. You can use VRage Remote Client to get the data or you can make your own 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 You must create a request to create your client. Remote API uses HMAC(HMACSHA1) to compute hash using specific data. HMAC is using private key. Do not share this key with anyone.
You need to compute hash (lines): URL, including query parameters Nonce, can be used only one time Date – UtcNow, format R, RFC1123 must be added in header
This is converted to UTF8 string byte buffer and used to compute the hash. Hash is converted from UTF8 string to Base64 string. It is then added to header of Authorization field in format "nonce.hash".
Log in to comment