Many player groups in Project Zomboid initially begin their survival journey through local in-game host co-op or solo play. As survivor compounds expand, fortifications multiply, and supply stockpiles grow, migrating the save to an always-on Linux dedicated server becomes essential. However, simply copying the world directory directly often results in stripped host inventories, missing safehouses, or database parsing errors due to differences in how singleplayer and multiplayer engines handle player accounts.
This guide walks through the exact workflow for migrating a local Project Zomboid world to a dedicated Linux server: dissecting map_p.bin state files, safeguarding survivor inventory in world containers, and translating sandbox rules into SandboxVars.lua.
Save Folder Architecture: Singleplayer vs Dedicated Server#
Project Zomboid maintains distinct storage paths and database conventions between singleplayer and multiplayer environments:
- Singleplayer (Client):
- Windows:
%USERPROFILE%\Zomboid\Saves\Sandbox\<SaveName>\(orSurvival) - Linux:
~/Zomboid/Saves/Sandbox/<SaveName>/
- Windows:
- Dedicated Server (Linux):
- World state directory:
~/Zomboid/Saves/Multiplayer/<ServerName>/ - Server operational ini:
~/Zomboid/Server/<ServerName>.ini - Sandbox gameplay variables:
~/Zomboid/Server/<ServerName>_SandboxVars.lua - User account database:
~/Zomboid/db/<ServerName>.db(SQLite)
- World state directory:
In singleplayer, character inventory and status are serialized into local world files. On a dedicated server, user accounts, authentication tokens, and player inventories are managed inside a dedicated SQLite relational database.
Preparing the World: Inventory Safekeeping and Backup#
The most common migration trap is losing the host survivor's equipped gear. Because the server requires creating an account upon first connection, the newly created server character will spawn with default starting items.
Perform this in-game preparation routine before exporting:
- Launch the singleplayer save locally.
- Navigate to your primary safehouse compound.
- Transfer all items from your survivor's backpack, clothing, and primary slots into containers (crates, metal lockers, or vehicle trunks).
- Save and exit back to the main menu.
Create an isolated archive of your local save folder:
cd "$HOME/Zomboid/Saves/Sandbox"
tar -czf singleplayer_save_backup.tar.gz MyWorld
Transferring map_p.bin and Chunk Files to Linux#
Stop the remote game daemon before transferring files:
sudo systemctl stop zomboid
Establish the target directory matching your server profile name (default is servertest):
SERVER_SAVE_DIR="$HOME/Zomboid/Saves/Multiplayer/servertest"
mkdir -p "$SERVER_SAVE_DIR"
Transfer the world files from your local save into the server directory. The critical files to copy include:
map_p.bin— player fortifications, walls, barricades, and world modifications;map_t.bin— global timeline, calendar, and weather simulation;map_meta.bin— meta zones and event trackers;map_zone.bin— safehouse zones;- All
chunkdata_*.binandzombies_*.binfiles — modified block voxels and zombie distributions.
scp -r MyWorld/* user@server_ip:~/Zomboid/Saves/Multiplayer/servertest/
Verify that map_p.bin is situated correctly in the destination folder:
ls -lh ~/Zomboid/Saves/Multiplayer/servertest/map_p.bin
On a managed server management panel, world uploads and archive extractions are automated via web interfaces without risk of Linux permission desynchronization.
Synchronizing SandboxVars.lua with Server Configurations#
In singleplayer, game rules are saved as a binary map_sand.bin file. A dedicated server reads sandbox variables exclusively from a plaintext Lua file:
~/Zomboid/Server/<ServerName>_SandboxVars.lua
If this file is omitted, the server reverts to default sandbox rules (resetting water and power shutoff dates, infection speed, and zombie density).
Ensure your server sandbox parameters are aligned:
cat << 'EOF' > ~/Zomboid/Server/servertest_SandboxVars.lua
SandboxVars = {
Speed = 3,
Zombies = 3,
Distribution = 1,
DayLength = 3,
StartYear = 1,
StartMonth = 7,
StartDay = 9,
StartTime = 2,
WaterShut = 2,
ElecShut = 2,
WaterShutModifier = 14,
ElecShutModifier = 14,
FoodLoot = 2,
CannedFoodLoot = 2,
WeaponLoot = 2,
SurvivalGearsLoot = 2,
MechanicsLoot = 2,
LiteratureLoot = 2,
MedicalLoot = 2,
}
EOF
Verify in ~/Zomboid/Server/servertest.ini that Map= includes the active map entries (such as Map=Muldraugh, KY).
Setting Permissions and Starting the Dedicated Server#
Set recursive ownership to the dedicated system service account:
sudo chown -R zomboid:zomboid "$HOME/Zomboid"
sudo chmod -R u=rwX,go=rX "$HOME/Zomboid"
Start the systemd unit and verify server startup:
sudo systemctl start zomboid
sudo journalctl -u zomboid -f --no-pager
Wait until the journal registers:
*** SERVER STARTED ****Connect to the server with your client, complete character creation, return to your fortified compound, and retrieve your stored gear from the crates. Your world, player constructions, and survivor progression are fully active on the dedicated host.




