Gaming Servers

7 Days to Die

Install and configure a 7 Days to Die dedicated server on Linux

Platform Support

PlatformSupportNotes
Linux✅ NativeFull support
Windows✅ NativeFull support

7 Days to Die

7 Days to Die is a survival zombie game with cooperative and PvP gameplay. This guide covers setting up a dedicated server on Linux with full configuration, mods, and admin control.

Hardware Requirements

  • RAM: 4GB minimum, 6GB+ recommended
  • vCPU: 2+ cores
  • Disk Space: 20GB+ (game files ~2GB, world saves scale with player count)
  • Network: Stable connection, ~5 Mbps for 8-16 players

RAM requirements scale with player count (roughly 500MB-1GB per additional player) and active mods.

Prerequisites

  • Dedicated server or VPS with Linux (Ubuntu 20.04+ or similar)
  • SSH access
  • Steam account (free)
  • Basic Linux command-line experience

Step 1: Install System Dependencies

sudo apt update
sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl wget unzip

Step 2: Create Game User Account

sudo useradd -m -s /bin/bash 7dtdserver
sudo passwd 7dtdserver
sudo usermod -aG sudo 7dtdserver

Switch to the new user:

su - 7dtdserver

Step 3: Install SteamCMD

mkdir -p ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
./steamcmd.sh +quit

Step 4: Install 7 Days to Die Server

Use SteamCMD to download the server files (AppID 294420):

cd ~/steamcmd
./steamcmd.sh +force_install_dir ~/7dtd-server +login anonymous \
  +app_update 294420 validate +quit

Installation takes 5-15 minutes depending on disk speed.

Verify installation:

ls -la ~/7dtd-server/

You should see files like 7DaysToDieServer.sh, 7DaysToDieServer_x64, etc.

Step 5: Configure Server

Navigate to the configuration directory:

cd ~/7dtd-server

First run to generate default config:

./7DaysToDieServer.sh -dedicated

Wait 30 seconds, then press Ctrl+C to stop. This generates config files in 7dtd-server/Config/.

Edit serverconfig.xml

nano Config/serverconfig.xml

Key configuration options:

<?xml version="1.0" encoding="UTF-8"?>
<ServerSettings>
  <!-- Server name and description -->
  <property name="ServerName" value="My 7 Days Server"/>
  <property name="ServerDescription" value="Friendly PvE server"/>
  <property name="ServerPassword" value="changeMe123"/>
  <property name="ServerIsPublic" value="true"/>
  <property name="GameWorld" value="Navezgane"/>
  <property name="GameName" value="My Game"/>
  <property name="GameMode" value="GameModeSurvival"/>

  <!-- Player settings -->
  <property name="ServerMaxPlayerCount" value="8"/>
  <property name="ServerMaxLandClaimSize" value="41"/>
  <property name="ServerLandClaimExpiryTime" value="3"/>
  <property name="ServerLandClaimOfflineDelay" value="0"/>
  <property name="ServerLandClaimOfflineDurability" value="4"/>
  <property name="ServerLandClaimOnlineDurability" value="4"/>
  <property name="ServerLandClaimOfflineExpireTime" value="3"/>

  <!-- Game difficulty -->
  <property name="GameDifficulty" value="2"/>
  <property name="ZombieFeralWight" value="0"/>
  <property name="ZombieFeralWightChance" value="0"/>
  <property name="ZombieBloatFastMovement" value="0"/>
  <property name="ZombieBloatFastMovementChance" value="0"/>
  <property name="ZombieRadiationFastMovement" value="0"/>
  <property name="ZombieRadiationFastMovementChance" value="0"/>

  <!-- Progression -->
  <property name="XpMultiplier" value="100"/>
  <property name="LootAbundance" value="100"/>
  <property name="LootRespawnDays" value="30"/>
  <property name="AirDropFrequency" value="72"/>
  <property name="AirDropMarker" value="true"/>
  <property name="PartySharedKillRange" value="100"/>
  <property name="PlayerKillingMode" value="3"/>

  <!-- World seed (for procedural generation) -->
  <property name="WorldGenSeed" value="navezgane"/>

  <!-- Blood moons -->
  <property name="BloodMoonFrequency" value="7"/>
  <property name="BloodMoonRange" value="0"/>
  <property name="BloodMoonWarning" value="8"/>
  <property name="BloodMoonBorder" value="2"/>

  <!-- Network and performance -->
  <property name="EACEnabled" value="false"/>
  <property name="UseGLES" value="false"/>
  <property name="StreamingBudget" value="4"/>

  <!-- Admin -->
  <property name="AdminFileName" value="serveradmin.xml"/>
  <property name="ControlPanelEnabled" value="false"/>
  <property name="TelnetEnable" value="false"/>
  <property name="SaveGameFolder" value=""/>
</ServerSettings>

Important settings explained:

  • ServerPassword: Leave empty for public, set password for private
  • ServerMaxPlayerCount: Number of slots (8 default, up to 16 tested)
  • GameWorld: "Navezgane" (default map) or "RWG" (procedurally generated)
  • WorldGenSeed: For RWG, controls world generation (use any string)
  • GameDifficulty: 0=Easiest to 5=Hardest
  • XpMultiplier: 100 = normal, 200 = double XP
  • LootAbundance: Item spawn frequency
  • EACEnabled: Set to false for Linux servers
  • AdminFileName: Points to admin user list

Create serveradmin.xml

cat > Config/serveradmin.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<adminTools>
  <admin userid="76561198999999999" name="YourSteamName" permission_level="0"/>
</adminTools>
EOF

Replace the userid with your Steam64 ID. Find it at steamid.io.

Step 6: Create Systemd Service

Exit back to root user and create the service:

exit  # Exit 7dtdserver user
sudo tee /etc/systemd/system/7dtd.service > /dev/null << 'EOF'
[Unit]
Description=7 Days to Die Dedicated Server
After=network.target
Wants=network-online.target

[Service]
Type=simple
User=7dtdserver
WorkingDirectory=/home/7dtdserver/7dtd-server
ExecStart=/home/7dtdserver/7dtd-server/7DaysToDieServer.sh -dedicated
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

# Limits
MemoryLimit=8G
CPUQuota=200%

[Install]
WantedBy=multi-user.target
EOF

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable 7dtd
sudo systemctl start 7dtd

Check status:

sudo systemctl status 7dtd
sudo journalctl -u 7dtd -f  # Follow logs

Step 7: Configure Firewall

7 Days to Die uses TCP and UDP on port 26900, plus additional UDP ports for connections:

sudo ufw allow 26900/tcp comment "7DTD TCP"
sudo ufw allow 26900/udp comment "7DTD UDP Game"
sudo ufw allow 26901/udp comment "7DTD UDP Secondary"
sudo ufw allow 26902/udp comment "7DTD UDP Tertiary"
sudo ufw allow 26903/udp comment "7DTD UDP Quaternary"

Or with iptables:

sudo iptables -A INPUT -p tcp --dport 26900 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 26900:26903 -j ACCEPT

Step 8: Server Management

In-Game Admin Commands

Connect as an admin (configured in serveradmin.xml) and use console commands (press /):

/help                    # List available commands
/players                 # List connected players
/kick [player_id]        # Kick player by ID
/ban [player_id]         # Ban player
/unban [steam_id]        # Unban by Steam ID
/mute [player_id]        # Mute player chat
/unmute [player_id]      # Unmute player
/kill [player_id]        # Kill player
/teleport [player_id] [x] [y] [z]  # Teleport player
/weather clear           # Clear weather
/weather rain            # Set rain
/say "Message"           # Server broadcast
/shutdown [minutes] "Message"  # Schedule shutdown
/savegame                # Force save

Server Status and Logs

Monitor in real-time:

sudo journalctl -u 7dtd -f

Check for errors:

sudo journalctl -u 7dtd -n 50

Step 9: Install Mods

Mods Folder Setup

mkdir -p ~/7dtd-server/Mods

Manual Mod Installation

Download mods (typically .zip files) and extract to the Mods folder:

cd ~/7dtd-server/Mods
unzip /path/to/mod-file.zip

Verify structure (should have modinfo.xml at root):

ls -la Mods/YourModName/
# Should contain: modinfo.xml, resources/, etc.
  • DelitPlus - Quality of life improvements
  • XUi - Enhanced UI
  • Undead Legacy - Major gameplay overhaul
  • War3zuk's Decor - Additional building blocks

Mod Compatibility

Always verify mod compatibility with your server version. Mod mismatches between server and clients cause disconnections. Test with one client first before large deployments.

Disable mods by moving them outside the Mods/ directory.

Enable Mods on Clients

Clients must have the same mods installed locally. Distribute mod list and versions to players or use a mod manager like Vortex.

Step 10: Backup and World Management

Backup World

cat > ~/backup-7dtd.sh << 'EOF'
#!/bin/bash

BACKUP_DIR=/home/7dtdserver/backups
WORLD_DIR=/home/7dtdserver/7dtd-server/Data/Worlds

mkdir -p $BACKUP_DIR
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# Create backup
tar -czf $BACKUP_DIR/7dtd-world-$TIMESTAMP.tar.gz $WORLD_DIR/

# Keep last 10 backups
find $BACKUP_DIR -name "7dtd-world-*.tar.gz" -mtime +30 -delete

echo "Backup completed: 7dtd-world-$TIMESTAMP.tar.gz"
EOF

chmod +x ~/backup-7dtd.sh

Schedule daily backups:

sudo crontab -e
# Add: 0 2 * * * /home/7dtdserver/backup-7dtd.sh

Rotate Worlds

To switch worlds or reset:

cd ~/7dtd-server/Data/Worlds
mv MyGame MyGame-backup-$(date +%Y%m%d)

Change GameName in serverconfig.xml to load a different world.

Step 11: Performance Optimization

Monitor Resource Usage

watch -n 2 'ps aux | grep 7Day'
free -h
iostat -x 1 5

Tuning Tips

  • Reduce LootRespawnDays to decrease memory usage
  • Lower StreamingBudget (1-4) on constrained hardware
  • Disable blood moons (BloodMoonFrequency: 0) for lighter CPU load
  • Cap MaxPlayerCount at 8-12 for stable performance on 4GB RAM

RAM Scaling

Start with 4GB RAM for 4-6 players. Add ~1GB per 2 additional players. With mods, add 1-2GB buffer.

Troubleshooting

Server Won't Start

sudo journalctl -u 7dtd -n 100 | grep -i error

Check for conflicting processes:

sudo lsof -i :26900

High Memory Usage

Monitor with htop. If exceeds allocation:

  • Reduce MaxPlayerCount
  • Disable or update mods
  • Reduce StreamingBudget

Players Can't Connect

Verify firewall:

sudo ufw status
sudo netstat -tuln | grep 26900

Ensure serverconfig.xml has no syntax errors (XML validation).

Client/Server Version Mismatch

Ensure all clients and server run the same game version. Check server logs for version info:

sudo journalctl -u 7dtd | grep -i version

Windows Server Setup

Step 1: Download Server on Windows

Download the 7 Days to Die Dedicated Server from Steam:

# Using SteamCMD on Windows
steamcmd +force_install_dir "C:\7DTD-Server" +login anonymous +app_update 294420 validate +quit

Step 2: Configure serverconfig.xml on Windows

Edit C:\7DTD-Server\Config\serverconfig.xml with the same settings as Linux (see Step 5 above).

Step 3: Create Admin List

Edit C:\7DTD-Server\Config\serveradmin.xml:

<?xml version="1.0" encoding="UTF-8"?>
<adminTools>
  <admin userid="76561198999999999" name="YourSteamName" permission_level="0"/>
</adminTools>

Step 4: Run Server via Batch Script

Create start-server.bat:

@echo off
cd /d C:\7DTD-Server
7DaysToDieServer.exe -dedicated
pause

Step 5: Create Windows Service (Optional)

Use NSSM (Non-Sucking Service Manager) to run the server as a service:

# Install NSSM (download from https://nssm.cc/download)
nssm install 7DTDServer "C:\7DTD-Server\7DaysToDieServer.exe" "-dedicated"
nssm start 7DTDServer

Monitor service:

nssm status 7DTDServer
Get-EventLog Application -Source 7DTDServer -Newest 10

Tips & Tweaks

serverconfig.xml Performance Tuning

ParameterValueImpact
StreamingBudget1-4Lower = less CPU usage, fewer chunks loaded
EntityRemovalRange32-64Unload distant entities to save RAM
AirDropFrequency48-72Reduce frequency for less CPU overhead
ZombiePopulation0.8-1.0Adjust zombie count vs server load
MaxItemOnGround500-1000Limit dropped items in memory

Admin Console Commands

CommandPurpose
/say "Message"Broadcast to all players
/playersList connected players
/kick [player_id]Remove player session
/ban [steam_id]Permanent ban
/weather [type]Change weather (clear, rain, foggy)
/time [hour]Set server time
/shutdown [minutes]Graceful shutdown with warning

Map Generation with Custom Seeds

For procedurally generated worlds (RWG), use custom seeds:

<property name="GameWorld" value="RWG"/>
<property name="WorldGenSeed" value="MyCustomMapSeed123"/>
<property name="WorldGenSize" value="4096"/>  <!-- 2048, 4096, 8192 -->

RAM Usage vs Map Size

  • Navezgane map: 2-4 GB for 8-16 players
  • RWG 2048x2048: 3-5 GB for 8-16 players
  • RWG 4096x4096: 4-8 GB for 8-16 players
  • Add 1 GB per 8 additional players

Next Steps

  • Set up automated Discord notifications for events (webhooks)
  • Configure backup rotation and off-site storage
  • Install quality-of-life mods for better gameplay
  • Plan regular maintenance windows and restarts
  • Monitor player activity and adjust difficulty accordingly

On this page