Back to Blog

How to Make a Project Zomboid Server, Step by Step

How to make a Project Zomboid server: dedicated server with SteamCMD, admin password, servertest.ini, port 16261, Workshop mods, RAM and backups.

Nodesty Team7 min readGame servers
The words Project Zomboid with SteamCMD, 16261 and Workshop on a dark Nodesty background

Making a Project Zomboid server comes down to four steps: you download the free Project Zomboid Dedicated Server files with SteamCMD, start the server for the first time and set the admin password, customize your server with servertest.ini and the sandbox settings, and open UDP ports 16261–16262. With your own server, Knox County stays open to your friends even when you're not in the game.

This guide covers setting up a Project Zomboid server on Linux from scratch, the settings, Workshop mods, admin commands and backups. Project Zomboid is an actively developed game; file and setting names may change in new builds, so check the release notes after updates.

Requirements

  • Operating system: Project Zomboid Dedicated Server runs on 64-bit Linux and Windows. In this guide we use Ubuntu and Debian.
  • RAM: 4 GB for a few players, 8 GB or more for busy, modded servers.
  • CPU: Simulating zombie hordes and the areas where players are puts a load on the processor; high single-core speed is what keeps things smooth.
  • Disk: Set aside a few tens of GB of free space for the server files, Workshop mods and the world save. The save grows as the world is explored.

All you need to know is how to connect to a server with SSH; we give the rest of the commands step by step.

Downloading the server files with SteamCMD

For security, run the server as a separate user instead of root:

sudo apt update
sudo apt install lib32gcc-s1 curl tmux
sudo useradd -m -s /bin/bash pzserver
sudo su - pzserver
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

The Steam app ID of Project Zomboid Dedicated Server is 380870:

~/steamcmd/steamcmd.sh +force_install_dir /home/pzserver/server +login anonymous +app_update 380870 validate +quit

If your players are on the game's beta (unstable) branch, you need to switch the server to the same branch; to do that, add -beta unstable to the command. The server and the players must be on the same version.

First start and the admin password

Start the server in a tmux session:

cd ~/server
tmux new -s pz ./start-server.sh

On the first start, the server asks you to set an admin password; type the password twice. With this password, you log in to the game with the username admin and manage the server. Once you see in the console that the server has started, press Ctrl + B and then D to leave the session, and return with tmux attach -t pz.

By default, the server's settings and save files are named servertest; in this guide we use this default name for the file names. If you'll run more than one server on the same machine, you can give a different name with ./start-server.sh -servername myserver; in that case, read the name you gave instead of servertest in the file names.

Setting the RAM

The memory the server can use is set in the ProjectZomboid64.json file in the server folder. Find the -Xmx value in the file and set it according to your server's RAM:

"-Xmx8g",

Leave some room for the operating system and other services; 6 GB on a server with 8 GB of RAM and 12 GB on a 16 GB server are reasonable values. Restart the server after the change.

Settings with servertest.ini

The settings files are kept in the Zomboid/Server folder in the user's home folder. Shut down the server before editing the server settings:

nano ~/Zomboid/Server/servertest.ini

The most important settings:

SettingWhat it does
PublicNameThe name shown in the server list
PublicDescriptionThe server description
PublicIf true, the server appears in the public list
PasswordThe password players need to join
OpenIf false, only accounts added by an admin can join
MaxPlayersThe maximum number of players
PVPWhether players can harm each other
DefaultPortThe game port (default 16261)
WorkshopItemsThe numbers of the Workshop items to load
ModsThe IDs of the mods to enable

Sandbox settings: The number of zombies, their speed, the infection type, loot rarity and other game rules are in the servertest_SandboxVars.lua file. The easiest way is to set them in the game as if you were creating a new single-player game, then copy the file the game creates to the server.

Ports and firewall

By default, the Project Zomboid server uses these ports:

  • 16261 UDP: The game port.
  • 16262 UDP: The port for additional game traffic.

If you use ufw on Ubuntu:

sudo ufw allow 16261:16262/udp

We explain how ports work in our What is a port? article.

Connecting to the server

In the game, go to the Join screen and enter the server's IP address and port 16261. When you connect to the server for the first time, you set a username and password; this account is specific to that server. If the server is public, you can also search for it by name in the Public tab.

Workshop mods

To add a mod, you need two pieces of information:

  1. Workshop ID: The number in the address of the mod's Steam Workshop page. It goes on the WorkshopItems line.
  2. Mod ID: The ID given on the mod's Workshop page. It goes on the Mods line.

Separate multiple values with semicolons:

WorkshopItems=1234567890;2345678901
Mods=examplemod1;examplemod2

The server downloads the mods from the Steam Workshop by itself at startup, and the same mods are downloaded to players when they connect. Map mods are also added to the Map line. Lots of mods increase the RAM requirement and the startup time; after adding mods, check the error messages in the server console.

Admin commands

In the game, type them in the chat window with /; in the server console, type them without the slash:

CommandWhat it does
playersLists the connected players
setaccesslevel "name" adminMakes a player an admin
adduser "name" "password"Adds a new account to a closed server
kickuser "name"Kicks a player from the server
banuser "name"Bans a player
servermsg "message"Sends a message to all players
saveSaves the world
quitSaves the world and shuts down the server

Always use quit to shut down the server; killing the process can lose the progress made since the last save.

Backups and updates

The world save is kept in the ~/Zomboid/Saves/Multiplayer/servertest folder, while player accounts and settings are kept in the other folders under ~/Zomboid. Before big updates and mod changes, take a copy of the whole Zomboid folder:

tar -czf ~/pz-backup-$(date +%F).tar.gz -C ~ Zomboid

When the game updates, shut down the server with quit and run the SteamCMD command again. Major build updates may not be compatible with old worlds; read the release notes before updating. We cover taking regular backups that are independent of the server in our Server backups guide, and restarting the server at set times in our What is cron? article.

Nodesty for your Project Zomboid server

Project Zomboid's huge zombie hordes and modded worlds need a powerful processor and plenty of RAM. Nodesty AMD Ryzen 9 9950X VPS plans deliver smooth gameplay even in zombie hordes with single-core speeds up to 5.7 GHz, and run in Frankfurt and New York with NVMe storage, L3–L7 nShield DDoS protection and free daily backups kept for 7 days. If you're not sure which type of plan suits you, take a look at our Game server plan or VPS? article.

Project Zomboid is a trademark of The Indie Stone; Steam is a trademark of Valve Corporation. Nodesty is not affiliated with or endorsed by these companies.

Frequently Asked Questions

Does it cost anything to make a Project Zomboid server?

No. The Project Zomboid Dedicated Server software is free and downloads anonymously with SteamCMD. You only pay for the machine that keeps the server online 24/7. Players just need to own the game.

How much RAM does a Project Zomboid server need?

For a vanilla server where a few friends play, 4 GB is a good start. For servers with more players, large map mods and lots of Workshop mods, go for 8 GB or more. You set the memory the server can use with the -Xmx value in the ProjectZomboid64.json file.

I forgot the server admin password. What should I do?

The admin account is kept in the server's database. You can set a new password by starting the server with the -adminpassword parameter. Don't leave the parameter in the start command permanently; remove it once you've set the password.

Why don't my mods load?

For a Workshop mod to work, both its Workshop number must be added to the WorkshopItems line and its mod ID to the Mods line. If either one is missing, or if mods depend on each other in a different order, the mod won't load. The error messages in the server console show which mod is causing the problem.

I want to reset the world. What should I do?

Shut down the server, then back up and delete the folder in the saves folder that has the same name as your server. The server creates a new world the next time it starts. Player accounts and settings files are kept separately, so they aren't affected.

How do I make sure only my friends can join my server?

You can write a password on the Password line in the servertest.ini file, or set Open to false and add players one by one as an admin with the adduser command. Setting Public to false also keeps the server out of the public list.

Nodesty

About the author

Nodesty Team · Infrastructure & Support

The Nodesty team runs our servers, network and DDoS protection day to day and answers customer support requests around the clock. These guides come from that work.

Related articles

Launch your server now.

Build, scale, and conquer without limits on Nodesty's premium infrastructure.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································