7 Days to Die

From Q
Jump to navigation Jump to search

Create a user for running 7 Days to Die

# useradd -m -s /bin/bash sevendtd

Become the sevendtd user so that any file you download is owned by the correct user.

# su -l sevendtd

Install the Steam command line interface

$ mkdir ~/SteamCMD
$ cd ~/SteamCMD
$ wget http://media.steampowered.com/client/steamcmd_linux.tar.gz
$ tar -xf steamcmd_linux.tar.gz

Test Steam.

$ ./steamcmd.sh
$ Ctrl-c

Obtain and run the server binary

$ mkdir ~/server
$ cd ~/SteamCMD
File: ~/SteamCMD/update_sevendtd.sh
./steamcmd.sh +login anonymous +force_install_dir ~/server +app_update 294420 +exit
$ chmod +x update_sevendtd.sh
$ ./update_sevendtd.sh

Run the server

$ tmux new -s sevendtd
$ cd ~/server
$ ./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log.txt -quit -batchmode -nographics -dedicated -configfile=serverconfig.xml
$ Ctrl-c

Edit configuration (the file is created when starting the server for the first time).

File: ~/serverconfig.xml
{
  [...]
  <property name="ServerPort"                           value="26900"/>                         <!-- Port you want the server to listen on. -->
  <property name="ServerIsPublic"                       value="false"/>                         <!-- Should this server register to master server -->
  <property name="ServerName"                           value="deltaquadrant"/>                 <!-- Whatever you want the name to be. -->
  <property name="ServerPassword"                       value="xxx"/>                           <!-- Password to gain entry to the server -->
  <property name="ServerMaxPlayerCount"                 value="8"/>                             <!-- Maximum Concurrent Players -->
  <property name="ServerDescription"                    value="7 Days to Die server"/>          <!-- Whatever you want the description to be. -->
  <property name="ServerWebsiteURL"                     value=""/>                              <!-- Website URL for the server -->
  <property name="GameWorld"                            value="Navezgane"/>                     <!-- Navezgane, Random Gen -->
  <property name="GameName"                             value="deltaquadrant"/>                 <!-- Whatever you want the game name to be THIS CONTROLS THE RANDOM GENERATION
  <property name="GameDifficulty"                       value="2"/>                             <!-- 0 - 5, 0=easiest, 5=hardest -->
  <property name="PlayerKillingMode"          value="0" />       <!-- Player Killing Settings (0 = No Killing, 1 = Kill Allies Only, 2 = Kill Strangers Only, 3 = Kill Everyone) -->
  <property name="PersistentPlayerProfiles"   value="false" />   <!-- If disabled a player can join with any selected profile. If true they will join with the last profile they joined with -->
  <property name="DropOnDeath"                          value="2" />                            <!-- 0 = everything, 1 = toolbelt only, 2 = backpack only, 3 = delete all -->
  <property name="LootRespawnDays"                      value="5" />                            <!-- days in whole numbers -->
  <property name="AirDropFrequency"                     value="12"/>                            <!-- How often airdrop occur in game-hours, 0 == never -->
  <property name="AirDropMarker"                        value="true"/>                          <!-- Sets if a marker is added to map/compass for air drops. -->
  [...]
}

Stopping the server

# su -l sevendtd
$ tmux attach -t sevendtd

On the 7 Days to Die server command-line.

$ Ctrl-c