Dedicated Server Setup: Linux and Windows

From Conan Exiles Wiki
Jump to: navigation, search


Dedicated Server Setup: Linux and Windows
Dedicated Server Setup: Linux and Windows
Author: jaktari  •  THJr  •  Melekaiah  •  LorenTedford64522


Introduction[edit | edit source]

This guide is an collection of all steps that can or need to be taken to set up an working Conan Exiles Server. Additionally side info about settings and adding mods ins included.

Basic requirements[edit | edit source]

Linux[edit | edit source]

The Linux Guide will take place in the command line, as that is in my opinion the fastest way to set up any Gameserver. This Guide is for 'Ubuntu'.

Setting Up SteamCMD[edit | edit source]

Do not run steamcmd while operating as the root user - to do so is a security risk. [1] To run SteamCMD and your Servers in an safe environment, create an user account named 'steam':

useradd -m steam

You can leave everything blank, except for the password. When this is done, move to the Home Directory:

cd /home/steam

You need to install the dependencies first:

sudo apt-get install lib32gcc1 software-properties-common -y
sudo dpkg --add-architecture i386
sudo apt-get update

Now you can finally install SteamCMD:

sudo apt-get install steamcmd

For Ubuntu Server 18.04 LTS you will need to edit /etc/apt/sources.list file Here is mine.

#deb http://archive.ubuntu.com/ubuntu bionic main
#deb http://archive.ubuntu.com/ubuntu bionic-security main
#deb http://archive.ubuntu.com/ubuntu bionic-updates main
# Modification for Conan Exiles below.
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic universe
deb http://archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse

Then run apt-get update and apt-get upgrade. Next run the installer to install steam and continue with the rest of the tutorial.

sudo apt-get install steamcmd

Finally, link the SteamCMD executable so it is startable by typing steamcmd at any place in the terminal:

ln -s /usr/games/steamcmd steamcmd

Using SteamCMD to install the Conan Exiles Server[edit | edit source]

First Configure Steam for Windows Version if your using Linux Operating System

steamcmd +@sSteamCmdForcePlatformType windows

Run SteamCMD now using the following command:

steamcmd

SteamCMD will now open and install any pending updates. After this is done, execute the following command to login to the SteamAPI:

login anonymous

After this is done, you will want to select an directory for your Server:

force_install_dir <path>

After selecting your directory, use this command to download the Server Files:

app_update 443030

All in one installation line looks like this.

steamcmd +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir /home/user/server +app_update 443030 +exit

Congratulations, your Server will now download and you can continue with the next step!

Installing Wine and Screen[edit | edit source]

Wine is an program that allows Windows Programs to be run on Linux Distributions. We will use it to make the Conan Exiles Server compatible with Ubuntu. Screen will be used to run the Server in the background without the need to keep an Terminal open.

Install Wine by running the following Commands:

wget https://dl.winehq.org/wine-builds/Release.key 
sudo apt-key add Release.key

The updated instructions (as of 10th may 2019) have the following lines instead: this guide worked with the above, but adding this for future reference.

wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add 

The repositories were changed a while ago, and you have a different one depending on your version of Ubuntu.

For Ubuntu 18.10

sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ cosmic main'

For Ubuntu 18.04

sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'

For Ubuntu 16.04

sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main'

Now you can finnish off the wine install with the following.

sudo apt-get update
sudo apt-get install --install-recommends winehq-stable

Note: Wine is big and might take a while to install. Now you will want to install Screen and xvfb:

 sudo apt-get install screen xvfb

Congratulations, you've done everything needed to be able to run the Server comfortably! To create all Config Files run the Server once using these commands:

cd /InstallDirectory
xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine ConanSandboxServer.exe -log

After a while (2-5 Minutes) press ctrl+C to close the Server. All config files should now be present.

Configuring the Server[edit | edit source]

There are various settings within various files in the directory. To make this as easy as possible, only Settings that can't or shouldn't be changed in game are listed. Various Additional Commands can be found below. All .ini files are located under <Server Directory>/ConanSandbox/Saved/Config/WindowsServer/

Engine.ini[edit | edit source]

Add these lines in this order at the Bottom of your .ini.

[URL]
Port=7777                 ;The Port for your Server
[OnlineSubsystemSteam]
ServerName=               ;The Name of your Server which is shown in the Server Browser
ServerQueryPort=27015     ;The Port the SteamAPI will query your Server from
ServerPassword=           ;The Password needed to access the Server

ServerSettings.ini[edit | edit source]

Add these lines at the Bottom of your .ini if they don't exist yet.

MaxNudity=                               ;Either 0, 1 or 2. 2=Full, 1= Partial, 0=None
LogoutCharactersRemainInTheWorld=False   ;This option currently should be disabled as there is an issue with Bodies
PVPEnabled=False                         ;Add this line to disable PVP
AdminPassword=                           ;This option is important: Use this to change all Settings ingame later.

Game.ini[edit | edit source]

Add these lines at the Bottom of your .ini if they don't exist yet.

[ConanSandbox]
UserID=steam
[/script/engine.gamesession]
MaxPlayers=20                          ;you can choose the max allowed players on the server
[/script/engine.gamenetworkmanager]
TotalNetBandwidth=4000000              ;careful changing the bandwith values as it may cause lags to your players
MaxDynamicBandwidth=100000
MinDynamicBandwidth=40000

Running the Server[edit | edit source]

The Server can be run using the following Commands:

cd /ServerDirectory
screen xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine ConanSandboxServer.exe -log

Alternatively you can place a start.sh in the Server Folder with the following content:

#!/bin/sh
screen xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine ConanSandboxServer.exe -log

Once your server is started, reaccess the Console by typing

screen -r

in the terminal, then retyping that Command with the PID attached if multiple Screen Sessions are running.

screen -r <PID>

Once inside the console, stop the Server by using the Ctrl+C Shortcut.

Updating and Additions[edit | edit source]

To Update the Server, simply stop it using the above described method. After the Server has stopped, open SteamCMD in the Terminal by typing:

steamcmd +@sSteamCmdForcePlatformType windows

After that type:

login anonymous

After the login process is done, use this Command to update the Server:

app_update 443030

When this process is finished, your Server should be up to date.

Shell script update Example update.sh inside update.sh you need to have the below information.

#!/bin/sh
screen steamcmd +@sSteamCmdForcePlatformType windows +login anonymous +app_update 443030 +exit

Known Problems[edit | edit source]

  • Running SteamCMD using scripts sometimes leads to problems that render the Server unusable. Solution: Do the manual steps as described above.
  • Dreamworld:Display: SQLite database open FAILED. Solution: Run as root account.
  • to unimplemented function msvcp140.dll.?_IsNonBlockingThread@_Task_impl_base@details@Concurrency@@SA_NXZ Solution: Delete game-db.shm and game-db.wal, additionally delete the Logs Folder.

Windows[edit | edit source]

PCinvasion.com guide to setting up a windows Conan Exiles dedicated server

Adding Mods[edit | edit source]

Adding mods can be done by steamcmd command example shown below.

steamcmd +@sSteamCmdForcePlatformType windows +login anonymous +workshop_download_item 440900 999999999

This is only an example of a mod but what you need is the workshop id number which is shown in the address bar of your web browser.

Example: https://steamcommunity.com/sharedfiles/filedetails/?id= After the = sign there is a long number this number is associated with the workshop mod your looking at subscribing to or modding your server to. That number goes into what is shown up at the top as the 999999999 number above.

Ended up writing a shell script to kill the server process then update the game and then the workshop items I am using. The reason I automated this process is because mods are constantly being updated and if users have a miss match on there mods they won't be able to login to the server..

Below is an examples of shell scripts i wrote for this process..

Create a new shell script by using nano an editor in linux. By using the command: nano update.sh Place below code in the document the use ctrl - x and save it.

#!/bin/sh
killall 9 ConanSandboxServer.exe
killall 9 ConanSandboxServer-Win64-Test.exe
killall 9 Xvfb
/usr/bin/screen -d -m steamcmd +@sSteamCmdForcePlatformType windows +login anonymous +app_update 443030 +exit
sleep 2s
#sh /home/user/workshopmapupdate.sh
## Uncomment workshopmapupdate.sh for use of mods.

Next you will want to create workshopmapupdate.sh To do this use nano as the editor as performed above for the first part of the process and create the file. Example: nano workshopmapupdate.sh Once the below information is copied and pasted and adjusted for the mods you wish to add use ctrl - x then save it.

#!/bin/sh
/usr/bin/screen -d -m steamcmd +@sSteamCmdForcePlatformType windows +login anonymous +workshop_download_item 440900 111111111111111 +workshop_download_item 440900 2222222222222222 +exit

The above should be written all in one line do not use enter to go to the next line.. This is a very very long command line. In place of the 1's you will want to put your first id number as gathered at the end of that hit space and put a plus sign to start the next command in this case we start off with the second workshop item 2's. You can add as many workshop mods that you want but they ALL MUST BE ON THE SAME LINE. End the command process by using a plus sign then exit after the last work shop map has been placed in your shell script.

The Mods will be downloaded to a file located in the home directory of the steam user that you are using.. This directory is hidden but can be accessed by using the cd commands like listed below.

Example:

cd /home/user/.steam/SteamApps/workshop/content/440900

The folders located in this place is the mods that you are using you will need to later direct your modlist.txt to the .pak files located inside each of the folders.

Next we need to create the Mods folder.

Go into your saved directory where you have stored the server in our case we used a folder called server. Inside this folder look for ConanSandbox folder. You will want to change director into this folder by using the cd command like this.. Example: cd ~/server/ConanSandbox

After you are inside the ConanSandbox folder you will want to make a directory called: Mods Example command: mkdir Mods

Now you will want to change directory into mods to do this type: cd ./Mods

Use nano to create a file called modlist.txt Example command: nano modlist.txt

Here you will want to add the file locations to the .pak files of the mods you are using for your server.

Below is an example.

/home/user/.steam/SteamApps/workshop/content/440900/1111111111/Modlist1.pak
/home/user/.steam/SteamApps/workshop/content/440900/2222222222/Modlist2.pak
/home/user/.steam/SteamApps/workshop/content/440900/3333333333/Modlist3.pak
/home/user/.steam/SteamApps/workshop/content/440900/4444444444/Modlist4.pak
/home/user/.steam/SteamApps/workshop/content/440900/5555555555/Modlist5.pak

Use ctrl-x command to save the file .

Now you will eventually want to automate this process by crontab. To access crontab type in commandline: crontab -e

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
01 3 * * * cd /home/user && sh update.sh
07 3 * * * cd /home/user/server && sh start.sh
01 9 * * * cd /home/user && sh update.sh
07 9 * * * cd /home/user/server && sh start.sh

UPDATE

Your start script should look like this if your using cron to start the game for automation. In this case the script is named start.sh and we located it in /home/user/server/ folder.

#!/bin/sh
/usr/bin/screen -d -m xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine /home/user/server/ConanSandboxServer.exe -log
#### This should be placed in your home directory some where.. 
#### The above line of code needs to be on one line.

So the above is an example the file locations and how you can use crontab to automatically update your game server and the workshop mods using linux.

Backing Up and Savefiles[edit | edit source]

Removing Mods[edit | edit source]

Removing a mod from the server and using the same database may cause issues.

When you remove a mod, those mods leave a lot of garbage behind.

This can cause undesired effects. Removing a mod is sometimes paired with wiping the database clean for a fresh install of the server.

Wiping your Savefiles[edit | edit source]

CAREFUL DOING SO WILL ERASE ALL PROGRESSION AND SAVED CONSTRUCTIONS!

Delete or rename the game.db file. This will recreate a new empty file.

References[edit | edit source]