Skip to main content
Plný spec najdete v RELAY_FORMAT_SPEC.md v repozitáři. Zde je shrnutí.

Soubor

VlastnostHodnota
Cesta<server profile>/DAYZERO_Relay/relay_YYYY-MM-DD.jsonl
RotaceDenně
RetenceDnes + včera (server smaže starší automaticky)
EncodingUTF-8
Line endingLF
Bufferingaž 2 sekundy v RAM (server batchuje pro výkon)

Formát řádku

Každý řádek je jeden JSON objekt. Minimum:
{ "ts": "2025-05-01T18:42:13Z", "ev": "CONN", "id": "76561198...", "name": "Pepa" }
Klíčová pole:
PoleTypPopis
tsstringNaivní lokální čas serveru. Klient přidá timezone.
evstringTyp eventu (viz níže).
idstringSteam64 hráče (kde dává smysl).
namestringPersona name (pomocná identifikace).
Další pole závisí na typu eventu.

Typy eventů

BOOT

Server start.
PoleVýznam
pos_tickTick rate POS eventů (ms)
vitals_tickTick rate VITAL eventů
flushFlush interval bufferu
burst_toMaximální velikost burst

CONN

Hráč se připojil.
{ "ts": "...", "ev": "CONN", "id": "76561...", "name": "Pepa" }

DISC

Hráč se odpojil. Stejná pole jako CONN.

POS

Aktualizace pozice. Posílá se v intervalu pos_tick.
{ "ts": "...", "ev": "POS", "id": "76561...", "name": "Pepa", "pos": [12345.6, 0, 7890.1] }
pos je [X, Z, Y] (DayZ pořadí — Y je up).

VITAL

Snapshot zdraví.
PoleVýznam
hpHealth 0–100
bloodBlood 0–5500 (nebo 0–100, dle balancu)
shock0–100
stamStamina 0–100
nrgEnergy (jídlo)
wtrWater
hcHeat comfort
bleedBleed level

SHOT

Výstřel.
PoleVýznam
weaponClass name zbraně
ammoClass name munice
posPozice
countPočet kulek (burst)
dur_msDoba burstu

DMG

Poškození.
PoleVýznam
victim_idSteam64 oběti
att_idSteam64 útočníka (pokud je)
srcZdroj — typ damage
ammoPoužitá munice
zoneZasažená zóna těla
dmgHodnota damage
distVzdálenost (m)

KILL

Smrt hráče. Stejná pole jako DMG +:
PoleVýznam
hs1 = headshot, 0 = jiné

ZKILL

Zabití zombie.
PoleVýznam
idSteam64 hráče
zombieClass name zombie
weaponClass name zbraně
distVzdálenost

Pravidla parsování

  • Malformovaný JSON se ignoruje (neshazuje pipeline).
  • Neznámý ev se přeskakuje (forward-compat — server může zavést nové eventy).
  • Steam64 se validuje regex ^7656119[89]\d{10}$.
  • Idempotency: triplet (ts, ev, id) slouží jako klíč pro deduplikaci.
  • Timezone: ts je lokální čas serveru, klient přidává +02:00 (CEST) nebo +01:00 (CET).

Příklad celého souboru

{"ts":"2025-05-01T18:00:00Z","ev":"BOOT","pos_tick":1000,"vitals_tick":5000,"flush":2000,"burst_to":50}
{"ts":"2025-05-01T18:01:23Z","ev":"CONN","id":"76561198000000001","name":"Pepa"}
{"ts":"2025-05-01T18:01:25Z","ev":"VITAL","id":"76561198000000001","hp":100,"blood":5000,"stam":80,"nrg":80,"wtr":75,"hc":50,"bleed":0,"shock":0}
{"ts":"2025-05-01T18:05:10Z","ev":"SHOT","id":"76561198000000001","weapon":"AKM","ammo":"Ammunition_762x39","pos":[12345.6,0,7890.1],"count":3,"dur_ms":600}
{"ts":"2025-05-01T18:05:11Z","ev":"DMG","victim_id":"76561198000000002","att_id":"76561198000000001","src":"FirearmDamage","ammo":"Ammunition_762x39","zone":"Head","dmg":140,"dist":42.7}
{"ts":"2025-05-01T18:05:11Z","ev":"KILL","victim_id":"76561198000000002","att_id":"76561198000000001","src":"FirearmDamage","ammo":"Ammunition_762x39","zone":"Head","dmg":140,"dist":42.7,"hs":1}
{"ts":"2025-05-01T18:30:00Z","ev":"DISC","id":"76561198000000001","name":"Pepa"}