← Blog

Comprendre le fonctionnement des serveurs DayZ PvE

Par Benjamin D. · PDG

· Mis à jour le September 6, 2026 · Lecture 9 min

Contents

DayZ PvE settings are not a single switch you flip in a config file — they are the sum of the loot economy XMLs, infected spawn tables, base damage flags and persistence timers that run behind every mission folder. Understanding how those pieces interact is what separates a cooperative survival world that feels alive from one that empties out after a week.



What DayZ PvE settings actually control

Vanilla DayZ has no PvE mode. There is no boolean in serverDZ.cfg that turns off player-versus-player damage. What administrators call a PvE configuration is really a combination of three layers:

  • The mission folder (mpmissions/dayzOffline.chernarusplus/) and its db/ directory, which holds the central economy: types.xml, globals.xml, events.xml, economy.xml and messages.xml.
  • The server config file serverDZ.cfg, which handles base damage, container damage, persistence behaviour, time acceleration and login timers.
  • Mods, which add safe zones, traders, quests, AI factions and the damage-blocking scripts that actually stop players from shooting each other.

If you run a cooperative community on a DayZ server hosting instance, this is the file tree you will spend most of your admin time in — everything else is cosmetic.

Where the files live

Inside a Pterodactyl file manager, the paths you care about are:

/serverfiles/serverDZ.cfg
/serverfiles/mpmissions/dayzOffline.chernarusplus/db/globals.xml
/serverfiles/mpmissions/dayzOffline.chernarusplus/db/types.xml
/serverfiles/mpmissions/dayzOffline.chernarusplus/db/events.xml
/serverfiles/mpmissions/dayzOffline.chernarusplus/cfgspawnabletypes.xml
/serverfiles/mpmissions/dayzOffline.chernarusplus/cfgplayerspawnpoints.xml
/serverfiles/mpmissions/dayzOffline.chernarusplus/zombie_territories.xml
/serverfiles/mpmissions/dayzOffline.chernarusplus/cfgeconomycore.xml

Always validate XML before a restart. A single unclosed tag will make the central economy fail to load and the world will spawn empty:

xmllint --noout db/types.xml && echo "types.xml OK"
xmllint --noout events.xml && echo "events.xml OK"


Tuning the loot economy: types.xml and spawnable types

The central economy decides what exists in the world, how long it stays there and how fast it comes back. On a cooperative world, most admins loosen scarcity — but going too far kills the loop entirely, because looting is the gameplay.

The attributes that matter

AttributeWhat it doesPvE-oriented guidance
nominalTarget number of that item across the whole mapRaise moderately for tools, medical and ammo; keep top-tier weapons rare
minThreshold that triggers a restock waveSet around 60–70% of nominal for smoother replenishment
lifetimeSeconds an untouched item stays in the worldLonger values (7200–14400) suit small groups spread over a large map
restockDelay before the item can respawn once below min0 means immediate eligibility during the next economy pass
quantmin/quantmaxFill percentage for ammo, liquids, fuelUseful to reduce empty-can frustration on low-population worlds
usageLocation category (Military, Town, Farm, Hunting…)Adding a usage widens where an item can appear
tierLoot zone tiers 1–4 on the mapMoving an item to a lower tier makes it accessible near the coast

A typical entry after PvE tuning looks like this:

<type name="Chemlight_Green">
    <nominal>40</nominal>
    <lifetime>10800</lifetime>
    <restock>0</restock>
    <min>25</min>
    <quantmin>-1</quantmin>
    <quantmax>-1</quantmax>
    <flags count_in_cargo="0" count_in_hoarder="0"
           count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    <category name="tools"/>
    <usage name="Town"/>
</type>

The flags trap

The count_in_cargo and count_in_hoarder flags are where most economies break on long-running cooperative worlds. If they are set to 0, items stored in backpacks, vehicles or base containers are not counted against the nominal value. Players hoard hundreds of rifles in a warehouse, the economy still thinks the world is missing rifles, and it keeps spawning more until the item count explodes and performance drops.

On a PvE world where nobody loses gear to raids, switch hoarding-sensitive items to count_in_hoarder="1" and count_in_cargo="1". It keeps the object count under control and protects your tick rate.

Spawnable types and attachments

cfgspawnabletypes.xml controls what spawns attached to an item — a magazine inside a rifle, optics on a receiver, ammo in a pile. On cooperative servers this is the cleanest way to make early gameplay less punishing without inflating the raw loot table:

<type name="Mosin9130">
    <attachments chance="0.40">
        <item name="Mosin_Compensator" chance="1.00"/>
    </attachments>
    <cargo chance="0.60">
        <item name="Ammo_762x54" chance="1.00"/>
    </cargo>
</type>


Infected, animals and dynamic events in DayZ PvE settings

Without PvP pressure, the infected become the main threat. Getting spawn density right is the difference between a relaxing walk simulator and a genuine survival loop.

Global caps in globals.xml

<var name="ZombieMaxCount" type="0" value="1000"/>
<var name="AnimalMaxCount" type="0" value="200"/>
<var name="IdleModeCountdown" type="0" value="60"/>
<var name="CleanupLifetimeDefault" type="0" value="45"/>
<var name="CleanupLifetimeDeadPlayer" type="0" value="3600"/>
<var name="FlagRefreshFrequency" type="0" value="432000"/>
<var name="FlagRefreshMaxDuration" type="0" value="3456000"/>

ZombieMaxCount is a hard ceiling for the whole map. Raising it from the default to 1200–1500 is common on cooperative worlds, but every additional AI entity is CPU work: DayZ leans heavily on single-thread performance, which is exactly why high-frequency Ryzen cores and NVMe storage matter more here than raw core count. Push the value too high and you will feel it in desync and rubber-banding long before you see it in the console.

Local density with zombie_territories.xml

This file defines per-zone infected populations. Each territory has a radius, a maximum and a set of spawn positions. Increasing max on military zones while leaving coastal towns lighter creates a natural difficulty gradient for fresh spawns:

<territory-type name="Military" behaviour="0">
    <territory color="0xFF3F3F3F" name="mil_tisy" max="120">
        <zone name="ZmbM_SoldierNormal" smin="0" smax="0"
              dmin="3" dmax="7" x="1600.0" z="13400.0" r="180"/>
    </territory>
</territory-type>

Dynamic events

events.xml drives helicopter crashes, police cars, vehicle spawns, animal herds and infected patrols. The values to watch are nominal, min, max, lifetime and active. On a PvE world, more heli crashes with a shorter lifetime keeps groups moving across the map instead of camping one static loot run.

Many communities layer AI mods on top — roaming bandit factions, guarded points of interest, mission systems. These generate the conflict PvP normally provides. Budget them carefully: AI navmesh queries and pathfinding are among the heaviest operations on a DayZ instance, and stacking three mission mods on the same tick will hurt more than a hundred extra infected.



Base damage rules, persistence and territory flags

Base building is where cooperative servers win or lose their population. Two flags in serverDZ.cfg shape the entire experience:

disableBaseDamage = 1;      // walls, gates and fences cannot be destroyed
disableContainerDamage = 1; // tents, barrels and crates are indestructible
disablePersonalLight = 1;
storageAutoFix = 1;
lootHistory = 1;
timeStampFormat = "Short";
logAverageFps = 30;
logMemory = 30;
logPlayersCount = 30;
serverTime = "SystemTime";
serverTimeAcceleration = 6;
serverNightTimeAcceleration = 8;

What each flag really means

  • disableBaseDamage = 1 — construction parts ignore explosive and melee damage. On PvE this removes raiding entirely. Some admins keep it at 0 and instead block player damage through a mod, so bases can still be destroyed by the owners during renovation.
  • disableContainerDamage = 1 — protects storage. Strongly recommended when count_in_hoarder is enabled, otherwise a destroyed barrel dumps dozens of counted items into the world.
  • storageAutoFix = 1 — attempts to repair a corrupted persistence file instead of refusing to load it. Keep it on, but treat it as a safety net, not a backup strategy.

Persistence and the territory flag

Persistence in DayZ is time-based. Every deployable object has a lifetime, and the territory flag pole refreshes the lifetime of everything within its radius. FlagRefreshFrequency sets how often that refresh runs, and FlagRefreshMaxDuration caps how long a flag can keep objects alive without being re-raised.

Typical lifetimes to check in types.xml for base items: Fence_Kit, WatchtowerKit, TerritoryFlagKit, BarrelHoles_Blue, Land_Wreck variants and every tent entry. Values around 3888000 (45 days) are standard for long-running cooperative worlds. Anything lower and players who take a two-week break come back to nothing — the fastest way to lose a community.

Backups are the real safety net

Persistence files live in mpmissions/dayzOffline.chernarusplus/storage_1/. A corrupted data or vanilla_bin file can wipe every base on the map. Automatic snapshots taken before each scheduled restart, plus a manual copy before every mod update, are the only reliable protection. From a panel console you can also archive them manually:

cd /home/container/serverfiles/mpmissions/dayzOffline.chernarusplus
tar -czf storage_backup_$(date +%F_%H%M).tar.gz storage_1/


Trader mods, safe zones and keeping the world stable

Once loot and infected are tuned, most PvE communities add an economy layer. Trader mods let survivors exchange currency for gear at fixed points, which gives late-game gear a sink and keeps the loot economy from stagnating.

Mod load sequence

Framework mods must load first. A standard startup line looks like:

-mod=@CF;@VPPAdminTools;@Community-Online-Tools;@DayZ-Expansion-Core;@DayZ-Expansion-Licensed;@Trader
-serverMod=@VPPAdminTools
-config=serverDZ.cfg -profiles=profiles -port=2302 -cpuCount=4 -dologs -adminlog -netlog -freezecheck

Every mod that adds items also needs its types entries. Many ship a types.xml fragment inside extraTypes or expect you to register a new economy file in cfgeconomycore.xml:

<ce folder="expansion_ce">
    <file name="expansion_types.xml" type="types"/>
    <file name="expansion_events.xml" type="events"/>
</ce>

Forget that step and modded items simply never spawn — one of the most common tickets community admins receive.

Safe zones and damage blocking

Safe zones are the practical way to enforce cooperation around trader hubs: player damage, infected spawns and vehicle collisions are suppressed inside a defined radius. Configure the radius generously, keep vehicle parking outside the inner ring to avoid physics stacking, and disable infected spawn points inside the zone in zombie_territories.xml so the engine isn't spawning AI it will immediately delete.

Operational checklist

  1. Validate every XML with xmllint before restarting.
  2. Watch logAverageFps in the RPT log after each density change — a sustained drop below 20 server FPS means you pushed AI or object counts too far.
  3. Schedule 3–4 restarts per day; DayZ memory usage grows over long uptimes.
  4. Keep RCON and BattlEye admin passwords long and unique, and restrict admin tools to named accounts rather than shared credentials.
  5. Use panel sub-users so moderators get console access without file-deletion rights.
  6. Snapshot persistence before every mod update. Volumetric DDoS filtering is handled upstream at infrastructure level, but nothing protects you from a bad XML push except a backup.

The official parameter reference is worth keeping open while you edit: Bohemia Interactive DayZ configuration wiki. For other survival titles with comparable economy files, the same logic applies — see All our game servers, the Project Zomboid server configuration notes, or more technical guides on the Fly-Serv blog.



Wrapping up

Cooperative DayZ lives or dies on balance: loot that replenishes without flooding, infected dense enough to stay dangerous, indestructible storage backed by generous lifetimes, and a trader loop that gives late-game gear a purpose. Edit one layer at a time, validate the XML, watch the RPT log, and keep persistence snapshots. That discipline is what keeps a world running for months.



FAQ

Can I disable player-versus-player damage in DayZ without mods?

No. Vanilla DayZ exposes no PvE flag in serverDZ.cfg. You can only remove base and container damage with disableBaseDamage = 1 and disableContainerDamage = 1. Blocking damage between survivors requires a script mod such as an Expansion safe-zone module or a dedicated damage-handler mod, loaded through the -mod= startup parameter.

Why do my modded items never spawn after I edit types.xml?

Modded items must be declared in an economy file registered inside cfgeconomycore.xml, not just pasted into the vanilla types.xml. Add a <ce folder="..."> block pointing to the mod's types file, validate with xmllint --noout, then restart. Check the RPT log for "Cannot open file" or "Unknown type" lines.

How do I stop bases from disappearing when players take a break?

Raise the lifetime value of every base and storage entry in types.xml3888000 seconds equals 45 days — and increase FlagRefreshMaxDuration in globals.xml. Remind players to re-raise their territory flag, keep storageAutoFix = 1 enabled, and archive the storage_1 folder before every update.