Dedicated server - Advanced

**Out of Reach dedicated server** can be started as Steam Tool (more details here) or as a stand-alone application which can be downloaded and updated with use of SteamCMD.

# SteamCMD

SteamCMD is used for download and installation of **Out of Reach** dedicated server. Please refer to SteamCMD page for detailed instruction on its installation and usage.

# Linux

## Server installation

1. Create server folder (referred as **<install\_dir>**)

2. Launch **SteamCMD** and download server

```
Steam> login klein38
Steam> force_install_dir <install_dir>
Steam> app_update 406800 validate
Steam> exit

```

3. Install required .so libraries

```
sudo cp <install_dir>/steamclient.so /usr/lib/
echo "<install_dir_absolute_path>/SFS2X/lib/linux64" | sudo tee /etc/ld.so.conf.d/oor.conf
sudo ldconfig

```

## Launching server

To launch **Out of Reach** dedicated server use the following command:

```
<install_dir>/SFS2X/sfs2x-service start

```

To stop a server use the following command:

```
<install_dir>/SFS2X/sfs2x-service stop

```

Consider adding **<install\_dir>/SFS2X/** path to you PATH environment variable

# Windows

## Server installation

1. Create server folder, i.e. C:\oor-server from now on referred as **<install\_dir>**

2. Launch **SteamCMD** and download server

```
Steam> login anonymous
Steam> force_install_dir <install_dir>
Steam> app_update 406800 validate
Steam> exit

```

3. Make sure you have installed Microsoft Visual C++ 2015 Redistributable (x64). You can download from here.

## Launching server

To launch **Out of Reach** dedicated server use:

```
<install_dir>/SFS/sfs2x-standalone.exe

```

# Web console

By default web console is available at **http://[host]:19933/web-console** URL (port number can be changed, please check Network section for more details). Web console user is: **admin** and password is: **pass**

Remember to change the password after first login!

At the first start, server does not have a name and region selected and thus will not be able to connect to Steam Master Server and will not be visible in the game on servers list. To set a name and region go to **Server parameters** menu.

# **Network**

By default **Out of Reach** server binds to *0.0.0.0* network interface **which in most cases is fine and there is no need to change it**

But if you you would like to change it to different address, two steps are required:

1. Set IP address as **oor.server.ip.address** server launch parameter (or environment variable)
2. Change Smartfox Server configuration in *<install\_dir>/SFS2X/config/server.xml* file. Change *addresses* in *socketAddress* section:

```
<socketAddresses>
    <socket address="0.0.0.0" port="27016" type="TCP"/>
    <socket address="0.0.0.0" port="27016" type="UDP"/>
</socketAddresses>

```

**Out of Reach** dedicated server listens for incoming connections on the ports listed below. Ensure your network configuration allows incoming connections to these ports and directs them to the host that will be running your dedicated server.

 Steam's Server browser query port
 Web console port

\*Those are default port numbers, they can be overwritten in server launch parameters (or environment variables). Please refer to Server launch parameters section.

# Server update

To update server launch **SteamCMD** and use following commands

```
Steam> login anonymous
Steam> app_update 406800 validate
Steam> exit

```

To automate server update please refer to SteamCMD wiki.

# **Database**

**Out of Reach Dedicated Server** requires SQL databases to operate, by default it uses PostgreSQL 9.3.

There is an option to use less efficient, but embedded (no additional installation required) H2 database. To do so you need to add **-Dspring.profiles.active=h2** server launch parameter. Please refer to Server launch parameters section.

If you still want to go with stand-alone PostgreSQL, please checkout following steps

## Installation on Linux

1. Installation of PostgreSQL with use of **apt-get**

```
sudo apt-get install postgresql

```

2. Creation of **some\_user** database user with **some\_password** password and **oor\_server** database. Password is encrypted for **some\_user** database user! Please refer to this page for PostgreSQL password encryption details.

```
echo "CREATE ROLE some_user LOGIN ENCRYPTED PASSWORD 'md59e2e8a8fce0afe2d60bd8207455192cd' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; CREATE DATABASE oor_server WITH ENCODING='UTF8' OWNER=some_user CONNECTION LIMIT=-1; ALTER ROLE some_user SET search_path = oor_server;" | sudo -u postgres psql

```

## Installation on Windows

1. Download PostgreSQL 9.3 Windows installer, i.e. from here

2. Start installer to install database

3. When installation is done, start Windows console and paste there following command:

```
echo CREATE ROLE some_user LOGIN ENCRYPTED PASSWORD 'md59e2e8a8fce0afe2d60bd8207455192cd' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; CREATE DATABASE oor_server WITH ENCODING='UTF8' OWNER=some_user CONNECTION LIMIT=-1; ALTER ROLE some_user SET search_path = oor_server; | "C:\Program Files\PostgreSQL\9.3\bin\psql.exe" -U postgres

```

Those are default values (user, password and database name) used by the server. You can change them (as well as database host), to do so please refer to Server launch parameters section.

Database is also by default installed at **C:\Program Files\PostgreSQL\9.3** directory. If you have installed it in some other location, please change it accordingly.

Password is encrypted for **some\_user** database user! If you would like to use different user and password please refer to this page for PostgreSQL password encryption details.

No additional SQLs are needed, database migration is executed each time (if needed) at server startup.

# Time zone

**UTC** (Universal Time Coordinated) time zone is preferred as it's 'immune' to **DST** (Daylight Saving Time) change. After each change of server's system time, **Out of Reach** dedicated server needs to be restarted.

# Parameters

Server launch parameters can be specified in **<install\_dir>/SFS2X/sfs2x-service.vmoptions** file in Java Virtual Machine style:

```
-D[parameter.name]=[parameter.value]

```

i.e.

```
-Door.database.name=oor_server

```

Here you can find the list of all supported parameters: