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. 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 and cfggameplay.json 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, chance from 0 to 1, and true or false without quotes in JSON.
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. Make the change 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 and Sakhal dayzOffline.sakhal. 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, quantmin and quantmax -1 or 0 to 100, flags 0 or 1, a lifetime of 0, missing fields and items listed twice.
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.
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 and damage from 0 to 1, item names and items listed twice.
Random presets (cfgrandompresets.xml)
Named lists of possible cargo and attachments that cfgspawnabletypes.xml picks from.Checks: chance from 0 to 1, 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.
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. Checks that need your server's own files, such as whether a category or usage name is defined in cfglimitsdefinition.xml, are not part of this tool.

Questions

Is my file uploaded anywhere?

No. The checker runs in your browser. Your file is read and checked on your own device and never sent to our 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.

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.

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.