7 Days to Die Dedicated Server: Difference between revisions
SylenThunder (talk | contribs) m (→Networking) |
SylenThunder (talk | contribs) |
||
(23 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
**Run: <code>app_update 294420</code> to download the latest 7 Days to Die Dedicated Server Alpha stable build. | **Run: <code>app_update 294420</code> to download the latest 7 Days to Die Dedicated Server Alpha stable build. | ||
**Run: <code>app_update 294420 -beta latest_experimental</code> instead if you want the latest experimental build. | **Run: <code>app_update 294420 -beta latest_experimental</code> instead if you want the latest experimental build. | ||
===== Sample Commands ===== | |||
<br> | |||
'''Stable'''<br> | |||
steamcmd +force_install_dir "your\install\path\here" +login anonymous +app_update 294420 -validate +quit<br> | |||
''Note: Sometimes Steam misbehaves, and you have to add "-beta public"''<br> | |||
<br> | |||
'''Experimental'''<br> | |||
steamcmd +force_install_dir "your\install\path\here" +login anonymous +app_update 294420 -beta latest_experimental -validate +quit<br> | |||
<br> | |||
'''Specific Version'''<br> | |||
steamcmd +force_install_dir "your\install\path\here" +login anonymous +app_update 294420 -beta a20.4 -validate +quit | |||
== Serverconfig.xml == | == Serverconfig.xml == | ||
This is a table of the up-to-date | This is a table of the up-to-date v1.3 (b9) 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. | Only change the data in the "value=" part of the file, otherwise it will not work. | ||
It is strongly advised to never use the default config file. Rename your file to something unique to your server, and then edit the -configfile= to match the name of your new xml file. | |||
=== '''GENERAL SERVER SETTINGS''' === | === '''GENERAL SERVER SETTINGS''' === | ||
Line 68: | Line 83: | ||
|ServerPort | |ServerPort | ||
|26900 | |26900 | ||
|Port you want the server to listen on. Keep it in the ranges 26900 to 26905 | |Port you want the server to listen on. Keep it in the ranges 26900 to 26905 if you want PCs on the same LAN to find it as a LAN server. It is advised to avoid ports 27000-27099 at all costs due to heavy Steam traffic. | ||
|- | |- | ||
|ServerVisibility | |ServerVisibility | ||
Line 93: | Line 108: | ||
|ServerMaxPlayerCount | |ServerMaxPlayerCount | ||
|8 | |8 | ||
|Maximum Concurrent Players | |Maximum Concurrent Players ''(Only 8-players are supported. Past 20 will cause issues with data being saved properly.)'' | ||
|- | |- | ||
|ServerReservedSlots | |ServerReservedSlots | ||
Line 112: | Line 127: | ||
|- | |- | ||
|} | |} | ||
=== Admin interfaces === | === Admin interfaces === | ||
{|class="wikitable" | {|class="wikitable" | ||
Line 174: | Line 190: | ||
|UserDataFolder | |UserDataFolder | ||
|absolute path | |absolute path | ||
|Use this to override where the server stores all generated data, including RWG generated worlds. Do not forget to uncomment the entry! | |Use this to override where the server stores all generated data, including RWG generated worlds. Do not forget to uncomment the entry if you use it! Save will be created in a "Saves" folder in that location, and there will also be separate folders for "GeneratedWorlds" and "Twitch" | ||
|- | |- | ||
|} | |} | ||
=== Other technical settings === | === Other technical settings === | ||
{|class="wikitable" | {|class="wikitable" | ||
Line 187: | Line 200: | ||
!Values | !Values | ||
!Description | !Description | ||
|- | |||
|ServerAllowCrossplay | |||
|false | |||
|Enables/Disables crossplay, crossplay servers will only be found in searches and joinable if sanctions are not ignored, and have a default or lower player slot count. | |||
|- | |- | ||
|EACEnabled | |EACEnabled | ||
|true | |true | ||
|Enables/Disables EasyAntiCheat | |Enables/Disables EasyAntiCheat | ||
|- | |||
|IgnoreEOSSanctions | |||
|false | |||
|Ignore EOS sanctions when allowing players to join. ''(not 100% sure how this system functions currently. More details to come)'' | |||
|- | |- | ||
|HideCommandExecutionLog | |HideCommandExecutionLog | ||
Line 203: | Line 224: | ||
|false | |false | ||
|If disabled a player can join with any selected profile. If true they will join with the last profile they joined with | |If disabled a player can join with any selected profile. If true they will join with the last profile they joined with | ||
|- | |||
|MaxChunkAge | |||
|<nowiki>-1</nowiki> | |||
|The number of in-game days which must pass since visiting a chunk before it will reset to its original state if not revisited or protected ''(e.g. by a land claim or bedroll being in close proximity)''. | |||
|- | |||
|SaveDataLimit | |||
|<nowiki>-1</nowiki> | |||
|The maximum disk space allowance for each saved game in megabytes (MB). Saved chunks may be forcibly reset to their original states to free up space when this limit is reached. Negative values disable the limit. | |||
|- | |- | ||
|} | |} | ||
=== '''GAMEPLAY''' === | === '''GAMEPLAY''' === | ||
Line 216: | Line 246: | ||
|GameWorld | |GameWorld | ||
|Navezgane | |Navezgane | ||
|"RWG" (see WorldGenSeed and WorldGenSize options below) or any already existing world name in the Worlds folder (currently shipping with e.g. "Navezgane", " | |"RWG" (see WorldGenSeed and WorldGenSize options below) or any already existing world name in the Worlds folder (currently shipping with e.g. "Navezgane", "Pregen04k1", ...) | ||
|- | |- | ||
|WorldGenSeed | |WorldGenSeed | ||
Line 244: | Line 274: | ||
|- | |- | ||
|GameDifficulty | |GameDifficulty | ||
| | |1 | ||
|0 - 5, 0=easiest, 5=hardest | |0 - 5, 0=easiest, 5=hardest ''(<nowiki>0-Scavenger, 1-Adventurer, 2-Nomad, 3-Warrior, 4-Survivalist, 5-Insane</nowiki>)'' | ||
|- | |- | ||
|BlockDamagePlayer | |BlockDamagePlayer | ||
Line 272: | Line 302: | ||
|- | |- | ||
|} | |} | ||
=== | |||
=== Game Rules === | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
Line 290: | Line 321: | ||
|18 | |18 | ||
|in game hours the sun shines per day: 18 hours day light per in game day | |in game hours the sun shines per day: 18 hours day light per in game day | ||
|- | |||
|BiomeProgression | |||
|true | |||
|Enables biome hazards and loot stage caps to promote biome progression. Loot stage caps are increased by completing biome challenges. | |||
|- | |||
|StormFreq | |||
|100 | |||
|Adjusts the frequency of storms. 0% turns them off. Vanilla values: 0, 50, 100, 150, 200, 300, 400, 500 | |||
|- | |- | ||
|DeathPenalty | |DeathPenalty | ||
Line 310: | Line 349: | ||
|45 | |45 | ||
|Number of days a bedroll stays active after owner was last online | |Number of days a bedroll stays active after owner was last online | ||
|- | |||
|AllowSpawnNearFriend | |||
|2 | |||
|Can new players joining the server for the first time select to join near any friend playing at the same time? 0 = Disabled, 1 = Always, 2 = Only near friends in forest biome | |||
|- | |- | ||
|} | |} | ||
Line 322: | Line 365: | ||
|MaxSpawnedZombies | |MaxSpawnedZombies | ||
|64 | |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. | |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. ''(It is not recommended to exceed 90 on recommended hardware, or 128 on high-end hardware.)'' | ||
|- | |- | ||
|MaxSpawnedAnimals | |MaxSpawnedAnimals | ||
|50 | |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. | |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. Do not set this higher than 90. | ||
|- | |- | ||
|ServerMaxAllowedViewDistance | |ServerMaxAllowedViewDistance | ||
Line 383: | Line 426: | ||
|BloodMoonEnemyCount | |BloodMoonEnemyCount | ||
|8 | |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. | |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 === | === Loot === | ||
{|class="wikitable" | {|class="wikitable" | ||
Line 398: | Line 442: | ||
|- | |- | ||
|LootRespawnDays | |LootRespawnDays | ||
| | |7 | ||
|days in whole numbers | |days in whole numbers | ||
|- | |- | ||
Line 406: | Line 450: | ||
|- | |- | ||
|AirDropMarker | |AirDropMarker | ||
| | |true | ||
|Sets if a marker is added to map/compass for air drops | |Sets if a marker is added to map/compass for air drops | ||
|- | |- | ||
Line 435: | Line 479: | ||
|- | |- | ||
|LandClaimCount | |LandClaimCount | ||
| | |3 | ||
|Maximum allowed land claims per player | |Maximum allowed land claims per player | ||
|- | |- | ||
Line 507: | Line 551: | ||
| | | | ||
|- | |- | ||
| | |QuestProgressionDailyLimit | ||
| | |4 | ||
| | |Limits the number of quests that contribute to quest tier progression a player can complete each day. Quests after the limit can still be completed for rewards. | ||
|- | |- | ||
|} | |} | ||
Line 535: | Line 575: | ||
set LOGTIMESTAMP= | set LOGTIMESTAMP= | ||
IF EXIST 7DaysToDieServer.exe ( | |||
set GAMENAME=7DaysToDieServer | |||
set LOGNAME=output_log_dedi | |||
) ELSE ( | |||
set GAMENAME=7DaysToDie | |||
set LOGNAME=output_log | |||
) | |||
:: -------------------------------------------- | :: -------------------------------------------- | ||
:: REMOVE OLD LOGS (only keep latest 20) | :: REMOVE OLD LOGS (only keep latest 20) | ||
for /f "tokens=* skip=19" %%F in ('dir | for /f "tokens=* skip=19" %%F in ('dir %LOGNAME%__*.txt /o-d /tc /b') do del %%F | ||
Line 578: | Line 626: | ||
echo|set /p="251570" > steam_appid.txt | echo|set /p="251570" > steam_appid.txt | ||
set SteamAppId=251570 | |||
set SteamGameId=251570 | |||
set LOGFILE=%~dp0\%LOGNAME%%LOGTIMESTAMP%.txt | |||
echo Writing log file to: %LOGFILE% | |||
start | start %GAMENAME% -logfile "%LOGFILE%" -quit -batchmode -nographics -configfile=serverconfig.xml -dedicated | ||
Line 601: | Line 656: | ||
==== TCP ==== | ==== TCP ==== | ||
* 26900 (This is the port designated in the serverconfig) | |||
* 8080-8081 (ONLY if you plan to administer your server remotely AND do not change the ports in the serverconfig.) | * 8080-8081 (ONLY if you plan to administer your server remotely AND do not change the ports in the serverconfig.) | ||
==== UDP ==== | ==== UDP ==== | ||
Line 623: | Line 677: | ||
If you have completed these steps correctly, your friends should now be able to join. Do note that some devices may require a restart for the forwarding changes to take effect. | If you have completed these steps correctly, your friends should now be able to join. Do note that some devices may require a restart for the forwarding changes to take effect. | ||
==== '''A note for network protocols''' ==== | |||
<big>'''LiteNetLib -'''</big> This is the primary encapsulation protocol. It is a lightweight C# networking library for game development that implements a reliable UDP protocol. Primarily it ensures well compressed data stream for optimal server network performance. It should only be disabled for testing purposes. | |||
<big>'''SteamNetworking -'''</big> This is Steam's proprietary API that relays packets through the Valve network by default, which they claim ensures that players and gameservers are protected. They also claim that it is higher performance and uses a higher-quality reliability layer. | |||
However most of that is crap. They even state straight out in their documentation that it is an older, deprecated API. And even warn that if you are using it, to consider migrating to a newer API soon, as they may remove this API from the SDK in a future release. | |||
What it really is, is a bandaid. When you are not able to properly forward ports to the server, SteamNetworking utilizes UPnP to act like a VPN to create a tunnel from your servers to the players that bypasses the requirement to forward ports. It only works on older modems, as most newer devices have UPnP disabled for security reasons. | |||
'''Using SteamNetworking will increase player connection ping and latency because all traffic goes from your server, through the nearest Steam server, to the nearest Steam server to the player, and then to the player. Instead of just the direct Server to Player connection that you get without it.''' | |||
== Finding your own External IP == | == Finding your own External IP == | ||
Line 653: | Line 718: | ||
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. | 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. | ||
[https://7daystodie. | [https://web.archive.org/web/20231121214429/https://7daystodie.fandom.com/wiki/Dedicated_Server_Providers Dedicated Server Providers] | ||
You can use a Server Manager to setup and manage the server. Please look through [https://community.7daystodie.com/topic/18294-dedicated-server-management-tools/ this forum post for alternative server management tools] | You can use a Server Manager to setup and manage the server. Please look through [https://community.7daystodie.com/topic/18294-dedicated-server-management-tools/ this forum post for alternative server management tools] |
Latest revision as of 15:32, 28 June 2025


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 Currently only 8-player Co-op is supported.
Dedicated server
Windows Requirement
Version A20 and newer requires Microsoft Visual C Redistributables 2022 to run.
Installation
- Install SteamCMD
You need to install the lastest
- Start SteamCMD
- Select install folder:
force_install_dir C:\Servers\7_Days_to_Die_server\
(You do not have to use this exact folder) - Login with a Steam account (Subject to the availability of the game on the accounts).
login [username] [password]
(You can also use login anonymous) - 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.
- Select install folder:
Sample Commands
Stable
steamcmd +force_install_dir "your\install\path\here" +login anonymous +app_update 294420 -validate +quit
Note: Sometimes Steam misbehaves, and you have to add "-beta public"
Experimental
steamcmd +force_install_dir "your\install\path\here" +login anonymous +app_update 294420 -beta latest_experimental -validate +quit
Specific Version
steamcmd +force_install_dir "your\install\path\here" +login anonymous +app_update 294420 -beta a20.4 -validate +quit
Serverconfig.xml
This is a table of the up-to-date v1.3 (b9) 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.
It is strongly advised to never use the default config file. Rename your file to something unique to your server, and then edit the -configfile= to match the name of your new xml file.
GENERAL SERVER SETTINGS
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 | |
Region | NorthAmericaEast | The region this server is in. Values: NorthAmericaEast, NorthAmericaWest, CentralAmerica, SouthAmerica, Europe, Russia, Asia, MiddleEast, Africa, Oceania |
Language | English | Primary language for players on this server. Values: Use any language name that you would users expect to search for. Should be the English name of the language, e.g. not "Deutsch" but "German" |
Networking
Option | Values | Description |
---|---|---|
ServerPort | 26900 | Port you want the server to listen on. Keep it in the ranges 26900 to 26905 if you want PCs on the same LAN to find it as a LAN server. It is advised to avoid ports 27000-27099 at all costs due to heavy Steam traffic. |
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. LiteNetLib should only be disabled for temporary troubleshooting as doing so will greatly degrade network optimization in the server client. |
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. 1300kiB/s is roughly equivalent to 10Mbps. |
Slots
Option | Values | Description |
---|---|---|
ServerMaxPlayerCount | 8 | Maximum Concurrent Players (Only 8-players are supported. Past 20 will cause issues with data being saved properly.) |
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 |
---|---|---|
WebDashboardEnabled | false | Enable/disable the web dashboard |
WebDashboardPort | 8080 | Port of the web dashboard |
WebDashboardUrl | External URL to the web dashboard if not just using the public IP of the server, e.g. if the web dashboard is behind a reverse proxy. Needs to be the full URL, like "https://domainOfReverseProxy.tld:1234/". Can be left empty if directly using the public IP and dashboard port | |
EnableMapRendering | false | Enable/disable rendering of the map to tile images while exploring it. This is used e.g. by the web dashboard to display a view of the map. |
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 if you use it! Save will be created in a "Saves" folder in that location, and there will also be separate folders for "GeneratedWorlds" and "Twitch" |
Other technical settings
Option | Values | Description |
---|---|---|
ServerAllowCrossplay | false | Enables/Disables crossplay, crossplay servers will only be found in searches and joinable if sanctions are not ignored, and have a default or lower player slot count. |
EACEnabled | true | Enables/Disables EasyAntiCheat |
IgnoreEOSSanctions | false | Ignore EOS sanctions when allowing players to join. (not 100% sure how this system functions currently. More details to come) |
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 |
MaxChunkAge | -1 | The number of in-game days which must pass since visiting a chunk before it will reset to its original state if not revisited or protected (e.g. by a land claim or bedroll being in close proximity). |
SaveDataLimit | -1 | The maximum disk space allowance for each saved game in megabytes (MB). Saved chunks may be forcibly reset to their original states to free up space when this limit is reached. Negative values disable the limit. |
GAMEPLAY
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", "Pregen04k1", ...) |
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 | 1 | 0 - 5, 0=easiest, 5=hardest (0-Scavenger, 1-Adventurer, 2-Nomad, 3-Warrior, 4-Survivalist, 5-Insane) |
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 |
Game Rules
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 |
BiomeProgression | true | Enables biome hazards and loot stage caps to promote biome progression. Loot stage caps are increased by completing biome challenges. |
StormFreq | 100 | Adjusts the frequency of storms. 0% turns them off. Vanilla values: 0, 50, 100, 150, 200, 300, 400, 500 |
DeathPenalty | 1 | Penalty after dying. 0 = Nothing. 1 = Default: Classic XP Penalty. 2 = Injured: You keep most of your debuffs. Food and Water is set to 50% on respawn. 3 = Permanent Death: Your character is completely reset. You will respawn with a fresh start within the saved game. |
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 |
AllowSpawnNearFriend | 2 | Can new players joining the server for the first time select to join near any friend playing at the same time? 0 = Disabled, 1 = Always, 2 = Only near friends in forest biome |
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. (It is not recommended to exceed 90 on recommended hardware, or 128 on high-end hardware.) |
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. Do not set this higher than 90. |
ServerMaxAllowedViewDistance | 12 | Max viewdistance a client may request (6 - 12). High impact on memory usage and performance. |
MaxQueuedMeshLayers | 1000 | Maximum amount of Chunk mesh layers that can be enqueued during mesh generation. Reducing this will improve memory usage but may increase Chunk generation time |
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 Note that this only affects stack sizes, not % to get loot. |
LootRespawnDays | 7 | days in whole numbers |
AirDropFrequency | 72 | How often airdrop occur in game-hours, 0=never |
AirDropMarker | true | 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 | 3 | 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 |
Option | Values | Description |
---|---|---|
DynamicMeshEnabled | true | Is Dynamic Mesh system enabled |
DynamicMeshLandClaimOnly | true | Is Dynamic Mesh system only active in player LCB areas |
DynamicMeshLandClaimBuffer | 3 | Dynamic Mesh LCB chunk radius |
DynamicMeshMaxItemCache | 3 | How many items can be processed concurrently, higher values use more RAM |
TwitchServerPermission | 90 | Required permission level to use twitch integration on the server |
TwitchBloodMoonAllowed | false | If the server allows twitch actions during a blood moon. This could cause server lag with extra zombies being spawned during blood moon. |
QuestProgressionDailyLimit | 4 | Limits the number of quests that contribute to quest tier progression a player can complete each day. Quests after the limit can still be completed for rewards. |
There are several game settings that you cannot change when starting a new game. You can use console commands to change at least some of them ingame. setgamepref BedrollDeadZoneSize 30
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= IF EXIST 7DaysToDieServer.exe ( set GAMENAME=7DaysToDieServer set LOGNAME=output_log_dedi ) ELSE ( set GAMENAME=7DaysToDie set LOGNAME=output_log ) :: -------------------------------------------- :: REMOVE OLD LOGS (only keep latest 20) for /f "tokens=* skip=19" %%F in ('dir %LOGNAME%__*.txt /o-d /tc /b') do del %%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 set SteamAppId=251570 set SteamGameId=251570 set LOGFILE=%~dp0\%LOGNAME%%LOGTIMESTAMP%.txt echo Writing log file to: %LOGFILE% start %GAMENAME% -logfile "%LOGFILE%" -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
- 26900 (This is the port designated in the serverconfig)
- 8080-8081 (ONLY if you plan to administer your server remotely AND do not change the ports 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 TCP and 26900-26903 UDP so that others may join.
If router support UPnP - you can use this https://github.com/kaklakariada/portmapper
Don't know how to port forward? follow these instructions:
- Go to this Site
- Select your router brand
- Select your router version (if your version is not there, pick the one closest to your version.)
- Select 7 Days to Die
- Follow the instructions on the site
If you have completed these steps correctly, your friends should now be able to join. Do note that some devices may require a restart for the forwarding changes to take effect.
A note for network protocols
LiteNetLib - This is the primary encapsulation protocol. It is a lightweight C# networking library for game development that implements a reliable UDP protocol. Primarily it ensures well compressed data stream for optimal server network performance. It should only be disabled for testing purposes.
SteamNetworking - This is Steam's proprietary API that relays packets through the Valve network by default, which they claim ensures that players and gameservers are protected. They also claim that it is higher performance and uses a higher-quality reliability layer. However most of that is crap. They even state straight out in their documentation that it is an older, deprecated API. And even warn that if you are using it, to consider migrating to a newer API soon, as they may remove this API from the SDK in a future release. What it really is, is a bandaid. When you are not able to properly forward ports to the server, SteamNetworking utilizes UPnP to act like a VPN to create a tunnel from your servers to the players that bypasses the requirement to forward ports. It only works on older modems, as most newer devices have UPnP disabled for security reasons.
Using SteamNetworking will increase player connection ping and latency because all traffic goes from your server, through the nearest Steam server, to the nearest Steam server to the player, and then to the player. Instead of just the direct Server to Player connection that you get without it.
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.
You can use a Server Manager to setup and manage the server. Please look through this forum post for alternative server management tools