7 Days to Die

7 Days to Die dedicated server on steam.

Ansible Role: steam

7 Days to Die dedicated server.

  • Role handles all steps that are provided in this documentation.

  • If connecting on local network, use the private IP of the server, not the public IP address.

  • Control Panel and Telnet are insecure. Disable and block ports.

  • steam_7days_dir/saves contains server state information.

None

Role Details: Updated: 2022-10-10 service docs Reference Reference PRIVATE

Ports

---
###############################################################################
# Ports Configuration
###############################################################################
# Ports should be managed externally via an OS role.

ports:
  - {proto: 'udp', from_ip: 'any', to_port: '26900:26902', direction: 'in', comment: 'steam clients'}
  - {proto: 'tcp', from_ip: 'any', to_port: 26900,         direction: 'in', comment: 'steam server'}

Defaults

---
###############################################################################
# 7 Days to Die (+10GB)
###############################################################################
#       Minimum   Recommended
# CPU:  2c/4t     4c/8t@3.0Ghz
# RAM:  6GB       12GB
# Disk: 10GB      10GB

# Install preconfigured 7days server?
steam_7days_enable: false

# Root install location.
steam_7days_dir: '/home/steam/7days'

# Additional steamcmd options to use during app_update. Default: ''.
steam_7days_app_extras: ''

# Update steamcmd. Default: true.
steam_7days_update_steamcmd: true

# Update 7days server. Default: true.
steam_7days_update_server: true

Server Admin

---
###############################################################################
# serveradmin.xml Configuration
###############################################################################
# If enabled define at least one admin; and ensure serverconfig.xml is set
# appropriately.
#
# This file holds the settings for who is banned, whitelisted, admins and
# server command permissions. Steam ID can be found using http://steamid.co/
#
# STEAM ID INSTRUCTIONS:
# ===============================================================
# You can find the SteamID64 of any user with one of the following pages:
# https://steamdb.info/calculator/, https://steamid.io/lookup,
# http://steamid.co/
# instructions:
# Input the player's name in the search field. example: Kinyajuu
# If the name doesn't work, you can also use the url of their steam page.
# Also you may add/remove admins, mods, whitelist, blacklist using in game
# commands. You will want the STEAM64ID. example: 76561198021925107
#
# PERMISSION LEVEL INSTRUCTIONS:
# ===============================================================
# permission level : 0-1000, a user may run any command equal to or above their
# permission level. Users not given a permission level in this file will have a
# default permission level of 1000!
#
# COMMAND PERMISSIONS INSTRUCTIONS:
# ===============================================================
# cmd: This is the command name, any command not in this list will not be
#      usable by anyone but the server.
# permission level: 0-1000, a user may run any command equal to or above their
#            permission level. Commands not specified in this file will have a
#            default permission level of 0!
#
# <!-- <permission cmd="dm" permission_level="0" /> -->
# <!-- <permission cmd="kick" permission_level="1" /> -->
# <!-- <permission cmd="say" permission_level="1000" /> -->
#
# Reference:
# * https://www.gameserverkings.com/knowledge-base/7-days-to-die/7d2d-new-user-guide/
# * https://r-pufky.github.io/docs/game/7days/index.html

# Enable to create and write serveradmin.xml
steam_7days_server_admin_enable: false

# Server admins: Use https://steamid.io/lookup to find the SteamID64.
#
# steam_7days_server_admin:
#   - {id: '{SteamID64}', level='{PERMISSION LEVEL}'
#
# Commands are granted access by all levels *above* the assigned permission.
# 0: root.
steam_7days_server_admins: []

# Whitelist users by SteamID64. Only whitelisted or admins can join once
# populated.
#
# steam_7days_whitelist:
#   - '{SteamID64}'
#
steam_7days_whitelist: []

# Blacklist users by SteamID64. Default (empty unbandate) is permenant ban.
#
# steam_7days_blacklist:
#   - {id: '{SteamID64}', unbandate: '{YYYY-MM-DD HH:MM:SS}'}
#
steam_7days_blacklist: []

# Permissions.
# Commands are granted access by all levels *above* the assigned permission.
# 0: root.
#
# steam_7days_permissions:
#   - {command: '{SERVER COMMAND}', level: '{PERMISSION LEVEL}'}
#
# Reference:
# * https://7daystodie.fandom.com/wiki/Command_Console
steam_7days_permissions:
#  - {command: 'dm',            level: '0'}
#  - {command: 'kick',          level: '1'}
#  - {command: 'say',           level: '1000'}
  - {command: 'chunkcache',    level: '1000'}
  - {command: 'debugweather',  level: '1000'}
  - {command: 'getgamepref',   level: '1000'}
  - {command: 'getgamestat',   level: '1000'}
  - {command: 'gettime',       level: '1000'}
  - {command: 'help',          level: '1000'}
  - {command: 'listplayerids', level: '1000'}
  - {command: 'listthreads',   level: '1000'}
  - {command: 'memcl',         level: '1000'}
  - {command: 'settempunit',   level: '1000'}

Server Config

---
###############################################################################
# serverconfig.xml Configuration
###############################################################################
# All values should be strings as this is written in XML. Use vault for
# passwords.

# Server representation
steam_7days_server_name:        'My Game Host'
steam_7days_server_description: 'A 7 Days to Die server'
steam_7days_server_website_url: ''
steam_7days_server_password:    ''
# 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 UI.
steam_7days_server_login_confirmation_text: ''

# Networking
steam_7days_server_port:       '26900'
# Visibility: 2 = public, 1 = 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.
steam_7days_server_visibility: '2'
# Networking protocols that should not be used. Separated by comma. Possible
# values: LiteNetLib, SteamNetworking. Dedicated servers should disable
# steam_networking if there is no NAT router in between your users and the
# server or when port-forwarding is set up correctly.
steam_7days_server_disabled_network_protocols:     'SteamNetworking'
# Maximum (!) speed in ki_b/s the world is transferred at to a client on first
# connect if it does not have the world yet. Maximum is about 1300 ki_b/s, even
# if you set a higher value.
steam_7days_server_max_world_transfer_speed_kibs: '512'

# Slots
steam_7days_server_max_player_count:          '8'
steam_7days_server_reserved_slots:            '0'
steam_7days_server_reserved_slots_permission: '100'
steam_7days_server_admin_slots:               '0'
steam_7days_server_admin_slots_permission:    '0'

# Admin interfaces
# Enable/Disable the web control panel
steam_7days_control_panel_enabled:  'false'
steam_7days_control_panel_port:     '8080'
steam_7days_control_panel_password: 'CHANGEME'

steam_7days_telnet_enabled:                 'false'
steam_7days_telnet_port:                    '8081'
# Password to gain entry to telnet interface. If no password is set the server
# will only listen on the local loopback interface.
steam_7days_telnet_password:                ''
steam_7days_telnet_failed_login_limit:      '10'
steam_7days_telnet_failed_logins_blocktime: '10'

# Show a terminal window for log output / command input (Windows only)
steam_7days_terminal_window_enabled:        'true'

# Folder and file locations
# Server admin file name. Path relative to the save_game_folder
steam_7days_admin_filename:   'serveradmin.xml'
# Use this to override where the server stores all generated data, including
# RWG generated worlds. Empty string disables.
steam_7days_user_data_folder: ''

# Use this to only override the save game path. Empty string disables.
steam_7days_save_game_folder: ''

# Other technical settings
# Enables/Disables easy_anti_cheat
steam_7days_eac_enabled:      'true'
# Hide command execution logging. 0 = show all,
# 1 = hide from Telnet/control_panel, 2 = 1 + hide from remote game clients,
# 3 = hide all
steam_7days_hide_command_execution_log:          '0'
# 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.
steam_7days_max_uncovered_map_chunks_per_player: '131072'
# If disabled a player can join with any selected profile. If true they will
# join with the last profile they joined with.
steam_7days_persistent_player_profiles:          'false'

# GAMEPLAY
# World
# "RWG" (see world_gen_seed and world_gen_size options below) or any already
# existing world name in the Worlds folder (currently shipping with e.g.
# "Navezgane", "PREGEN01", ...).
steam_7days_game_world:     'Navezgane'
# 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.
steam_7days_world_gen_seed: 'asdf'
# If RWG this controls the width and height of the created world. It is also
# used in combination with world_gen_seed to create the internal RWG seed thus
# also creating a unique map name even if using the same world_gen_seed. Has to
# be between 2048 and 16384, though large map sizes will take long to generate
# / download / load.
steam_7days_world_gen_size: '4096'
steam_7days_game_name:      'My Game'
steam_7days_game_mode:      'GameModeSurvival'

# Difficulty
# 0 - 5, 0=easiest, 5=hardest
steam_7days_game_difficulty:        '2'
# How much damage do players to blocks (percentage in whole numbers)
steam_7days_block_damage_player:    '100'
# How much damage do AIs to blocks (percentage in whole numbers)
steam_7days_block_damage_ai:        '100'
# How much damage do AIs during blood moons to blocks (percentage in whole numbers)
steam_7days_block_damage_aibm:      '100'
# XP gain multiplier (percentage in whole numbers)
steam_7days_xp_multiplier:          '100'
# If a player is less or equal this level he will create a safe zone (no
# enemies) when spawned
steam_7days_player_safe_zone_level: '5'
# Hours in world time this safe zone exists
steam_7days_player_safe_zone_hours: '5'

# Misc
# cheat mode on/off
steam_7days_build_create:           'false'
# real time minutes per in game day: 60 minutes
steam_7days_day_night_length:       '60'
# in game hours the sun shines per day: 18 hours day light per in game day
steam_7days_day_light_length:       '18'
# 0 = none, 1 = all, 2 = toolbelt only, 3 = backpack only, 4 = delete all
steam_7days_drop_on_death:          '1'
# 0 = none, 1 = all, 2 = toolbelt only, 3 = backpack only
steam_7days_drop_on_quit:           '0'
# 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.
steam_7days_bedroll_deadzone_size:  '15'
# Number of days a bedroll stays active after owner was last online
steam_7days_bedroll_expiry_time:    '45'

# Performance related
# Making this number too large (more than about 80) may cause servers to run at
# poor framerates which will effect lag and play quality for clients.
steam_7days_max_spawned_zombies:    '64'
# 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.
steam_7days_max_spawned_animals:    '50'
# Max viewdistance a client may request (6 - 12). High impact on memory usage
# and performance.
steam_7days_server_max_allowed_view_distance: '12'

# Zombie settings
# Enable/Disable enemy spawning
steam_7days_enemy_spawn_mode:       'true'
# 0 = Normal, 1 = Feral
steam_7days_enemy_difficulty:       '0'
# 0-4 (walk, jog, run, sprint, nightmare)
steam_7days_zombie_move:            '0'
# 0-4 (walk, jog, run, sprint, nightmare)
steam_7days_zombie_move_night:      '3'
# 0-4 (walk, jog, run, sprint, nightmare)
steam_7days_zombie_feral_move:      '3'
# 0-4 (walk, jog, run, sprint, nightmare)
steam_7days_zombie_bm_move:         '3'
# What frequency (in days) should a blood moon take place. Set to "0" for no
# blood moons
steam_7days_blood_moon_frequency:   '7'
# 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 blood_moon_frequency
steam_7days_blood_moon_range:       '0'
# The Hour number that the red day number begins on a blood moon day. Setting
# this to -1 makes the red never show.
steam_7days_blood_moon_warning:     '8'
# The number of zombies spawned during blood moons per player.
steam_7days_blood_moon_enemy_count: '8'

# Loot
# percentage in whole numbers
steam_7days_loot_abundance:     '100'
# days in whole numbers
steam_7days_loot_respawn_days:  '30'
# How often airdrop occur in game-hours, 0 == never
steam_7days_air_drop_frequency: '72'
# Sets if a marker is added to map/compass for air drops.
steam_7days_air_drop_marker:    'false'

# Multiplayer
# The distance you must be within to receive party shared kill xp and quest
# party kill objective credit.
steam_7days_party_shared_kill_range: '100'
# Player Killing Settings (0 = No Killing, 1 = Kill Allies Only, 2 = Kill
# Strangers Only, 3 = Kill Everyone)
steam_7days_player_killing_mode:     '3'

# Land claim options
# Maximum allowed land claims per player.
steam_7days_land_claim_count:        '1'
# Size in blocks that is protected by a keystone
steam_7days_land_claim_size:         '41'
# Keystones must be this many blocks apart (unless you are friends with the
# other player)
steam_7days_land_claim_deadzone:     '30'
# The number of days a player can be offline before their claims expire and are
# no longer protected
steam_7days_land_claim_expiry_time:  '7'
# Controls how offline players land claims decay. All claims have full
# protection for the first 24hrs. 0=Linear, 1=Exponential, 2=Full protection
# until claim is expired.
steam_7days_land_claim_decay_mode:   '0'
# 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
steam_7days_land_claim_online_durability_modifier:  '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
steam_7days_land_claim_offline_durability_modifier: '4'
# The number of minutes after a player logs out that the land claim area
# hardness transitions from online to offline. Default is 0.
steam_7days_land_claim_offline_delay: '0'
# Required permission level to use twitch integration on the server
steam_7days_twitch_server_permission: '90'
# If the server allows twitch actions during a blood moon. This could cause
# server lag with extra zombies being spawned during blood moon.
steam_7days_blood_moon_allowed:       'false'