Hi survivor !
This guide is made for people who want setup a dedicated server on Linux :]
Discord of the french speaking community of Project Zomboid : https://discord.gg/NFBA3dZHuC – [discord.gg]
1) Setup server on Linux (Debian 11)
This guide requires some knowledge
Connection on the VPS
1) Download PuTTy (https://www.putty.org/) – []
2) start PuTTy
3) enter the IP of your VPS in Host Name
4) enter the port of your VPS (22 by default )
Connection on the VPS
1) enter the login
2) enter the password
Install package
put the commands in the console in order
- dpkg –add-architecture i386
- sudo apt install screen libsdl2-2.0-0:i386
- sudo apt-get update && apt-get upgrade
Create a user
You can change pzuser by what you want
- sudo adduser pzuser
- enter the password when the console ask you
- usermod -aG sudo pzuser
- su – pzuser
Install SteamCMD
You can change pzserver by what you want, it’s the directory of ProjectZomboid Dedicated server files
- mkdir steamcmd pzserver
- cd pzserver
- wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz – [akamaihd.net]
- tar -xvzf steamcmd_linux.tar.gz
Install ProjectZomboid Dedicated server files
- ./steamcmd.sh
- force_install_dir /home/pzuser/pzserver/
- login anonymous
- app_update 380870 -beta b41multiplayer validate
- exit
2) Start the server
The first launch will create all config files of your server
- cd
- cd pzserver
- ./start-server.sh
you must put the password of the admin account in Project Zomboid (it’s a new password)
after this message, you can launch Project Zomboid and connect to your server
Connect to your server
- Launch Project Zomboid
- Go to Online
- Go to server list
- Enter the IP of you server in IP input
- Enter the port (default : 16261)
- Enter “admin” to username or other name if you don’t want log in admin
- Enter the password admin or the password of your user account
2.1) Run server 24h/24h
If you want the server to run in the background 24/24
Commands
- screen
- cd pzserver
- ./start-server.sh
- CTRL + A + D
You can quit PuTTy, your server will run in background.
At the next connection to PuTTy to resume the server console
- screen -r
3) Stop a server
Stop a running server
Write : quit
4) Server configuration
- cd
- cd Zomboid
- cd Server
Files :
> servertest.ini
> servertest_SandboxVars.lua
> servertest_spawnpoints.lua
> servertest_spawnregions.lua
4.1) servertest.ini
This file contains the main configuration of your server
the description of the parameters is being written
- nano servertest.ini
- CTRL + O (save)
- CTRL + X (exit)
nightlengthmodifier=1
PVP=false
PauseEmpty=true
GlobalChat=true
ChatStreams=s,r,a,w,y,sh,f,all
Open=true
ServerWelcomeMessage=WELCOME<LINE><LINE> Survivor
LogLocalChat=false
AutoCreateUserInWhiteList=true
DisplayUserName=true
ShowFirstAndLastName=false
SpawnPoint=0,0,0
SafetySystem=false
ShowSafety=false
SafetyToggleTimer=2
SafetyCooldownTimer=3
SpawnItems=
DefaultPort=16261
ResetID=831494815
Mods=
Map=Muldraugh, KY
DoLuaChecksum=true
DenyLoginOnOverloadedServer=true
Public=true
PublicName= Public server
PublicDescription= Nice server
MaxPlayers=32
PingFrequency=10
PingLimit=400
HoursForLootRespawn=48
MaxItemsForLootRespawn=4
ConstructionPreventsLootRespawn=true
DropOffWhiteListAfterDeath=false
NoFire=false
AnnounceDeath=false
MinutesPerPage=0.2
SaveWorldEveryMinutes=10
PlayerSafehouse=true
AdminSafehouse=false
SafehouseAllowTrepass=true
SafehouseAllowFire=false
SafehouseAllowLoot=true
SafehouseAllowRespawn=true
SafehouseDaySurvivedToClaim=0
SafeHouseRemovalTime=144
AllowDestructionBySledgehammer=false
KickFastPlayers=false
ServerPlayerID=313828062
RCONPort=27015
RCONPassword=
DiscordEnable=false
DiscordToken=
DiscordChannel=
DiscordChannelID=
Password=
MaxAccountsPerUser=0
SleepAllowed=false
SleepNeeded=false
SteamPort1=8766
SteamPort2=8767
WorkshopItems=
SteamScoreboard=true
SteamVAC=true
UPnP=true
UPnPLeaseTime=86400
UPnPZeroLeaseTimeFallback=true
UPnPForce=true
CoopServerLaunchTimeout=20
CoopMasterPingTimeout=60
VoiceEnable=true
VoiceComplexity=5
VoicePeriod=20
VoiceSampleRate=24000
VoiceBuffering=8000
VoiceMinDistance=10.0
VoiceMaxDistance=20.0
Voice3D=true
PhysicsDelay=500
SpeedLimit=70.0
server_browser_announced_ip=
UseTCPForMapDownloads=false
PlayerRespawnWithSelf=false
PlayerRespawnWithOther=false
FastForwardMultiplier=40.0
PlayerSaveOnDamage=true
SaveTransactionID=true
DisableSafehouseWhenPlayerConnected=false
Faction=true
FactionDaySurvivedToCreate=0
FactionPlayersRequiredForTag=1
AllowTradeUI=true
DisableRadioStaff=false
DisableRadioAdmin=true
DisableRadioGM=true
DisableRadioOverseer=false
DisableRadioModerator=false
DisableRadioInvisible=true
ClientCommandFilter=-vehicle.*;+vehicle.damageWindow;+vehicle.fixPart;+vehicle.installPart;+vehicle.uninstallPart
ItemNumbersLimitPerContainer=0
BloodSplatLifespanDays=7
AllowNonAsciiUsername=true
BanKickGlobalSound=true
RemovePlayerCorpsesOnCorpseRemoval=false
ZombieUpdateMaxHighPriority=50
ZombieUpdateDelta=0.5
ZombieUpdateRadiusLowPriority=45.0
ZombieUpdateRadiusHighPriority=10.0
TrashDeleteAll=true
PVPMeleeWhileHitReaction=true
MouseOverToSeeDisplayName=true
HidePlayersBehindYou=true
PVPMeleeDamageModifier=30.0
PVPFirearmDamageModifier=50.0
CarEngineAttractionModifier=0.5
nightlengthmodifier
The length of the night, this can be modified to change the speed at which a night progresses. 0.5 will make it last twice as normal, 2 will make it go double as fast.
PVP
Player vs Player combat – true = on, false = off
PauseEmpty
If set to true, this will halt your server if there are no players on it.
GlobalChat
If set to true, it allows for the “/all” command in chat, making your players able to safely communicate with everyone.
Open
Whitelisting – If true, anyone can join, if false, players need to be added to a whitelist in order to play.
ServerWelcomeMessage
Welcome to Project Zomboid MP ! to chat locally press ‘t’, to global chat press ‘y’ or add ‘/all’ before chatting <LINE> Type ‘/help’ to have a list of available commands <LINE> <RGB:1,1,1>
Change the message players see each time they log-in.
LogLocalChat
When using the “/say” command nearby people will be able to read it in the chat log, if set to false people can only view the message on their screen.
SpawnPoint
To set a custom spawn point, change 0,0,0 to something like 1,2,0 the 1 is the first number, 2 is the 2nd, and 0 is the level. So if you want to be upstairs in a room then you change that number. you can use the Project Zomboid Map Project to look for a specific location to spawn into
DoLuaChecksum
Are you getting an error that says “you have been kicked! Your lua version does not match the server.” This usually means you have mods installed and need to either turn off this by setting the argument to false, or you have to uninstall all mods, including ones that directly installed into your media files.
MaxItemsForLootRespawn
This option is very important when you want to keep your house items from disapearing because of respawn! whatever this is set at, any chest/item that doesn’t equal this amount will respawn. So if it’s 4, make sure every container in your house has at least 4 items in it or they will respawn!
AnnounceDeath
Makes it so your embarrassing death is broadcasted to your friends
4.2) add mods to your server
In servertest.ini
Search parameters
mods=
WorkshopItems=
Go to on a Workshop mod page
(example : https://steamcommunity.com/sharedfiles/filedetails/?id=2659216714) – [steamcommunity.com]
Commands
- cd Zomboid
- mkdir mods
Get the Workshop ID and Mod ID at the end of the description of the mod
And copy past here
mods=OutTheWindow
WorkshopItems=2659216714
(in screen, you can see two mods add separated by “;”
Save your servertest.ini file and exit
- CTRL + O
- CTRL + X
4.3) servertest_SandboxVars.lua
Sandbox Parameters Configuration File
the description of the parameters is being written
- nano servertest_SandboxVars.lua
- CTRL + O (save)
- CTRL + X (exit)
SandboxVars = {
VERSION = 4,
Zombies = 4,
Distribution = 1,
DayLength = 3,
StartYear = 1,
StartMonth = 7,
StartDay = 9,
StartTime = 2,
WaterShut = 2,
ElecShut = 2,
WaterShutModifier = 14,
ElecShutModifier = 14,
FoodLoot = 2,
CannedFoodLoot = 2,
LiteratureLoot = 2,
SurvivalGearsLoot = 2,
MedicalLoot = 2,
WeaponLoot = 2,
RangedWeaponLoot = 2,
AmmoLoot = 2,
MechanicsLoot = 2,
OtherLoot = 2,
Temperature = 3,
Rain = 3,
ErosionSpeed = 3,
ErosionDays = 0,
XpMultiplier = 1.0,
ZombieAttractionMultiplier = 1.0,
VehicleEasyUse = false,
Farming = 3,
CompostTime = 2,
StatsDecrease = 3,
NatureAbundance = 3,
Alarm = 4,
LockedHouses = 6,
StarterKit = false,
Nutrition = true,
FoodRotSpeed = 3,
FridgeFactor = 3,
LootRespawn = 1,
SeenHoursPreventLootRespawn = 0,
WorldItemRemovalList = “Base.Vest,Base.Shirt,Base.Blouse,Base.Skirt,Base.Shoes,Base.Hat,Base.Glasses”,
HoursForWorldItemRemoval = 24.0,
ItemRemovalListBlacklistToggle = false,
TimeSinceApo = 1,
PlantResilience = 3,
PlantAbundance = 3,
EndRegen = 3,
Helicopter = 2,
MetaEvent = 2,
SleepingEvent = 1,
GeneratorSpawning = 3,
GeneratorFuelConsumption = 1.0,
SurvivorHouseChance = 3,
VehicleStoryChance = 3,
ZoneStoryChance = 3,
AnnotatedMapChance = 4,
CharacterFreePoints = 0,
ConstructionBonusPoints = 3,
NightDarkness = 3,
InjurySeverity = 2,
BoneFracture = true,
HoursForCorpseRemoval = 216.0,
DecayingCorpseHealthImpact = 3,
BloodLevel = 3,
ClothingDegradation = 3,
FireSpread = true,
DaysForRottenFoodRemoval = -1,
AllowExteriorGenerator = true,
MaxFogIntensity = 1,
MaxRainFxIntensity = 1,
EnableSnowOnGround = true,
MultiHitZombies = false,
RearVulnerability = 3,
AttackBlockMovements = true,
AllClothesUnlocked = false,
CarSpawnRate = 3,
ChanceHasGas = 1,
InitialGas = 2,
FuelStationGas = 4,
CarGasConsumption = 1.0,
LockedCar = 3,
CarGeneralCondition = 2,
CarDamageOnImpact = 3,
DamageToPlayerFromHitByACar = 1,
TrafficJam = true,
CarAlarm = 2,
PlayerDamageFromCrash = true,
SirenShutoffHours = 0.0,
RecentlySurvivorVehicles = 1,
EnableVehicles = true,
Map = {
AllowMiniMap = false,
AllowWorldMap = true,
},
ZombieLore = {
Speed = 1,
Strength = 2,
Toughness = 2,
Transmission = 1,
Mortality = 5,
Reanimate = 3,
Cognition = 3,
CrawlUnderVehicle = 5,
Memory = 2,
Decomp = 1,
Sight = 2,
Hearing = 2,
Smell = 2,
ThumpNoChasing = false,
ThumpOnConstruction = true,
ActiveOnly = 1,
TriggerHouseAlarm = false,
ZombiesDragDown = true,
ZombiesFenceLunge = true,
},
ZombieConfig = {
PopulationMultiplier = 1.0,
PopulationStartMultiplier = 1.0,
PopulationPeakMultiplier = 1.5,
PopulationPeakDay = 28,
RespawnHours = 72.0,
RespawnUnseenHours = 16.0,
RespawnMultiplier = 0.1,
RedistributeHours = 12.0,
FollowSoundDistance = 100,
RallyGroupSize = 20,
RallyTravelDistance = 20,
RallyGroupSeparation = 15,
RallyGroupRadius = 3,
},
}
4.4) Allocate more ram to Java (IMPORTANT)
If your server crashes it means that you did not allocate a lot of ram to JAVA
Commands
- cd
- cd pzserver
- nano ProjectZomboid64.json
- -Xmx put -Xmx=8g (if your server have 16go RAM).
- CTRL + O
- CTRL + X
5) Update server version PZ
If you get this error when trying to connect to a server
This means that the server does not have the latest version of Project Zomboid
Commands
- cd
- cd steamcmd
- ./steamcmd.sh
- force_install_dir /home/pzuser/pzserver/
- login anonymous
- app_update 380870 -beta b41multiplayer validate
- exit (at the end)
6) hard reset
To hard reset the server
Commands
- cd
- cd Zomboid
- cd Saves
- cd Multiplayer
- rm -rf servertest
- cd
- cd Zomboid
- cd db
- rm -rf servertest.db
When you restart the server, it will recreate the original files
7) Youtube example
Quick video to install a Project Zomboid server in 5 min.
After installation in the video I quickly show what’s in the tutorial

This is all for Project Zomboid How to Host Server Via Linux Tutorial hope you enjoy the post. If you believe we forget or we should update the post please let us know via comment, we will try our best to fix how fast is possible! Have a great day!
- Check All Project Zomboid Posts List
If i wanted to do this on ubuntu server, what would i need to change?
Awesome Guide… I would say the biggest gotcha that is not in this guide is adding the ports to the fire wall. But of course portfowarding on the router as well
on ubuntu
sudo ufw allow 16261
Install ProjectZomboid Dedicated server files
Here is
cd steamcmd missing!
./steamcmd.sh
force_install_dir /home/pzuser/pzserver/
login anonymous
app_update 380870 validate
exit
and i added the correct valdate option, so there is no hate anymore =)
Need to run “apt-get update” right after “dpkg –add-architecture i386”
Already out dated guide.
Stable version is out. No more beta or IWBUMS
99.9% of this guide is NOT outdated.
Simply change:
app_update 380870 -beta b41multiplayer validate
to:
app_update 380870 validate
Be helpful instead of just bitching.