project-zomboid
Launch Project Zomboid game
TLDR
Start the server
Start a server with a specific name
SYNOPSIS
ProjectZomboid64 [JVM_OPTIONS] [-- [GAME_OPTIONS]]
or
steam -applaunch 108600 [GAME_OPTIONS]
PARAMETERS
-Xms<size>
Sets the initial Java heap size. E.g., -Xms2g for 2 gigabytes. Crucial for performance.
-Xmx<size>
Sets the maximum Java heap size. E.g., -Xmx8g for 8 gigabytes. Essential for preventing out-of-memory errors, especially with mods.
--
A common separator used when directly invoking the Java wrapper script, indicating that subsequent arguments are for the game application itself, not the JVM.
-nosteam
Launches the game without Steam integration, useful for troubleshooting or specific server setups.
-safemode
Starts the game with default, safe graphics settings, often used to resolve display issues.
-debug
Enables verbose debug logging, helpful for mod development or troubleshooting.
-windowed
Forces the game to launch in windowed mode.
-fullscreen
Forces the game to launch in fullscreen mode.
-userdir <path>
Specifies a custom directory for game user data (saves, mods, logs) instead of the default.
-enableluadev
Activates Lua debugging tools within the game, primarily for modders.
-Djava.awt.headless=true
A JVM argument typically used when running a dedicated server without a graphical interface.
DESCRIPTION
The "project-zomboid" command typically refers to the executable for the popular survival horror video game, Project Zomboid, on Linux systems. This command is not a standard system utility but rather the entry point for launching the game itself.
Project Zomboid is an open-world sandbox game where players must survive a zombie apocalypse for as long as possible. It features deep crafting, base building, intricate survival mechanics like hunger, thirst, illness, and mood, and a strong emphasis on permadeath. The game is developed by The Indie Stone and is notable for its isometric perspective, pixel art style, and relentless difficulty.
On Linux, the game is commonly launched via Steam or by directly executing the `ProjectZomboid64` (or `ProjectZomboid32`) shell script found within the game's installation directory. This script acts as a wrapper, configuring and launching the underlying Java Virtual Machine (JVM) which runs the game's main Java application. Users often interact with this command to customize launch options, particularly adjusting memory allocation for the JVM or enabling specific game modes and debug features.
CAVEATS
The 'project-zomboid' command is specifically for launching the game and not a general-purpose Linux utility. Its behavior heavily depends on the game's internal Java application and the underlying Java Virtual Machine. Performance is highly dependent on allocated RAM and CPU. Direct execution requires Java Runtime Environment (JRE) to be correctly configured and accessible by the wrapper script. Issues often arise from insufficient memory allocation or graphics driver problems.
DEDICATED SERVER SETUP
When setting up a dedicated server for Project Zomboid, users often modify the `ProjectZomboidServer64` (or `ProjectZomboidServer32`) script. This typically involves adjusting -Xmx for maximum memory, using -Djava.awt.headless=true, and potentially running the server within a `screen` or `tmux` session for background operation and session persistence.
MEMORY OPTIMIZATION
Due to its Java foundation, Project Zomboid can be memory-intensive, especially with numerous mods. Users frequently need to manually adjust the -Xms and -Xmx JVM options in the launch script or Steam launch options to allocate sufficient RAM, preventing crashes and improving performance.
HISTORY
Project Zomboid was first released in alpha in 2011, making significant strides through early access. Its development has been characterized by continuous updates and community involvement. The game's reliance on Java has been a consistent aspect of its architecture, influencing its cross-platform compatibility and memory management. Over the years, the launch scripts for Linux have evolved to better manage JVM arguments and provide more robust direct execution options, catering to both desktop players and dedicated server administrators.


