Startup parameters

From PZwiki
Project ZomboidMultiplayerStartup parameters
UI Tick.png
This page has been revised for the current stable version (41.78.16).
Help by adding any missing content. [edit]

Project Zomboid has customizable startup parameters, as either JVM arguments or game arguments. This can be used to override "vmArgs" in the .json file. JVM arguments must end with a --, even if there are no game arguments.

Create shortcut
  1. Navigate to the game folder
    With Microsoft Windows 10, found in Program Files (x86):
    C:\Program Files (x86)\Steam\steam\games
  2. Create a shortcut of the executable file (ProjectZomboid32.exe/ProjectZomboid64.exe)
  3. Add the appropriate JVM arguments in the "Target:" line
    Example: C:\ProjectZomboid64.exe -Xmx1024m -Xms1024m -- -nosteam
Steam application
  1. Right-click the game in the Library
  2. Select "Properties..."
  3. Add desired options under "LAUNCH OPTIONS"
StartServer64.bat Parameters
  1. Open the StartServer64.bat file with a text editor
  2. Add any appropriate JVM arguments after the -Xmx line in the .bat contents
  3. Add any appropriate Game Parameters after the %1 %2 text inside the .bat contents, which is at the end of the file before PAUSE.


-Xmx16g -Duser.home=C:\Zomboid

%1 %2 -nosteam -servername MySecondServer -adminpassword YourPasswdXYZ

Game arguments

Client & server

Arguments Description Example
-nosteam Disables Steam integration on client/server.
-cachedir=<path> Sets the path for the game data cache dir. -cachedir="C:\Zomboid"
-modfolders Option to control where mods are loaded from. Any of the 3 keywords may be left out and may appear in any order. -modfolders workshop,steam,mods
-debug Launches the game in the debug mode.


Arguments Description Example
+connect <ip:port> Server address to connect, when joining a server using Steam. +connect
+password <password> Server password to connect, when joining a server using Steam. +password ServersPassword
-debugtranslation Writes possible translation issues to homedir "/Zomboid/translationProblems.txt"
-safemode Launches the game with reduced resolution and disables some graphical effects to reduce strain on lower-end graphics cards.
-nosound Disables the game audio


Arguments Description Example
-adminpassword Option to bypasses the enter-a-password prompt when creating a server. -adminpassword YourPasswdXYZ
-servername You can choose a different servername by using this option when starting the server. -servername MySecondServer
-ip <ip> Option to handle multiple network cards. Example: -ip
-port <port> Option which overrides the .ini option "DefaultPort". -port 16261
-udpport <port> Option which overrides the .ini option "UDPPort". -port 16262
-steamvac <true/false> Option to enable/disable VAC on Steam servers. On the server command-line use -steamvac true/false. In the server's INI file, use SteamVAC=true/false.
-steamport1 <port>
-steamport2 <port>
Steam servers require two additional ports to function (I'm guessing they are both UDP ports, but you may need TCP as well). These are in addition to the DefaultPort= setting. These can be specified in two ways: In the server's INI file as SteamPort1= and SteamPort2=. Using command-line options -steamport1 and -steamport2.

JVM arguments

Client & server

Arguments Description Example
-Xmx Maximum amount of Memory.
(1024m=1Gig, 2048m=2Gig, 4096m=4Gig)
-Xms Initial/Minimum Memory allocation.
(1024m=1Gig, 2048m=2Gig, 4096m=4Gig)
-Dzomboid.steam=<boolean> Disables/enables Steam integration on client/server.
(0=disabled, 1=enabled)
-Duser.home=<path> overwrites the "/Zomboid" homedir to whatever path you want. -Duser.home=C:\Zomboid
-Dsoftreset option to perform a soft reset (this does not work as of 41.78.16, the issue was reported and most likely be fixed in future versions[1]
-Ddebug enables debugging


Arguments Description Example
-Dorg.sqlite.lib.path=<path> Windows users: When the Server starts, a temporary sqlite file will be created in "TEMP", however it will not be deleted after stopping the Server. A way to avoid this is by adding a JVM option -Dorg.sqlite.lib.path=natives and put a copy of the .dll called sqlitejdbc.dll in the server's natives/ directory. It will then use that one instead of extracting the .dll from the .jar file every time. -Dorg.sqlite.lib.path=natives