Project Zomboid has customisable 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.
Navigate to the game folder
Create a shortcut of the executable file (ProjectZomboid32.exe/ProjectZomboid64.exe)
Add the appropriate Jvm arguments in the "Target:" line Example: C:\ProjectZomboid64.exe -Xmx1024m -Xms1024m -- -nosteam
Choose the game shortcut in Steam Library
Right-click the game
Hit "Set launch options..."
Client & Server
Disables Steam integration on client/server.
Sets the path for the game data cache dir.
Option to control where mods are loaded from. Any of the 3 keywords may be left out and may appear in any order.
Server address to connect, when joining a server using Steam.
Server password to connect, when joining a server using Steam.
Writes possible translation issues to homedir "/Zomboid/translationProblems.txt"
Launches the game with reduced resolution and disables some graphical effects to reduce strain on lower-end graphics cards.
Disables the game audio
Option to bypasses the enter-a-password prompt when creating a server.
You can choose a different servername by using this option when starting the server.
Option to handle multiple network cards. Example:
Option which overrides the .ini option "DefaultPort".
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.
Client & Server
Maximum amount of Memory. (1024m=1Gig, 2048m=2Gig, 4096m=4Gig)
Disables/enables Steam integration on client/server. (0=disabled, 1=enabled)
overwrites the "/Zomboid" homedir to whatever path you want.
option to perform a Soft Reset
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.