Difference between revisions of "Dedicated Servers"

From Space Engineers Wiki
Jump to: navigation, search
m (Removed protection from "Dedicated Servers")
 
(2 intermediate revisions by 2 users not shown)
Line 81: Line 81:
 
=== 1. New game / Saved worlds option ===
 
=== 1. New game / Saved worlds option ===
 
*Lets you choose between starting a new world generated from a scenario or loading a previously saved world.
 
*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  
+
*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.  
*(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.
*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.
 
  
 
=== 2. Game settings ===
 
=== 2. Game settings ===

Latest revision as of 16:55, 31 March 2022


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 intended for long time multiplayer games. They don’t depend on any player and they run without render and visual/audio effects. This will result to a faster connection and a more fluent multiplayer performance with less lag.

Dedicated servers are available for everyone who own Space Engineers. You don’t need an extra Steam account, you get Space engineers dedicated server for free to your existing Space Engineers account.

Notes:

  • In order to run a dedicated server, players don't require a licensed copy of the game. However to legally obtain the game server files, at least one Steam account needs to have a valid license.

Dedicated Servers sub-forum

Dedicated Server Guide

Requirements

  1. Windows PC (if you want to run the server as a "service" you need to use administration account)
  2. .NET redistributable (version 4 or higher)
  3. Static IP address, if you intend to host the game publicly, so that anyone from the Internet can connect to it

Installation

On PC With Steam:

   1. The Dedicated server is installed along with SE
   2. Right-click on the game in your Steam library
   3. Select “Properties” and under the tab “Local Files”
   4. Click “Browse Local Files…”)
   5. Open folder "DedicatedServer(64)"
   6. In this folder you with find the server's executable


On PC Without Steam:

   1. Go to "C:\Program Files(x86)\Steam\SteamApps\SpaceEngineers\Tools"
   2. Extract the archive on the target machine
   3. Make sure Microsoft .NET Framework 4 is installed
   4. You should be ready to run the server

Quick Server Setup

Basic setup as a foreground process:

  1. Run SpaceEngineersDedicated.exe
  2. Choose “Local/Console” item in list of servers
  3. Click “Continue to server configuration”
  4. Here you can set variety of options. They work the same way as in the game.
  5. Fill in the name of the server
  6. Press “Save config and start” and you are ready to play

Setup as a service:

  1. Run SpaceEngineersDedicated.exe as Administrator
  2. Press the “Add new instance” button
  3. Fill in the name of the service (must be unique system-wide)
  4. Choose the service you just created from the list of server instances
  5. Setup your game the same way as with a foreground process
  6. Pay attention to ports in “Server settings”, as a single port can only be used by one server instance

User Interface

Dedicatedserver-interface.png

1. Server List

  • Here you can see the list of the server instances. There’s always one instance named “Local/Console” and optionally several other 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

  • Here you can set, whether the game log files should have dates appended to them and whether the server should automatically send the log files to Keen Software House upon crash.

3. Service Management

  • This message is shown when the application is not run with administrator right.
  • 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 with administrator rights.

4. Buttons

"Add new instance"
Creates a new instance of the dedicated server as a Windows service.
"Remove instance"
Continue to server configuration - Starts server instance configuration utility for the selected instances.
"Continue to server configuration"
Starts server instance configuration utility for the selected instances.
"Exit"
Closes the configuration utility

Server Configuration

Selauncher.png

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

2. Game settings

  • Scenario can only be chosen for the “New game” option
  • GameMode sets the current game mode to creative or survival
  • InventorySizeMultiplier Sets the inventory size of all container objects and players in the game. 3x would allow players to carry 1,200 l. (3 * 400)
  • AssemblerSpeedMultiplier Sets how fast the assembler works.
  • AssemblerEfficiencyMultiplier Sets assembler efficiency. Items produced by the assembler will use ingots divided by this number.
  • RefinerySpeedMultiplier Sets how fast the refineries convert ore to ingots.
  • MaxPlayers Sets the maximum number of players, there seems to be no restriction here. Keep in mind that more players requires more server resources.
  • MaxFloatingObjects Sets the maximum number of floating items in the game, it is recommended to set this to a lower number to keep lag to a minimum.
  • EnviromentHostility Sets the environment setting, keep in mind that a hostile environment is hostile 24/7, even when players are not connected to the server.
  • AutoHealing If yes, players will heal if they are not actively taking damage
  • EnableCopyPaste Creative Setting only. Allows copy and paste function on the server
  • WeaponsEnabled Allows weapons to shoot
  • ShowPlayerNamesOnHud Shows player names if they are unobstructed regardless of distance between them.
  • ThrusterDamage Toggles thruster effect damage on and off
  • CargoShipsEnabled Toggles cargo ships.
  • Enable spectator Allows spectator player slots.
  • Remove trash The server will automatically remove debri based on size, movement, and player distance from the object.
  • World size in Km Set the size of the world cube. a setting of 0 is considered 'infinite'.
  • Respawn ship delete Ships used for player respawn will be automatically managed and deleted by the server.
  • ResetOwnership Starting a server with this setting enabled will set all objects to no owner.
  • Welder speed multiplier Higher values increase welding speed; Lower values decrease welding speed.
  • Grinder speed multiplier Higher values increase grinding speed; Lower values decrease grinding speed.
  • Realistic Sound Toggles realstic sound. Presumeably an immersion option where certain sounds are more muted, pronounced, or available within an interior or cockpit.
  • Client can save Allows connected players to save the server map. It is recommended to leave this setting off unless trouble shooting.
  • Hack speed Multiplier Higher values increase the speed of the "hacking" grinder mechanic. Lower values decrease hacking speed.
  • Permanent death When enabled, players lose all ownership of objects upon death. The player can still respawn and start fresh.
  • AutoSave in Minutes Set the frequency the server will save the map.
  • Spawnship time multiplier Higher values increase the time that server side spawn ships become available upon death.
  • Procedural Density Changing this affects how close together seeded asteroids spawn.
  • Procedural Seed Presumeably any numerical value placed here will generate and save an asteroid seed. IE: You could change the seed number and then come back to the previous seed number and the asteroids would still be in their previous locations.
  • Destructable Blocks Toggles whether or not blocks can be destroyed.
  • Enable in game scripts Allows scripts loaded from in game computer terminals to work.
  • View Distance Set the distance of how far each client can see/render objects.
  • Flora Density Planets only setting??
  • Enable tool shake Toggles whether tools and objects attached to the tool shake when in use. Disable to reduce cpu load.
  • Voxel Generator Version Currently, this only controls whether or not ICE will spawn on asteroids. Version 0 Will have no ice. Version 1 has the first iteration of ice. Version 2 has the current iteration of ice.
  • Enable Oxygen Toggles whether or not oxygen can be used / is needed for players to survive.
  • Enable 3rd person view Toggles whether or not players can switch to third person via keyboard bind.
  • Enable encounters Toggles the random spawning of player made ships / points of interest that were officially imported to the game. (procedural option only?).
  • Enable flora Planets only setting??
  • Enable Station Voxel Support Toggles whether stations built on asteroids snap to the asteroid grid.
  • Enable Sun Rotation Toggles whether or not the sun rotates around the area of play.
  • Disable respawn ships / carts Disable respawn ships.
  • PhysicalIterations Set how often the server cpu checks for physics. (Collision). 4 is considered a moderate setting while 10 is very high. A popular server will want a low setting.
  • Sun rotation interval How quickly the sun completes a rotation. Higher values will slow it down.
  • Enable jetpack Enable / Disable player jetpacks.
  • Spawn with tools Enable / Disable players spawning with hand tools.
  • Enable voxel destruction Enable / Disable destructable asteroids.
  • Enable drones Enable / Disable hostile NPC drones

(Warning: Values out of the range allowed by the game user interface are not tested and officially unsupported. They can seriously affect the game experience and performance)

3. Server settings

"Listen IP"
Address of network interface that the server will listen on. This can be set to “0.0.0.0” (which is the default value) to listen on all interfaces, which should work fine in most cases
"Server port"
Number of the port that the server will listen on
"Server name"
Name that will be shown in the server list
"World name"
Name of the server map/play area
"Server admins"
Steam IDs (not nicknames) of the players with administrator privileges on the server (such as kicking and banning other players), each of them on a separate line (64bit SteamID)
"Banned users"
Steam IDs (not nicknames) of the players who have been banned from the server (64bit SteamID).
"Mods"
Steam Workshop ID of any mods that the server will upload out to any connected clients.
"Steam Group ID"
If set to non-zero value, the dedicated server will only be visible for the given Steam group

4. Buttons

"Load from..."
Set the save directory the server will load from
"Save"
Saves the configuration for the current server instance
"Edit"
Opens the current instance’s configuration file in a text editor for manual editing
"Save as"
Saves the configuration with a user prompt if a specific location is needed
"Reload"
Loads the previously saved configuration without saving any new changes
"Reset"
Loads default values as if the server was just created
"Restart"
(only for service instances) Restarts the server instance
"Stop"
(only for service instances) Stops the server instance
"Back to instances"
Returns to the screen with the list of server instances
"Save & start"
Saves the current configuration and starts the server either as a foreground application or as a system service
"Red X at top right corner of configuration window"
Closes the configuration utility (but not the dedicated server, if it is running as a service)

Steam ID

64steamid.png

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

Group ID

Servers can be restricted to Steam groups to better control access.

Servers that are unrestricted should show a groupID of 0 in the groupid field in the server configuration window

The group ID in the server configuration window references the GroupID64 not the Group ID on the profile page of your group. To properly fill out the group ID field you must obtain your group ID64. [1]

  • Navigate to your steam community page, in steam or in a browser.
    • If you navigated to it in steam, right click the page then select Copy Page URL and paste it into a browser.
  • Append /memberslistxml/?xml=1 to your URL, If your group name is Example your url will look like this: http://steamcommunity.com/groups/example/memberslistxml/?xml=1 [1]
  • On the page that opens up copy your GroupID64 from between the GroupID64 tags.
  • Paste that number into the group ID field.

Command Line Tool

the following arguments can be used with SpaceEngineersDedicated.exe:

  1. “-console” - starts a server instance as an application

Router and Firewall Settings

Static IP

  • If you intend to run a game that people from all over the Internet can connect to, you will need a static public IP address. 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 fowarding

  • The game uses UDP protocol to communicate. The default listen port is 27016, but this can be changed in the config 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.

All info taken from the Official Page


Known Problems

Varying Simulation Speed between Clients

The dedicated server in it's current version has a very basic problem. As far as it's known, KeenSW being an indie developer studio had just not had the financial resources to go right ahead and develop a multiplayer network code for Space Engineers from the scratch. So they took at least to develop a alpha version of the game that is presentable to the public some network code from Steam. And this network code works in at least one aspect in probable the worst possible way a network code could. The dedicated servers first priority is to calculate and exchange position data between clients. The clients then take the submitted positions and include them into their local world instance respectively the data that has to be taken into account for calculations. In it's current state the dedicated server gives out all position data to every client. It does not do what everyone would think is the obvious way to limit client side processing load, doing some sort of regional selection for every client and just give that client the position data he needs, like for example only give out position data of objects in the sight range of the client. And this behavior leads to the widely varying simulation speed between clients. The simulation speed depends on the processing power of the client. Older CPU's that would have an acceptable performance in solo play have now to calculate a massive amount of positions more than they should and the simulation speed breaks down massively for these clients.

References

  1. 1.0 1.1 http://forums.keenswh.com/post/6923894