Multiplayer FAQ

From PZwiki
Project ZomboidMultiplayerMultiplayer FAQ
PlushSpiffo.pngThis article is about multiplayer FAQ. For a general frequently asked questions, see Frequently Asked Questions. For general page about multiplayer, see multiplayer.
WhiskeyHalf.png
This article may be in need of improvement.
Needs verification whether things are still up to date.
Editors are encouraged to add any missing information to the article, while verifying that the article's current content is correct.

How do I get to play Multiplayer?

Multiplayer is available through the 'Join' and 'Host' options in the main menu.

How do I set up a server in Windows/Mac/Linux?

Please follow dedicated server page for installation of a dedicated server on your specific operating system.

For Windows you can use this tutorial.

People running a Linux server can follow the instructions posted by Connall.

Windows

To host a server, navigate to your game installation folder (for Steam users, the default location is Steam\SteamApps\common\ProjectZomboid>) and find the batch-file called ProjectZomboidServer.bat. Start it by double clicking it.

A command prompt window will pop up saying "*** SERVER STARTED****".

If you want to host a server with lots of people, you should make sure your internet connection is fast and you have enough RAM in your rig.

See How do I use more/less RAM? for how to allocate more memory to your server.

To allow people to connect to your server you will need to forward the necessary ports.

The necessary ports to forward are 16261 (UDP) which serves as a handshake port for communicating with the server.

For each possible player slot on your server, you need to forward additional TCP ports, which are used to stream the world to the player clients.

If you want a server with 10 slots, you would have to forward these ports:

  • 16261 UDP
  • 16262 - 16272 TCP

A quick and easy way to test if your ports are forwarded properly are CanYouSeeMe.org and Open Port Check Tool.

Good guides on how to forward ports are found all over the internet. Port Forward has good guides on hand and covers a lot of routers. Port forwarding sounds harder in theory that it actually is. It mostly just involves getting into the menu of your router.

If you have no access to your router, please consult whoever is in charge of your network (parents, room mates, admins, etc.).

Linux

With this we're making the assumption you understand your way around Linux. For a more in depth guide, go visit Buying & Running a Linux Project Zomboid Server - Help - The Indie Stone Forums

You'll want to install default-jdk and screen onto the server if you don't have these already.

Now we need to grab the SteamCMD so we can download the actual Project Zomboid software. It's recommended that you run SteamCMD on a seperate user.

You should add a new user by doing:

adduser steam

Once that's sorted we need to switch over to the new user. It should be noted anytime I refer to "steam" in the file directory context, then it means the user folder. If you decide to name the user something else the directories change also. Something to keep note of. "Steam" is not the same as "steam" in the directory context as well.

su - steam

this will switch the user from root, to Steam.

Now we need to actually get the SteamCMD. To do this we run this command:

wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz

It should eventually download and once it does we need to actually get the contents out of the folder. To do this we run

tar -xvzf steamcmd_linux.tar.gz

Now we got to run SteamCMD

To do this we can do:

cd /home/steam/steamcmd

then

./steamcmd.sh +login steamusername steampassword +force_install_dir directory/you/want/to/install/to +app_update 108600 -beta onlinetest validate +exit

steamusername being your Steam username and password being the Steam password.

You should have a projectzomboid-dedi-server.sh file in your ProjectZomboid folder, if not you will need to rerun the command up above.

Whether or not you will whitelist the server it's best to put the file in. You'll now need to edit the projectzomboid-dedi-server.sh and set your RAM values. This is dependant on how much RAM your server has, I personally didn't set them to use my complete server capacity, I did about half but the choice is up to you. (Kirrus: Don't set more than 80% of your VM's capacity.) Use WinSCP and double click on the file and it should open it up in an editor, find these two lines:

-Xms1024m \
-Xmx1024m \

And edit the values to your choosing.

Now we need a certain script:

wget http://kirrus.co.uk/stuff/pz/wheezy-glibc-sid.sh
bash wheezy-glibc-sid.sh

This is only required for those who are running a Debian OS, Ubuntu (I am told) should be fine.

We're almost there. So here's what we got to do now.

cd /home/steam/Steam/SteamApps/common/ProjectZomboid

then

./projectzomboid-dedi-server.sh

It will start the server. You need to run the server in screen, or when you close the terminal program you're using, the server will shutdown as well.

EDIT - I just ran it from a terminal window (in Ubuntu/Lubuntu). Go to your dedicated server install folder (By default it will be in your home under /.steam/steam/steamapps/common/Project Zomboid Dedicated Server) then run the script with bash start-server.sh.

LightBulbBlue.png
By default the server name will be "servertest", if you want it to be anything else or if you run multiple servers, just type -servername NAME (where NAME is whatever name you want) after the start-server.sh bit. If you put in a name which doesn't exist, it will create a new server for you.
Running on a home computer

This is for if you simply want to run a server on your everyday PC, though it should be kept in mind that the performance and amount of players it'll be able to handle will be heavily dependent on your hardware and how many other programs are running. I don't know how different, if at all, this will be for distros that aren't Ubuntu, so keep that in mind if you're not on Ubuntu or an Ubuntu-based distro.

Due to the performance and security limitations as compared to using a dedicated server, it is heavily advised that you only do this for a small private server, such as playing with a few friends.

Find the Project Zomboid Dedicated Server tool in steam and install it. Once installed, navigate to the folder (Right click > Manage > Browse local files) and run start-server.sh in terminal to start the server. The server config is at /home/Zomboid/Server/servertest.ini, and the world file is at /home/Zomboid/Server/Saves/Multiplayer. Make sure when you close the server that you use the Quit command, as improperly closing the server (Such as with Ctrl+C or closing the terminal window) will result in the world improperly saving and potentially losing hours of progress, if autosave isn't enabled. That's all you need to know besides port forwarding, which is already covered elsewhere on this page.

How do I use more/less RAM?

You'll need to edit the projectzomboid-dedi-server.sh file or the ProjectZomboidServer.bat file and find lines that look like:

-Xms1024m \
-Xmx1024m \

These are your RAM values. It is advised that you don't use more than 80% of your available RAM. If you're running the server from a home computer, then the RAM values should be toned down significantly more.

How do I reset/start a new world?

To reset the servers world you will need to navigate to your server's /Zomboid/Sandbox folder. In there should be a folder called servertest deleting this will folder will reset the world. Make sure to do this when the server is off (or the server program is not running) and restart the server.

Alternatively you can create a new server. By default the server name will be "testserver" and all the files will be named the same. If you want a new server just type -servername NAME (where NAME is whatever name you want) or add it to the shortcut you use to run the server. If you put in a name which doesn't exist, it will create a new server for you.

LightBulbBlue.png
You will have to do this every time you run it as well.

Are LAN servers possible/how?

Yes. Follow the instructions on dedicated server page.

LAN servers are completely possible, the usual installation instructions need to be carried out with regards to setting up a server. This info can be found at How to run a Server - Help - The Indie Stone Forums.

You should then be able to connect the server.

Can I use mods on my mp server?

Yes, mods can be installed by following the instructions in installing mods section of dedicated server page.

To use custom mods for your server you need to add them to your server.ini file (by default it will be servertest.ini).

Step 1: Open the server.ini file.

Step 2: Find the line starting with "Mods=" and place the name of the mod into this field.

LightBulbBlue.png
To find the name you need to check in the mod file themselves OR add it with the in game server options editor BUT that has a bug where it doesn't do the third step below which you MUST do manually either way.

Step 3: Fine the line starting with "WorkshopItems=" and place the workshop code into this field.

LightBulbBlue.png
To find the workshop code go into the mod on Steam, press the share button and copy the numerical code from the end.

Save the file, reload your server and it's done! The mods will automatically download when people join if they don't have them. Please note some mods require a client reload, if this is the case it may crash out or cause strange things to happen. It's recommended users have the mods before joining to remove this risk but worse case they can just reload and join straight away and all should be fine.

To use custom maps for your server, please read the following thread on the official forums.

It is recommend to test all mods before rolling them up to live servers, they can have unexpected side effects to existing games. Please be patient with the mod community as they migrate mods to the new build and help them with your thanks and assistance with accurate bug reports.

Can I change the length of days or the amount of Zombies/loot? Is there a way to respawn loot?

Sandbox settings of the server are set up via the SandboxVars.lua which should be saved in Zomboid\Server\*servername*_SandboxVars.lua.

If the file doesn't exist, it can be created with the PZServerSetting.exe from your PZ installation folder.

If necessary, use the PZServerSettings.exe located inside the game's install directory.

On a Linux box with Steam, in the home directory there should be .local/share/Steam/SteamApps/common/ProjectZomboid/projectzomboid/PZServerSettings.exe (execute using wine)

How do zombies spawn?

Zombies "respawn" in defined areas where it makes sense (e.g., the highway and other high density areas).

In your ServerOptions.ini the server host has two options for zombie respawn:

HoursForZombiesRespawn = 0  // Amount of hours a zone has to be unseen to respawn zombies.
IncreaseZombieRespawnBy = 0 // Ammount of additional zombies you want to have spawned if HoursForZombiesRespawn > 0.

Example: An area spawns by default 10 zombies. You define IncreaseZombieRespawnBy=20. Now the area will spawn 30 zombies (10 naturally and 20 additional zombies).

Why can't people connect to my server?

There can be a number of factors surrounding why people can't access your server. For the most part this sort of stuff applies to people who are hosting servers from their homes, if you're using a VPS or dedicated gameserver provider to host the server you shouldn't encounter these problems. If you do, first refer to any available guides that may help resolve the issue, then contact your server provider to see if they would be willing to help.

For home computers here's what you can check:

1. Check your ports. Chances are your ports aren't accepting connections, and for good reasons as this is generally a security feature for the routers. Routers are so varied, that we can't actually give a lot of specifics for you. However visiting a site like: portforward.com and finding your router model should give you an idea on how to set up your port forwarding.

The following ports that should be forwarded is the 16261 as UDP as it's considered a handshake port for the server. All further ports are configured as TCP and are used to configure map data to each user. So one port should be forwarded for every player you wish to have on the server. So for example 16262 - 16272 would allow ten players.(Version 41.65, after testing, multiplayer online requires only one UDP port 16261)

If you want to test if the port is forwarding then you can use a port checker such as https://www.yougetsignal.com/tools/open-ports/ to test and see if the port is open. Make sure that your server is running before testing the port as some routers, won't open the port until there's a connection running.

2. Firewalls and antivirus. The oldest trick in the book, these could be causing problems for the server and may wish to turn these off or add PZ/Java to the exception list.

3. Correct IP. There are two types of IP, an internal IP and an external IP. Internal IPs are used for connecting within the computer or network while externals are for people connecting from outside the network. Make sure you are giving people an external IP and not an internal one. To check your IP, you can just google "What's my IP" or visit http://www.whatismyip.com/

If you're absolutely certain it's none of these problems post to the multiplayer help board on the official forums: http://theindiestone.com/forums/index.php/forum/72-help/

Common errors

I'm trapped in a server! The map won't load anymore, what's going on? It looks like a black border

You have either lost connection to the server, or the server has crashed. You'll need to check your internet connection, or the server owner will need to restart the server. If you're certain this is not the case, then the server may not have the ports configured correctly to allow map streaming to each player. If you're the server owner here's some info on the matter.

The following ports that should be forwarded is the 16261 as UDP as it's considered a handshake port for the server. All further ports are configured as TCP and are used to configure map data to each user. So one port should be forwarded for every player you wish to have on the server. So for example 16262 - 16272.

I'm getting some console messages about "Delay Packets"

This seems to be a common problem affecting a lot of users. There's no known concrete fixes, just a couple of hot fixes.

One such fix is to try and disable firewalls or anti-virus which might be causing the issue. If you have been able to connect to the server but has now changed and you're getting these messages you can try removing the save folder associated with the server. If it's still not working you might be unfortunately stuck. It is possible that it's a server specific issue, try connecting to a different server and see what happens.

Making sure the username is using a proper file name characters (as the username is saved to a folder, so if you're using improper characters (like "/" "!" etc) it won't work. It's also entirely possible that the server is full, or all the ports opened by the server operator are in use. This means that you won't be able to connect to the server and will instead, need to connect to a different server.

My server keeps crashing with people on it!

Odds are you don't have enough RAM or you haven't allocated enough of your RAM to the server. If you're running a public server on a home computer, this will be more of an issue. If running off a VPS it's still a possibility. Generally 2GB gets around 10-15 players and 4GB can cover 20-30 possibly.

I get the Client version (956) doesn't match server (958) when I try to connect to a server message. What's going on?

This is indicating that there is a Project Zomboid build mismatch between the client and server. Say the message was like this "Client version (x) doesn't match server (y)"

If Client (x) number is less than server (y) then that means that the server is running a newer build and the client is running an older build. The best way to check is to make sure that steam has updated your game to the newest version possible.

If server (y) number is less than (x) then that means that the server is outdated from the client and the server still needs to be updated.

It has been known that builds have accidentally been pushed to the onlinetest branch, so make sure to check the forums and see if anybody else is having problems regarding compatibility issues.

Also note - servers don't automatically install updates while running, but most peoples clients will. You may need to shutdown the server, allow Steam or GOG to update the files, and then reload.

I was on a friends server, it was working fine but then we restarted and we started having problems. What do I do?

There are a couple of possible solutions to this. The first is try deleting the save associated with the server, in the event that's causing a conflict. If that doesn't work, it might mean the server host has not quite configured the ports correctly and isn't allowing map streaming.

Administrating a server

Startup parameters

See more: Startup parameters

See startup parameters page for a list of startup parameters you can start the game with.

Server settings

See more: Server settings

There are various options for servers. The server options are set up via the ServerOptions.ini file in your Zomboid folder:

  • Windows: %USERPROFILE%\Zomboid\server
  • Linux: $HOME/Zomboid/Server

Just open it with a text editor and change them as you see fit.

When done with the changes, save the file and reboot the server.

You can also change these settings in-game (when logged in as an admin) via /changeoption optionName=*value* and then /reloadoptions.

It may however be recommended to host a server in game, get all the settings you want configured in the menu (where it also gives you explanations of what each setting does), start a game, quit, and use those files to start a dedicated server instead. That way there's no chance of typos, and no need to look through the values.

See server settings page for a list of settings.

Admin commands

See more: Admin commands

There are various commands for admins. There will be more in the future.

You can type /help to get a full list or /help *command* to get the help tooltip for this command.

See admin commands page for a list of settings.