<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Personal Projects</title><link>/</link><description>Recent content on Personal Projects</description><generator>Hugo</generator><language>en-us</language><atom:link href="/index.xml" rel="self" type="application/rss+xml"/><item><title>DayZ - Commie Lobby</title><link>/docs/game-servers/dayz/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/game-servers/dayz/</guid><description>&lt;h2 id="dayz---commie-lobby"&gt;DayZ - &lt;em&gt;Commie Lobby&lt;/em&gt;&lt;a class="anchor" href="#dayz---commie-lobby"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A modded &lt;strong&gt;DayZ&lt;/strong&gt; dedicated server running on a dedicated box. DayZ-Expansion,
dynamic missions and airdrops, admin tooling, and a scheduled restart cycle keep
the map fresh without wiping your progress.&lt;/p&gt;
&lt;h3 id="connect"&gt;Connect&lt;a class="anchor" href="#connect"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Server name&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;[US-PNW] Commie Lobby (PVE)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Address&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;51.81.167.216:2301&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Query port&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;27016&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Host&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;cytonicmushroom.ddns.net&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Map&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Sakhal&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Build&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Current stable - &lt;code&gt;forceSameBuild&lt;/code&gt; is on&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;forceSameBuild&lt;/code&gt; is enabled.&lt;/strong&gt; Your DayZ client must be on the same stable
build as the server. If DayZ just pushed an update, verify your game files before
connecting.&lt;/p&gt;</description></item><item><title>Config UI - Admin Guide</title><link>/docs/game-servers/config-ui/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/game-servers/config-ui/</guid><description>&lt;h2 id="config-ui---admin-guide"&gt;Config UI - Admin Guide&lt;a class="anchor" href="#config-ui---admin-guide"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Config UI is the web panel for running the DayZ server. It replaces SSH and hand-edited files - you sign in with a key and drive the server from a browser: start and stop it, edit config, tune loot, browse the map, and read logs.&lt;/p&gt;
&lt;p&gt;This guide covers how to use it. It does not cover how it is deployed or built.&lt;/p&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;&lt;strong&gt;One rule governs everything: most changes apply at the next restart.&lt;/strong&gt; Editing config, tuning loot, switching maps, and queuing updates all &lt;em&gt;stage&lt;/em&gt; the change. The running server keeps its current settings until you restart it. Each section below says when this applies.&lt;/p&gt;</description></item><item><title>Mumble</title><link>/docs/mumble/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/mumble/</guid><description>&lt;h2 id="mumble"&gt;Mumble&lt;a class="anchor" href="#mumble"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Low-latency voice chat for coordinating in-game (and everything else). Free and
open source, with positional audio - better for gaming than most alternatives.&lt;/p&gt;
&lt;h3 id="connect"&gt;Connect&lt;a class="anchor" href="#connect"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Address&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;cytonicmushroom.ddns.net&lt;/code&gt; (&lt;code&gt;51.81.167.216&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Port&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;64738&lt;/code&gt; (default)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Software&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Mumble server (Murmur)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="how-to-join"&gt;How to join&lt;a class="anchor" href="#how-to-join"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="book-steps" &gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install the Mumble client&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grab it from &lt;a href="https://www.mumble.info/downloads/" target="_blank" rel="noopener noreferrer external"&gt;mumble.info&lt;/a&gt;
 - Windows, macOS,
Linux, and mobile are all supported.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run the audio &amp;amp; certificate wizards&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On first launch Mumble walks you through microphone setup and generates a personal
certificate. That keeps your identity between sessions - just accept the defaults.&lt;/p&gt;</description></item><item><title>CryptPad</title><link>/docs/cryptpad/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/cryptpad/</guid><description>&lt;h2 id="cryptpad"&gt;CryptPad&lt;a class="anchor" href="#cryptpad"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Self-hosted &lt;strong&gt;CryptPad&lt;/strong&gt; - end-to-end encrypted docs, spreadsheets, slides, and
kanban boards in the browser. Everything encrypts on your machine before it&amp;rsquo;s
sent. The server stores your work but can never read it. Free and open source.&lt;/p&gt;
&lt;h3 id="connect"&gt;Connect&lt;a class="anchor" href="#connect"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Address&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://pad.cytonicmushroom.ddns.net" target="_blank" rel="noopener noreferrer external"&gt;pad.cytonicmushroom.ddns.net&lt;/a&gt;
&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Software&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;CryptPad (self-hosted)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class='book-hint note'&gt;
&lt;p&gt;Not live yet - still being wired up. Once it is, reach it at the address above.&lt;/p&gt;&lt;/blockquote&gt;&lt;h3 id="accounts--guests"&gt;Accounts &amp;amp; guests&lt;a class="anchor" href="#accounts--guests"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;You can open and edit any document &lt;strong&gt;shared with you by link&lt;/strong&gt; as a guest - no
account needed. An account gets you a home drive that remembers your documents
between sessions. &lt;strong&gt;Registration is invite-only&lt;/strong&gt; - ask the host for an invite.&lt;/p&gt;</description></item><item><title>API</title><link>/docs/api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/api/</guid><description>&lt;h2 id="api"&gt;API&lt;a class="anchor" href="#api"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A signed HTTP API that controls the box&amp;rsquo;s services. Each service gets its own
path namespace - DayZ lives under &lt;code&gt;/dayz/*&lt;/code&gt;. Every call must be signed. Every
action comes from a fixed allowlist - there is no arbitrary-command path. The
table below is the full set.&lt;/p&gt;
&lt;h3 id="connect"&gt;Connect&lt;a class="anchor" href="#connect"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Address&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;https://api.cytonicmushroom.ddns.net&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Auth&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;HMAC-SHA256 signature on every request&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Access&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;By shared secret - ask the host&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="actions"&gt;Actions&lt;a class="anchor" href="#actions"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Trigger one with &lt;code&gt;POST /dayz/&amp;lt;action&amp;gt;&lt;/code&gt; - grouped actions with
&lt;code&gt;POST /dayz/&amp;lt;group&amp;gt;/&amp;lt;action&amp;gt;&lt;/code&gt;.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/01-variables-types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/01-variables-types/</guid><description>&lt;h1 id="chapter-11-variables--types"&gt;Chapter 1.1: Variables &amp;amp; Types&lt;a class="anchor" href="#chapter-11-variables--types"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Variables &amp;amp; Types&lt;/strong&gt; | &lt;a href="../02-arrays-maps-sets/"&gt;Next: Arrays, Maps &amp;amp; Sets &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="primitive-types"&gt;Primitive Types&lt;a class="anchor" href="#primitive-types"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enforce Script has a small, fixed set of primitive types. You cannot define new value types &amp;mdash; only classes (covered in &lt;a href="../03-classes-inheritance/"&gt;Chapter 1.3&lt;/a&gt;
).&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Type&lt;/th&gt;
					&lt;th&gt;Size&lt;/th&gt;
					&lt;th&gt;Default Value&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;32-bit signed&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Whole numbers from -2,147,483,648 to 2,147,483,647&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;float&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;32-bit IEEE 754&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0.0&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Floating-point numbers&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;1 bit logical&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;true&lt;/code&gt; or &lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Variable&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; (empty)&lt;/td&gt;
					&lt;td&gt;Text. Immutable value type &amp;mdash; passed by value, not reference&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;vector&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;3x float&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;0 0 0&amp;quot;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Three-component float (x, y, z). Passed by value&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;typename&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Engine ref&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;A reference to a type itself, used for reflection&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;void&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;N/A&lt;/td&gt;
					&lt;td&gt;N/A&lt;/td&gt;
					&lt;td&gt;Used only as a return type to indicate &amp;ldquo;returns nothing&amp;rdquo;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="type-hierarchy-diagram"&gt;Type Hierarchy Diagram&lt;a class="anchor" href="#type-hierarchy-diagram"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre class="mermaid"&gt;graph TD
 subgraph &amp;#34;Value Types (passed by copy)&amp;#34;
 INT[int&amp;lt;br/&amp;gt;32-bit signed]
 FLOAT[float&amp;lt;br/&amp;gt;32-bit IEEE 754]
 BOOL[bool&amp;lt;br/&amp;gt;true / false]
 STRING[string&amp;lt;br/&amp;gt;immutable text]
 VECTOR[vector&amp;lt;br/&amp;gt;3x float xyz]
 end

 subgraph &amp;#34;Reference Types (passed by reference)&amp;#34;
 CLASS[Class&amp;lt;br/&amp;gt;root of all ref types]
 MANAGED[Managed&amp;lt;br/&amp;gt;no engine ref-counting]
 TYPENAME[typename&amp;lt;br/&amp;gt;type reflection]
 end

 CLASS --&amp;gt; MANAGED
 CLASS --&amp;gt; ENTITYAI[EntityAI]
 ENTITYAI --&amp;gt; ITEMBASE[ItemBase]
 ENTITYAI --&amp;gt; MANBASE[ManBase / PlayerBase]
 MANAGED --&amp;gt; SCRIPTHANDLER[ScriptedWidgetEventHandler]
 MANAGED --&amp;gt; CUSTOMCLASS[Your Custom Classes]

 style INT fill:#4A90D9,color:#fff
 style FLOAT fill:#4A90D9,color:#fff
 style BOOL fill:#4A90D9,color:#fff
 style STRING fill:#4A90D9,color:#fff
 style VECTOR fill:#4A90D9,color:#fff
 style CLASS fill:#D94A4A,color:#fff
 style MANAGED fill:#D97A4A,color:#fff&lt;/pre&gt;&lt;h3 id="type-constants"&gt;Type Constants&lt;a class="anchor" href="#type-constants"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Several types expose useful constants:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/02-arrays-maps-sets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/02-arrays-maps-sets/</guid><description>&lt;h1 id="chapter-12-arrays-maps--sets"&gt;Chapter 1.2: Arrays, Maps &amp;amp; Sets&lt;a class="anchor" href="#chapter-12-arrays-maps--sets"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-variables-types/"&gt;&amp;laquo; Previous: Variables &amp;amp; Types&lt;/a&gt;
 | &lt;strong&gt;Arrays, Maps &amp;amp; Sets&lt;/strong&gt; | &lt;a href="../03-classes-inheritance/"&gt;Next: Classes &amp;amp; Inheritance &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Real DayZ mods deal with collections of things: lists of players, inventories of items, mappings from player IDs to permissions, sets of active zones. Enforce Script provides three collection types to handle these needs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;array&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/strong&gt; &amp;mdash; Dynamic, ordered, resizable list (the collection you will use most)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;map&amp;lt;K,V&amp;gt;&lt;/code&gt;&lt;/strong&gt; &amp;mdash; Key-value associative container (hash map)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;set&amp;lt;T&amp;gt;&lt;/code&gt;&lt;/strong&gt; &amp;mdash; Ordered collection with value-based removal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are also &lt;strong&gt;static arrays&lt;/strong&gt; (&lt;code&gt;int arr[5]&lt;/code&gt;) for fixed-size data known at compile time. This chapter covers all of them in depth, including every available method, iteration patterns, and the subtle pitfalls that cause real bugs in production mods.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/03-classes-inheritance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/03-classes-inheritance/</guid><description>&lt;h1 id="chapter-13-classes--inheritance"&gt;Chapter 1.3: Classes &amp;amp; Inheritance&lt;a class="anchor" href="#chapter-13-classes--inheritance"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-arrays-maps-sets/"&gt;&amp;laquo; Previous: Arrays, Maps &amp;amp; Sets&lt;/a&gt;
 | &lt;strong&gt;Classes &amp;amp; Inheritance&lt;/strong&gt; | &lt;a href="../04-modded-classes/"&gt;Next: Modded Classes &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Everything in DayZ is a class. Every weapon, vehicle, zombie, UI panel, config manager, and player is an instance of a class. Understanding how to declare, extend, and work with classes in Enforce Script is the foundation of all DayZ modding.&lt;/p&gt;
&lt;p&gt;Enforce Script&amp;rsquo;s class system is single-inheritance, object-oriented, with access modifiers, constructors, destructors, static members, and method overriding. If you know C# or Java, the concepts are familiar &amp;mdash; but the syntax has its own flavor, and there are important differences covered in this chapter.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/04-modded-classes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/04-modded-classes/</guid><description>&lt;h1 id="chapter-14-modded-classes-the-key-to-dayz-modding"&gt;Chapter 1.4: Modded Classes (The Key to DayZ Modding)&lt;a class="anchor" href="#chapter-14-modded-classes-the-key-to-dayz-modding"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-classes-inheritance/"&gt;&amp;laquo; Previous: Classes &amp;amp; Inheritance&lt;/a&gt;
 | &lt;strong&gt;Modded Classes&lt;/strong&gt; | &lt;a href="../05-control-flow/"&gt;Next: Control Flow &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Modded classes are the single most important concept in DayZ modding.&lt;/strong&gt; They are the mechanism that allows your mod to change the behavior of existing game classes without replacing the original files. Without modded classes, DayZ modding as we know it would not exist.&lt;/p&gt;
&lt;p&gt;Every major DayZ mod &amp;mdash; Community Online Tools, VPP Admin Tools, DayZ Expansion, Trader mods, medical overhauls, building systems &amp;mdash; works by using &lt;code&gt;modded class&lt;/code&gt; to hook into vanilla classes and add or change behavior. When you mod &lt;code&gt;PlayerBase&lt;/code&gt;, every player in the game gets your new behavior. When you mod &lt;code&gt;MissionServer&lt;/code&gt;, your code runs as part of the server&amp;rsquo;s mission lifecycle. When you mod &lt;code&gt;ItemBase&lt;/code&gt;, every item in the game is affected.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/05-control-flow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/05-control-flow/</guid><description>&lt;h1 id="chapter-15-control-flow"&gt;Chapter 1.5: Control Flow&lt;a class="anchor" href="#chapter-15-control-flow"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-modded-classes/"&gt;&amp;laquo; Previous: Modded Classes&lt;/a&gt;
 | &lt;strong&gt;Control Flow&lt;/strong&gt; | &lt;a href="../06-strings/"&gt;Next: String Operations &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="if--else--else-if"&gt;if / else / else if&lt;a class="anchor" href="#if--else--else-if"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;if&lt;/code&gt; statement evaluates a boolean expression and executes a block of code when the result is &lt;code&gt;true&lt;/code&gt;. You can chain conditions with &lt;code&gt;else if&lt;/code&gt; and provide a fallback with &lt;code&gt;else&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#9aedfe"&gt;void&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;CheckHealth&lt;/span&gt;(PlayerBase player)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#9aedfe"&gt;float&lt;/span&gt; health &lt;span style="color:#ff6ac1"&gt;=&lt;/span&gt; player.&lt;span style="color:#57c7ff"&gt;GetHealth&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;&amp;#34;&lt;/span&gt;, &lt;span style="color:#5af78e"&gt;&amp;#34;Health&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (health &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;75&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;Print&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;Player is healthy&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;else&lt;/span&gt; &lt;span style="color:#ff6ac1"&gt;if&lt;/span&gt; (health &lt;span style="color:#ff6ac1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff9f43"&gt;25&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;Print&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;Player is wounded&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff6ac1"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#57c7ff"&gt;Print&lt;/span&gt;(&lt;span style="color:#5af78e"&gt;&amp;#34;Player is critical&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="null-checks"&gt;Null checks&lt;a class="anchor" href="#null-checks"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In Enforce Script, object references evaluate to &lt;code&gt;false&lt;/code&gt; when null. This is the standard way to guard against null access:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/06-strings/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/06-strings/</guid><description>&lt;h1 id="chapter-16-string-operations"&gt;Chapter 1.6: String Operations&lt;a class="anchor" href="#chapter-16-string-operations"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-control-flow/"&gt;&amp;laquo; Previous: Control Flow&lt;/a&gt;
 | &lt;strong&gt;String Operations&lt;/strong&gt; | &lt;a href="../07-math-vectors/"&gt;Next: Math &amp;amp; Vectors &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Strings in Enforce Script are a &lt;strong&gt;value type&lt;/strong&gt;, like &lt;code&gt;int&lt;/code&gt; or &lt;code&gt;float&lt;/code&gt;. They are passed by value and compared by value. The &lt;code&gt;string&lt;/code&gt; type has a rich set of built-in methods for searching, slicing, converting, and formatting text. This chapter is a complete reference for every string operation available in DayZ scripting, with real-world examples from mod development.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/07-math-vectors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/07-math-vectors/</guid><description>&lt;h1 id="chapter-17-math--vector-operations"&gt;Chapter 1.7: Math &amp;amp; Vector Operations&lt;a class="anchor" href="#chapter-17-math--vector-operations"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-strings/"&gt;&amp;laquo; Previous: String Operations&lt;/a&gt;
 | &lt;strong&gt;Math &amp;amp; Vector Operations&lt;/strong&gt; | &lt;a href="../08-memory-management/"&gt;Next: Memory Management &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ modding frequently requires mathematical calculations: finding distances between players, randomizing spawn positions, interpolating camera movements, computing angles for AI targeting. Enforce Script provides the &lt;code&gt;Math&lt;/code&gt; class for scalar operations and the &lt;code&gt;vector&lt;/code&gt; type with static helpers for 3D math. This chapter is a complete reference for both, organized by category.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/08-memory-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/08-memory-management/</guid><description>&lt;h1 id="chapter-18-memory-management"&gt;Chapter 1.8: Memory Management&lt;a class="anchor" href="#chapter-18-memory-management"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../07-math-vectors/"&gt;&amp;laquo; Previous: Math &amp;amp; Vectors&lt;/a&gt;
 | &lt;strong&gt;Memory Management&lt;/strong&gt; | &lt;a href="../09-casting-reflection/"&gt;Next: Casting &amp;amp; Reflection &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enforce Script uses &lt;strong&gt;automatic reference counting (ARC)&lt;/strong&gt; for memory management &amp;ndash; not garbage collection in the traditional sense. Understanding how &lt;code&gt;ref&lt;/code&gt;, &lt;code&gt;autoptr&lt;/code&gt;, and raw pointers work is essential for writing stable DayZ mods. Get it wrong and you will either leak memory (your server gradually consumes more RAM until it crashes) or access deleted objects (instant crash with no useful error message). This chapter explains every pointer type, when to use each, and how to avoid the most dangerous pitfall: reference cycles.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/09-casting-reflection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/09-casting-reflection/</guid><description>&lt;h1 id="chapter-19-casting--reflection"&gt;Chapter 1.9: Casting &amp;amp; Reflection&lt;a class="anchor" href="#chapter-19-casting--reflection"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../08-memory-management/"&gt;&amp;laquo; Previous: Memory Management&lt;/a&gt;
 | &lt;strong&gt;Casting &amp;amp; Reflection&lt;/strong&gt; | &lt;a href="../10-enums-preprocessor/"&gt;Next: Enums &amp;amp; Preprocessor &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Master safe type casting, runtime type checks, and Enforce Script&amp;rsquo;s reflection API for dynamic property access.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#why-casting-matters"&gt;Why Casting Matters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#classcastto--safe-downcasting"&gt;Class.CastTo — Safe Downcasting&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#typecast--alternative-casting"&gt;Type.Cast — Alternative Casting&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#castto-vs-typecast--when-to-use-which"&gt;CastTo vs Type.Cast — When to Use Which&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#obisinherited--runtime-type-checking"&gt;obj.IsInherited — Runtime Type Checking&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#obiskindof--string-based-type-checking"&gt;obj.IsKindOf — String-Based Type Checking&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#objtype--get-runtime-type"&gt;obj.Type — Get Runtime Type&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#typename--storing-type-references"&gt;typename — Storing Type References&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#reflection-api"&gt;Reflection API&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#inspecting-variables"&gt;Inspecting Variables&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#enscriptgetclassvar--setclassvar"&gt;EnScript.GetClassVar / SetClassVar&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-world-examples"&gt;Real-World Examples&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#finding-all-vehicles-in-the-world"&gt;Finding All Vehicles in the World&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#safe-object-helper-with-cast"&gt;Safe Object Helper With Cast&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#reflection-based-config-system"&gt;Reflection-Based Config System&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#type-safe-event-dispatch"&gt;Type-Safe Event Dispatch&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#navigation"&gt;Navigation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="why-casting-matters"&gt;Why Casting Matters&lt;a class="anchor" href="#why-casting-matters"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ&amp;rsquo;s entity hierarchy is deep. Most engine APIs return a generic base type (&lt;code&gt;Object&lt;/code&gt;, &lt;code&gt;Man&lt;/code&gt;, &lt;code&gt;Class&lt;/code&gt;), but you need a specific type (&lt;code&gt;PlayerBase&lt;/code&gt;, &lt;code&gt;ItemBase&lt;/code&gt;, &lt;code&gt;CarScript&lt;/code&gt;) to access specialized methods. Casting converts a base reference into a derived reference — safely.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/10-enums-preprocessor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/10-enums-preprocessor/</guid><description>&lt;h1 id="chapter-110-enums--preprocessor"&gt;Chapter 1.10: Enums &amp;amp; Preprocessor&lt;a class="anchor" href="#chapter-110-enums--preprocessor"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../09-casting-reflection/"&gt;&amp;laquo; Previous: Casting &amp;amp; Reflection&lt;/a&gt;
 | &lt;strong&gt;Enums &amp;amp; Preprocessor&lt;/strong&gt; | &lt;a href="../11-error-handling/"&gt;Next: Error Handling &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Understand enum declarations, enum reflection tools, bitflag patterns, constants, and the preprocessor system for conditional compilation.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#enum-declaration"&gt;Enum Declaration&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#explicit-values"&gt;Explicit Values&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#implicit-values"&gt;Implicit Values&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#enum-inheritance"&gt;Enum Inheritance&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#using-enums"&gt;Using Enums&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#enum-reflection"&gt;Enum Reflection&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#typenameenumtostring"&gt;typename.EnumToString&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#typenamestringtoenum"&gt;typename.StringToEnum&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#bitflags-pattern"&gt;Bitflags Pattern&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#constants"&gt;Constants&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#preprocessor-directives"&gt;Preprocessor Directives&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#ifdef--ifndef--endif"&gt;#ifdef / #ifndef / #endif&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#define"&gt;#define&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-engine-defines"&gt;Common Engine Defines&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#custom-defines-via-configcpp"&gt;Custom Defines via config.cpp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-world-examples"&gt;Real-World Examples&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#platform-specific-code"&gt;Platform-Specific Code&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#optional-mod-dependencies"&gt;Optional Mod Dependencies&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#debug-only-diagnostics"&gt;Debug-Only Diagnostics&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#server-vs-client-logic"&gt;Server vs Client Logic&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#navigation"&gt;Navigation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="enum-declaration"&gt;Enum Declaration&lt;a class="anchor" href="#enum-declaration"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enums in Enforce Script define named integer constants grouped under a type name. They behave like &lt;code&gt;int&lt;/code&gt; under the hood.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/11-error-handling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/11-error-handling/</guid><description>&lt;h1 id="chapter-111-error-handling"&gt;Chapter 1.11: Error Handling&lt;a class="anchor" href="#chapter-111-error-handling"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../10-enums-preprocessor/"&gt;&amp;laquo; Previous: Enums &amp;amp; Preprocessor&lt;/a&gt;
 | &lt;strong&gt;Error Handling&lt;/strong&gt; | &lt;a href="../12-gotchas/"&gt;Next: Gotchas &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Learn how to handle errors in a language with no try/catch. Master guard clauses, defensive coding, and structured logging patterns that keep your mod stable.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#the-fundamental-rule-no-trycatch"&gt;The Fundamental Rule: No try/catch&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#guard-clause-pattern"&gt;Guard Clause Pattern&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#single-guard"&gt;Single Guard&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#multiple-guards-stacked"&gt;Multiple Guards (Stacked)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#guard-with-logging"&gt;Guard With Logging&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#null-checking"&gt;Null Checking&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#before-every-operation"&gt;Before Every Operation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#chained-null-checks"&gt;Chained Null Checks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-notnull-keyword"&gt;The notnull Keyword&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#errorex--engine-error-reporting"&gt;ErrorEx — Engine Error Reporting&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#severity-levels"&gt;Severity Levels&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#when-to-use-each-level"&gt;When to Use Each Level&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#dumpstackstring--stack-traces"&gt;DumpStackString — Stack Traces&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#debug-printing"&gt;Debug Printing&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#basic-print"&gt;Basic Print&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#conditional-debug-with-ifdef"&gt;Conditional Debug with #ifdef&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#structured-logging-patterns"&gt;Structured Logging Patterns&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#simple-prefix-pattern"&gt;Simple Prefix Pattern&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#level-based-logger-class"&gt;Level-Based Logger Class&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#mylog-style-production-pattern"&gt;MyLog Style (Production Pattern)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-world-examples"&gt;Real-World Examples&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#safe-function-with-multiple-guards"&gt;Safe Function With Multiple Guards&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#safe-config-loading"&gt;Safe Config Loading&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#safe-rpc-handler"&gt;Safe RPC Handler&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#safe-inventory-operation"&gt;Safe Inventory Operation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#defensive-patterns-summary"&gt;Defensive Patterns Summary&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#summary"&gt;Summary&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#navigation"&gt;Navigation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="the-fundamental-rule-no-trycatch"&gt;The Fundamental Rule: No try/catch&lt;a class="anchor" href="#the-fundamental-rule-no-trycatch"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enforce Script has &lt;strong&gt;no exception handling&lt;/strong&gt;. There is no &lt;code&gt;try&lt;/code&gt;, no &lt;code&gt;catch&lt;/code&gt;, no &lt;code&gt;throw&lt;/code&gt;, no &lt;code&gt;finally&lt;/code&gt;. If something goes wrong at runtime (null dereference, invalid cast, array out of bounds), the engine either:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/12-gotchas/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/12-gotchas/</guid><description>&lt;h1 id="chapter-112-what-does-not-exist-gotchas"&gt;Chapter 1.12: What Does NOT Exist (Gotchas)&lt;a class="anchor" href="#chapter-112-what-does-not-exist-gotchas"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../11-error-handling/"&gt;&amp;laquo; Previous: Error Handling&lt;/a&gt;
 | &lt;strong&gt;Gotchas&lt;/strong&gt; | &lt;a href="../13-functions-methods/"&gt;Next: Functions &amp;amp; Methods &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; A complete catalog of features you expect from C++, C#, Java, or Python that are &lt;strong&gt;missing&lt;/strong&gt; or &lt;strong&gt;different&lt;/strong&gt; in Enforce Script. Each entry explains what you would try, what happens, and the correct workaround.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#complete-gotchas-reference"&gt;Complete Gotchas Reference&lt;/a&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="#1-no-ternary-operator"&gt;No Ternary Operator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-no-dowhile-loop"&gt;No do&amp;hellip;while Loop&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-no-trycatchthrow"&gt;No try/catch/throw&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-no-multiple-inheritance"&gt;No Multiple Inheritance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-no-operator-overloading-except-index"&gt;No Operator Overloading (Except Index)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-no-lambdas--anonymous-functions"&gt;No Lambdas / Anonymous Functions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#7-no-delegates--function-pointers-native"&gt;No Delegates / Function Pointers (Native)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#8-no-string-escape-for-backslashquote"&gt;No String Escape for Backslash/Quote&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#9-no-variable-redeclaration-in-else-if-blocks"&gt;No Variable Redeclaration in else-if Blocks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#10-no-ternary-in-variable-declaration"&gt;No Ternary in Variable Declaration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#11-no-multiline-function-calls"&gt;No Multiline Function Calls&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#12-no-nullptr--use-null-or-null"&gt;No nullptr — Use NULL or null&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#13-switchcase-does-fall-through"&gt;switch/case DOES Fall Through&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#14-no-default-parameter-expressions"&gt;No Default Parameter Expressions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#15-jsonfileloaderjsonloadfile-returns-void"&gt;JsonFileLoader.JsonLoadFile Returns void&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#16-no-define-value-substitution"&gt;No #define Value Substitution&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#17-no-interfaces--abstract-classes-enforced"&gt;No Interfaces / Abstract Classes (Enforced)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#18-no-generics-constraints"&gt;No Generics Constraints&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#19-no-enum-validation"&gt;No Enum Validation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#20-no-variadic-parameters"&gt;No Variadic Parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#21-no-nested-class-declarations"&gt;No Nested Class Declarations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#22-static-arrays-are-fixed-size"&gt;Static Arrays Are Fixed-Size&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#23-arrayremove-is-unordered"&gt;array.Remove Is Unordered&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#24-no-include--everything-via-configcpp"&gt;No #include — Everything via config.cpp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#25-no-namespaces"&gt;No Namespaces&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#26-string-methods-modify-in-place"&gt;String Methods Modify In-Place&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#27-ref-cycles-cause-memory-leaks"&gt;ref Cycles Cause Memory Leaks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#28-no-destructor-guarantee-on-server-shutdown"&gt;No Destructor Guarantee on Server Shutdown&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#29-no-scope-based-resource-management-raii"&gt;No Scope-Based Resource Management (RAII)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#30-getgamegetplayer-returns-null-on-server"&gt;GetGame().GetPlayer() Returns null on Server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#31-sealed-classes-cannot-be-extended-128"&gt;&lt;code&gt;sealed&lt;/code&gt; Classes Cannot Be Extended (1.28+)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#32-method-parameter-limit-16-maximum-128"&gt;Method Parameter Limit: 16 Maximum (1.28+)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#33-obsolete-attribute-warnings-128"&gt;&lt;code&gt;Obsolete&lt;/code&gt; Attribute Warnings (1.28+)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#34-intmin-comparison-bug"&gt;&lt;code&gt;int.MIN&lt;/code&gt; Comparison Bug&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#35-array-element-boolean-negation-fails"&gt;Array Element Boolean Negation Fails&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#36-complex-expression-in-array-assignment-crashes"&gt;Complex Expression in Array Assignment Crashes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#37-foreach-on-method-return-value-crashes"&gt;&lt;code&gt;foreach&lt;/code&gt; on Method Return Value Crashes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#38-bitwise-vs-comparison-operator-precedence"&gt;Bitwise vs Comparison Operator Precedence&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#39-empty-ifdef--ifndef-blocks-crash"&gt;Empty &lt;code&gt;#ifdef&lt;/code&gt; / &lt;code&gt;#ifndef&lt;/code&gt; Blocks Crash&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#40-getgameisclient-returns-false-during-load"&gt;&lt;code&gt;GetGame().IsClient()&lt;/code&gt; Returns False During Load&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#41-compile-error-messages-report-wrong-file"&gt;Compile Error Messages Report Wrong File&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#42-crashlog-files-are-not-crashes"&gt;&lt;code&gt;crash_*.log&lt;/code&gt; Files Are Not Crashes&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#coming-from-c"&gt;Coming From C++&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#coming-from-c-1"&gt;Coming From C#&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#coming-from-java"&gt;Coming From Java&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#coming-from-python"&gt;Coming From Python&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#quick-reference-table"&gt;Quick Reference Table&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#navigation"&gt;Navigation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="complete-gotchas-reference"&gt;Complete Gotchas Reference&lt;a class="anchor" href="#complete-gotchas-reference"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-no-ternary-operator"&gt;1. No Ternary Operator&lt;a class="anchor" href="#1-no-ternary-operator"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;What you would write:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/01-enforce-script/13-functions-methods/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/01-enforce-script/13-functions-methods/</guid><description>&lt;h1 id="chapter-113-functions--methods"&gt;Chapter 1.13: Functions &amp;amp; Methods&lt;a class="anchor" href="#chapter-113-functions--methods"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../12-gotchas/"&gt;&amp;laquo; Previous: Gotchas&lt;/a&gt;
 | &lt;strong&gt;Functions &amp;amp; Methods&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Functions are the fundamental unit of behavior in Enforce Script. Every action a mod performs &amp;mdash; spawning an item, checking a player&amp;rsquo;s health, sending an RPC, drawing a UI element &amp;mdash; lives inside a function. Understanding how to declare them, pass data in and out, and work with the engine&amp;rsquo;s special modifiers is essential for writing correct DayZ mods.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/02-mod-structure/01-five-layers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/02-mod-structure/01-five-layers/</guid><description>&lt;h1 id="chapter-21-the-5-layer-script-hierarchy"&gt;Chapter 2.1: The 5-Layer Script Hierarchy&lt;a class="anchor" href="#chapter-21-the-5-layer-script-hierarchy"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;The 5-Layer Script Hierarchy&lt;/strong&gt; | &lt;a href="../02-config-cpp/"&gt;Next: config.cpp Deep Dive &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; DayZ organizes all scripts into five compilation layers. Understanding these layers is the single most important concept in DayZ modding &amp;ndash; it determines where every file in your mod lives, what it can access, and when it executes.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-layer-stack"&gt;The Layer Stack&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#layer-1-1_core-enginescriptmodule"&gt;Layer 1: 1_Core (engineScriptModule)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#layer-2-2_gamelib-gamelibscriptmodule"&gt;Layer 2: 2_GameLib (gameLibScriptModule)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#layer-3-3_game-gamescriptmodule"&gt;Layer 3: 3_Game (gameScriptModule)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#layer-4-4_world-worldscriptmodule"&gt;Layer 4: 4_World (worldScriptModule)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#layer-5-5_mission-missionscriptmodule"&gt;Layer 5: 5_Mission (missionScriptModule)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-critical-rule"&gt;The Critical Rule&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#load-order-and-timing"&gt;Load Order and Timing&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#when-each-layer-executes"&gt;When Each Layer Executes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#practical-guidelines"&gt;Practical Guidelines&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#quick-decision-guide"&gt;Quick Decision Guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The DayZ engine compiles scripts in five distinct passes called &lt;strong&gt;script modules&lt;/strong&gt;. Each module corresponds to a numbered folder in your mod&amp;rsquo;s &lt;code&gt;Scripts/&lt;/code&gt; directory:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/02-mod-structure/02-config-cpp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/02-mod-structure/02-config-cpp/</guid><description>&lt;h1 id="chapter-22-configcpp-deep-dive"&gt;Chapter 2.2: config.cpp Deep Dive&lt;a class="anchor" href="#chapter-22-configcpp-deep-dive"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-five-layers/"&gt;&amp;laquo; Previous: The 5-Layer Script Hierarchy&lt;/a&gt;
 | &lt;strong&gt;config.cpp Deep Dive&lt;/strong&gt; | &lt;a href="../03-mod-cpp/"&gt;Next: mod.cpp &amp;amp; Workshop &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The &lt;code&gt;config.cpp&lt;/code&gt; file is the heart of every DayZ mod. It tells the engine what your mod depends on, where your scripts live, what items it defines, and how it integrates with the game. Every PBO must have one. Getting it wrong means your mod silently fails to load.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/02-mod-structure/03-mod-cpp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/02-mod-structure/03-mod-cpp/</guid><description>&lt;h1 id="chapter-23-modcpp--workshop"&gt;Chapter 2.3: mod.cpp &amp;amp; Workshop&lt;a class="anchor" href="#chapter-23-modcpp--workshop"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-config-cpp/"&gt;&amp;laquo; Previous: config.cpp Deep Dive&lt;/a&gt;
 | &lt;strong&gt;mod.cpp &amp;amp; Workshop&lt;/strong&gt; | &lt;a href="../04-minimum-viable-mod/"&gt;Next: Minimum Viable Mod &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The &lt;code&gt;mod.cpp&lt;/code&gt; file is pure metadata &amp;ndash; it controls how your mod appears in the DayZ launcher, in-game mod list, and Steam Workshop. It has no effect on gameplay, scripting, or load order. If &lt;code&gt;config.cpp&lt;/code&gt; is the engine, &lt;code&gt;mod.cpp&lt;/code&gt; is the paint job.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#where-modcpp-lives"&gt;Where mod.cpp Lives&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#all-fields-reference"&gt;All Fields Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#field-details"&gt;Field Details&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#client-mod-vs-server-mod"&gt;Client Mod vs Server Mod&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#workshop-metadata"&gt;Workshop Metadata&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#required-vs-optional-fields"&gt;Required vs Optional Fields&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-examples"&gt;Real Examples&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#tips-and-best-practices"&gt;Tips and Best Practices&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;mod.cpp&lt;/code&gt; sits at the root of your mod folder (next to the &lt;code&gt;Addons/&lt;/code&gt; directory). The DayZ launcher reads it to display your mod&amp;rsquo;s name, logo, description, and author in the mod selection screen.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/02-mod-structure/04-minimum-viable-mod/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/02-mod-structure/04-minimum-viable-mod/</guid><description>&lt;h1 id="chapter-24-your-first-mod--minimum-viable"&gt;Chapter 2.4: Your First Mod &amp;ndash; Minimum Viable&lt;a class="anchor" href="#chapter-24-your-first-mod--minimum-viable"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-mod-cpp/"&gt;&amp;laquo; Previous: mod.cpp &amp;amp; Workshop&lt;/a&gt;
 | &lt;strong&gt;Minimum Viable Mod&lt;/strong&gt; | &lt;a href="../05-file-organization/"&gt;Next: File Organization &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This chapter walks you through creating the smallest possible DayZ mod from scratch. By the end, you will have a working mod that prints a message to the script log when the game starts. Three files, zero dependencies, under five minutes.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#what-you-need"&gt;What You Need&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-goal"&gt;The Goal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-1-create-the-directory-structure"&gt;Step 1: Create the Directory Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-2-create-modcpp"&gt;Step 2: Create mod.cpp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-3-create-configcpp"&gt;Step 3: Create config.cpp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-4-create-your-first-script"&gt;Step 4: Create Your First Script&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-5-pack-and-test"&gt;Step 5: Pack and Test&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-6-verify-it-works"&gt;Step 6: Verify It Works&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#understanding-what-happened"&gt;Understanding What Happened&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#next-steps"&gt;Next Steps&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#troubleshooting"&gt;Troubleshooting&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-you-need"&gt;What You Need&lt;a class="anchor" href="#what-you-need"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DayZ game installed (retail or DayZ Tools/Diag)&lt;/li&gt;
&lt;li&gt;A text editor (VS Code, Notepad++, or any plain text editor)&lt;/li&gt;
&lt;li&gt;DayZ Tools installed (for PBO packing) &amp;ndash; OR you can test without packing (see Step 5)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="the-goal"&gt;The Goal&lt;a class="anchor" href="#the-goal"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;We will create a mod called &lt;strong&gt;HelloMod&lt;/strong&gt; that:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/02-mod-structure/05-file-organization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/02-mod-structure/05-file-organization/</guid><description>&lt;h1 id="chapter-25-file-organization-best-practices"&gt;Chapter 2.5: File Organization Best Practices&lt;a class="anchor" href="#chapter-25-file-organization-best-practices"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-minimum-viable-mod/"&gt;&amp;laquo; Previous: Minimum Viable Mod&lt;/a&gt;
 | &lt;strong&gt;File Organization&lt;/strong&gt; | &lt;a href="../06-server-client-split/"&gt;Next: Server vs Client Architecture &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; How you organize files determines whether your mod is maintainable at 10 files or 1,000. This chapter covers the canonical directory structure, naming conventions, content vs script vs framework mods, client-server splits, and lessons from professional DayZ mods.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#the-canonical-directory-structure"&gt;The Canonical Directory Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#naming-conventions"&gt;Naming Conventions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#three-types-of-mods"&gt;Three Types of Mods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#client-server-split-mods"&gt;Client-Server Split Mods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#what-goes-where"&gt;What Goes Where&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pbo-naming-and-mod-folder-naming"&gt;PBO Naming and @mod Folder Naming&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-examples-from-professional-mods"&gt;Real Examples from Professional Mods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#anti-patterns"&gt;Anti-Patterns&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="the-canonical-directory-structure"&gt;The Canonical Directory Structure&lt;a class="anchor" href="#the-canonical-directory-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is the standard layout used by professional DayZ mods. Not every folder is required &amp;ndash; only create what you need.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/02-mod-structure/06-server-client-split/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/02-mod-structure/06-server-client-split/</guid><description>&lt;h1 id="chapter-26-server-vs-client-architecture"&gt;Chapter 2.6: Server vs Client Architecture&lt;a class="anchor" href="#chapter-26-server-vs-client-architecture"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-file-organization/"&gt;&amp;laquo; Previous: File Organization&lt;/a&gt;
 | &lt;strong&gt;Server vs Client Architecture&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; DayZ is a client-server game. Every line of code you write runs in a specific context &amp;ndash; server, client, or both. Understanding this split is essential for writing secure, functional mods. This chapter explains where code runs, how to detect which side you are on, how to structure multi-package mods, and the patterns that keep server and client code properly separated.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/01-widget-types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/01-widget-types/</guid><description>&lt;h1 id="chapter-31-widget-types"&gt;Chapter 3.1: Widget Types&lt;a class="anchor" href="#chapter-31-widget-types"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Widget Types&lt;/strong&gt; | &lt;a href="../02-layout-files/"&gt;Next: Layout Files &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;DayZ&amp;rsquo;s GUI system is built on widgets &amp;ndash; reusable UI components that range from simple containers to complex interactive controls. Every visible element on screen is a widget, and understanding the full catalog is essential for building mod UIs.&lt;/p&gt;
&lt;p&gt;This chapter provides a complete reference of all widget types available in Enforce Script.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="how-widgets-work"&gt;How Widgets Work&lt;a class="anchor" href="#how-widgets-work"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every widget in DayZ inherits from the &lt;code&gt;Widget&lt;/code&gt; base class. Widgets are organized in a parent-child tree, where the root is typically a &lt;code&gt;WorkspaceWidget&lt;/code&gt; obtained via &lt;code&gt;GetGame().GetWorkspace()&lt;/code&gt;.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/02-layout-files/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/02-layout-files/</guid><description>&lt;h1 id="chapter-32-layout-file-format-layout"&gt;Chapter 3.2: Layout File Format (.layout)&lt;a class="anchor" href="#chapter-32-layout-file-format-layout"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-widget-types/"&gt;&amp;laquo; Previous: Widget Types&lt;/a&gt;
 | &lt;strong&gt;Layout File Format&lt;/strong&gt; | &lt;a href="../03-sizing-positioning/"&gt;Next: Sizing &amp;amp; Positioning &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;DayZ uses a custom text-based format for UI layout files. These &lt;code&gt;.layout&lt;/code&gt; files are &lt;strong&gt;NOT XML&lt;/strong&gt; &amp;ndash; they use a brace-delimited format similar to config.cpp. The DayZ Workbench editor generates them, but understanding the format lets you hand-edit layouts and debug problems.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="basic-structure"&gt;Basic Structure&lt;a class="anchor" href="#basic-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;code&gt;.layout&lt;/code&gt; file defines a tree of widgets. Every file has exactly one root widget, which contains nested children.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/03-sizing-positioning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/03-sizing-positioning/</guid><description>&lt;h1 id="chapter-33-sizing--positioning"&gt;Chapter 3.3: Sizing &amp;amp; Positioning&lt;a class="anchor" href="#chapter-33-sizing--positioning"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-layout-files/"&gt;&amp;laquo; Previous: Layout File Format&lt;/a&gt;
 | &lt;strong&gt;Sizing &amp;amp; Positioning&lt;/strong&gt; | &lt;a href="../04-containers/"&gt;Next: Container Widgets &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The DayZ layout system uses a &lt;strong&gt;dual coordinate mode&lt;/strong&gt; &amp;ndash; every dimension can be either proportional (relative to the parent) or pixel-based (absolute screen pixels). Misunderstanding this system is the number one source of layout bugs. This chapter explains it thoroughly.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-core-concept-proportional-vs-pixel"&gt;The Core Concept: Proportional vs. Pixel&lt;a class="anchor" href="#the-core-concept-proportional-vs-pixel"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every widget has a position (&lt;code&gt;x, y&lt;/code&gt;) and a size (&lt;code&gt;width, height&lt;/code&gt;). Each of these four values can independently be either:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/04-containers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/04-containers/</guid><description>&lt;h1 id="chapter-34-container-widgets"&gt;Chapter 3.4: Container Widgets&lt;a class="anchor" href="#chapter-34-container-widgets"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-sizing-positioning/"&gt;&amp;laquo; Previous: Sizing &amp;amp; Positioning&lt;/a&gt;
 | &lt;strong&gt;Container Widgets&lt;/strong&gt; | &lt;a href="../05-programmatic-widgets/"&gt;Next: Programmatic Widgets &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Container widgets organize child widgets within them. While &lt;code&gt;FrameWidget&lt;/code&gt; is the simplest (invisible box, manual positioning), DayZ provides three specialized containers that handle layout automatically: &lt;code&gt;WrapSpacerWidget&lt;/code&gt;, &lt;code&gt;GridSpacerWidget&lt;/code&gt;, and &lt;code&gt;ScrollWidget&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="container-comparison"&gt;Container Comparison&lt;a class="anchor" href="#container-comparison"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre class="mermaid"&gt;graph LR
 subgraph &amp;#34;FrameWidget (Absolute)&amp;#34;
 FA[&amp;#34;Child A&amp;lt;br/&amp;gt;pos: 10,10&amp;#34;]
 FB[&amp;#34;Child B&amp;lt;br/&amp;gt;pos: 200,10&amp;#34;]
 FC[&amp;#34;Child C&amp;lt;br/&amp;gt;pos: 10,100&amp;#34;]
 end

 subgraph &amp;#34;WrapSpacer (Flow)&amp;#34;
 WA[&amp;#34;Item 1&amp;#34;] --&amp;gt; WB[&amp;#34;Item 2&amp;#34;] --&amp;gt; WC[&amp;#34;Item 3&amp;#34;]
 WC --&amp;gt; WD[&amp;#34;Item 4&amp;lt;br/&amp;gt;(wraps to next row)&amp;#34;]
 end

 subgraph &amp;#34;GridSpacer (Grid)&amp;#34;
 GA[&amp;#34;Cell 0,0&amp;#34;] --- GB[&amp;#34;Cell 1,0&amp;#34;] --- GC[&amp;#34;Cell 2,0&amp;#34;]
 GD[&amp;#34;Cell 0,1&amp;#34;] --- GE[&amp;#34;Cell 1,1&amp;#34;] --- GF[&amp;#34;Cell 2,1&amp;#34;]
 end

 style FA fill:#4A90D9,color:#fff
 style WA fill:#2D8A4E,color:#fff
 style GA fill:#D97A4A,color:#fff&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="framewidget--structural-container"&gt;FrameWidget &amp;ndash; Structural Container&lt;a class="anchor" href="#framewidget--structural-container"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;FrameWidget&lt;/code&gt; is the most basic container. It draws nothing on screen and does not arrange its children &amp;ndash; you must position each child manually.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/05-programmatic-widgets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/05-programmatic-widgets/</guid><description>&lt;h1 id="chapter-35-programmatic-widget-creation"&gt;Chapter 3.5: Programmatic Widget Creation&lt;a class="anchor" href="#chapter-35-programmatic-widget-creation"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-containers/"&gt;&amp;laquo; Previous: Container Widgets&lt;/a&gt;
 | &lt;strong&gt;Programmatic Widget Creation&lt;/strong&gt; | &lt;a href="../06-event-handling/"&gt;Next: Event Handling &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;While &lt;code&gt;.layout&lt;/code&gt; files are the standard way to define UI structure, you can also create and configure widgets entirely from code. This is useful for dynamic UIs, procedurally generated elements, and situations where the layout is not known at compile time.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="two-approaches"&gt;Two Approaches&lt;a class="anchor" href="#two-approaches"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ provides two ways to create widgets in code:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/06-event-handling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/06-event-handling/</guid><description>&lt;h1 id="chapter-36-event-handling"&gt;Chapter 3.6: Event Handling&lt;a class="anchor" href="#chapter-36-event-handling"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-programmatic-widgets/"&gt;&amp;laquo; Previous: Programmatic Widget Creation&lt;/a&gt;
 | &lt;strong&gt;Event Handling&lt;/strong&gt; | &lt;a href="../07-styles-fonts/"&gt;Next: Styles, Fonts &amp;amp; Images &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Widgets generate events when the user interacts with them &amp;ndash; clicking buttons, typing in edit boxes, moving the mouse, dragging elements. This chapter covers how to receive and handle those events.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="scriptedwidgeteventhandler"&gt;ScriptedWidgetEventHandler&lt;a class="anchor" href="#scriptedwidgeteventhandler"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;ScriptedWidgetEventHandler&lt;/code&gt; class is the foundation of all widget event handling in DayZ. It provides override methods for every possible widget event.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/07-styles-fonts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/07-styles-fonts/</guid><description>&lt;h1 id="chapter-37-styles-fonts--images"&gt;Chapter 3.7: Styles, Fonts &amp;amp; Images&lt;a class="anchor" href="#chapter-37-styles-fonts--images"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-event-handling/"&gt;&amp;laquo; Previous: Event Handling&lt;/a&gt;
 | &lt;strong&gt;Styles, Fonts &amp;amp; Images&lt;/strong&gt; | &lt;a href="../08-dialogs-modals/"&gt;Next: Dialogs &amp;amp; Modals &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This chapter covers the visual building blocks of DayZ UI: predefined styles, font usage, text sizing, image widgets with imageset references, and how to create custom imagesets for your mod.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="styles"&gt;Styles&lt;a class="anchor" href="#styles"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Styles are predefined visual appearances that can be applied to widgets via the &lt;code&gt;style&lt;/code&gt; attribute in layout files. They control background rendering, borders, and overall look without requiring manual color and image configuration.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/08-dialogs-modals/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/08-dialogs-modals/</guid><description>&lt;h1 id="chapter-38-dialogs--modals"&gt;Chapter 3.8: Dialogs &amp;amp; Modals&lt;a class="anchor" href="#chapter-38-dialogs--modals"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../07-styles-fonts/"&gt;&amp;laquo; Previous: Styles, Fonts &amp;amp; Images&lt;/a&gt;
 | &lt;strong&gt;Dialogs &amp;amp; Modals&lt;/strong&gt; | &lt;a href="../09-real-mod-patterns/"&gt;Next: Real Mod UI Patterns &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Dialogs are temporary overlay windows that demand user interaction &amp;ndash; confirmation prompts, alert messages, input forms, and settings panels. This chapter covers the built-in dialog system, manual dialog patterns, layout structure, focus management, and common pitfalls.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="modal-vs-modeless"&gt;Modal vs. Modeless&lt;a class="anchor" href="#modal-vs-modeless"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are two fundamental types of dialog:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modal&lt;/strong&gt; &amp;ndash; Blocks all interaction with content behind the dialog. The user must respond (confirm, cancel, close) before doing anything else. Examples: quit confirmation, delete warning, rename prompt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modeless&lt;/strong&gt; &amp;ndash; Allows the user to interact with content behind the dialog while it remains open. Examples: info panels, settings windows, tool palettes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In DayZ, the distinction is controlled by whether you lock game input when the dialog opens. A modal dialog calls &lt;code&gt;ChangeGameFocus(1)&lt;/code&gt; and shows the cursor; a modeless dialog may skip this or use a toggle approach.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/09-real-mod-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/09-real-mod-patterns/</guid><description>&lt;h1 id="chapter-39-real-mod-ui-patterns"&gt;Chapter 3.9: Real Mod UI Patterns&lt;a class="anchor" href="#chapter-39-real-mod-ui-patterns"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../08-dialogs-modals/"&gt;&amp;laquo; Previous: Dialogs &amp;amp; Modals&lt;/a&gt;
 | &lt;strong&gt;Real Mod UI Patterns&lt;/strong&gt; | &lt;a href="../10-advanced-widgets/"&gt;Next: Advanced Widgets &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This chapter surveys UI patterns found in six professional DayZ mods: COT (Community Online Tools), VPP Admin Tools, DabsFramework, Colorful UI, Expansion, and DayZ Editor. Each mod solves different problems. Studying their approaches gives you a library of proven patterns beyond what official documentation covers.&lt;/p&gt;
&lt;p&gt;All code shown is extracted from actual mod source. File paths reference the original repositories.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/03-gui-system/10-advanced-widgets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/03-gui-system/10-advanced-widgets/</guid><description>&lt;h1 id="chapter-310-advanced-widgets"&gt;Chapter 3.10: Advanced Widgets&lt;a class="anchor" href="#chapter-310-advanced-widgets"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../09-real-mod-patterns/"&gt;&amp;laquo; Previous: Real Mod UI Patterns&lt;/a&gt;
 | &lt;strong&gt;Advanced Widgets&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Beyond the standard containers, text, and image widgets covered in earlier chapters, DayZ provides specialized widget types for rich text formatting, 2D canvas drawing, map display, 3D item previews, video playback, and render-to-texture. These widgets unlock capabilities that simple layouts cannot achieve.&lt;/p&gt;
&lt;p&gt;This chapter covers every advanced widget type with confirmed API signatures extracted from vanilla source code and real mod usage.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/01-textures/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/01-textures/</guid><description>&lt;h1 id="chapter-41-textures-paa-edds-tga"&gt;Chapter 4.1: Textures (.paa, .edds, .tga)&lt;a class="anchor" href="#chapter-41-textures-paa-edds-tga"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Textures&lt;/strong&gt; | &lt;a href="../02-models/"&gt;Next: 3D Models &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;DayZ uses &lt;strong&gt;PAA&lt;/strong&gt; as its runtime texture format. During development you work with source formats (TGA, PNG, EDDS) that are converted to PAA during the build process. This chapter covers the formats, naming conventions, resolution rules, and conversion workflow.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="texture-formats-overview"&gt;Texture Formats Overview&lt;a class="anchor" href="#texture-formats-overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ uses four texture formats at different stages of the development pipeline:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Format&lt;/th&gt;
					&lt;th&gt;Extension&lt;/th&gt;
					&lt;th&gt;Role&lt;/th&gt;
					&lt;th&gt;Alpha Support&lt;/th&gt;
					&lt;th&gt;Used At&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;PAA&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.paa&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Runtime game format (compressed)&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
					&lt;td&gt;Final build, shipped in PBOs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;EDDS&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.edds&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Editor/intermediate DDS variant&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
					&lt;td&gt;Object Builder preview, auto-converts&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;TGA&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.tga&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Uncompressed source artwork&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
					&lt;td&gt;Artist workspace, Photoshop/GIMP export&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;PNG&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.png&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Portable source format&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
					&lt;td&gt;UI textures, external tools&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The general workflow is: &lt;strong&gt;Source (TGA/PNG) &amp;ndash;&amp;gt; DayZ Tools conversion &amp;ndash;&amp;gt; PAA (game-ready)&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/02-models/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/02-models/</guid><description>&lt;h1 id="chapter-42-3d-models-p3d"&gt;Chapter 4.2: 3D Models (.p3d)&lt;a class="anchor" href="#chapter-42-3d-models-p3d"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-textures/"&gt;&amp;laquo; Previous: Textures&lt;/a&gt;
 | &lt;strong&gt;3D Models&lt;/strong&gt; | &lt;a href="../03-materials/"&gt;Next: Materials &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every physical object in DayZ &amp;ndash; weapons, clothing, buildings, vehicles, trees, rocks &amp;ndash; is a 3D model stored in Bohemia&amp;rsquo;s proprietary &lt;strong&gt;P3D&lt;/strong&gt; format. The P3D format is far more than a mesh container: it encodes multiple levels of detail, collision geometry, animation selections, memory points for attachments and effects, and proxy positions for mountable items. Understanding how P3D files work and how to create them with &lt;strong&gt;Object Builder&lt;/strong&gt; is essential for any mod that adds physical items to the game world.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/03-materials/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/03-materials/</guid><description>&lt;h1 id="chapter-43-materials-rvmat"&gt;Chapter 4.3: Materials (.rvmat)&lt;a class="anchor" href="#chapter-43-materials-rvmat"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-models/"&gt;&amp;laquo; Previous: 3D Models&lt;/a&gt;
 | &lt;strong&gt;Materials&lt;/strong&gt; | &lt;a href="../04-audio/"&gt;Next: Audio &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A material in DayZ is the bridge between a 3D model and its visual appearance. While textures provide raw image data, the &lt;strong&gt;RVMAT&lt;/strong&gt; (Real Virtuality Material) file defines how those textures are combined, which shader interprets them, and what surface properties the engine should simulate &amp;ndash; shininess, transparency, self-illumination, and more. Every face on every P3D model in the game references an RVMAT file, and understanding how to create and configure them is essential for any visual mod.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/04-audio/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/04-audio/</guid><description>&lt;h1 id="chapter-44-audio-ogg-wss"&gt;Chapter 4.4: Audio (.ogg, .wss)&lt;a class="anchor" href="#chapter-44-audio-ogg-wss"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-materials/"&gt;&amp;laquo; Previous: Materials&lt;/a&gt;
 | &lt;strong&gt;Audio&lt;/strong&gt; | &lt;a href="../05-dayz-tools/"&gt;Next: DayZ Tools Workflow &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sound design is one of the most immersive aspects of DayZ modding. From the crack of a rifle to the ambient wind in a forest, audio brings the game world to life. DayZ uses &lt;strong&gt;OGG Vorbis&lt;/strong&gt; as its primary audio format and configures sound playback through a layered system of &lt;strong&gt;CfgSoundShaders&lt;/strong&gt; and &lt;strong&gt;CfgSoundSets&lt;/strong&gt; defined in &lt;code&gt;config.cpp&lt;/code&gt;. Understanding this pipeline &amp;ndash; from raw audio file to spatialized in-game sound &amp;ndash; is essential for any mod that introduces custom weapons, vehicles, ambient effects, or UI feedback.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/05-dayz-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/05-dayz-tools/</guid><description>&lt;h1 id="chapter-45-dayz-tools-workflow"&gt;Chapter 4.5: DayZ Tools Workflow&lt;a class="anchor" href="#chapter-45-dayz-tools-workflow"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-audio/"&gt;&amp;laquo; Previous: Audio&lt;/a&gt;
 | &lt;strong&gt;DayZ Tools&lt;/strong&gt; | &lt;a href="../06-pbo-packing/"&gt;Next: PBO Packing &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ Tools is a free suite of development applications distributed through Steam, provided by Bohemia Interactive for modders. It contains everything needed to create, convert, and package game assets: a 3D model editor, texture viewer, terrain editor, script debugger, and the binarization pipeline that transforms human-readable source files into optimized game-ready formats. No DayZ mod can be built without at least some interaction with these tools.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/06-pbo-packing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/06-pbo-packing/</guid><description>&lt;h1 id="chapter-46-pbo-packing"&gt;Chapter 4.6: PBO Packing&lt;a class="anchor" href="#chapter-46-pbo-packing"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-dayz-tools/"&gt;&amp;laquo; Previous: DayZ Tools Workflow&lt;/a&gt;
 | &lt;strong&gt;PBO Packing&lt;/strong&gt; | &lt;a href="../07-workbench-guide/"&gt;Next: Workbench Guide &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;PBO&lt;/strong&gt; (Packed Bank of Objects) is DayZ&amp;rsquo;s archive format &amp;ndash; the equivalent of a &lt;code&gt;.zip&lt;/code&gt; file for game content. Every mod the game loads is delivered as one or more PBO files. When a player subscribes to a mod on Steam Workshop, they download PBOs. When a server loads mods, it reads PBOs. The PBO is the final deliverable of the entire modding pipeline.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/07-workbench-guide/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/07-workbench-guide/</guid><description>&lt;h1 id="chapter-47-workbench-guide"&gt;Chapter 4.7: Workbench Guide&lt;a class="anchor" href="#chapter-47-workbench-guide"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-pbo-packing/"&gt;&amp;laquo; Previous: PBO Packing&lt;/a&gt;
 | &lt;strong&gt;Workbench Guide&lt;/strong&gt; | &lt;a href="../08-building-modeling/"&gt;Next: Building Modeling &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Workbench is Bohemia Interactive&amp;rsquo;s integrated development environment for the Enfusion engine. It ships with DayZ Tools and is the only official tool that understands Enforce Script at a language level. While many modders write code in VS Code or other editors, Workbench remains indispensable for tasks no other tool can perform: attaching a debugger to a running DayZ instance, setting breakpoints, stepping through code, inspecting variables at runtime, previewing &lt;code&gt;.layout&lt;/code&gt; UI files, browsing game resources, and running live script commands through the built-in console.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/04-file-formats/08-building-modeling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/04-file-formats/08-building-modeling/</guid><description>&lt;h1 id="chapter-48-building-modeling--doors--ladders"&gt;Chapter 4.8: Building Modeling &amp;ndash; Doors &amp;amp; Ladders&lt;a class="anchor" href="#chapter-48-building-modeling--doors--ladders"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../07-workbench-guide/"&gt;&amp;laquo; Previous: Workbench Guide&lt;/a&gt;
 | &lt;strong&gt;Building Modeling&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Buildings in DayZ are more than static scenery. Players interact with them constantly &amp;ndash; opening doors, climbing ladders, taking cover behind walls. Creating a custom building that supports these interactions requires careful model setup: doors need rotation axes and named selections across multiple LODs, ladders need precisely placed climbing paths defined entirely through Memory LOD vertices.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/05-config-files/01-stringtable/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/05-config-files/01-stringtable/</guid><description>&lt;h1 id="chapter-51-stringtablecsv--localization"&gt;Chapter 5.1: stringtable.csv &amp;mdash; Localization&lt;a class="anchor" href="#chapter-51-stringtablecsv--localization"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;stringtable.csv&lt;/strong&gt; | &lt;a href="../02-inputs-xml/"&gt;Next: inputs.xml &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The &lt;code&gt;stringtable.csv&lt;/code&gt; file provides localized text for your DayZ mod. The engine reads this CSV at startup and resolves translation keys based on the player&amp;rsquo;s language setting. Every user-facing string &amp;mdash; UI labels, input binding names, item descriptions, notification text &amp;mdash; should live in a stringtable rather than being hardcoded.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#csv-format"&gt;CSV Format&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#column-reference"&gt;Column Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#key-naming-convention"&gt;Key Naming Convention&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#referencing-strings"&gt;Referencing Strings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#creating-a-new-stringtable"&gt;Creating a New Stringtable&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#empty-cell-handling-and-fallback-behavior"&gt;Empty Cell Handling and Fallback Behavior&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#multi-language-workflow"&gt;Multi-Language Workflow&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#modular-stringtable-approach-dayz-expansion"&gt;Modular Stringtable Approach (DayZ Expansion)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-examples"&gt;Real Examples&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ uses a CSV-based localization system. When the engine encounters a string key prefixed with &lt;code&gt;#&lt;/code&gt; (for example, &lt;code&gt;#STR_MYMOD_HELLO&lt;/code&gt;), it looks up that key in all loaded stringtable files and returns the translation matching the player&amp;rsquo;s current language. If no match is found for the active language, the engine falls back through a defined chain.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/05-config-files/02-inputs-xml/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/05-config-files/02-inputs-xml/</guid><description>&lt;h1 id="chapter-52-inputsxml--custom-keybindings"&gt;Chapter 5.2: inputs.xml &amp;mdash; Custom Keybindings&lt;a class="anchor" href="#chapter-52-inputsxml--custom-keybindings"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-stringtable/"&gt;&amp;laquo; Previous: stringtable.csv&lt;/a&gt;
 | &lt;strong&gt;inputs.xml&lt;/strong&gt; | &lt;a href="../03-credits-json/"&gt;Next: Credits.json &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The &lt;code&gt;inputs.xml&lt;/code&gt; file lets your mod register custom keybindings that appear in the player&amp;rsquo;s Controls settings menu. Players can view, rebind, and toggle these inputs just like vanilla actions. This is the standard mechanism for adding hotkeys to DayZ mods.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#file-location"&gt;File Location&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#complete-xml-structure"&gt;Complete XML Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#actions-block"&gt;Actions Block&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#sorting-block"&gt;Sorting Block&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#preset-block-default-keybindings"&gt;Preset Block (Default Keybindings)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#modifier-combos"&gt;Modifier Combos&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hidden-inputs"&gt;Hidden Inputs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#multiple-default-keys"&gt;Multiple Default Keys&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#accessing-inputs-in-script"&gt;Accessing Inputs in Script&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#input-methods-reference"&gt;Input Methods Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#suppressing-and-disabling-inputs"&gt;Suppressing and Disabling Inputs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#key-names-reference"&gt;Key Names Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-examples"&gt;Real Examples&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When your mod needs the player to press a key &amp;mdash; opening a menu, toggling a feature, commanding an AI unit &amp;mdash; you register a custom input action in &lt;code&gt;inputs.xml&lt;/code&gt;. The engine reads this file at startup and integrates your actions into the universal input system. Players see your keybindings in the game&amp;rsquo;s Settings &amp;gt; Controls menu, grouped under a heading you define.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/05-config-files/03-credits-json/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/05-config-files/03-credits-json/</guid><description>&lt;h1 id="chapter-53-creditsjson"&gt;Chapter 5.3: Credits.json&lt;a class="anchor" href="#chapter-53-creditsjson"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-inputs-xml/"&gt;&amp;laquo; Previous: inputs.xml&lt;/a&gt;
 | &lt;strong&gt;Credits.json&lt;/strong&gt; | &lt;a href="../04-imagesets/"&gt;Next: ImageSet Format &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The &lt;code&gt;Credits.json&lt;/code&gt; file defines the credits that DayZ displays for your mod in the game&amp;rsquo;s mod menu. It lists team members, contributors, and acknowledgments organized by departments and sections. While purely cosmetic, it is the standard way to give credit to your development team.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#file-location"&gt;File Location&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#json-structure"&gt;JSON Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#how-dayz-displays-credits"&gt;How DayZ Displays Credits&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#using-localized-section-names"&gt;Using Localized Section Names&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#templates"&gt;Templates&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-examples"&gt;Real Examples&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When a player selects your mod in the DayZ launcher or in-game mod menu, the engine looks for a &lt;code&gt;Credits.json&lt;/code&gt; file inside your mod&amp;rsquo;s PBO. If found, the credits are displayed in a scrolling view organized into departments and sections &amp;mdash; similar to movie credits.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/05-config-files/04-imagesets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/05-config-files/04-imagesets/</guid><description>&lt;h1 id="chapter-54-imageset-format"&gt;Chapter 5.4: ImageSet Format&lt;a class="anchor" href="#chapter-54-imageset-format"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-credits-json/"&gt;&amp;laquo; Previous: Credits.json&lt;/a&gt;
 | &lt;strong&gt;ImageSet Format&lt;/strong&gt; | &lt;a href="../05-server-configs/"&gt;Next: Server Configuration Files &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; ImageSets define named sprite regions within a texture atlas. They are DayZ&amp;rsquo;s primary mechanism for referencing icons, UI graphics, and sprite sheets from layout files and scripts. Instead of loading hundreds of individual image files, you pack all icons into a single texture and describe each icon&amp;rsquo;s position and size in an imageset definition file.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/05-config-files/05-server-configs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/05-config-files/05-server-configs/</guid><description>&lt;h1 id="chapter-55-server-configuration-files"&gt;Chapter 5.5: Server Configuration Files&lt;a class="anchor" href="#chapter-55-server-configuration-files"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-imagesets/"&gt;&amp;laquo; Previous: ImageSet Format&lt;/a&gt;
 | &lt;strong&gt;Server Configuration Files&lt;/strong&gt; | &lt;a href="../06-spawning-gear/"&gt;Next: Spawning Gear Configuration &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; DayZ servers are configured through XML, JSON, and script files in the mission folder (e.g., &lt;code&gt;mpmissions/dayzOffline.chernarusplus/&lt;/code&gt;). These files control item spawns, economy behavior, gameplay rules, and server identity. Understanding them is essential for adding custom items to the loot economy, tuning server parameters, or building a custom mission.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#initc--mission-entry-point"&gt;init.c &amp;mdash; Mission Entry Point&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#typesxml--item-spawn-definitions"&gt;types.xml &amp;mdash; Item Spawn Definitions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgspawnabletypesxml--attachments-and-cargo"&gt;cfgspawnabletypes.xml &amp;mdash; Attachments and Cargo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgrandompresetsxml--reusable-loot-pools"&gt;cfgrandompresets.xml &amp;mdash; Reusable Loot Pools&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#globalsxml--economy-parameters"&gt;globals.xml &amp;mdash; Economy Parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfggameplayjson--gameplay-settings"&gt;cfggameplay.json &amp;mdash; Gameplay Settings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#serverdzcfg--server-settings"&gt;serverDZ.cfg &amp;mdash; Server Settings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#how-mods-interact-with-the-economy"&gt;How Mods Interact with the Economy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every DayZ server loads its configuration from a &lt;strong&gt;mission folder&lt;/strong&gt;. The Central Economy (CE) files define what items spawn, where, and for how long. The server executable itself is configured through &lt;code&gt;serverDZ.cfg&lt;/code&gt;, which lives alongside the executable.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/05-config-files/06-spawning-gear/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/05-config-files/06-spawning-gear/</guid><description>&lt;h1 id="chapter-56-spawning-gear-configuration"&gt;Chapter 5.6: Spawning Gear Configuration&lt;a class="anchor" href="#chapter-56-spawning-gear-configuration"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-server-configs/"&gt;&amp;laquo; Previous: Server Configuration Files&lt;/a&gt;
 | &lt;strong&gt;Spawning Gear Configuration&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; DayZ has two complementary systems that control how players enter the world: &lt;strong&gt;spawn points&lt;/strong&gt; determine &lt;em&gt;where&lt;/em&gt; a character appears on the map, and &lt;strong&gt;spawn gear&lt;/strong&gt; determines &lt;em&gt;what equipment&lt;/em&gt; they carry. This chapter covers both systems in depth, including file structure, field reference, practical presets, and mod integration.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#overview"&gt;Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-two-systems"&gt;The Two Systems&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#spawn-gear-cfgplayerspawngearjson"&gt;Spawn Gear: cfgPlayerSpawnGear.json&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#enabling-spawn-gear-presets"&gt;Enabling Spawn Gear Presets&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#preset-structure"&gt;Preset Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#attachmentslotitemsets"&gt;attachmentSlotItemSets&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#discreteitemsets"&gt;DiscreteItemSets&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#discreteunsorteditemsets"&gt;discreteUnsortedItemSets&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#complexchildrentypes"&gt;ComplexChildrenTypes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#simplechildrentypes"&gt;SimpleChildrenTypes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#attributes"&gt;Attributes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#spawn-points-cfgplayerspawnpointsxml"&gt;Spawn Points: cfgplayerspawnpoints.xml&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#file-structure"&gt;File Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#spawn_params"&gt;spawn_params&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#generator_params"&gt;generator_params&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#spawning-groups"&gt;Spawning Groups&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#map-specific-configs"&gt;Map-Specific Configs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#practical-examples"&gt;Practical Examples&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="#default-survivor-loadout"&gt;Default Survivor Loadout&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#military-spawn-kit"&gt;Military Spawn Kit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#medical-spawn-kit"&gt;Medical Spawn Kit&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#random-gear-selection"&gt;Random Gear Selection&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#integration-with-mods"&gt;Integration with Mods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#best-practices"&gt;Best Practices&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 A[Player connects] --&amp;gt; B{cfgGameplay.json enabled?}
 B --&amp;gt;|Yes| C[Load cfgPlayerSpawnGear.json]
 B --&amp;gt;|No| D[Use StartingEquipSetup in init.c]
 C --&amp;gt; E[Select preset by spawnWeight]
 E --&amp;gt; F[Select characterType]
 F --&amp;gt; G[Apply attachmentSlotItemSets]
 G --&amp;gt; H[Apply discreteItemSets to cargo]
 H --&amp;gt; I[Set item attributes - health, quantity]
 I --&amp;gt; J[Player spawns with gear]
 D --&amp;gt; J&lt;/pre&gt;&lt;p&gt;When a player spawns as a fresh character in DayZ, two questions are answered by the server:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/01-entity-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/01-entity-system/</guid><description>&lt;h1 id="chapter-61-entity-system"&gt;Chapter 6.1: Entity System&lt;a class="anchor" href="#chapter-61-entity-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Entity System&lt;/strong&gt; | &lt;a href="../02-vehicles/"&gt;Next: Vehicles &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Every object in the DayZ world &amp;mdash; items, players, zombies, animals, buildings, vehicles &amp;mdash; descends from a single class hierarchy rooted at &lt;code&gt;IEntity&lt;/code&gt;. This chapter is an API reference for the core entity classes: what methods exist, what their signatures are, and how to use them correctly.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="class-hierarchy"&gt;Class Hierarchy&lt;a class="anchor" href="#class-hierarchy"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Class (root of all Enforce Script classes)
└── Managed
 └── IEntity // 1_Core/proto/enentity.c
 └── Object // 3_Game/entities/object.c
 └── ObjectTyped
 └── Entity
 └── EntityAI // 3_Game/entities/entityai.c
 ├── InventoryItem // 3_Game/entities/inventoryitem.c
 │ └── ItemBase // 4_World/entities/itembase.c
 │ ├── Weapon_Base, Magazine_Base
 │ └── (all inventory items)
 ├── Man // 3_Game/entities/man.c
 │ └── Human // engine native (proto)
 │ └── DayZPlayer
 │ └── DayZPlayerImplement
 │ └── ManBase
 │ └── PlayerBase // 4_World/entities/manbase/playerbase.c
 ├── Building // 3_Game/entities/building.c
 ├── DayZInfected
 │ └── ZombieBase // 4_World/entities/creatures/infected/zombiebase.c
 ├── DayZAnimal
 │ └── AnimalBase // 4_World
 └── AdvancedCommunication&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="complete-entity-hierarchy"&gt;Complete Entity Hierarchy&lt;a class="anchor" href="#complete-entity-hierarchy"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre class="mermaid"&gt;classDiagram
 IEntity &amp;lt;|-- Object
 Object &amp;lt;|-- ObjectTyped
 ObjectTyped &amp;lt;|-- Entity
 Entity &amp;lt;|-- EntityAI
 EntityAI &amp;lt;|-- ItemBase
 EntityAI &amp;lt;|-- Man
 Man &amp;lt;|-- Human
 Human &amp;lt;|-- ManBase
 EntityAI &amp;lt;|-- Building
 EntityAI &amp;lt;|-- DayZInfected
 EntityAI &amp;lt;|-- DayZAnimal
 EntityAI &amp;lt;|-- Transport
 ManBase &amp;lt;|-- PlayerBase
 ItemBase &amp;lt;|-- Weapon_Base
 ItemBase &amp;lt;|-- Magazine_Base
 ItemBase &amp;lt;|-- Clothing_Base
 Transport &amp;lt;|-- CarScript
 Transport &amp;lt;|-- BoatScript
 Weapon_Base &amp;lt;|-- Rifle_Base
 Weapon_Base &amp;lt;|-- Pistol_Base

 class EntityAI {
 +GetHealth()
 +SetHealth()
 +IsAlive()
 +Delete()
 }
 class PlayerBase {
 +GetIdentity()
 +GetBleeding()
 +IsRestrained()
 }&lt;/pre&gt;&lt;p&gt;Key points:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/02-vehicles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/02-vehicles/</guid><description>&lt;h1 id="chapter-62-vehicle-system"&gt;Chapter 6.2: Vehicle System&lt;a class="anchor" href="#chapter-62-vehicle-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-entity-system/"&gt;&amp;laquo; Previous: Entity System&lt;/a&gt;
 | &lt;strong&gt;Vehicles&lt;/strong&gt; | &lt;a href="../03-weather/"&gt;Next: Weather &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ vehicles are entities that extend the transport system. Cars extend &lt;code&gt;CarScript&lt;/code&gt;, boats extend &lt;code&gt;BoatScript&lt;/code&gt;, and both inherit from &lt;code&gt;Transport&lt;/code&gt;. Vehicles have fluid systems, parts with independent health, gear simulation, and physics managed by the engine. This chapter covers the API methods you need to interact with vehicles in scripts.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="class-hierarchy"&gt;Class Hierarchy&lt;a class="anchor" href="#class-hierarchy"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;EntityAI
└── Transport // 3_Game - base for all vehicles
 ├── Car // 3_Game - engine-native car physics
 │ └── CarScript // 4_World - scriptable car base
 │ ├── CivilianSedan
 │ ├── OffroadHatchback
 │ ├── Hatchback_02
 │ ├── Sedan_02
 │ ├── Truck_01_Base
 │ └── ...
 └── Boat // 3_Game - engine-native boat physics
 └── BoatScript // 4_World - scriptable boat base&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="transport-base"&gt;Transport (Base)&lt;a class="anchor" href="#transport-base"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;File:&lt;/strong&gt; &lt;code&gt;3_Game/entities/transport.c&lt;/code&gt;&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/03-weather/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/03-weather/</guid><description>&lt;h1 id="chapter-63-weather-system"&gt;Chapter 6.3: Weather System&lt;a class="anchor" href="#chapter-63-weather-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-vehicles/"&gt;&amp;laquo; Previous: Vehicles&lt;/a&gt;
 | &lt;strong&gt;Weather&lt;/strong&gt; | &lt;a href="../04-cameras/"&gt;Next: Cameras &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ has a fully dynamic weather system controlled through the &lt;code&gt;Weather&lt;/code&gt; class. The system manages overcast, rain, snowfall, fog, wind, and thunderstorms. Weather can be configured through script (the Weather API), through &lt;code&gt;cfgweather.xml&lt;/code&gt; in the mission folder, or through a scripted weather state machine. This chapter covers the script API for reading and controlling weather programmatically.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/04-cameras/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/04-cameras/</guid><description>&lt;h1 id="chapter-64-camera-system"&gt;Chapter 6.4: Camera System&lt;a class="anchor" href="#chapter-64-camera-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-weather/"&gt;&amp;laquo; Previous: Weather&lt;/a&gt;
 | &lt;strong&gt;Cameras&lt;/strong&gt; | &lt;a href="../05-ppe/"&gt;Next: Post-Process Effects &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ uses a multi-layered camera system. The player camera is managed by the engine through &lt;code&gt;DayZPlayerCamera&lt;/code&gt; subclasses. For modding and debugging, the &lt;code&gt;FreeDebugCamera&lt;/code&gt; allows free-flight. The engine also provides global accessors for the current camera state. This chapter covers camera types, how to access camera data, and how to use the scripted camera tools.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="current-camera-state-global-accessors"&gt;Current Camera State (Global Accessors)&lt;a class="anchor" href="#current-camera-state-global-accessors"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;These methods are available anywhere and return the active camera&amp;rsquo;s state regardless of camera type:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/05-ppe/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/05-ppe/</guid><description>&lt;h1 id="chapter-65-post-process-effects-ppe"&gt;Chapter 6.5: Post-Process Effects (PPE)&lt;a class="anchor" href="#chapter-65-post-process-effects-ppe"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-cameras/"&gt;&amp;laquo; Previous: Cameras&lt;/a&gt;
 | &lt;strong&gt;Post-Process Effects&lt;/strong&gt; | &lt;a href="../06-notifications/"&gt;Next: Notifications &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ&amp;rsquo;s Post-Process Effects (PPE) system controls visual effects applied after scene rendering: blur, color grading, vignette, chromatic aberration, night vision, and more. The system is built around &lt;code&gt;PPERequester&lt;/code&gt; classes that can request specific visual effects. Multiple requesters can be active simultaneously, and the engine blends their contributions. This chapter covers how to use the PPE system in mods.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/06-notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/06-notifications/</guid><description>&lt;h1 id="chapter-66-notification-system"&gt;Chapter 6.6: Notification System&lt;a class="anchor" href="#chapter-66-notification-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-ppe/"&gt;&amp;laquo; Previous: Post-Process Effects&lt;/a&gt;
 | &lt;strong&gt;Notifications&lt;/strong&gt; | &lt;a href="../07-timers/"&gt;Next: Timers &amp;amp; CallQueue &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ includes a built-in notification system for displaying toast-style popup messages to players. The &lt;code&gt;NotificationSystem&lt;/code&gt; class provides static methods for sending notifications both locally (client-side) and from server to client via RPC. This chapter covers the full API for sending, customizing, and managing notifications.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="notificationsystem"&gt;NotificationSystem&lt;a class="anchor" href="#notificationsystem"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;File:&lt;/strong&gt; &lt;code&gt;3_Game/client/notifications/notificationsystem.c&lt;/code&gt; (320 lines)&lt;/p&gt;
&lt;p&gt;A static class that manages the notification queue. Notifications appear as small popup cards at the top of the screen, stacked vertically, and fade out after their display time expires.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/07-timers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/07-timers/</guid><description>&lt;h1 id="chapter-67-timers--callqueue"&gt;Chapter 6.7: Timers &amp;amp; CallQueue&lt;a class="anchor" href="#chapter-67-timers--callqueue"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-notifications/"&gt;&amp;laquo; Previous: Notifications&lt;/a&gt;
 | &lt;strong&gt;Timers &amp;amp; CallQueue&lt;/strong&gt; | &lt;a href="../08-file-io/"&gt;Next: File I/O &amp;amp; JSON &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ provides several mechanisms for deferred and repeating function calls: &lt;code&gt;ScriptCallQueue&lt;/code&gt; (the primary system), &lt;code&gt;Timer&lt;/code&gt;, &lt;code&gt;ScriptInvoker&lt;/code&gt;, and &lt;code&gt;WidgetFadeTimer&lt;/code&gt;. These are essential for scheduling delayed logic, creating update loops, and managing timed events without blocking the main thread. This chapter covers each mechanism with full API signatures and usage patterns.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="call-categories"&gt;Call Categories&lt;a class="anchor" href="#call-categories"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All timer and call queue systems require a &lt;strong&gt;call category&lt;/strong&gt; that determines when the deferred call executes within the frame:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/08-file-io/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/08-file-io/</guid><description>&lt;h1 id="chapter-68-file-io--json"&gt;Chapter 6.8: File I/O &amp;amp; JSON&lt;a class="anchor" href="#chapter-68-file-io--json"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../07-timers/"&gt;&amp;laquo; Previous: Timers &amp;amp; CallQueue&lt;/a&gt;
 | &lt;strong&gt;File I/O &amp;amp; JSON&lt;/strong&gt; | &lt;a href="../09-networking/"&gt;Next: Networking &amp;amp; RPC &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ provides file I/O operations for reading and writing text files, JSON serialization/deserialization, directory management, and file enumeration. All file operations use special path prefixes (&lt;code&gt;$profile:&lt;/code&gt;, &lt;code&gt;$saves:&lt;/code&gt;, &lt;code&gt;$mission:&lt;/code&gt;) rather than absolute filesystem paths. This chapter covers every file operation available in Enforce Script.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="path-prefixes"&gt;Path Prefixes&lt;a class="anchor" href="#path-prefixes"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Prefix&lt;/th&gt;
					&lt;th&gt;Location&lt;/th&gt;
					&lt;th&gt;Writable&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;$profile:&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Server/client profile directory (e.g., &lt;code&gt;DayZServer/profiles/&lt;/code&gt;)&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;$saves:&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Save directory&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;$mission:&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Current mission folder (e.g., &lt;code&gt;mpmissions/dayzOffline.chernarusplus/&lt;/code&gt;)&lt;/td&gt;
					&lt;td&gt;Read typically&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;$CurrentDir:&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Current working directory&lt;/td&gt;
					&lt;td&gt;Depends&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;No prefix&lt;/td&gt;
					&lt;td&gt;Relative to game root&lt;/td&gt;
					&lt;td&gt;Read only&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Most file write operations are restricted to &lt;code&gt;$profile:&lt;/code&gt; and &lt;code&gt;$saves:&lt;/code&gt;. Attempting to write elsewhere may silently fail.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/09-networking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/09-networking/</guid><description>&lt;h1 id="chapter-69-networking--rpc"&gt;Chapter 6.9: Networking &amp;amp; RPC&lt;a class="anchor" href="#chapter-69-networking--rpc"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../08-file-io/"&gt;&amp;laquo; Previous: File I/O &amp;amp; JSON&lt;/a&gt;
 | &lt;strong&gt;Networking &amp;amp; RPC&lt;/strong&gt; | &lt;a href="../10-central-economy/"&gt;Next: Central Economy &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;DayZ is a client-server game. All authoritative logic runs on the server, and clients communicate with it through Remote Procedure Calls (RPCs). This chapter covers &lt;code&gt;ScriptRPC&lt;/code&gt;, the serialization context classes, the legacy &lt;code&gt;CGame.RPC()&lt;/code&gt; method, and &lt;code&gt;ScriptInputUserData&lt;/code&gt; for input-verified client-to-server messages.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="client-server-architecture"&gt;Client-Server Architecture&lt;a class="anchor" href="#client-server-architecture"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre class="mermaid"&gt;graph LR
 Client[&amp;#34;Client&amp;lt;br/&amp;gt;GetGame().IsClient()&amp;#34;] -- &amp;#34;RPC →&amp;#34; --&amp;gt; Server[&amp;#34;Server&amp;lt;br/&amp;gt;GetGame().IsServer()&amp;#34;]
 Server -- &amp;#34;← RPC&amp;#34; --&amp;gt; Client&lt;/pre&gt;&lt;h3 id="environment-checks"&gt;Environment Checks&lt;a class="anchor" href="#environment-checks"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e2e4e5;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;proto native &lt;span style="color:#9aedfe"&gt;bool&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;GetGame&lt;/span&gt;().&lt;span style="color:#57c7ff"&gt;IsServer&lt;/span&gt;(); &lt;span style="color:#78787e"&gt;// true on server and listen-server host
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;proto native &lt;span style="color:#9aedfe"&gt;bool&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;GetGame&lt;/span&gt;().&lt;span style="color:#57c7ff"&gt;IsClient&lt;/span&gt;(); &lt;span style="color:#78787e"&gt;// true on client
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;proto native &lt;span style="color:#9aedfe"&gt;bool&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;GetGame&lt;/span&gt;().&lt;span style="color:#57c7ff"&gt;IsMultiplayer&lt;/span&gt;(); &lt;span style="color:#78787e"&gt;// true in multiplayer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;proto native &lt;span style="color:#9aedfe"&gt;bool&lt;/span&gt; &lt;span style="color:#57c7ff"&gt;GetGame&lt;/span&gt;().&lt;span style="color:#57c7ff"&gt;IsDedicatedServer&lt;/span&gt;(); &lt;span style="color:#78787e"&gt;// true only on dedicated server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Typical guard pattern:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/10-central-economy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/10-central-economy/</guid><description>&lt;h1 id="chapter-610-central-economy"&gt;Chapter 6.10: Central Economy&lt;a class="anchor" href="#chapter-610-central-economy"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../09-networking/"&gt;&amp;laquo; Previous: Networking &amp;amp; RPC&lt;/a&gt;
 | &lt;strong&gt;Central Economy&lt;/strong&gt; | &lt;a href="../11-mission-hooks/"&gt;Next: Mission Hooks &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Central Economy (CE) is DayZ&amp;rsquo;s server-side system for managing all spawnable entities in the world: loot, vehicles, infected, animals, and dynamic events. It is configured entirely through XML files in the mission folder. While the CE itself is an engine system (not directly scriptable), understanding its configuration files is essential for any server mod. This chapter covers all CE configuration files, their structure, key parameters, and how they interact.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/11-mission-hooks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/11-mission-hooks/</guid><description>&lt;h1 id="chapter-611-mission-hooks"&gt;Chapter 6.11: Mission Hooks&lt;a class="anchor" href="#chapter-611-mission-hooks"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../10-central-economy/"&gt;&amp;laquo; Previous: Central Economy&lt;/a&gt;
 | &lt;strong&gt;Mission Hooks&lt;/strong&gt; | &lt;a href="../12-action-system/"&gt;Next: Action System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every DayZ mod needs an entry point &amp;mdash; a place where it initializes managers, registers RPC handlers, hooks into player connections, and cleans up on shutdown. That entry point is the &lt;strong&gt;Mission&lt;/strong&gt; class. The engine creates exactly one Mission instance when a scenario loads: &lt;code&gt;MissionServer&lt;/code&gt; on a dedicated server, &lt;code&gt;MissionGameplay&lt;/code&gt; on a client, or both on a listen server. These classes provide lifecycle hooks that fire in a guaranteed order, giving mods a reliable place to inject behavior.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/12-action-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/12-action-system/</guid><description>&lt;h1 id="chapter-612-action-system"&gt;Chapter 6.12: Action System&lt;a class="anchor" href="#chapter-612-action-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../11-mission-hooks/"&gt;&amp;laquo; Previous: Mission Hooks&lt;/a&gt;
 | &lt;strong&gt;Action System&lt;/strong&gt; | &lt;a href="../13-input-system/"&gt;Next: Input System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Action System is how DayZ handles all player interactions with items and the world. Every time a player eats food, opens a door, bandages a wound, repairs a wall, or turns on a flashlight, the engine runs through the action pipeline. Understanding this pipeline &amp;mdash; from condition checks to animation callbacks to server execution &amp;mdash; is fundamental to creating any interactive gameplay mod.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/13-input-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/13-input-system/</guid><description>&lt;h1 id="chapter-613-input-system"&gt;Chapter 6.13: Input System&lt;a class="anchor" href="#chapter-613-input-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../12-action-system/"&gt;&amp;laquo; Previous: Action System&lt;/a&gt;
 | &lt;strong&gt;Input System&lt;/strong&gt; | &lt;a href="../14-player-system/"&gt;Next: Player System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The DayZ input system connects hardware inputs &amp;mdash; keyboard, mouse, and gamepad &amp;mdash; to named actions that scripts can query. It operates in two layers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;inputs.xml&lt;/strong&gt; (config layer) &amp;mdash; declares named actions, assigns default keybindings, and organizes them into groups for the player&amp;rsquo;s Controls settings menu. See &lt;a href="../../05-config-files/02-inputs-xml/"&gt;Chapter 5.2: inputs.xml&lt;/a&gt;
 for full coverage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UAInput API&lt;/strong&gt; (script layer) &amp;mdash; queries input state at runtime. This is what your scripts call every frame to detect presses, releases, holds, and analog values.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/14-player-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/14-player-system/</guid><description>&lt;h1 id="chapter-614-player-system"&gt;Chapter 6.14: Player System&lt;a class="anchor" href="#chapter-614-player-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../13-input-system/"&gt;&amp;laquo; Previous: Input System&lt;/a&gt;
 | &lt;strong&gt;Player System&lt;/strong&gt; | &lt;a href="../15-sound-system/"&gt;Next: Sound System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;PlayerBase&lt;/code&gt; is the single most important class in DayZ modding. Every gameplay system &amp;mdash; health, hunger, bleeding, stamina, inventory, restraints, unconsciousness &amp;mdash; lives on the player entity or one of its manager subsystems. Whether you are writing an admin tool, a survival mechanic, or a PvP mod, you will interact with PlayerBase constantly.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/15-sound-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/15-sound-system/</guid><description>&lt;h1 id="chapter-615-sound-system"&gt;Chapter 6.15: Sound System&lt;a class="anchor" href="#chapter-615-sound-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../14-player-system/"&gt;&amp;laquo; Previous: Player System&lt;/a&gt;
 | &lt;strong&gt;Sound System&lt;/strong&gt; | &lt;a href="../16-crafting-system/"&gt;Next: Crafting System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ provides two main approaches for playing sounds from scripts: a &lt;strong&gt;high-level API&lt;/strong&gt; built around &lt;code&gt;EffectSound&lt;/code&gt; and &lt;code&gt;SEffectManager&lt;/code&gt;, and a &lt;strong&gt;config-driven shortcut&lt;/strong&gt; via &lt;code&gt;PlaySoundSet&lt;/code&gt; / &lt;code&gt;StopSoundSet&lt;/code&gt; on entities. Both ultimately rely on engine-level &lt;code&gt;CfgSoundSets&lt;/code&gt; and &lt;code&gt;CfgSoundShaders&lt;/code&gt; definitions in &lt;code&gt;config.cpp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;All scripted sound playback is &lt;strong&gt;client-side only&lt;/strong&gt;. Dedicated servers have no audio output device &amp;mdash; calling sound methods on a headless server wastes resources and can trigger warnings. Always guard sound calls behind &lt;code&gt;!GetGame().IsDedicatedServer()&lt;/code&gt; or use the built-in guards provided by the API.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/16-crafting-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/16-crafting-system/</guid><description>&lt;h1 id="chapter-616-crafting-system"&gt;Chapter 6.16: Crafting System&lt;a class="anchor" href="#chapter-616-crafting-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../15-sound-system/"&gt;&amp;laquo; Previous: Sound System&lt;/a&gt;
 | &lt;strong&gt;Crafting System&lt;/strong&gt; | &lt;a href="../17-construction-system/"&gt;Next: Construction System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Crafting System is how DayZ handles combining items to produce new items &amp;mdash; sharpening sticks with knives, tying rags into rope, sawing off shotgun barrels, assembling splints. It is a data-driven pipeline that sits on top of the Action System (Chapter 6.12) and uses a central recipe registry to discover, validate, and execute item transformations.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/17-construction-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/17-construction-system/</guid><description>&lt;h1 id="chapter-617-construction-system"&gt;Chapter 6.17: Construction System&lt;a class="anchor" href="#chapter-617-construction-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../16-crafting-system/"&gt;&amp;laquo; Previous: Crafting System&lt;/a&gt;
 | &lt;strong&gt;Construction System&lt;/strong&gt; | &lt;a href="../18-animation-system/"&gt;Next: Animation System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ&amp;rsquo;s base building system allows players to construct fortifications &amp;mdash; fences, watchtowers, and shelters &amp;mdash; by assembling individual parts using tools and materials. Each structure is divided into named construction parts (walls, platforms, roofs, gates) that are built, dismantled, or destroyed independently.&lt;/p&gt;
&lt;p&gt;The system lives primarily in three files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;4_World/entities/itembase/basebuildingbase.c&lt;/code&gt; &amp;mdash; the entity base class&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4_World/classes/basebuilding/construction.c&lt;/code&gt; &amp;mdash; the construction manager&lt;/li&gt;
&lt;li&gt;&lt;code&gt;4_World/classes/basebuilding/constructionpart.c&lt;/code&gt; &amp;mdash; individual part representation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Construction actions are in &lt;code&gt;4_World/classes/useractionscomponent/actions/continuous/&lt;/code&gt; and construction data management is handled by &lt;code&gt;constructionactiondata.c&lt;/code&gt;.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/18-animation-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/18-animation-system/</guid><description>&lt;h1 id="chapter-618-animation-system"&gt;Chapter 6.18: Animation System&lt;a class="anchor" href="#chapter-618-animation-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../17-construction-system/"&gt;&amp;laquo; Previous: Construction System&lt;/a&gt;
 | &lt;strong&gt;Animation System&lt;/strong&gt; | &lt;a href="../19-terrain-queries/"&gt;Next: Terrain &amp;amp; World Queries &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ uses a state-machine-driven animation system built into the Enfusion engine. Player animations are controlled by a hierarchy of &lt;code&gt;HumanCommand&lt;/code&gt; classes &amp;ndash; movement, actions, climbing, swimming, vehicles, falling, death, and unconsciousness each have their own dedicated command. Object animations (doors, lids, deployables) are driven through &lt;code&gt;model.cfg&lt;/code&gt; AnimationSources and controlled from script via &lt;code&gt;SetAnimationPhase()&lt;/code&gt;.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/19-terrain-queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/19-terrain-queries/</guid><description>&lt;h1 id="chapter-619-terrain--world-queries"&gt;Chapter 6.19: Terrain &amp;amp; World Queries&lt;a class="anchor" href="#chapter-619-terrain--world-queries"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../18-animation-system/"&gt;&amp;laquo; Previous: Animation System&lt;/a&gt;
 | &lt;strong&gt;Terrain &amp;amp; World Queries&lt;/strong&gt; | &lt;a href="../20-particle-effects/"&gt;Next: Particle &amp;amp; Effect System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every spatial operation in DayZ &amp;mdash; spawning objects on the ground, checking line of sight, detecting nearby entities, determining surface type for footstep sounds &amp;mdash; depends on querying the world. The engine exposes three categories of spatial API: &lt;strong&gt;terrain queries&lt;/strong&gt; (height, surface type, normals), &lt;strong&gt;object queries&lt;/strong&gt; (finding entities near a position), and &lt;strong&gt;raycasting&lt;/strong&gt; (tracing a line through the world to detect collisions). This chapter documents every available method, its exact signature, and the practical patterns found in vanilla code.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/20-particle-effects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/20-particle-effects/</guid><description>&lt;h1 id="chapter-620-particle--effect-system"&gt;Chapter 6.20: Particle &amp;amp; Effect System&lt;a class="anchor" href="#chapter-620-particle--effect-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../19-terrain-queries/"&gt;&amp;laquo; Previous: Terrain &amp;amp; World Queries&lt;/a&gt;
 | &lt;strong&gt;Particle &amp;amp; Effect System&lt;/strong&gt; | &lt;a href="../21-zombie-ai-system/"&gt;Next: Zombie &amp;amp; AI System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ&amp;rsquo;s particle and visual effects system handles fire, smoke, blood, explosions, weather effects, vehicle exhaust, contaminated area gas, and more. Every visual effect you see in the game world &amp;mdash; from a campfire to a bullet impact crater &amp;mdash; is driven by this system.&lt;/p&gt;
&lt;p&gt;There are &lt;strong&gt;two layers&lt;/strong&gt; for working with particles from script:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/21-zombie-ai-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/21-zombie-ai-system/</guid><description>&lt;h1 id="chapter-621-zombie--ai-system"&gt;Chapter 6.21: Zombie &amp;amp; AI System&lt;a class="anchor" href="#chapter-621-zombie--ai-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../20-particle-effects/"&gt;&amp;laquo; Previous: Particle &amp;amp; Effect System&lt;/a&gt;
 | &lt;strong&gt;Zombie &amp;amp; AI System&lt;/strong&gt; | &lt;a href="../22-admin-server/"&gt;Next: Admin &amp;amp; Server Management &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Zombies (officially called &amp;ldquo;Infected&amp;rdquo;) are the primary hostile AI entity in DayZ. They patrol, detect players through sight, sound, and proximity, transition through behavioral states, attack, vault, crawl, and die &amp;mdash; all driven by a C++ AI engine with script-level hooks for customization. Understanding how the infected system works is essential for any mod that spawns, modifies, or interacts with zombies.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/22-admin-server/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/22-admin-server/</guid><description>&lt;h1 id="chapter-622-admin--server-management"&gt;Chapter 6.22: Admin &amp;amp; Server Management&lt;a class="anchor" href="#chapter-622-admin--server-management"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../21-zombie-ai-system/"&gt;&amp;laquo; Previous: Zombie &amp;amp; AI System&lt;/a&gt;
 | &lt;strong&gt;Admin &amp;amp; Server Management&lt;/strong&gt; | &lt;a href="../23-world-systems/"&gt;Next: World Systems &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Server administration in DayZ covers a broad set of responsibilities: managing connected players, enforcing rules, controlling world state (time, weather), logging events for audit trails, and integrating with persistence systems. Unlike most game engines that provide a built-in admin panel, DayZ offers only low-level scripting APIs. The admin tool ecosystem &amp;mdash; COT, VPP, and custom solutions &amp;mdash; is built entirely on top of these APIs.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/23-world-systems/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/23-world-systems/</guid><description>&lt;h1 id="chapter-623-world-configuration-systems"&gt;Chapter 6.23: World Configuration Systems&lt;a class="anchor" href="#chapter-623-world-configuration-systems"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../22-admin-server/"&gt;&amp;laquo; Previous: Admin &amp;amp; Server Management&lt;/a&gt;
 | &lt;strong&gt;World Systems&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ provides several JSON and XML configuration files that control world-level systems without requiring script modifications. These files live in the &lt;strong&gt;mission folder&lt;/strong&gt; and are loaded at server start, allowing server owners to customize contaminated areas, underground darkness, weather behavior, gameplay rules, and object placement with no code changes and no wipe required.&lt;/p&gt;
&lt;p&gt;This chapter covers five mission-folder configuration systems:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/06-engine-api/quick-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/06-engine-api/quick-reference/</guid><description>&lt;h1 id="engine-api-quick-reference"&gt;Engine API Quick Reference&lt;a class="anchor" href="#engine-api-quick-reference"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Engine API Quick Reference&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;Condensed single-page reference for the most commonly used DayZ engine methods. For detailed explanations and examples, see the full chapters linked in each section header.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#entity-methods"&gt;Entity Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#health--damage"&gt;Health &amp;amp; Damage&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#type-checking"&gt;Type Checking&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#inventory"&gt;Inventory&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#entity-creation--deletion"&gt;Entity Creation &amp;amp; Deletion&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#player-methods"&gt;Player Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vehicle-methods"&gt;Vehicle Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#weather-methods"&gt;Weather Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#file-io-methods"&gt;File I/O Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#timer--callqueue-methods"&gt;Timer &amp;amp; CallQueue Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#widget-creation-methods"&gt;Widget Creation Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#rpc--networking-methods"&gt;RPC / Networking Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#math-constants--methods"&gt;Math Constants &amp;amp; Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vector-methods"&gt;Vector Methods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#global-functions"&gt;Global Functions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#mission-hooks"&gt;Mission Hooks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#action-system"&gt;Action System&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="entity-methods"&gt;Entity Methods&lt;a class="anchor" href="#entity-methods"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Full reference: &lt;a href="../01-entity-system/"&gt;Chapter 6.1: Entity System&lt;/a&gt;
&lt;/em&gt;&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/01-singletons/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/01-singletons/</guid><description>&lt;h1 id="chapter-71-singleton-pattern"&gt;Chapter 7.1: Singleton Pattern&lt;a class="anchor" href="#chapter-71-singleton-pattern"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Singleton Pattern&lt;/strong&gt; | &lt;a href="../02-module-systems/"&gt;Next: Module Systems &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The singleton pattern guarantees that a class has exactly one instance, accessible globally. In DayZ modding it is the most common architectural pattern &amp;mdash; virtually every manager, cache, registry, and subsystem uses it.&lt;/p&gt;
&lt;p&gt;This chapter covers the canonical implementation, lifecycle management, when the pattern is appropriate, and where it goes wrong.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#the-canonical-implementation"&gt;The Canonical Implementation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#lazy-vs-eager-initialization"&gt;Lazy vs Eager Initialization&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#lifecycle-management"&gt;Lifecycle Management&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#when-to-use-singletons"&gt;When to Use Singletons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#real-world-examples"&gt;Real-World Examples&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#thread-safety-considerations"&gt;Thread Safety Considerations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#anti-patterns"&gt;Anti-Patterns&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#alternative-static-only-classes"&gt;Alternative: Static-Only Classes&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#checklist"&gt;Checklist&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="the-canonical-implementation"&gt;The Canonical Implementation&lt;a class="anchor" href="#the-canonical-implementation"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The standard DayZ singleton follows a simple formula: a &lt;code&gt;private static ref&lt;/code&gt; field, a static &lt;code&gt;GetInstance()&lt;/code&gt; accessor, and a static &lt;code&gt;DestroyInstance()&lt;/code&gt; for cleanup.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/02-module-systems/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/02-module-systems/</guid><description>&lt;h1 id="chapter-72-module--plugin-systems"&gt;Chapter 7.2: Module / Plugin Systems&lt;a class="anchor" href="#chapter-72-module--plugin-systems"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-singletons/"&gt;&amp;laquo; Previous: Singleton Pattern&lt;/a&gt;
 | &lt;strong&gt;Module / Plugin Systems&lt;/strong&gt; | &lt;a href="../03-rpc-patterns/"&gt;Next: RPC Patterns &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every serious DayZ mod framework uses a module or plugin system to organize code into self-contained units with defined lifecycle hooks. Rather than scattering initialization logic across modded mission classes, modules register themselves with a central manager that dispatches lifecycle events &amp;mdash; &lt;code&gt;OnInit&lt;/code&gt;, &lt;code&gt;OnMissionStart&lt;/code&gt;, &lt;code&gt;OnUpdate&lt;/code&gt;, &lt;code&gt;OnMissionFinish&lt;/code&gt; &amp;mdash; to each module in a predictable order.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/03-rpc-patterns/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/03-rpc-patterns/</guid><description>&lt;h1 id="chapter-73-rpc-communication-patterns"&gt;Chapter 7.3: RPC Communication Patterns&lt;a class="anchor" href="#chapter-73-rpc-communication-patterns"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-module-systems/"&gt;&amp;laquo; Previous: Module Systems&lt;/a&gt;
 | &lt;strong&gt;RPC Communication Patterns&lt;/strong&gt; | &lt;a href="../04-config-persistence/"&gt;Next: Config Persistence &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Remote Procedure Calls (RPCs) are the only way to send data between client and server in DayZ. Every admin panel, every synced UI, every server-to-client notification, and every client-to-server action request flows through RPCs. Understanding how to build them correctly &amp;mdash; with proper serialization order, permission checks, and error handling &amp;mdash; is essential for any mod that does more than add items to CfgVehicles.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/04-config-persistence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/04-config-persistence/</guid><description>&lt;h1 id="chapter-74-config-persistence"&gt;Chapter 7.4: Config Persistence&lt;a class="anchor" href="#chapter-74-config-persistence"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-rpc-patterns/"&gt;&amp;laquo; Previous: RPC Patterns&lt;/a&gt;
 | &lt;strong&gt;Config Persistence&lt;/strong&gt; | &lt;a href="../05-permissions/"&gt;Next: Permission Systems &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Almost every DayZ mod needs to save and load configuration data: server settings, spawn tables, ban lists, player data, teleport locations. The engine provides &lt;code&gt;JsonFileLoader&lt;/code&gt; for simple JSON serialization and raw file I/O (&lt;code&gt;FileHandle&lt;/code&gt;, &lt;code&gt;FPrintln&lt;/code&gt;) for everything else. Professional mods layer config versioning and auto-migration on top.&lt;/p&gt;
&lt;p&gt;This chapter covers the standard patterns for config persistence, from basic JSON load/save through versioned migration systems, directory management, and auto-save timers.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/05-permissions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/05-permissions/</guid><description>&lt;h1 id="chapter-75-permission-systems"&gt;Chapter 7.5: Permission Systems&lt;a class="anchor" href="#chapter-75-permission-systems"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-config-persistence/"&gt;&amp;laquo; Previous: Config Persistence&lt;/a&gt;
 | &lt;strong&gt;Permission Systems&lt;/strong&gt; | &lt;a href="../06-events/"&gt;Next: Event-Driven Architecture &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Every admin tool, every privileged action, and every moderation feature in DayZ needs a permission system. The question is not whether to check permissions but how to structure them. The DayZ modding community has settled on three major patterns: hierarchical dot-separated permissions, user-group role assignment (VPP), and framework-level role-based access (CF/COT). Each has different trade-offs in granularity, complexity, and server-owner experience.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/06-events/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/06-events/</guid><description>&lt;h1 id="chapter-76-event-driven-architecture"&gt;Chapter 7.6: Event-Driven Architecture&lt;a class="anchor" href="#chapter-76-event-driven-architecture"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-permissions/"&gt;&amp;laquo; Previous: Permission Systems&lt;/a&gt;
 | &lt;strong&gt;Event-Driven Architecture&lt;/strong&gt; | &lt;a href="../07-performance/"&gt;Next: Performance Optimization &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Event-driven architecture decouples the producer of an event from its consumers. When a player connects, the connection handler does not need to know about the killfeed, the admin panel, the mission system, or the logging module &amp;mdash; it fires a &amp;ldquo;player connected&amp;rdquo; event, and each interested system subscribes independently. This is the foundation of extensible mod design: new features subscribe to existing events without modifying the code that fires them.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/07-patterns/07-performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/07-patterns/07-performance/</guid><description>&lt;h1 id="chapter-77-performance-optimization"&gt;Chapter 7.7: Performance Optimization&lt;a class="anchor" href="#chapter-77-performance-optimization"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-events/"&gt;&amp;laquo; Previous: Event-Driven Architecture&lt;/a&gt;
 | &lt;strong&gt;Performance Optimization&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ runs at 10&amp;ndash;60 server FPS depending on player count, entity load, and mod complexity. Every script cycle that takes too long eats into that frame budget. A single poorly-written &lt;code&gt;OnUpdate&lt;/code&gt; that scans every vehicle on the map or rebuilds a UI list from scratch can drop server performance noticeably. Professional mods earn their reputation by running fast &amp;mdash; not by having more features, but by implementing the same features with less waste.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/01-first-mod/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/01-first-mod/</guid><description>&lt;h1 id="chapter-81-your-first-mod-hello-world"&gt;Chapter 8.1: Your First Mod (Hello World)&lt;a class="anchor" href="#chapter-81-your-first-mod-hello-world"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Your First Mod&lt;/strong&gt; | &lt;a href="../02-custom-item/"&gt;Next: Creating a Custom Item &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#prerequisites"&gt;Prerequisites&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-1-install-dayz-tools"&gt;Step 1: Install DayZ Tools&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-2-set-up-the-p-drive-workdrive"&gt;Step 2: Set Up the P: Drive (Workdrive)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-3-create-the-mod-directory-structure"&gt;Step 3: Create the Mod Directory Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-4-write-modcpp"&gt;Step 4: Write mod.cpp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-5-write-configcpp"&gt;Step 5: Write config.cpp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-6-write-your-first-script"&gt;Step 6: Write Your First Script&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-7-pack-the-pbo-with-addon-builder"&gt;Step 7: Pack the PBO with Addon Builder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-8-load-the-mod-in-dayz"&gt;Step 8: Load the Mod in DayZ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-9-verify-in-the-script-log"&gt;Step 9: Verify in the Script Log&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-10-troubleshooting-common-issues"&gt;Step 10: Troubleshooting Common Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#complete-file-reference"&gt;Complete File Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#next-steps"&gt;Next Steps&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="anchor" href="#prerequisites"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Before you begin, make sure you have:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/02-custom-item/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/02-custom-item/</guid><description>&lt;h1 id="chapter-82-creating-a-custom-item"&gt;Chapter 8.2: Creating a Custom Item&lt;a class="anchor" href="#chapter-82-creating-a-custom-item"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-first-mod/"&gt;&amp;laquo; Previous: Your First Mod&lt;/a&gt;
 | &lt;strong&gt;Creating a Custom Item&lt;/strong&gt; | &lt;a href="../03-admin-panel/"&gt;Next: Building an Admin Panel &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial walks you through adding a brand-new item to DayZ. You will define the item in config.cpp, give it textures using hidden selections, add it to the server&amp;rsquo;s spawn table, create a string table for its display name, and test it in-game. By the end, you will have a custom item that players can find, pick up, and carry in their inventory.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/03-admin-panel/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/03-admin-panel/</guid><description>&lt;h1 id="chapter-83-building-an-admin-panel-module"&gt;Chapter 8.3: Building an Admin Panel Module&lt;a class="anchor" href="#chapter-83-building-an-admin-panel-module"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-custom-item/"&gt;&amp;laquo; Previous: Creating a Custom Item&lt;/a&gt;
 | &lt;strong&gt;Building an Admin Panel&lt;/strong&gt; | &lt;a href="../04-chat-commands/"&gt;Next: Adding Chat Commands &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial walks you through building a complete admin panel module from scratch. You will create a UI layout, bind widgets in script, handle button clicks, send an RPC from client to server, process the request on the server, send a response back, and display the result in the UI. This covers the full client-server-client roundtrip that every networked mod needs.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/04-chat-commands/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/04-chat-commands/</guid><description>&lt;h1 id="chapter-84-adding-chat-commands"&gt;Chapter 8.4: Adding Chat Commands&lt;a class="anchor" href="#chapter-84-adding-chat-commands"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-admin-panel/"&gt;&amp;laquo; Previous: Building an Admin Panel&lt;/a&gt;
 | &lt;strong&gt;Adding Chat Commands&lt;/strong&gt; | &lt;a href="../05-mod-template/"&gt;Next: Using the DayZ Mod Template &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial walks you through creating a chat command system for DayZ. You will hook into the chat input, parse command prefixes and arguments, check admin permissions, execute a server-side action, and send feedback to the player. By the end, you will have a working &lt;code&gt;/heal&lt;/code&gt; command that fully heals the admin&amp;rsquo;s character, along with a framework for adding more commands.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/05-mod-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/05-mod-template/</guid><description>&lt;h1 id="chapter-85-using-the-dayz-mod-template"&gt;Chapter 8.5: Using the DayZ Mod Template&lt;a class="anchor" href="#chapter-85-using-the-dayz-mod-template"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-chat-commands/"&gt;&amp;laquo; Previous: Adding Chat Commands&lt;/a&gt;
 | &lt;strong&gt;Using the DayZ Mod Template&lt;/strong&gt; | &lt;a href="../06-debugging-testing/"&gt;Next: Debugging &amp;amp; Testing &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial shows you how to use InclementDab&amp;rsquo;s open-source DayZ Mod Template to bootstrap a new mod project in seconds. Instead of creating every file from scratch, you clone a ready-made skeleton that already has the correct folder structure, config.cpp, mod.cpp, and script layer stubs. You then rename a few things and start writing code immediately.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/06-debugging-testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/06-debugging-testing/</guid><description>&lt;h1 id="chapter-86-debugging--testing-your-mod"&gt;Chapter 8.6: Debugging &amp;amp; Testing Your Mod&lt;a class="anchor" href="#chapter-86-debugging--testing-your-mod"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-mod-template/"&gt;&amp;laquo; Previous: Using the DayZ Mod Template&lt;/a&gt;
 | &lt;strong&gt;Debugging &amp;amp; Testing&lt;/strong&gt; | &lt;a href="../07-publishing-workshop/"&gt;Next: Publishing to the Steam Workshop &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial teaches you how to debug and test DayZ mods effectively. You will learn to read script logs, use Print debugging, work with DayZDiag and file patching for rapid iteration, diagnose common error messages, and establish a reliable testing workflow. No IDE debugger exists for retail builds &amp;ndash; your tools are script logs, Print statements, Workbench, DayZDiag, and file patching.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/07-publishing-workshop/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/07-publishing-workshop/</guid><description>&lt;h1 id="chapter-87-publishing-to-the-steam-workshop"&gt;Chapter 8.7: Publishing to the Steam Workshop&lt;a class="anchor" href="#chapter-87-publishing-to-the-steam-workshop"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-debugging-testing/"&gt;&amp;laquo; Previous: Debugging &amp;amp; Testing&lt;/a&gt;
 | &lt;strong&gt;Publishing to the Steam Workshop&lt;/strong&gt; | &lt;a href="../08-hud-overlay/"&gt;Next: Building a HUD Overlay &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Your mod is built, tested, and ready for the world. This tutorial walks you through the complete publishing process from start to finish: preparing your mod folder, signing PBOs for multiplayer compatibility, creating a Steam Workshop item, uploading via DayZ Tools or command line, and maintaining updates over time. By the end, your mod will be live on the Workshop and playable by anyone.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/08-hud-overlay/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/08-hud-overlay/</guid><description>&lt;h1 id="chapter-88-building-a-hud-overlay"&gt;Chapter 8.8: Building a HUD Overlay&lt;a class="anchor" href="#chapter-88-building-a-hud-overlay"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../07-publishing-workshop/"&gt;&amp;laquo; Previous: Publishing to the Steam Workshop&lt;/a&gt;
 | &lt;strong&gt;Building a HUD Overlay&lt;/strong&gt; | &lt;a href="../09-professional-template/"&gt;Next: Professional Mod Template &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial walks you through building a custom HUD overlay that displays server information in the top-right corner of the screen. You will create a layout file, write a controller class, hook into the mission lifecycle, request data from the server via RPC, add a toggle keybind, and polish the result with fade animations and smart visibility. By the end, you will have a non-intrusive Server Info HUD showing the server name, player count, and current in-game time &amp;ndash; plus a solid understanding of how HUD overlays work in DayZ.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/09-professional-template/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/09-professional-template/</guid><description>&lt;h1 id="chapter-89-professional-mod-template"&gt;Chapter 8.9: Professional Mod Template&lt;a class="anchor" href="#chapter-89-professional-mod-template"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../08-hud-overlay/"&gt;&amp;laquo; Previous: Building a HUD Overlay&lt;/a&gt;
 | &lt;strong&gt;Professional Mod Template&lt;/strong&gt; | &lt;a href="../10-vehicle-mod/"&gt;Next: Creating a Custom Vehicle &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This chapter provides a complete, production-ready mod template with every file you need for a professional DayZ mod. Unlike &lt;a href="../05-mod-template/"&gt;Chapter 8.5&lt;/a&gt;
 which introduces InclementDab&amp;rsquo;s starter skeleton, this is a full-featured template with a config system, singleton manager, client-server RPC, UI panel, keybinds, localization, and build automation. Every file is copy-paste ready and heavily commented to explain &lt;strong&gt;why&lt;/strong&gt; each line exists.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/10-vehicle-mod/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/10-vehicle-mod/</guid><description>&lt;h1 id="chapter-810-creating-a-custom-vehicle-mod"&gt;Chapter 8.10: Creating a Custom Vehicle Mod&lt;a class="anchor" href="#chapter-810-creating-a-custom-vehicle-mod"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../09-professional-template/"&gt;&amp;laquo; Previous: Professional Mod Template&lt;/a&gt;
 | &lt;strong&gt;Creating a Custom Vehicle&lt;/strong&gt; | &lt;a href="../11-clothing-mod/"&gt;Next: Creating Custom Clothing &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial walks you through creating a custom vehicle variant in DayZ by extending an existing vanilla vehicle. You will define the vehicle in config.cpp, customize its stats and textures, write script behavior for doors and engine, add it to the server spawn table with pre-attached parts, and test it in-game. By the end, you will have a fully drivable custom Offroad Hatchback variant with modified performance and appearance.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/11-clothing-mod/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/11-clothing-mod/</guid><description>&lt;h1 id="chapter-811-creating-custom-clothing"&gt;Chapter 8.11: Creating Custom Clothing&lt;a class="anchor" href="#chapter-811-creating-custom-clothing"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../10-vehicle-mod/"&gt;&amp;laquo; Previous: Creating a Custom Vehicle&lt;/a&gt;
 | &lt;strong&gt;Creating Custom Clothing&lt;/strong&gt; | &lt;a href="../12-trading-system/"&gt;Next: Building a Trading System &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; This tutorial walks you through creating a custom tactical jacket for DayZ. You will choose a base class, define the clothing in config.cpp with insulation and cargo properties, retexture it with a camo pattern using hidden selections, add localization and spawning, and optionally extend it with scripted behavior. By the end, you will have a wearable jacket that keeps players warm, holds items, and spawns in the world.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/12-trading-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/12-trading-system/</guid><description>&lt;h1 id="chapter-812-building-a-trading-system"&gt;Chapter 8.12: Building a Trading System&lt;a class="anchor" href="#chapter-812-building-a-trading-system"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../11-clothing-mod/"&gt;&amp;laquo; Previous: Creating Custom Clothing&lt;/a&gt;
 | &lt;strong&gt;Building a Trading System&lt;/strong&gt; | &lt;a href="../13-diag-menu/"&gt;Next: The Diagnostic Menu &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Build a complete NPC-less shop system: JSON config, server-validated buy/sell, categorized UI, currency-based transactions. The most complex tutorial in this wiki &amp;ndash; covers data modeling, RPC roundtrips, inventory manipulation, and anti-cheat principles.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#what-we-are-building"&gt;What We Are Building&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-1-data-model-3_game"&gt;Step 1: Data Model (3_Game)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-2-rpc-constants-3_game"&gt;Step 2: RPC Constants (3_Game)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-3-server-side-shop-manager-4_world"&gt;Step 3: Server-Side Shop Manager (4_World)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-4-client-side-shop-ui-5_mission"&gt;Step 4: Client-Side Shop UI (5_Mission)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-5-layout-file"&gt;Step 5: Layout File&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-6-mission-hook-and-keybind"&gt;Step 6: Mission Hook and Keybind&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-7-currency-item"&gt;Step 7: Currency Item&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-8-shop-config-json"&gt;Step 8: Shop Config JSON&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#step-9-build-and-test"&gt;Step 9: Build and Test&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#security-considerations"&gt;Security Considerations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#complete-code-reference"&gt;Complete Code Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#best-practices"&gt;Best Practices / Common Mistakes / What You Learned&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-we-are-building"&gt;What We Are Building&lt;a class="anchor" href="#what-we-are-building"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Players press F6 to open a shop menu, browse items by category (Weapons, Food, Medical), and buy/sell using a currency item. The server validates every transaction &amp;ndash; the client never decides prices or spawns items.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/08-tutorials/13-diag-menu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/08-tutorials/13-diag-menu/</guid><description>&lt;h1 id="chapter-813-the-diagnostic-menu-diag-menu"&gt;Chapter 8.13: The Diagnostic Menu (Diag Menu)&lt;a class="anchor" href="#chapter-813-the-diagnostic-menu-diag-menu"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../12-trading-system/"&gt;&amp;laquo; Previous: Building a Trading System&lt;/a&gt;
 | &lt;strong&gt;The Diagnostic Menu&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The Diag Menu is DayZ&amp;rsquo;s built-in diagnostic tool, available only through the DayZDiag executable. It provides FPS counters, script profiling, render debugging, free camera, physics visualization, weather control, Central Economy tools, AI navigation debugging, and sound diagnostics. This chapter documents every menu category, option, and keyboard shortcut based on the official Bohemia Interactive documentation.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/01-server-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/01-server-setup/</guid><description>&lt;h1 id="chapter-91-server-setup--first-launch"&gt;Chapter 9.1: Server Setup &amp;amp; First Launch&lt;a class="anchor" href="#chapter-91-server-setup--first-launch"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Server Setup&lt;/strong&gt; | &lt;a href="../02-directory-structure/"&gt;Next: Directory Structure &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Install a DayZ Standalone dedicated server from scratch using SteamCMD, launch it with a minimal configuration, verify it appears in the server browser, and connect as a player. This chapter covers everything from hardware requirements to fixing the most common first-launch failures.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#prerequisites"&gt;Prerequisites&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#installing-steamcmd"&gt;Installing SteamCMD&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#installing-dayz-server"&gt;Installing DayZ Server&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#directory-after-install"&gt;Directory After Install&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#first-launch-with-minimal-config"&gt;First Launch with Minimal Config&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#verifying-the-server-is-running"&gt;Verifying the Server is Running&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#connecting-as-a-player"&gt;Connecting as a Player&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-first-launch-problems"&gt;Common First-Launch Problems&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="anchor" href="#prerequisites"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="hardware"&gt;Hardware&lt;a class="anchor" href="#hardware"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Minimum&lt;/th&gt;
					&lt;th&gt;Recommended&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU&lt;/td&gt;
					&lt;td&gt;4 cores, 2.4 GHz&lt;/td&gt;
					&lt;td&gt;6+ cores, 3.5 GHz&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RAM&lt;/td&gt;
					&lt;td&gt;8 GB&lt;/td&gt;
					&lt;td&gt;16 GB&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Disk&lt;/td&gt;
					&lt;td&gt;20 GB SSD&lt;/td&gt;
					&lt;td&gt;40 GB NVMe SSD&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Network&lt;/td&gt;
					&lt;td&gt;10 Mbps upload&lt;/td&gt;
					&lt;td&gt;50+ Mbps upload&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OS&lt;/td&gt;
					&lt;td&gt;Windows Server 2016 / Ubuntu 20.04&lt;/td&gt;
					&lt;td&gt;Windows Server 2022 / Ubuntu 22.04&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;DayZ Server is single-threaded for gameplay logic. Clock speed matters more than core count.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/02-directory-structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/02-directory-structure/</guid><description>&lt;h1 id="chapter-92-directory-structure--mission-folder"&gt;Chapter 9.2: Directory Structure &amp;amp; Mission Folder&lt;a class="anchor" href="#chapter-92-directory-structure--mission-folder"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../01-server-setup/"&gt;&amp;laquo; Previous: Server Setup&lt;/a&gt;
 | &lt;strong&gt;Directory Structure&lt;/strong&gt; | &lt;a href="../03-server-cfg/"&gt;Next: serverDZ.cfg Reference &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; A complete walkthrough of every file and folder in the DayZ server directory and the mission folder. Knowing what each file does &amp;ndash; and which ones are safe to edit &amp;ndash; is essential before touching the loot economy or adding mods.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#top-level-server-directory"&gt;Top-Level Server Directory&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-addons-folder"&gt;The addons/ Folder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-keys-folder"&gt;The keys/ Folder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-profiles-folder"&gt;The profiles/ Folder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-mpmissions-folder"&gt;The mpmissions/ Folder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#mission-folder-structure"&gt;Mission Folder Structure&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-db-folder----economy-core"&gt;The db/ Folder &amp;ndash; Economy Core&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-env-folder----animal-territories"&gt;The env/ Folder &amp;ndash; Animal Territories&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-storage_1-folder----persistence"&gt;The storage_1/ Folder &amp;ndash; Persistence&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#top-level-mission-files"&gt;Top-Level Mission Files&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#which-files-to-edit-vs-leave-alone"&gt;Which Files to Edit vs Leave Alone&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="top-level-server-directory"&gt;Top-Level Server Directory&lt;a class="anchor" href="#top-level-server-directory"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;DayZServer/
 DayZServer_x64.exe # Server executable
 serverDZ.cfg # Main server config (name, password, mods, time)
 dayzsetting.xml # Rendering settings (irrelevant for dedicated servers)
 ban.txt # Banned Steam64 IDs, one per line
 whitelist.txt # Whitelisted Steam64 IDs, one per line
 steam_appid.txt # Contains &amp;#34;221100&amp;#34; -- do not edit
 dayz.gproj # Workbench project file -- do not edit
 addons/ # Vanilla game PBOs
 battleye/ # Anti-cheat files
 config/ # Steam config (config.vdf)
 dta/ # Core engine PBOs (scripts, GUI, graphics)
 keys/ # Signature verification keys (.bikey files)
 logs/ # Engine-level logs
 mpmissions/ # All mission folders
 profiles/ # Runtime output (script logs, player DB, crash dumps)
 server_manager/ # Server management utilities&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="the-addons-folder"&gt;The addons/ Folder&lt;a class="anchor" href="#the-addons-folder"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Contains all vanilla game content packed as PBO files. Each PBO has a matching &lt;code&gt;.bisign&lt;/code&gt; signature file:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/03-server-cfg/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/03-server-cfg/</guid><description>&lt;h1 id="chapter-93-serverdzcfg-complete-reference"&gt;Chapter 9.3: serverDZ.cfg Complete Reference&lt;a class="anchor" href="#chapter-93-serverdzcfg-complete-reference"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../02-directory-structure/"&gt;&amp;laquo; Previous: Directory Structure&lt;/a&gt;
 | &lt;strong&gt;serverDZ.cfg Reference&lt;/strong&gt; | &lt;a href="../04-loot-economy/"&gt;Next: Loot Economy Deep Dive &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Every parameter in &lt;code&gt;serverDZ.cfg&lt;/code&gt; documented with its purpose, valid values, and default behavior. This file controls server identity, network settings, gameplay rules, time acceleration, and mission selection.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#file-format"&gt;File Format&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#server-identity"&gt;Server Identity&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#network--security"&gt;Network &amp;amp; Security&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#gameplay-rules"&gt;Gameplay Rules&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#time--weather"&gt;Time &amp;amp; Weather&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#performance--login-queue"&gt;Performance &amp;amp; Login Queue&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#persistence--instance"&gt;Persistence &amp;amp; Instance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#mission-selection"&gt;Mission Selection&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#complete-example-file"&gt;Complete Example File&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#launch-parameters-that-override-config"&gt;Launch Parameters That Override Config&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="file-format"&gt;File Format&lt;a class="anchor" href="#file-format"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;serverDZ.cfg&lt;/code&gt; uses Bohemia&amp;rsquo;s config format (similar to C). Rules:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/04-loot-economy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/04-loot-economy/</guid><description>&lt;h1 id="chapter-94-loot-economy-deep-dive"&gt;Chapter 9.4: Loot Economy Deep Dive&lt;a class="anchor" href="#chapter-94-loot-economy-deep-dive"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../03-server-cfg/"&gt;&amp;laquo; Previous: serverDZ.cfg Reference&lt;/a&gt;
 | &lt;strong&gt;Loot Economy Deep Dive&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; The Central Economy (CE) is the system that controls every item spawn in DayZ &amp;ndash; from a can of beans on a shelf to an AKM in a military barracks. This chapter explains the full spawn cycle, documents every field in &lt;code&gt;types.xml&lt;/code&gt;, &lt;code&gt;globals.xml&lt;/code&gt;, &lt;code&gt;events.xml&lt;/code&gt;, and &lt;code&gt;cfgspawnabletypes.xml&lt;/code&gt; with real examples from the vanilla server files, and covers the most common economy mistakes.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/05-vehicle-spawning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/05-vehicle-spawning/</guid><description>&lt;h1 id="chapter-95-vehicle--dynamic-event-spawning"&gt;Chapter 9.5: Vehicle &amp;amp; Dynamic Event Spawning&lt;a class="anchor" href="#chapter-95-vehicle--dynamic-event-spawning"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../04-loot-economy/"&gt;&amp;laquo; Previous: Loot Economy&lt;/a&gt;
 | &lt;a href="../06-player-spawning/"&gt;Next: Player Spawning &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Vehicles and dynamic events (heli crashes, convoys, police cars) do NOT use &lt;code&gt;types.xml&lt;/code&gt;. They use a separate three-file system: &lt;code&gt;events.xml&lt;/code&gt; defines what spawns and how many, &lt;code&gt;cfgeventspawns.xml&lt;/code&gt; defines where, and &lt;code&gt;cfgeventgroups.xml&lt;/code&gt; defines grouped formations. This chapter covers all three files with real vanilla values.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#how-vehicle-spawning-works"&gt;How Vehicle Spawning Works&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#eventsxml-vehicle-entries"&gt;events.xml Vehicle Entries&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vehicle-event-field-reference"&gt;Vehicle Event Field Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgeventspawnsxml----spawn-positions"&gt;cfgeventspawns.xml &amp;ndash; Spawn Positions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#heli-crash-events"&gt;Heli Crash Events&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#military-convoy"&gt;Military Convoy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#police-car"&gt;Police Car&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgeventgroupsxml----grouped-spawns"&gt;cfgeventgroups.xml &amp;ndash; Grouped Spawns&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgeconomycorexml-vehicle-root-class"&gt;cfgeconomycore.xml Vehicle Root Class&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-vehicle-spawning-works"&gt;How Vehicle Spawning Works&lt;a class="anchor" href="#how-vehicle-spawning-works"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Vehicles are &lt;strong&gt;not&lt;/strong&gt; defined in &lt;code&gt;types.xml&lt;/code&gt;. If you add a vehicle class to &lt;code&gt;types.xml&lt;/code&gt;, it will not spawn. Vehicles use a dedicated three-file pipeline:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/06-player-spawning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/06-player-spawning/</guid><description>&lt;h1 id="chapter-96-player-spawning"&gt;Chapter 9.6: Player Spawning&lt;a class="anchor" href="#chapter-96-player-spawning"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../05-vehicle-spawning/"&gt;&amp;laquo; Previous: Vehicle Spawning&lt;/a&gt;
 | &lt;a href="../07-persistence/"&gt;Next: Persistence &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Player spawn locations are controlled by &lt;strong&gt;cfgplayerspawnpoints.xml&lt;/strong&gt; (position bubbles) and &lt;strong&gt;init.c&lt;/strong&gt; (starting gear). This chapter covers both files with real vanilla values from Chernarus.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#cfgplayerspawnpointsxml-overview"&gt;cfgplayerspawnpoints.xml Overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#spawn-parameters"&gt;Spawn Parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#generator-parameters"&gt;Generator Parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#group-parameters"&gt;Group Parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#fresh-spawn-bubbles"&gt;Fresh Spawn Bubbles&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hop-spawns"&gt;Hop Spawns&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#initc----starting-equipment"&gt;init.c &amp;ndash; Starting Equipment&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#adding-custom-spawn-points"&gt;Adding Custom Spawn Points&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="cfgplayerspawnpointsxml-overview"&gt;cfgplayerspawnpoints.xml Overview&lt;a class="anchor" href="#cfgplayerspawnpointsxml-overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This file lives in your mission folder (e.g., &lt;code&gt;dayzOffline.chernarusplus/cfgplayerspawnpoints.xml&lt;/code&gt;). It has two sections, each with its own parameters and position bubbles:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/07-persistence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/07-persistence/</guid><description>&lt;h1 id="chapter-97-world-state--persistence"&gt;Chapter 9.7: World State &amp;amp; Persistence&lt;a class="anchor" href="#chapter-97-world-state--persistence"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../06-player-spawning/"&gt;&amp;laquo; Previous: Player Spawning&lt;/a&gt;
 | &lt;a href="../08-performance/"&gt;Next: Performance Tuning &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;DayZ persistence keeps the world alive between restarts. Understanding how it works lets you manage bases, plan wipes, and avoid data corruption.&lt;/p&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#how-persistence-works"&gt;How Persistence Works&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-storage_1-directory"&gt;The storage_1/ Directory&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#globalsxml-persistence-parameters"&gt;globals.xml Persistence Parameters&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#territory-flag-system"&gt;Territory Flag System&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hoarder-items"&gt;Hoarder Items&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfggameplayjson-persistence-settings"&gt;cfggameplay.json Persistence Settings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#server-wipe-procedures"&gt;Server Wipe Procedures&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#backup-strategy"&gt;Backup Strategy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-persistence-works"&gt;How Persistence Works&lt;a class="anchor" href="#how-persistence-works"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ stores world state in the &lt;code&gt;storage_1/&lt;/code&gt; directory inside your server profile folder. The cycle is straightforward:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/08-performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/08-performance/</guid><description>&lt;h1 id="chapter-98-performance-tuning"&gt;Chapter 9.8: Performance Tuning&lt;a class="anchor" href="#chapter-98-performance-tuning"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../07-persistence/"&gt;&amp;laquo; Previous: Persistence&lt;/a&gt;
 | &lt;a href="../09-access-control/"&gt;Next: Access Control &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Server performance in DayZ comes down to three things: item count, dynamic events, and mod/player load. This chapter covers the specific settings that matter, how to diagnose problems, and what hardware actually helps &amp;ndash; all based on real community data from 400+ Discord reports of FPS drops, lag, and desync.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#what-affects-server-performance"&gt;What Affects Server Performance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#globalsxml-tuning"&gt;globals.xml Tuning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#economy-tuning-for-performance"&gt;Economy Tuning for Performance&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgeconomycorexml-logging"&gt;cfgeconomycore.xml Logging&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#serverdzycfg-performance-settings"&gt;serverDZ.cfg Performance Settings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#mod-performance-impact"&gt;Mod Performance Impact&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hardware-recommendations"&gt;Hardware Recommendations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#monitoring-server-health"&gt;Monitoring Server Health&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-performance-mistakes"&gt;Common Performance Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-affects-server-performance"&gt;What Affects Server Performance&lt;a class="anchor" href="#what-affects-server-performance"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;From community data (400+ Discord mentions of FPS/performance/lag/desync), the three biggest performance factors are:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/09-access-control/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/09-access-control/</guid><description>&lt;h1 id="chapter-99-access-control"&gt;Chapter 9.9: Access Control&lt;a class="anchor" href="#chapter-99-access-control"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../08-performance/"&gt;&amp;laquo; Previous: Performance Tuning&lt;/a&gt;
 | &lt;a href="../10-mod-management/"&gt;Next: Mod Management &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Configure who can connect to your DayZ server, how bans work, how to enable remote administration, and how mod signature verification keeps unauthorized content out. This chapter covers every access control mechanism available to a server operator.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#admin-access-via-serverdzcfg"&gt;Admin Access via serverDZ.cfg&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#bantxt"&gt;ban.txt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#whitelisttxt"&gt;whitelist.txt&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#battleye-anti-cheat"&gt;BattlEye Anti-Cheat&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#rcon-remote-console"&gt;RCON (Remote Console)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#signature-verification"&gt;Signature Verification&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#the-keys-directory"&gt;The keys/ Directory&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#in-game-admin-tools"&gt;In-Game Admin Tools&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="admin-access-via-serverdzcfg"&gt;Admin Access via serverDZ.cfg&lt;a class="anchor" href="#admin-access-via-serverdzcfg"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;passwordAdmin&lt;/code&gt; parameter in &lt;strong&gt;serverDZ.cfg&lt;/strong&gt; sets the admin password for your server:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/10-mod-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/10-mod-management/</guid><description>&lt;h1 id="chapter-910-mod-management"&gt;Chapter 9.10: Mod Management&lt;a class="anchor" href="#chapter-910-mod-management"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../09-access-control/"&gt;&amp;laquo; Previous: Access Control&lt;/a&gt;
 | &lt;a href="../11-troubleshooting/"&gt;Next: Troubleshooting &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Install, configure, and maintain third-party mods on a DayZ dedicated server. Covers launch parameters, Workshop downloads, signature keys, load order, server-only vs client-required mods, updates, and the most common mistakes that cause crashes or player kicks.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#how-mods-load"&gt;How Mods Load&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#launch-parameter-format"&gt;Launch Parameter Format&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#workshop-mod-installation"&gt;Workshop Mod Installation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#mod-keys-bikey"&gt;Mod Keys (.bikey)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#load-order-and-dependencies"&gt;Load Order and Dependencies&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#server-only-vs-client-required-mods"&gt;Server-Only vs Client-Required Mods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#updating-mods"&gt;Updating Mods&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#troubleshooting-mod-conflicts"&gt;Troubleshooting Mod Conflicts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#common-mistakes"&gt;Common Mistakes&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="how-mods-load"&gt;How Mods Load&lt;a class="anchor" href="#how-mods-load"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DayZ loads mods through the &lt;code&gt;-mod=&lt;/code&gt; launch parameter. Each entry is a path to a folder containing PBO files and a &lt;code&gt;config.cpp&lt;/code&gt;. The engine reads every PBO in each mod folder, registers its classes and scripts, then continues to the next mod in the list.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/11-troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/11-troubleshooting/</guid><description>&lt;h1 id="chapter-911-server-troubleshooting"&gt;Chapter 9.11: Server Troubleshooting&lt;a class="anchor" href="#chapter-911-server-troubleshooting"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../10-mod-management/"&gt;&amp;laquo; Previous: Mod Management&lt;/a&gt;
 | &lt;a href="../12-advanced/"&gt;Next: Advanced Topics &amp;raquo;&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Diagnose and fix the most common DayZ server problems &amp;ndash; startup failures, connection issues, crashes, loot and vehicle spawning, persistence, and performance. Every solution here comes from real failure patterns across thousands of community reports.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#server-wont-start"&gt;Server Won&amp;rsquo;t Start&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#players-cant-connect"&gt;Players Can&amp;rsquo;t Connect&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#crashes-and-null-pointers"&gt;Crashes and Null Pointers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#loot-not-spawning"&gt;Loot Not Spawning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vehicles-not-spawning"&gt;Vehicles Not Spawning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#persistence-issues"&gt;Persistence Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#performance-problems"&gt;Performance Problems&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#reading-log-files"&gt;Reading Log Files&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#quick-diagnostic-checklist"&gt;Quick Diagnostic Checklist&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="server-wont-start"&gt;Server Won&amp;rsquo;t Start&lt;a class="anchor" href="#server-wont-start"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="missing-dll-files"&gt;Missing DLL Files&lt;a class="anchor" href="#missing-dll-files"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;If &lt;code&gt;DayZServer_x64.exe&lt;/code&gt; crashes immediately with a missing DLL error, install the latest &lt;strong&gt;Visual C++ Redistributable for Visual Studio 2019&lt;/strong&gt; (x64) from Microsoft&amp;rsquo;s official site and restart.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/09-server-admin/12-advanced/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/09-server-admin/12-advanced/</guid><description>&lt;h1 id="chapter-912-advanced-server-topics"&gt;Chapter 9.12: Advanced Server Topics&lt;a class="anchor" href="#chapter-912-advanced-server-topics"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../../README/"&gt;Home&lt;/a&gt;
 | &lt;a href="../11-troubleshooting/"&gt;&amp;laquo; Previous: Troubleshooting&lt;/a&gt;
 | &lt;a href="../01-server-setup/"&gt;Part 9 Home&lt;/a&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; Deep configuration files, multi-map setups, economy splitting, animal territories, dynamic events, weather control, automated restarts, and the messages system.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#cfggameplayjson-deep-dive"&gt;cfggameplay.json Deep Dive&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#multi-map-servers"&gt;Multi-Map Servers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#custom-economy-tuning"&gt;Custom Economy Tuning&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgenvironmentxml-and-animal-territories"&gt;cfgenvironment.xml and Animal Territories&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#custom-dynamic-events"&gt;Custom Dynamic Events&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#server-restart-automation"&gt;Server Restart Automation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cfgweatherxml"&gt;cfgweather.xml&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#messages-system"&gt;Messages System&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="cfggameplayjson-deep-dive"&gt;cfggameplay.json Deep Dive&lt;a class="anchor" href="#cfggameplayjson-deep-dive"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The file &lt;strong&gt;cfggameplay.json&lt;/strong&gt; lives in your mission folder and overrides hardcoded gameplay defaults. Enable it in &lt;strong&gt;serverDZ.cfg&lt;/strong&gt; first:&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/cheatsheet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/cheatsheet/</guid><description>&lt;h1 id="enforce-script-cheat-sheet"&gt;Enforce Script Cheat Sheet&lt;a class="anchor" href="#enforce-script-cheat-sheet"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Cheat Sheet&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;Single-page quick reference for DayZ Enforce Script. Bookmark this.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="types"&gt;Types&lt;a class="anchor" href="#types"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Type&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
					&lt;th&gt;Default&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;32-bit signed integer&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;int x = 42;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;float&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;32-bit float&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0.0&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;float f = 3.14;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;bool&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Boolean&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;bool b = true;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Immutable value type&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;string s = &amp;quot;hello&amp;quot;;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;vector&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;3-component float (x,y,z)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;&amp;quot;0 0 0&amp;quot;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;vector v = &amp;quot;1 2 3&amp;quot;;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;typename&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Type reference&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;typename t = PlayerBase;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;Class&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Root of all reference types&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;null&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;void&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;No return&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Limits:&lt;/strong&gt; &lt;code&gt;int.MAX&lt;/code&gt; = 2147483647, &lt;code&gt;int.MIN&lt;/code&gt; = -2147483648, &lt;code&gt;float.MAX&lt;/code&gt;, &lt;code&gt;float.MIN&lt;/code&gt;&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/faq/</guid><description>&lt;h1 id="frequently-asked-questions"&gt;Frequently Asked Questions&lt;a class="anchor" href="#frequently-asked-questions"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;FAQ&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="getting-started"&gt;Getting Started&lt;a class="anchor" href="#getting-started"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="q-what-do-i-need-to-start-modding-dayz"&gt;Q: What do I need to start modding DayZ?&lt;a class="anchor" href="#q-what-do-i-need-to-start-modding-dayz"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; You need Steam, DayZ (retail copy), DayZ Tools (free on Steam under Tools), and a text editor (VS Code recommended). No programming experience is strictly required — start with &lt;a href="../08-tutorials/01-first-mod/"&gt;Chapter 8.1: Your First Mod&lt;/a&gt;
. DayZ Tools includes Object Builder, Addon Builder, TexView2, and the Workbench IDE.&lt;/p&gt;
&lt;h3 id="q-what-programming-language-does-dayz-use"&gt;Q: What programming language does DayZ use?&lt;a class="anchor" href="#q-what-programming-language-does-dayz-use"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; DayZ uses &lt;strong&gt;Enforce Script&lt;/strong&gt;, a proprietary language by Bohemia Interactive. It has C-like syntax similar to C#, but with its own rules and limitations (no ternary operator, no try/catch, no lambdas). See &lt;a href="../01-enforce-script/01-variables-types/"&gt;Part 1: Enforce Script&lt;/a&gt;
 for a complete language guide.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/glossary/</guid><description>&lt;h1 id="dayz-modding-glossary--page-index"&gt;DayZ Modding Glossary &amp;amp; Page Index&lt;a class="anchor" href="#dayz-modding-glossary--page-index"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Glossary &amp;amp; Index&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;This glossary defines every key term in DayZ modding and links to the chapter where it is explained in depth. Use Ctrl+F to search.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="how-to-use"&gt;How to Use&lt;a class="anchor" href="#how-to-use"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bold terms&lt;/strong&gt; are defined inline&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;[Chapter links]&lt;/strong&gt; point to the full documentation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;See also&lt;/strong&gt; connects related concepts&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="a"&gt;A&lt;a class="anchor" href="#a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="action-system"&gt;Action System&lt;a class="anchor" href="#action-system"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The system that handles player interactions with items and the world &amp;ndash; eating, opening doors, repairing, etc. Actions are registered on items via &lt;code&gt;SetActions()&lt;/code&gt; and extend &lt;code&gt;ActionBase&lt;/code&gt;.&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/README/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/README/</guid><description>&lt;h1 id="dayz-modding-complete-guide--english"&gt;DayZ Modding Complete Guide &amp;ndash; English&lt;a class="anchor" href="#dayz-modding-complete-guide--english"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;The most comprehensive DayZ modding and server administration documentation available. From zero to published mod, from first server to advanced economy tuning.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is the English version. For other languages, see the &lt;a href="../"&gt;home page&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href="../README/"&gt;&lt;img src="https://flagsapi.com/US/flat/48.png" alt="English" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/pt" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/BR/flat/48.png" alt="Portugues" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/de" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/DE/flat/48.png" alt="Deutsch" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/ru" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/RU/flat/48.png" alt="Russkij" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/cs" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/CZ/flat/48.png" alt="Cestina" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/pl" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/PL/flat/48.png" alt="Polski" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/hu" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/HU/flat/48.png" alt="Magyar" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/it" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/IT/flat/48.png" alt="Italiano" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/es" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/ES/flat/48.png" alt="Espanol" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/fr" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/FR/flat/48.png" alt="Francais" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/ja" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/JP/flat/48.png" alt="Nihongo" /&gt;&lt;/a&gt;
 &lt;a href="https://github.com/StarDZ-Team/DayZ-Modding-Wiki/tree/main/zh-hans" target="_blank" rel="noopener noreferrer external"&gt;&lt;img src="https://flagsapi.com/CN/flat/48.png" alt="简体中文" /&gt;&lt;/a&gt;
&lt;/p&gt;</description></item><item><title/><link>/docs/reference/dayz-modding-wiki/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/docs/reference/dayz-modding-wiki/troubleshooting/</guid><description>&lt;h1 id="troubleshooting-guide"&gt;Troubleshooting Guide&lt;a class="anchor" href="#troubleshooting-guide"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="../README/"&gt;Home&lt;/a&gt;
 | &lt;strong&gt;Troubleshooting Guide&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;When something goes wrong, start here. This guide is organized by &lt;strong&gt;what you see&lt;/strong&gt; (the symptom), not by system. Find your problem, read the cause, apply the fix.&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr&gt;
&lt;h2 id="table-of-contents"&gt;Table of Contents&lt;a class="anchor" href="#table-of-contents"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#1-mod-wont-load"&gt;Mod Won&amp;rsquo;t Load&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-script-errors"&gt;Script Errors&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-rpc-and-network-issues"&gt;RPC and Network Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-ui-problems"&gt;UI Problems&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-build-and-pbo-issues"&gt;Build and PBO Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-performance-issues"&gt;Performance Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#7-item-vehicle-and-entity-issues"&gt;Item, Vehicle, and Entity Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#8-config-and-types-issues"&gt;Config and Types Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#9-persistence-issues"&gt;Persistence Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#10-decision-flowcharts"&gt;Decision Flowcharts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#11-debug-commands-quick-reference"&gt;Debug Commands Quick Reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#12-log-file-locations"&gt;Log File Locations&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#13-where-to-get-help"&gt;Where to Get Help&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-mod-wont-load"&gt;1. Mod Won&amp;rsquo;t Load&lt;a class="anchor" href="#1-mod-wont-load"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;These are problems where the mod does not appear, does not activate, or is rejected by the game at startup.&lt;/p&gt;</description></item></channel></rss>