7 Days to Die Dedicated Server

From Valve Developer Community
Jump to: navigation, search

A 7 Days to Die Dedicated Server is used for playing with multiple people in the same world. Servers can be hosted by yourself, as well as by a company. Servers used to only allow up to 4 people, but that was changed as of Alpha 1.1 Official site

Dedicated server

Installation

  • Start SteamCMD
    • Login with a Steam account (Subject to the availability of the game on the accounts). login [username] [password] (You can also use login anonymous)
    • Select install folder: force_install_dir c:\SteamCMD\7_Days_to_Die_server\ (You do not have to use this exact folder)
    • Run: app_update 294420 to download the latest 7 Days to Die Dedicated Server Alpha stable build.
    • Run: app_update 294420 -beta latest_experimental instead if you want the latest experimental build.

Serverconfig.xml

This is a table of the up-to-date Alpha 19 (B178) serverconfig.xml file that comes with 7 Days to Die.

Only change the data in the "value=" part of the file, otherwise it will not work.

Server Representation

Option Values Description
ServerName My Game Host Whatever you want the name of the server to be.
ServerDescription A 7 Days to Die server Whatever you want the server description to be, will be shown in the server browser.
ServerWebsiteURL Website URL for the server, will be shown in the serverbrowser as a clickable link
ServerPassword Password to gain entry to the server
ServerLoginConfirmationText If set the user will see the message during joining the server and has to confirm it before continuing. For more complex changes to this window you can change the "serverjoinrulesdialog" window in XUi

Networking

Option Values Description
ServerPort 26900 Port you want the server to listen on. Keep it in the ranges 26900 to 26905 or 27015 to 27020 if you want PCs on the same LAN to find it as a LAN server.
ServerVisibility 2 Visibility of this server: 2 = public, 1 = only shown to friends, 0 = not listed. As you are never friend of a dedicated server setting this to "1" will only work when the first player connects manually by IP.
ServerDisabledNetworkProtocols SteamNetworking Networking protocols that should NOT be used. Separated by comma. Possible values: LiteNetLib, SteamNetworking. Dedicated servers should disable SteamNetworking if there is no NAT router in between your users and the server or when port-forwarding is set up correctly
ServerMaxWorldTransferSpeedKiBs 512 Maximum (!) speed in kiB/s the world is transferred at to a client on first connect if it does not have the world yet. Maximum is about 1300 kiB/s, even if you set a higher value

Slots

Option Values Description
ServerMaxPlayerCount 8 Maximum Concurrent Players
ServerReservedSlots 0 Out of the MaxPlayerCount this many slots can only be used by players with a specific permission level
ServerReservedSlotsPermission 100 Required permission level to use reserved slots above
ServerAdminSlots 0 This many admins can still join even if the server has reached MaxPlayerCount
ServerAdminSlotsPermission 0 Required permission level to use the admin slots above

Admin interfaces

Option Values Description
ControlPanelEnabled false Enable/Disable the web control panel
ControlPanelPort 8080 Enable/Disable the web control panel
ControlPanelPassword CHANGEME Enable/Disable the web control panel
TelnetEnabled true Enable/Disable the telnet
TelnetPort 8081 Port of the telnet server
TelnetPassword Password to gain entry to telnet interface. If no password is set the server will only listen on the local loopback interface
TelnetFailedLoginLimit 10 After this many wrong passwords from a single remote client the client will be blocked from connecting to the Telnet interface
TelnetFailedLoginsBlocktime 10 How long will the block persist (in seconds)
TerminalWindowEnabled true Show a terminal window for log output / command input (Windows only)

Folder and file locations

Option Values Description
AdminFileName serveradmin.xml Server admin file name. Path relative to the SaveGameFolder
UserDataFolder absolute path Use this to override where the server stores all generated data, including RWG generated worlds. Do not forget to uncomment the entry!
SaveGameFolder absolute path Use this to only override the save game path. Do not forget to uncomment the entry!

Other technical settings

Option Values Description
EACEnabled true Enables/Disables EasyAntiCheat
HideCommandExecutionLog 0 Hide logging of command execution. 0 = show everything, 1 = hide only from Telnet/ControlPanel, 2 = also hide from remote game clients, 3 = hide everything
MaxUncoveredMapChunksPerPlayer 131072 Override how many chunks can be uncovered on the ingame map by each player. Resulting max map file size limit per player is (x * 512 Bytes), uncovered area is (x * 256 m²). Default 131072 means max 32 km² can be uncovered at any time
PersistentPlayerProfiles false If disabled a player can join with any selected profile. If true they will join with the last profile they joined with

World

Option Values Description
GameWorld Navezgane "RWG" (see WorldGenSeed and WorldGenSize options below) or any already existing world name in the Worlds folder (currently shipping with e.g. "Navezgane", "PREGEN01", ...)
WorldGenSeed asdf If RWG this is the seed for the generation of the new world. If a world with the resulting name already exists it will simply load it
WorldGenSize 4096 If RWG this controls the width and height of the created world. It is also used in combination with WorldGenSeed to create the internal RWG seed thus also creating a unique map name even if using the same WorldGenSeed. Has to be between 2048 and 16384, though large map sizes will take long to generate / download / load
GameName My Game Whatever you want the game name to be. This affects the save game name as well as the seed used when placing decoration (trees etc) in the world. It does not control the generic layout of the world if creating an RWG world
GameMode GameModeSurvival GameModeSurvival

Difficulty

Option Values Description
GameDifficulty 2 0 - 5, 0=easiest, 5=hardest
BlockDamagePlayer 100 How much damage do players to blocks (percentage in whole numbers)
BlockDamageAI 100 How much damage do AIs to blocks (percentage in whole numbers)
BlockDamageAIBM 100 How much damage do AIs during blood moons to blocks (percentage in whole numbers)
XPMultiplier 100 XP gain multiplier (percentage in whole numbers)
PlayerSafeZoneLevel 5 If a player is less than or equal to this level he will create a safe zone (no enemies) when spawned
PlayerSafeZoneHours 5 Hours in world time this safe zone exists

Unnamed

Option Values Description
BuildCreate false cheat mode on/off
DayNightLength 60 real time minutes per in game day: 60 minutes
DayLightLength 18 in game hours the sun shines per day: 18 hours day light per in game day
DropOnDeath 1 0 = nothing, 1 = everything, 2 = toolbelt only, 3 = backpack only, 4 = delete all
DropOnQuit 0 0 = nothing, 1 = everything, 2 = toolbelt only, 3 = backpack only
BedrollDeadZoneSize 15 Size (box "radius", so a box with 2 times the given value for each side's length) of bedroll deadzone, no zombies will spawn inside this area, and any cleared sleeper volumes that touch a bedroll deadzone will not spawn after they've been cleared.
BedrollExpiryTime 45 Number of days a bedroll stays active after owner was last online

Performance related

Option Values Description
MaxSpawnedZombies 64 This setting covers the entire map. There can only be this many zombies on the entire map at one time. Changing this setting has a huge impact on performance.
MaxSpawnedAnimals 50 If your server has a large number of players you can increase this limit to add more wildlife. Animals don't consume as much CPU as zombies. NOTE: That this doesn't cause more animals to spawn arbitrarily: The biome spawning system only spawns a certain number of animals in a given area, but if you have lots of players that are all spread out then you may be hitting the limit and can increase it.
ServerMaxAllowedViewDistance 12 Max viewdistance a client may request (6 - 12). High impact on memory usage and performance.

Zombie settings

Option Values Description
EnemySpawnMode true Enable/Disable enemy spawning
EnemyDifficulty 0 0 = Normal, 1 = Feral
ZombieMove 0 0-4 (walk, jog, run, sprint, nightmare)
ZombieMoveNight 3 0-4 (walk, jog, run, sprint, nightmare)
ZombieFeralMove 3 0-4 (walk, jog, run, sprint, nightmare)
ZombieBMMove 3 0-4 (walk, jog, run, sprint, nightmare)
BloodMoonFrequency 7 What frequency (in days) should a blood moon take place. Set to "0" for no blood moons
BloodMoonRange 0 How many days can the actual blood moon day randomly deviate from the above setting. Setting this to 0 makes blood moons happen exactly each Nth day as specified in BloodMoonFrequency
BloodMoonWarning 8 The Hour number that the red day number begins on a blood moon day. Setting this to -1 makes the red never show.
BloodMoonEnemyCount 8 This is the number of zombies that can be alive (spawned at the same time) at any time PER PLAYER during a blood moon horde, however, MaxSpawnedZombies overrides this number in multiplayer games. Also note that your game stage sets the max number of zombies PER PARTY. Low game stage values can result in lower number of zombies than the BloodMoonEnemyCount setting. Changing this setting has a huge impact on performance. -->

Loot

Option Values Description
LootAbundance 100 percentage in whole numbers
LootRespawnDays 30 days in whole numbers
AirDropFrequency 72 How often airdrop occur in game-hours, 0=never
AirDropMarker False Sets if a marker is added to map/compass for air drops

Multiplayer

Option Values Description
PartySharedKillRange 100 The distance you must be within to receive party shared kill xp and quest party kill objective credit.
PartyKillingMode 3 Player Killing Settings (0 = No Killing, 1 = Kill Allies Only, 2 = Kill Strangers Only, 3 = Kill Everyone)

Land claim options

Option Values Description
LandClaimCount 1 Maximum allowed land claims per player
LandClaimSize 41 Size in blocks that is protected by a land claim block
LandClaimDeadZone 30 Land claim blocks must be this many blocks apart (unless you are friends with the other player)
LandClaimExpiryTime 7 The number of days a player can be offline before their claims expire and are no longer protected
LandClaimDecayMode 0 Controls how offline players land claims decay. 0=Slow (Linear) , 1=Fast (Exponential), 2=None (Full protection until claim is expired).
LandClaimOnlineDurabilityModifier 4 How much protected claim area block hardness is increased when a player is online. 0 means infinite (no damage will ever be taken). Default is 4x
LandClaimOfflineDurabilityModifier 4 How much protected claim area block hardness is increased when a player is offline. 0 means infinite (no damage will ever be taken). Default is 4x
LandClaimOfflineDelay 0 The number of minutes after a player logs out that the land claim area hardness transitions from online to offline. Default is 0

Starting the Server

To host a server just edit the startdedicated.bat file and the serverconfig.xml using TextPad or notepad++. You shouldn't need to edit the startdedicated.bat. In the batch file you will see the following text:

startdedicated.bat

@echo off
rem Starts a dedicated server
rem
rem -quit, -batchmode, -nographics: Unity commands
rem -configfile			  : Allows server settings to be set up in an xml config file. Use no path if in same dir or full path.
rem -dedicated                    : Has to be the last option to start the dedicated server.

set LOGTIMESTAMP=


:: --------------------------------------------
:: REMOVE OLD LOGS (only keep latest 20)

for /f "tokens=* skip=19" %%F in ('dir 7DaysToDieServer_Data\output_log*.txt /o-d /tc /b') do del 7DaysToDieServer_Data\%%F



:: --------------------------------------------
:: BUILDING TIMESTAMP FOR LOGFILE

:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_start

:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
	IF "%%~L"=="" goto s_done
	Set _yyyy=%%L
	Set _mm=00%%J
	Set _dd=00%%G
	Set _hour=00%%H
	Set _minute=00%%I
	Set _second=00%%K
)
:s_done

:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
Set _hour=%_hour:~-2%
Set _minute=%_minute:~-2%
Set _second=%_second:~-2%

Set LOGTIMESTAMP=__%_yyyy%-%_mm%-%_dd%__%_hour%-%_minute%-%_second%

:s_start


:: --------------------------------------------
:: STARTING SERVER


echo|set /p="251570" > steam_appid.txt

start 7daystodieserver -logfile 7DaysToDieServer_Data\output_log%LOGTIMESTAMP%.txt -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated


echo Starting server ...
timeout 15

cls

echo.
echo Server running in background, you can close this window.
echo You can check the task manager if the server process is really running.
echo.
echo.

pause

Firewall Ports

You will need to open the following ports on your PC's firewall in order for people to be able to see and connect to your server.

TCP

  • 8080-8081 (ONLY if you plan to administer your server remotely AND do not change the ports in the serverconfig.)
  • 8082 (If you are using Alloc's mods, this is the control panel port +2. If you use 8080 then you need 8082.)
  • 26900 (This is the port designated in the serverconfig)

UDP

  • 26900-26903

Port Forwarding

If you are behind a router, you will need to tell your router that an incoming connection is meant for your server. This is called forwarding a port. You will need to port forward ports 26900-26902 so that others may join.

If router support UPnP - you can use this http://upnp-portmapper.sourceforge.net/

Don't know how to port forward? follow these instructions:

  1. Go to this Site
  2. Select your router brand
  3. Select your router version (if your version is not there, pick the one closest to your version.)
  4. Select 7 Days to Die
  5. Follow the instructions on the site

If you have completed these steps correctly, your friends should now be able to join.

Finding your own External IP

To find the IP which your friends need to use go to this Site. There you will find your External IP. Send it to your friends and they should be able to join if you have already finished Port Forwarding (steps above) your router.

Looking for servers

If you are looking for a server to play on, you can find one on the current top servers list for 7 Days To Die here 7daystodie-servers.com or use the server browser on your game client.

For computers on the same local network as the server you can connect to it by using its internal IP, simply enter this and the chosen port number into the two boxes at the bottom of the games server browser screen.
If you are hosting the server on the same computer you intend to play from you can use 127.0.0.1 (localhost) as the connection IP.
In all other cases you'll need to determine the servers IP address or domain name (if used) in order to make a connection. Windows users should open start, click run or search, type cmd. In the window that opens type ipconfig. You'll see a list of information. You're looking for IP address.

Example: Ethernet adapter Local Area Connection:

  Connection-specific DNS Suffix  . : home
     IPv4 Address. . . . . . . . . . . : 192.168.1.100
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . : 192.168.1.1


Where mine says 192.168.1.100 that's the IP your server has.

Renting a server

There are several companies/websites that allow you to rent a server from them. This rented server will reside in a datacenter and hosted by them.

These servers are mostly 24/7 servers. This is useful because you won't need to keep your computer running 24/7. You can rent servers to many different specifications, some may not be powerful enough to host a server. Generally, network connections at a datacenter far exceed what is available to residential ISPs, which will cut down on latency that you might experience hosting at home.

Dedicated Server Providers

You can use a Server Manager to setup and manage the server. Please look through this forum post for alternative server management tools

References