
I have had the recent fortune to host some Project Zomboid servers, and play with good friends … I have also learned a few things that I would like to share as well …
See, getting the Project Zomboid multiplayer server off the ground and running is not too hard at all, one just needs to follow the instructions on the Project Zomboid wiki for the dedicated server, here … well, I mean you can probably host a server or server like incarnation from the game itself, but that is not as much fun. The major thing that is not fun about running a dedicated multiplayer server for friends is … the dedicated server is written in Java, and Java can be extremely painful, I will elaborate a bit more in a moment.
Now, adding mods to a game can really change the whole way the game looks and feels, obviously, and Project Zomboid is no different. However, something to keep in mind is that all mods are not written the same … they can conflict, crash the game .. and they had to be put in lists using the hide and seek champion of forever, the semi-colon (;). After standing up the server the addition of mods is done in the server settings (either in the file directly or the game GUI), with each mod and name separated with SEMI-COLONS! This little detail took me a week to finally work out, and seeing as I graduated college knowing how to program in languages that use semi-colons … I felt really stupid. Thankfully the folks playing on the server were really understanding and brushed the trouble. Which was good … because once we got started, there were over 90 mods running …
Now as I said before, mods can be cool, and we had some cool music and vehicle mods. We even ran with a dance mod, which led to some funny videos and a hilarious night of running over hordes with riding lawn mowers. The problem, however, is that eventually you have to pay the price for having so many mods. I paid that price pretty quickly, and several times at that – java will chew through available configured memory pretty quick … which in the case of our server was about 30 minutes at full load before the app crashed restarted itself (a little automation foresight on my part … restarting the crashed process automatically). Thankfully this crashing was quickly remedied of by modifying the launch file to increase the amount of memory for the java virtual machine (but had to raise it an obscene amount for the server to be completely stable with our concurrent 14 – 15 players … it might not be java’s fault, but java is getting the blame).

Project Zomboid servers (in my experience) require a little more attention than other game servers, you cannot just set it up, forget about it, and still have an optimal long term experience. Somethings that help a lot are to have a goal for your server .. more than just survive something like building a shrine to side corn within a certain amount of time, having a time limit on your server helps keep the experience going and on topic. The best advice I can impart though, is allow your friends to help guide where the story goes, be that story teller that lets the players help guide the narrative … but no request is free.
Above all else … have fun, it takes some work to keep it all running smooth, but it is really worth it.
Edit: After a new server with a new build of Zomboid, and having to do way more troubleshooting that I really should have, I feel that I have to make a bit of a correction. Yes the server was written in java and I am bias against java, having so many headaches learning the language many years ago. Times have changed and one thing that I definitely did not mention when I wrote this post was the fact that reading logs goes a long way to finding problems… that could be just easily dismissed as bad programming.