---
title: "Project Zomboid Server Settings and Config Files"
description: "All four Project Zomboid config files explained: the server INI, SandboxVars gameplay rules, and why mods need both WorkshopItems and Mods lines to load."
url: "https://www.gameserverkings.com/knowledge-base/project-zomboid/configuration-overview/"
category: "Project Zomboid"
category_url: "https://www.gameserverkings.com/knowledge-base/project-zomboid/"
published: "2026-07-02T03:52:18.610Z"
updated: "2026-08-19T04:19:13.653Z"
source_format: "markdown"
site: "GameServerKings"
---

# Project Zomboid Server Settings and Config Files

Project Zomboid splits its configuration across four files, and which one you need depends on what you are changing: the server's identity and rules live in an INI file, the world's gameplay rules live in a Lua file, and two more Lua files control where players spawn. This guide covers all four, plus the mod configuration that trips up nearly everyone.

> [!NOTE] This guide covers Build 42
> Build 42 has been Project Zomboid's stable public branch since 29 July 2026 and is currently 42.20.3. Servers deliberately kept on Build 41 run the `legacy41` Steam branch (`app_update 380870 -beta legacy41 validate`); expect some differences from what is documented here.

## The four files

They sit in the server data folder, typically `Zomboid/Server/`, and they are **named after your server**:

| File | Controls |
|---|---|
| `<servername>.ini` | Server identity, slots, PvP, mods, RCON, backups |
| `<servername>_SandboxVars.lua` | Gameplay rules — zombies, loot, weather, time |
| `<servername>_spawnregions.lua` | Which spawn regions (towns) players can choose |
| `<servername>_spawnpoints.lua` | Exact spawn coordinates, set per occupation |

The default `<servername>` is `servertest`, so out of the box you are looking for `servertest.ini`.

> [!IMPORTANT] Renaming the server gives you a brand-new config
> Project Zomboid loads the config matching the server name it is started with. Change that name and it will not find your existing files — it generates a fresh set at defaults, and your tuned settings appear to have vanished. They have not; they are still on disk under the old name. Either keep the name or rename all four files to match.

## The main INI file

The settings people actually change:

| Setting | Notes |
|---|---|
| `PublicName` / `PublicDescription` | How the server appears in the browser |
| `Public` | `true` to list it publicly |
| `Open` | Whether new players may connect at all |
| `Password` | Server password. Blank for none |
| `MaxPlayers` | Slot count |
| `PVP` | `true` for PvP, `false` for PvE |
| `PauseEmpty` | Pauses the world when nobody is online |
| `GlobalChat` | Server-wide chat channel |
| `ServerWelcomeMessage` | Shown on join |
| `AutoCreateUserInWhiteList` | Auto-registers connecting players |
| `DropOffWhiteListAfterDeath` | Removes players from the whitelist when they die |
| `SafetySystem` | The PvP safety toggle system |

### Loot and world persistence

| Setting | Notes |
|---|---|
| `HoursForLootRespawn` | `0` disables loot respawn entirely |
| `MaxItemsForLootRespawn` | Cap per container |
| `ConstructionPreventsLootRespawn` | Player building blocks respawn in that area |
| `SaveWorldEveryMinutes` | `0` uses the engine default |

### Backups

Project Zomboid keeps its own backups, separate from those on your [rented Project Zomboid server](/games/project-zomboid/):

| Setting | Notes |
|---|---|
| `BackupsCount` | How many to retain |
| `BackupsOnStart` | Back up on every boot |
| `BackupsOnVersionChange` | Back up before a game update applies |
| `BackupsPeriod` | Minutes between periodic backups. `0` disables |

`BackupsOnVersionChange` is worth leaving on — PZ updates occasionally change save formats, and it is the cheapest insurance available. It is still not a substitute for the **Backups** tab; see [How to Create a Backup](/knowledge-base/general/how-to-create-a-backup/).

> [!IMPORTANT] `DefaultPort` and `RCONPort` are not yours to choose
> Project Zomboid uses the port you give it **plus the one directly above it** for Steam, and the panel allocates that pair together. `16261` and `16262` are the stock numbers and yours will usually differ — leave `DefaultPort` as you found it and read your real value off the **Network** tab.
>
> `RCONPort` is a placeholder rather than a working default. RCON needs an allocation of its own before anything will answer on it, so add one from the Network tab rather than typing `27015` into the file.

## Sandbox settings — the gameplay rules

`<servername>_SandboxVars.lua` is where the world's character is set. Almost every value is an **index, not a quantity** — `Zombies = 3` does not mean three zombies, it means preset 3.

```lua title="<servername>_SandboxVars.lua"
SandboxVars = {
    Zombies = 3,          -- 1=Insane, 2=High, 3=Normal, 4=Low, 5=None
    Distribution = 1,     -- 1=Urban Focused, 2=Uniform
    DayLength = 3,        -- 1=15min, 2=30min, 3=1hr, 4=2hr...
    StartMonth = 7,
    StartTime = 2,        -- 1=7am, 2=9am, 3=noon, 4=2pm, 5=5pm, 6=9pm, 7=midnight
    WaterShut = 14,       -- Days until water is cut
    ElecShut = 14,        -- Days until power is cut
    LootRespawn = 1,      -- 1=None, 2=Every Day, 3=Every Week, 4=Every Month
    FoodRotSpeed = 3,     -- 1=Very Fast, 5=Very Slow
    StatsDecrease = 3,    -- 1=Very Fast, 5=Very Slow
    XpMultiplier = 1.0,
    ZombieLore = {
        Speed = 2,        -- 1=Sprinters, 2=Fast Shamblers, 3=Shamblers
        Strength = 2,     -- 1=Superhuman, 2=Normal, 3=Weak
        Cognition = 3,    -- 3=Basic navigation
        Memory = 2,
        Sight = 2,
        Hearing = 2,
    },
}
```

`ZombieLore` is the sub-table that decides how the game actually feels. `Speed = 1` turns every zombie into a sprinter, which is a far larger change than raising the population.

> [!TIP] Build the sandbox file in game rather than by hand
> Start a local game, open **Host → Server Settings**, configure everything through the proper UI with real labels instead of index numbers, then copy the generated `SandboxVars` file onto the server. It is much faster than looking up what `FoodRotSpeed = 3` means, and it cannot produce an invalid combination.

> [!WARNING] It is Lua, and a syntax error stops the server
> Unlike the INI file, `_SandboxVars.lua` is code. A missing comma or brace prevents the server starting rather than falling back to defaults. Keep a copy of a working file before editing.

## Mods: two settings, and you need both

This is the most common Project Zomboid configuration mistake. Two different lines, two different kinds of identifier:

```ini title="<servername>.ini"
WorkshopItems=2392709985;2857548524
Mods=Authentic Z - Current;tsarslib
```

| Setting | Takes | Purpose |
|---|---|---|
| `WorkshopItems` | **Numeric Workshop IDs** — the number in the Steam URL | Tells Steam what to **download** |
| `Mods` | **Text Mod IDs** — from the mod's own `mod.info` | Tells the game what to **activate** |

Setting only `WorkshopItems` downloads the files and loads nothing. Setting only `Mods` activates something the server never fetched.

> [!IMPORTANT] The Mod ID is not the folder name and not the Workshop title
> It is the `id=` field inside the mod's `mod.info`. It usually resembles the folder name but is not guaranteed to match, and it is never the display name shown on Steam.
>
> **One Workshop item can also contain several mods.** A single package might bundle a weapons pack, a UI tweak and a translation, each with its own Mod ID — one entry in `WorkshopItems`, three in `Mods`. Read the mod's Steam description; authors usually list the IDs to add.

Load order in `Mods` matters where mods depend on each other — library mods such as `tsarslib` must come before whatever needs them.

## Applying changes

**The INI does not need a restart.** Save your edits to `<servername>.ini` while the server is running, then run `/reloadoptions` in admin chat: it re-reads the server options and pushes them to connected clients. To change a single value without touching the file at all, use `/changeoption optionName "newValue"`.

`/reloadoptions` covers the server options in the INI only — it does not reload the Lua files, so sandbox and spawn changes still mean stopping the server, editing, and starting it again.

For the commands themselves and the access level they need, see [Project Zomboid Admin Setup](/knowledge-base/project-zomboid/how-to-add-admins-and-common-commands/).

## What to read next

- [Getting started with your Project Zomboid server](/knowledge-base/project-zomboid/getting-started-with-your-server/) — first boot and connecting
- [Project Zomboid Admin Setup](/knowledge-base/project-zomboid/how-to-add-admins-and-common-commands/) — admin access and moderation
- [Installing Workshop Mods on Project Zomboid](/knowledge-base/project-zomboid/how-to-install-mods/) — the full mod workflow
- [How to use your server panel](/knowledge-base/general/how-to-use-your-server-panel/) — where the Network and File Manager tabs live

## FAQ

### Where are the Project Zomboid server config files?

In `Zomboid/Server/`, named after your server — `servertest.ini`, `servertest_SandboxVars.lua`, `servertest_spawnregions.lua` and `servertest_spawnpoints.lua` by default. That is four files, not three.

### Why did my server settings reset?

Most often the server name changed, so Project Zomboid looked for a config that did not exist and generated a fresh one. The old files are still on disk under the previous name.

### Why are my mods not loading?

You almost certainly set `WorkshopItems` but not `Mods`, or used the wrong kind of ID. `WorkshopItems` takes the numeric Workshop ID; `Mods` takes the text Mod ID from `mod.info`. Both lines are required.

### What is the difference between WorkshopItems and Mods?

`WorkshopItems` is what gets downloaded. `Mods` is what gets switched on. A single Workshop item can contain several mods, so the lists are not always the same length.

### How do I make zombies sprinters?

`ZombieLore.Speed = 1` in the SandboxVars file. That single value changes the game more than any population setting.

### Do I need to restart after editing?

Not for the INI. Save `<servername>.ini` with the server running and then run `/reloadoptions` to apply it live. The Lua files — SandboxVars and the two spawn files — are read at startup, so those changes do need a restart.

### How do I turn off loot respawn?

`HoursForLootRespawn=0` in the INI, and `LootRespawn = 1` (None) in SandboxVars.

---

Made with 💜 by GameServerKings
