Project Zomboid Servidor dedicado
Project Zomboid is a top-down survival game emphasizing cooperative multiplayer in a zombie-infested world. Esta guía cubre complete server installation via SteamCMD, sandbox configuration, server setup, mod installation, admin tools, and copia de seguridad strategies. Project Zomboid servers are efficient and support various gameplay configurations suitable for different player communities.
Tabla de contenidos
- System Requirements
- Instalaing SteamCMD and Project Zomboid
- Server Instalaation
- Sandbox Configuration
- Server Settings
- Mod Instalaation
- Admin Functions
- Firewall and Ports
- Running with Systemd
- [Backup Strategy](#copia de seguridad-strategy)
- Monitoring
- Conclusion
Requisitos del sistema
Project Zomboid has modest requirements:
- Ubuntu 20.04 LTS or later
- 4GB RAM minimum (8GB recommended for 50+ players)
- 40GB disk space
- 2+ CPU cores
- Stable internet connection
- Root or sudo access
Project Zomboid is one of the lighter multiplayer servidores de juegos.
Instalaing SteamCMD and Project Zomboid
Instala dependencies:
sudo apt-get update
sudo apt-get install -y curl wget file bzip2 gzip unzip python3 util-linux ca-certificates binutils lib32gcc1 lib32stdc++6
Create dedicated steam user:
sudo useradd -m -s /bin/bash steam
sudo -u steam mkdir -p /home/steam/steamcmd
Instala SteamCMD:
cd /home/steam/steamcmd
sudo -u steam curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | sudo -u steam tar zxvf -
Verifica SteamCMD:
sudo -u steam /home/steam/steamcmd/steamcmd.sh +quit
Create Project Zomboid directory:
sudo -u steam mkdir -p /home/steam/zomboid
Instala Project Zomboid server (app ID 380870):
sudo -u steam /home/steam/steamcmd/steamcmd.sh \
+force_install_dir /home/steam/zomboid \
+login anonymous \
+app_update 380870 \
+quit
Verifica la instalación:
ls -la /home/steam/zomboid/
file /home/steam/zomboid/ProjectZomboid64
chmod +x /home/steam/zomboid/ProjectZomboid64
Create data directories:
sudo -u steam mkdir -p /home/steam/zomboid-data/{Saves,Mods,logs}
Server Instalaation
Create startup script:
sudo tee /home/steam/zomboid/start_server.sh > /dev/null <<'EOF'
#!/bin/bash
GAME_DIR="/home/steam/zomboid"
DATA_DIR="/home/steam/zomboid-data"
SERVER_NAME="${SERVER_NAME:-Project Zomboid Server}"
ADMIN_PASSWORD="${ADMIN_PASSWORD:-adminpass}"
GAME_PASSWORD="${GAME_PASSWORD:-}"
MAX_PLAYERS="${MAX_PLAYERS:-20}"
PORT="${PORT:-16261}"
cd "$GAME_DIR"
mkdir -p "$DATA_DIR/Saves"
mkdir -p "$DATA_DIR/logs"
exec "$GAME_DIR/ProjectZomboid64" \
-server \
-servername "$SERVER_NAME" \
-adminpassword "$ADMIN_PASSWORD" \
-password "$GAME_PASSWORD" \
-port "$PORT" \
-maxplayers "$MAX_PLAYERS" \
-cachedir "$DATA_DIR/Saves" \
-logdir "$DATA_DIR/logs" \
-modfolders "$DATA_DIR/Mods" \
2>&1 | tee "$DATA_DIR/logs/zomboid_$(date +%Y%m%d).log"
EOF
sudo chmod +x /home/steam/zomboid/start_server.sh
sudo chown steam:steam /home/steam/zomboid/start_server.sh
Sandbox Configuration
Create sandbox.lua configuration for server rules:
sudo tee /home/steam/zomboid-data/Saves/sandbox.lua > /dev/null <<'EOF'
-- Project Zomboid Server Sandbox Configuration
function SandboxVars.GetVarType(var)
-- Customizable sandbox variables for gameplay
return 1
end
-- Access to safe zones
SafeZone = {
xmin = 10000,
xmax = 10100,
ymin = 10000,
ymax = 10100,
zmin = 0,
zmax = 4
}
-- Difficulty Settings
Difficulty = {
ZombieHealthBoost = 0, -- 0-4, zombie health multiplier
ZombieDamageBoost = 0, -- 0-4, zombie damage multiplier
ZombieAggression = 2, -- 0-4, zombie aggression level
ZombieCount = 0.75, -- 0.5-2.0, spawn rate multiplier
ZombieRespawn = 16, -- Hours before zombies respawn
ZombieLore = "normal", -- normal or sandbox
ItemDespawn = 0, -- Days before items despawn
ItemSpawnRules = 0, -- Scavenging balance
Injuries = 2, -- Injury level (0-2)
BodyDamage = 2, -- Damage system (0-2)
Diseases = 1, -- Disease chance (0-2)
Hunger = 2, -- Hunger rate (0-3)
Thirst = 2, -- Thirst rate (0-3)
Fatigue = 2, -- Fatigue rate (0-3)
Boredom = 0, -- Boredom effects (0-2)
Stress = 2, -- Stress mechanics (0-2)
Depression = 2, -- Depression effects (0-2)
Radiation = 0, -- Radiation system
NightVision = 0, -- Starting night vision
NPCs = 2, -- NPC count (0-4)
SleepWhenEmpty = 0, -- Auto-sleep when empty
AllowStats = 1, -- Allow stat tracking
AllowDeathMessages = 1, -- Show death messages
AllowJoinWithoutPassword = 1, -- Join without password
AllowPvP = 1, -- Enable PvP
AllowTreaties = 1, -- Allow faction treaties
AllowWaterShortsCache = 1, -- Performance option
DayLength = 1, -- Day length (0.5-4.0)
DayStartHour = 8, -- Start hour of day
SeasonLength = 30, -- Season length in days
ConstructionBoost = 1, -- Building speed multiplier
NightDarkness = 2, -- Night darkness level
NoFire = 0, -- Disable fire
NoElectricity = 0, -- Disable electricity
NoWater = 0, -- Disable water
StartYear = 1, -- Starting year
StartMonth = 7, -- Starting month
StartDay = 9, -- Starting day
}
-- Server Rules
ServerRules = {
AllowPvP = true,
AllowCheats = false,
AllowWhitelistingMode = false,
AllowNaming = true,
AllowSlicing = true,
RestrictRotten = false,
RestrictFarming = false,
RestrictBuildingStyle = false,
AllowExtremeBlood = true,
AllowLiteraryReferences = true,
}
-- Voice Communication
VoiceChat = {
Enabled = true,
VolumeThreshold = 1,
}
return Difficulty
EOF
sudo chown steam:steam /home/steam/zomboid-data/Saves/sandbox.lua
Difficulty explanation:
ZombieCount: 0.5 = half population, 2.0 = double populationItemDespawn: Days before items disappearInjuries: Enable/disable injury systemAllowPvP: Enable player vs player combatDayLength: Multiplier for day/night cycle lengthConstructionBoost: Faster/slower building speed
Server Settings
Create ini-style server settings:
sudo tee /home/steam/zomboid-data/Saves/server.ini > /dev/null <<'EOF'
[ServerConfig]
ServerName=Project Zomboid Server
ServerDescription=Cooperative survival server
ServerPassword=
AdminPassword=adminpass
Port=16261
MaxPlayers=20
PingLimit=250
VehicleRespawnTime=1
VehiclesSpawnOnRoof=true
PublicServer=true
PublicServerName=
PublicAddress=
UseFileTransfer=true
BanlistPath=banlist.txt
AllowNonASCIICharacters=true
UnrestrictedLua=false
LogLocation=/home/steam/zomboid-data/logs
SaveLocation=/home/steam/zomboid-data/Saves
CacheDirPath=/home/steam/zomboid-data/Saves
[Mods]
EnableModsOnServer=true
ModsFolderPath=/home/steam/zomboid-data/Mods
[Voice]
VoiceEnabled=true
VoiceVolume=100
[Performance]
MaxNavMeshChunks=10000
NavMeshChunkSize=50
MaxNavMeshWaypoints=1000
EOF
sudo chown steam:steam /home/steam/zomboid-data/Saves/server.ini
Mod Instalaation
Create mods directory and install popular mods:
mkdir -p /home/steam/zomboid-data/Mods
cd /home/steam/zomboid-data/Mods
# Popular Project Zomboid mods (examples)
# Mods are typically downloaded from steam workshop or moddb
# You would download mod files and extract them here
# Structure: /Mods/ModName/mod.info and mod files
Create mod list file:
sudo tee /home/steam/zomboid-data/Saves/mods.txt > /dev/null <<'EOF'
# Project Zomboid Mod List
# One mod per line
# ExampleMod=true
EOF
sudo chown steam:steam /home/steam/zomboid-data/Saves/mods.txt
Admin Functions
Crea undmin management script:
sudo tee /home/steam/manage_zomboid.sh > /dev/null <<'EOF'
#!/bin/bash
RCON_COMMAND="${@:-help}"
# Project Zomboid admin commands via RCON
# Player commands
# /adduser username password adminlevel
# /removeuser username
# /changepwd username newpassword
# /kickuser username
# /banuser username banreason
# /unbanuser steamid
# /addwhitelist username
# /removewhitelist username
# /showhwid username
# Server commands
# /save - Force save world
# /stop - Shutdown server gracefully
# /quit - Force quit
# /reloadoptions - Reload config
# /grantadmin username
# /removeadmin username
# /addmod username
# /removemod username
# Message commands
# /msg username message
# /broadcast message
# /announce message
# Vehicle commands
# /respawnallvehicles - Respawn all vehicles
# /givevehicle username vehicletype
# Teleport
# /teleportto x y z
# /teleporttouser username
echo "Project Zomboid Admin Command: $RCON_COMMAND"
EOF
sudo chmod +x /home/steam/manage_zomboid.sh
Whitelist management:
sudo tee /home/steam/zomboid-data/Saves/whitelist.txt > /dev/null <<'EOF'
# Project Zomboid Whitelist
# One username per line
# player1
# player2
EOF
sudo chown steam:steam /home/steam/zomboid-data/Saves/whitelist.txt
Ban list management:
sudo tee /home/steam/zomboid-data/Saves/banlist.txt > /dev/null <<'EOF'
# Project Zomboid Ban List
# Format: SteamID64,Username,Reason,Duration
# 76561198000000000,PlayerName,Cheating,0
EOF
sudo chown steam:steam /home/steam/zomboid-data/Saves/banlist.txt
Firewall and Ports
Configura firewall:
# Game server port (TCP/UDP)
GAME_PORT=16261
# Steam query port
QUERY_PORT=16262
# Configure UFW
sudo ufw allow 16261/tcp
sudo ufw allow 16261/udp
sudo ufw allow 16262/udp
# For iptables
sudo iptables -A INPUT -p tcp --dport 16261 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 16261 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 16262 -j ACCEPT
# Verify
sudo ufw status numbered
sudo netstat -tulnp | grep -E "16261|16262"
Ejecución con Systemd
Create servicio systemd:
sudo tee /etc/systemd/system/zomboid.service > /dev/null <<'EOF'
[Unit]
Description=Project Zomboid Dedicated Server
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam/zomboid
EnvironmentFile=/home/steam/zomboid/server.env
ExecStart=/home/steam/zomboid/start_server.sh
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
# Resource limits
LimitNOFILE=65536
LimitNPROC=4096
# Security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/home/steam/zomboid-data
[Install]
WantedBy=multi-user.target
EOF
Create environment file:
sudo tee /home/steam/zomboid/server.env > /dev/null <<'EOF'
SERVER_NAME=Project Zomboid Server
ADMIN_PASSWORD=adminpass
GAME_PASSWORD=
MAX_PLAYERS=20
PORT=16261
EOF
sudo chown steam:steam /home/steam/zomboid/server.env
sudo chmod 600 /home/steam/zomboid/server.env
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable zomboid.service
sudo systemctl start zomboid.service
sudo systemctl status zomboid.service
Monitor logs:
sudo journalctl -u zomboid.service -f
tail -f /home/steam/zomboid-data/logs/zomboid_$(date +%Y%m%d).log
Backup Strategy
Crea unutomated copia de seguridad script:
sudo tee /home/steam/backup_zomboid.sh > /dev/null <<'EOF'
#!/bin/bash
DATA_DIR="/home/steam/zomboid-data"
BACKUP_DIR="$DATA_DIR/backups"
RETENTION_DAYS=30
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
# Backup world saves
tar -czf "$BACKUP_DIR/zomboid_backup_${TIMESTAMP}.tar.gz" \
-C "$DATA_DIR" Saves/ \
2>/dev/null
if [ $? -eq 0 ]; then
SIZE=$(du -sh "$BACKUP_DIR/zomboid_backup_${TIMESTAMP}.tar.gz" | awk '{print $1}')
echo "[$(date)] Backup created: $SIZE"
else
echo "[$(date)] Backup failed!" >&2
exit 1
fi
# Cleanup old backups
find "$BACKUP_DIR" -name "zomboid_backup_*.tar.gz" -mtime +${RETENTION_DAYS} -delete
EOF
sudo chmod +x /home/steam/backup_zomboid.sh
sudo chown steam:steam /home/steam/backup_zomboid.sh
Schedule daily copia de seguridads:
sudo tee -a /var/spool/cron/crontabs/steam > /dev/null <<'EOF'
0 2 * * * /home/steam/backup_zomboid.sh >> /home/steam/zomboid-data/logs/backup.log 2>&1
EOF
Restore copia de seguridad:
sudo systemctl stop zomboid.service
BACKUP="/home/steam/zomboid-data/backups/zomboid_backup_20240101_020000.tar.gz"
sudo -u steam tar -xzf "$BACKUP" -C /home/steam/zomboid-data/
sudo systemctl start zomboid.service
Supervisión
Create monitoreo script:
sudo tee /home/steam/monitor_zomboid.sh > /dev/null <<'EOF'
#!/bin/bash
echo "=== Project Zomboid Server Status ==="
echo ""
# Service status
if systemctl is-active --quiet zomboid.service; then
echo "✓ Service is running"
else
echo "✗ Service is NOT running"
exit 1
fi
# Process info
PID=$(pgrep -f ProjectZomboid64)
if [ ! -z "$PID" ]; then
MEM=$(ps -p $PID -o rss= | awk '{print $1/1024 " MB"}')
CPU=$(ps -p $PID -o %cpu= | awk '{print $1 "%"}')
echo "Memory: $MEM"
echo "CPU: $CPU"
fi
# Port status
echo ""
if ss -tlnp | grep -q "16261"; then
echo "✓ Game port 16261 listening"
else
echo "✗ Game port not listening"
fi
# Disk usage
echo ""
USAGE=$(df -h /home/steam/zomboid-data | awk 'NR==2 {print $5}')
echo "Disk usage: $USAGE"
# Recent errors
echo ""
ERRORS=$(tail -20 /home/steam/zomboid-data/logs/zomboid_*.log 2>/dev/null | grep -i "error\|fatal" | wc -l)
echo "Recent errors: $ERRORS"
# Latest backup
echo ""
LATEST=$(ls -t /home/steam/zomboid-data/backups/zomboid_backup_*.tar.gz 2>/dev/null | head -1)
if [ ! -z "$LATEST" ]; then
echo "Latest backup: $(basename $LATEST) - $(date -r $LATEST '+%Y-%m-%d %H:%M')"
fi
EOF
sudo chmod +x /home/steam/monitor_zomboid.sh
Update server:
sudo systemctl stop zomboid.service
sudo -u steam /home/steam/steamcmd/steamcmd.sh \
+force_install_dir /home/steam/zomboid \
+login anonymous \
+app_update 380870 \
+quit
sudo systemctl start zomboid.service
Conclusión
Your Project Zomboid servidor dedicado is now fully configured with sandbox settings, mod support, and administrative tools. Project Zomboid provides engaging cooperative survival gameplay with flexible configuration for various playstyles.
Key takeaways:
- Configura sandbox settings to match your community's preferences
- Use whitelist and banlist for community management
- Implement regular automated copia de seguridads
- Monitor server rendimiento (relatively lightweight)
- Instala mods carefully to avoid conflicts
- Update server regularly for bug fixes and features
- Use admin commands to maintain community standards
A well-maintained Project Zomboid server can support years of engaging cooperative zombie survival gameplay.


