Scripting overview
DayZ is scripted in EnScript (Enforce Script), the engine’s own statically-typed, C-like language. This section covers the practical reality of working with it — the parts that bite people, the subsystems you’ll actually touch, and how the game is structured underneath your code.
Scripting and asset work overlap constantly: a weapon, a vehicle, or an item is part model, part config, part script. Expect to jump between the two.
What this section covers
Section titled “What this section covers”The pages read foundational → applied — work through them in order:
- EnScript basics — types, classes, the
modded classinjection model, references, and the things that differ from languages you already know. - Common gotchas — the sharp edges: the client/server
split, reference counting, null handling, mod load order, and
modded classpitfalls. - Game structure — the script module layers, the access rules between them, and how mods compile in and merge with vanilla.
- Engine subsystems — the systems you reach for most, one page each: inventory & attachments, actions, networking & RPC, and persistence.
What this section is not
Section titled “What this section is not”It’s not a generated API dump of the unpacked source. Raw Doxygen-style references don’t deliver the value people actually want. Instead we document the subsystems and native functions people frequently use, with worked examples and the context that a raw reference can’t give you.
Where to start
Section titled “Where to start”If you’re new to EnScript, read EnScript basics first, then skim Common gotchas before you write much — it’ll save you hours.