Open or paste any DayZ server file, such as types.xml, events.xml or cfggameplay.json, and see the exact line of every syntax error and common DayZ mistake before you upload it. Many of them it fixes for you in one click. It works for PC, Xbox and PlayStation servers and runs entirely in your browser.

XML or JSON, any size. You can also drop a file here.

Checking…

Examples:
lines

Nothing of this kind.

File view · click a problem to jump to it

Why a DayZ server ignores a broken file

DayZ reads its XML and JSON files when the server starts, and both formats have strict rules: every XML tag that opens has to close, and JSON allows no stray commas or comments. One missing character is enough to stop the server reading a file. Depending on the file, loot stops spawning, your settings, objects or loadouts are left out, or the server does not start at all. Nothing in game tells you which line is wrong. This checker does.

It finds two kinds of problem. Errors are mostly syntax errors: the file is not valid XML or JSON, and DayZ cannot read past them. Warnings are DayZ mistakes in a file that reads fine, such as a min higher than nominal, so the file loads but does not do what you meant. Notes are hints, such as a byte order mark at the start of the file.

The most common mistakes

A missing closing tag
Every <type> needs its </type>, every <nominal> its </nominal>. When one is missing, the error usually shows a few lines further down, where the reader meets the next closing tag, and the message names the tag that was left open. A tag closed with />, like <usage name="Town"/>, needs no closing tag.
A comma in the wrong place in JSON
JSON needs a comma between two items and none after the last one. A comma right before a } or ] is a trailing comma, and two items without a comma between them is a missing comma. Both stop the file loading. The checker says which line to fix.
A typo in a tag or key name
XML tags are case sensitive, so <Nominal> is not <nominal>, and a closing tag has to match its opening tag exactly. A misspelled field that opens and closes the same way is still valid XML, but DayZ does not know it: the checker then reports the field as missing, such as "AKM has no <nominal>". In globals.xml, cfggameplay.json and the category, usage, value and tag names of types.xml it suggests the closest real name, because DayZ ignores names it does not know.
Values out of range
Whole numbers where DayZ expects them (no 12.5 for nominal), min no higher than nominal, quantmin and quantmax from 0 to 100 or -1, flags 0 or 1, the chance of a cargo or attachments block from 0 to 1, and true or false without quotes in the JSON files DayZ itself reads.
Other things that break a file
A plain & in XML (write &amp;), comments in JSON, single quotes around JSON names and texts, and curly quotes (“ ”) that a phone or word processor put in place of straight ones.

How to fix what it finds

  1. Fix the errors first. The checker shows only the first syntax error, because nothing after it can be read reliably.
  2. Click a problem to jump to its line in the file view. For a missing closing tag, quote or comma, look at the lines just above it too.
  3. Many problems have a Fix button, such as a trailing comma, a plain & or "true" in quotes: it makes the change for you and checks the file again, and you download the fixed file. Make the other changes in a plain text editor, such as Notepad++ or Visual Studio Code. Word processors swap quotes and add formatting.
  4. Check the file again until the errors are gone, then go through the warnings. Notes can usually stay as they are.
  5. Upload the fixed file and restart the server. DayZ reads these files when it starts.

Tabs, spaces and empty lines do not matter. Indentation only makes a file easier to read, so a mix of tabs and spaces is not a problem.

Check a file from a Nitrado server

  1. Open the file browser in the Nitrado web interface.
  2. Go to your mission folder. On Xbox that is dayzxb_missions/dayzOffline.chernarusplus, on PlayStation dayzps_missions/dayzOffline.chernarusplus. Livonia uses dayzOffline.enoch, Sakhal dayzOffline.sakhal and Nasdara dayzOffline.nasdara. Its db folder holds types.xml, events.xml, globals.xml, economy.xml and messages.xml; cfggameplay.json is in the mission folder itself.
  3. Download the file, open it here and fix what the checker finds.
  4. Upload the fixed file over the old one and restart the server. Changes apply after a restart.
  5. For cfggameplay.json, and the object, loadout and restricted area files it lists, also check that cfggameplay.json is turned on in your Nitrado server settings. DayZ only reads it when it is.

On Xbox and PlayStation servers running Law's KillFeed, the dashboard's Server Files page opens, checks and uploads your files, keeps the last 15 versions of every file, and edits them in place on the paid plan. The guides explain more of the files console servers use.

Files it checks

Every XML and JSON file gets the syntax check. These files also get DayZ checks, recognised by their name, their outer tag or their keys:

Loot (types.xml)
Every item the Central Economy (CE) spawns: how many, where and for how long.Checks: Whole numbers, min no higher than nominal (when nominal is above 0), quantmin and quantmax -1 or 0 to 100, flags 0 or 1, a lifetime of 0, missing fields, items listed twice, and category, usage, value and tag names against the vanilla list (with a suggestion for typos).
Events (events.xml)
Dynamic events: vehicles, helicopter crashes, police cars, animals, infected and more.Checks: Whole numbers, min no higher than max, the active, position and limit values, and each child (with limit custom a child's min is its share, so it may be above max).
Economy settings (globals.xml)
Server-wide CE values: infected and animal caps, cleanup times, login and logout timers, loot damage.Checks: Variable names (with a suggestion for typos), the type of each variable and whether its value fits that type.
Economy switches (economy.xml)
Which parts of the economy (dynamic loot, animals, infected, vehicles, player bases) initialise, load, respawn and save.Checks: Switches that are 0 or 1, and a warning when players or bases are not saved.
Server messages (messages.xml)
Messages shown to players: on join, repeated every few minutes, or as a countdown before a restart.Checks: Minutes as whole numbers, 0 or 1 switches, empty messages and shutdowns without a countdown.
Attachments and cargo (cfgspawnabletypes.xml)
What spawns on or inside items: weapon attachments, magazines, clothing cargo, and their damage.Checks: chance of every cargo and attachments block and damage from 0 to 1 (an item's chance inside a block is its weight, any number from 0), item names and items listed twice.
Random presets (cfgrandompresets.xml)
Named lists of possible cargo and attachments that cfgspawnabletypes.xml picks from.Checks: chance of every preset from 0 to 1 (an item's chance is its weight, any number from 0), preset and item names, presets listed twice.
Event positions (cfgeventspawns.xml)
The map positions where each event from events.xml may spawn.Checks: Numbers in every position and zone, and min no higher than max.
Event groups (cfgeventgroups.xml)
Groups of objects that spawn together for one event, such as train wrecks.Checks: A type on every child, numbers for the offsets, lootmin no higher than lootmax, and deloot.
Loot names (cfglimitsdefinition.xml)
The category, usage, value and tag names that types.xml may use.Checks: Names listed twice.
Economy core (cfgeconomycore.xml)
Core CE classes, and the place to register your own types, spawnabletypes and events files.Checks: The folder, name and type of every file you register.
Fresh spawn points (cfgplayerspawnpoints.xml)
Where new characters spawn, and how the server picks between the points.Checks: Numbers in the settings, x and z on every position, and min no higher than max.
Weather (cfgweather.xml)
Overcast, fog, rain, wind and storm limits and how fast they change.Checks: Numbers everywhere, min no higher than max, and the enable switch.
Ignore list (cfgignorelist.xml)
Item types the CE removes from the world and storage.Checks: Names, and names listed twice.
Gameplay settings (cfggameplay.json)
Base damage, stamina, building checks, hit indicators, map options, and the lists of custom object, loadout and restricted area files.Checks: Misspelled setting names, the lists of object, loadout and restricted area files, the 12 monthly temperatures, and true, false or numbers written in quotes.
Contaminated areas (cfgeffectarea.json)
Static gas zones: their position, size, particles and where players are moved to.Checks: The position and radius of every area.
Underground darkness (cfgundergroundtriggers.json)
Trigger boxes that darken the screen in underground areas such as bunkers.Checks: Three numbers for every position, orientation and size, and light levels from 0 to 1.
Bunker radio broadcasts (cfgbunkerbroadcast.json)
Sakhal and Nasdara: how many bunkers broadcast their door code over the radio, how long the codes are, when the broadcasts run and where they come from.Checks: lockCodeLength from 3 to 6, and the broadcast times written as 4 digits in quotes.
Object spawner file
Objects placed on the map at start, like a DayZ Editor export: walls, buildings, wrecks, traders.Checks: A name and pos on every object, and the ypr and scale when they are there.
Spawn loadout file
A fresh spawn loadout. Several files can be listed; spawnWeight sets how often each is picked.Checks: spawnWeight, characterTypes and the item set lists.
Restricted area file
An area players may not enter. Players inside are moved to the nearest safe position.Checks: The shape of every box, the safe positions, and whether there are any.

Other files, such as mapgrouppos.xml or cfgenvironment.xml, get the syntax check only. Category, usage, value and tag names in types.xml are checked against the vanilla cfglimitsdefinition.xml, so a name your server adds in its own copy shows as a note, not as a mistake. Checks that need your server's other files, such as whether the files listed in cfggameplay.json are there, are not part of this tool.

Questions

Is my file uploaded anywhere?

No. The checker runs in your browser. Your file is read, checked and fixed on your own device and never sent to our server, unless you click Apply to server to send the fixed file to your own DayZ server.

Why does it show only one syntax error?

An XML or JSON reader stops at the first syntax error, because nothing after that spot can be read reliably. Fix that one, check the file again and it shows the next one, if there is one.

The error points at a line that looks fine. Why?

A reader only notices a missing closing tag, quote or comma when it reaches the next thing in the file. The real mistake is often on the line above or further up. For a tag that is never closed, the message names the tag that was left open.

The file passes, but my change does not show in game. Why?

Restart the server: DayZ reads these files when it starts. Check that you uploaded the file to the mission folder of the map your server runs, and for cfggameplay.json that it is turned on in your Nitrado server settings. The checker cannot tell whether an item class name exists in the game, so check the spelling of names too.

Do mixed tabs and spaces break a file?

No. Indentation only makes the file easier to read. XML and JSON ignore it, so tabs, spaces or a mix of both are fine.

Does it work for Xbox and PlayStation servers?

Yes. Console servers on Nitrado use the same XML and JSON files as PC servers. Download the file from Nitrado's file browser, check it here, fix it and upload it back.

// Workbench

More free tools

types.xml Editor

Search, edit and bulk-change the loot in your types.xml, with common mistakes flagged before you upload it.

types.xml Compare

Put two types.xml files side by side and see which items were added, removed or changed.

Loot Flags Editor

Usages, tiers, categories and tags from cfglimitsdefinition.xml with how many items use each, and the misspelt flags in types.xml.

Loot Multiplier

Double the guns, halve the food or boost military loot: scale types.xml by group in one click.

cfgspawnabletypes Generator

Pick the attachments, magazines and cargo an item spawns with, set chances or presets and merge them into your file.

cfgrandompresets.xml Editor

Edit the loot presets cfgspawnabletypes draws from, add items from the item library and see where each one is used.

Vehicle Builder

Choose the wheels, doors and engine parts cars spawn with, or make every car ready to drive.

events.xml Editor

Change vehicles, helicopter crashes, animals and infected event by event, or scale a whole group at once.

Event Spawn Positions

See where cars, helicopter crashes and wrecks spawn in cfgeventspawns.xml on the map, then add, move or delete positions.

Heli Crash Loot Builder

Set how many helicopter crashes spawn, which wrecks and how much loot, and pick the crash loot from the item library.

Zombie Horde Generator

Place infected hordes on the map, set how many spawn and which types, and download zombie_territories.xml.

cfggameplay.json Editor

Change base damage, stamina, building checks, hit indicators and map options with switches instead of JSON.

globals.xml Editor

Infected and animal caps, cleanup times, login timers and loot damage, with every value explained.

cfgweather.xml Editor

Set clouds, fog, rain, wind and lightning with sliders, or turn off fog and rain in one click.

Contaminated Zone Editor

See the gas zones in cfgEffectArea.json on the map, then add, move, resize or remove them.

Player Restricted Area Builder

Draw no-go boxes on the map and set where trespassers are moved to, and get the area file for cfggameplay.json.

Spawn Point Editor

See fresh, hop and travel spawn points from cfgplayerspawnpoints.xml on the map, then add, move or delete them.

Object Spawner Builder

Place buildings and props on the map with their height and rotation, and get the JSON for objectSpawnersArr. No mods needed.

Map Coordinates

Click the map for X, Z, the grid square and height, measure distances, and paste coordinates from files or logs to see them.

messages.xml Generator

Build welcome messages, repeating notices and restart countdowns for your server and download the file.

Spawn Loadout Generator

Pick the starting clothes and items for fresh spawns and get a loadout file ready for cfggameplay.json.

Day & Night Calculator

Work out how long a day and a night last in real time from your server's time acceleration settings.