ZYAD Docs

Analytics setup — connect your server to the dashboard

This guide connects your DayZ server to the ZYAD Dashboard so that events (wheel prizes, boss kills, …) show up as statistics on zyadmods.de. Takes about 5 minutes.

Requirements

1

Sign in to the dashboard

Open the ZYAD Dashboard and click “Sign in with Steam”. You are redirected to Steam, sign in there (the whole login happens at Steam) and come back to the dashboard.

2

Add a server — get a ServerId & API key

Go to the “Servers” page → “+ Add server” (name is up to you). The dashboard generates automatically:

  • a ServerId (e.g. srv_a1b2c3d4)
  • an API key (e.g. zyad_live_…)
⚠ For security the API key is shown only once — we only store a hash. Copy the ready made analytics.json snippet shown below it. Lost the key? No problem: “rotate key” creates a new one (which invalidates the old one).
3

Fill in analytics.json on the server

The file lives in the server profile at:

<Profil-Ordner>/ZYAD/Core/analytics.json

ZYADCore creates it as a template on the first server start (with "Enabled": 0). This is the complete file — you only need to change the first three fields, the rest are sensible defaults:

{
    "Enabled": 1,
    "ServerId": "srv_DEINE_ID",
    "ApiKey": "zyad_live_DEIN_KEY",
    "UploadIntervalSec": 20,
    "MaxBatchSize": 100,
    "MaxQueueSize": 2000,
    "MaxDiskFiles": 200,
    "SelfTestOnBoot": 0,
    "DebugLogging": 0
}
FieldMeaning
Enabled1 = sending active, 0 = completely off (the default in a new file).
ServerIdThe srv_… identifier from the dashboard (that string — not some number).
ApiKeyYour secret key. Never put it in a modpack, the Workshop or anywhere public — it belongs only in this server file.
UploadIntervalSecSend interval in seconds (15–30 recommended).
MaxBatchSizeMaximum events per request.
MaxQueueSizeMaximum events held in the memory buffer.
MaxDiskFilesSpill files used during an API outage (no events are lost).
SelfTestOnBoot1 = test event on server start — handy while setting up, put it back to 0 afterwards.
DebugLogging1 = verbose log for troubleshooting.

There is deliberately no URL in the file — the API address is fixed inside the mod (if your file still contains ApiUrl/ApiPath from an older version, just delete them; the values are ignored).

4

Restart the server and verify

Restart the DayZ server. Then two quick checks:

  • Server log: the analytics log under <profile folder>/ZYAD/Core/logs/ should show [Uploader] … SUCCESS lines (with SelfTestOnBoot: 1 within seconds of the start).
  • Dashboard: on the “Servers” page the “Last upload” column fills in — that is the heartbeat of your connection.

As soon as something happens on the server (a wheel spin, a boss kill, …) the events appear under “Overview”, “Events” and “Reports”.

On start your server also reports once which ZYAD versions are running there. That lets the “Servers” page tell you straight away whether the Workshop mod and the server module match — see Versions. That report contains no player data.
5

Control it in game (optional)

In game, open the ZYAD Admin Center as an admin (default key Home, rebindable in the DayZ controls) → “Analytics” button:

  • Master switch: sending on/off entirely — live, without a restart.
  • Per module: mute individual sources (e.g. do not send events, but do send trader & raid bases).

ServerId, API key and URL deliberately stay only in analytics.json on the server — the in-game menu never displays them.

Troubleshooting

On a failed attempt the analytics log (<profile folder>/ZYAD/Core/logs/) reports a code. The most common cases:

Symptom / codeCauseFix
code=5 (≈ 401) API key wrong or rotated in the meantime. Create a new key in the dashboard (“rotate key”) and copy it into analytics.json.
code=6 / code=7 Connection/address error. Should no longer happen with a current mod version (the API address is fixed inside the mod) — points to an outdated ZYADCore. Update ZYADCore; if it persists, check that the server may make outgoing HTTPS connections through its firewall.
Log: “inactive / disabled” Enabled: 0, or the file still holds placeholder values. Enter the real ServerId + key, set Enabled: 1 and restart the server.
“Last upload” stays empty The server is set to inactive in the dashboard, or simply nothing worth sending has happened. Check the server status in the dashboard; set SelfTestOnBoot: 1 as a test and restart.
Brief API/internet outage — Do nothing: events are buffered on the server (RAM + disk) and delivered automatically once the outage is over.

Security — in brief

Home · Legal notice (German) · Privacy (German) · Terms (German)