DayZ Scripts documentation. Browsable documentation for the DayZ Enforce Script sources — every class, method, enum and constant, plus a file list of the whole script tree — generated from the official DayZ Script Diff repository.
Site: diff.yadz.app
Previously published as DayZ Scripts at dayz-scripts.yadz.app, generated
by Doxygen. Those addresses redirect here, class reference and file reference
pages included.
- 🔍 Search — find any class, method, enum, or constant
- 🌳 Inheritance trees — see the full type hierarchy and inherited members
- 📄 Syntax-highlighted sources — browse the script files as they ship
- 📋 Changelog — API diff between any two PC stable builds
- 🔗 Usage — where each member is called, when the sources have no official docs
- 📝 Community notes — short annotations on types and members
- 📦 Build archive — older PC stables stay at
/v/<label>/(e.g./v/129u3/) - 🤖 LLM-ready —
api.json,llms.txt,agent.md, and Copy for LLM on class and enum pages - 📡 Feed — new builds as they ship, as Atom
- Classes — annotated list, A–Z index, inheritance tree, and every inherited member on
/classes/<Name>/members/ - Topics — the
\defgroupgroups the sources wrap themselves into (math, physics, entities, widgets, …) - Files — the script tree, plus globals declared outside a class
- Changelog — API diff between any two builds
- Feed — new builds as they ship, as Atom; every class and enum page also unfolds its own build-by-build history
Older builds stay at /v/<label>/… (e.g. /v/129u3/; full build numbers still redirect). The PC stable changelog, official links and
community links are on the homepage; the links
themselves are hand-maintained in src/generate/content.js. Bugs and
suggestions for this site: Discord.
The HTML pages are for people. Agents should start at
/llms.txt and fetch the JSON rather than
scraping class pages. How to look a type up is in
/agent.md.
/agent.md— fetch the dump, overlay notes, do not scrape pages/api.json— latest build: every class, method, field, enum, global, typedef and macro, with signatures, inheritance, file locations and doc briefs/search.json— compact name index the site search uses/assets/notes.json— community notes, keyed byTypeorType.Member/assets/versions.json— every documented PC build
api.json is latest-only. The script sources it describes are under the DPL;
community notes are not.
For pasting into a chat by hand, every class and enum page has a Copy for LLM button under its title: the page as Markdown — signatures, inheritance, docs and community notes — with its build and source named.
A community note is a short annotation on a class, enum, or member. Add it to
site/notes.json, keyed by type name or Type.Member:
{
"PlayerBase": "Server-side only outside of simulation callbacks.",
"PlayerBase.SetQuantity": "Clamps to the config maximum instead of failing; read it back with `GetQuantity()`."
}Edit that file and open a pull request. Type.Member covers every overload of
that name; enum values key off the value name; backticks render as code. Notes
show up on class and enum pages, labelled as community writing, on every build
at once.
test/api.test.js rejects a key that is not Type or Type.Member, an empty
value, or an unclosed backtick.
Requires Node.js 20+ and git. No npm dependencies.
npm run fetch # clone/update upstream, detect versions
npm run parse # parse all versions into JSON models (cached by commit)
npm run dev # http://localhost:3000 — render on demand, reload on save
npm run generate # write the static site into dist/
npm run generate:latest # newest build only
npm run generate:verify # re-render reused pages and fail if one changed
npm run build # fetch, parse and generate
npm run preview # serve a real dist/ at http://localhost:3000
npm testnpm run dev is the inner loop. It needs fetch and parse, not generate.
It loads the newest build once and renders whichever page you open; older
builds work the same at /v/<label>/. Assets come straight from site/.
Use npm run preview to check archive rewrites, redirects and the sitemap.
After changing the parser, re-run with FORCE_PARSE=1 npm run parse (or
ONLY_VERSION=1.29 for one build) so the commit-sha cache is not reused.
LINK_THREADS overrides how many threads do the filesystem writes.
The pipeline is src/fetch.js → src/parse-all.js → src/generate/ (or
src/dev.js in development). src/generate/routes.js is the site map both
the writer and the dev server read. Page reuse, source links and the
Enforce Script parser are documented in the files that implement them.
When a new PC stable ships, add its forum thread (if it has one) in
src/generate/content.js. Builds without a thread still appear.
The usual path is a pull request. Notes go in site/notes.json (see
Community notes); everything else lives in this repo.
CONTRIBUTING.md maps which file renders which URL, where
the client-side behaviour lives, and the invariants to keep. Bugs and
suggestions: Discord.
Special thanks to CreepyCrappyShow, for all the support, insights, cool name ideas, and friendship along the way. This site is better for all of it! 💚
To Doxygen, the open-source generator, that generated the first versions of these docs, and to Zeroy's DayZ Explorer, for the inspiration! 🙏
This generator (src/, site/, test/, and the build configuration) is
MIT. Community notes in site/notes.json are original writing and
covered by the same license.
The generated documentation — the DayZ script sources in data/ (tracked)
and dist/ (not tracked) — is © BOHEMIA INTERACTIVE a.s. and licensed under
the
DayZ Public License (DPL):
non-commercial, DayZ-only reuse with attribution. They are modified here only
for presentation, from
DayZ Script Diff,
and are offered as-is. MIT does not extend to them.
(src/generate/pathnames.json holds file and directory names only, so the
site can spell paths the way the game does.)
Release-note transcriptions in data/release-notes.json come from
DayZ Wiki under
CC BY-NC-SA 4.0;
official DayZ forum links are retained alongside them.
This is not official documentation and is not affiliated with DayZ or Bohemia Interactive. DAYZ®, ENFUSION®, and BOHEMIA INTERACTIVE® are registered trademarks of BOHEMIA INTERACTIVE a.s.