Skip to content

DayZ Modding Glossary & Page Index

Home | Glossary & Index


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.


How to Use

  • Bold terms are defined inline
  • [Chapter links] point to the full documentation
  • See also connects related concepts

A

Action System

The system that handles player interactions with items and the world -- eating, opening doors, repairing, etc. Actions are registered on items via SetActions() and extend ActionBase.

Chapter: 6.12 Action SystemSee also: SetActions, ActionBase

ActionBase

Base class for all player actions. Three subtypes: ActionSingleUseBase (instant), ActionContinuousBase (progress bar), ActionInteractBase (world interaction).

Chapter: 6.12 Action System

AddAction

Method called inside SetActions() to register an action on an item. Always call super.SetActions() first.

Chapter: 6.12 Action System

AddonBuilder

DayZ Tools application that packs source files into PBO archives. Handles binarization, prefix assignment, and signature generation.

Chapter: 4.5 DayZ Tools Workflow | 4.6 PBO PackingSee also: PBO, Binarize

Admin Panel

A server-side UI for managing players, spawning items, controlling weather, etc. Built with modded MissionServer + RPC + UI layout.

Chapter: 8.3 Building an Admin Panel | 6.22 Admin & Server

AdminLog

GetGame().AdminLog(string) -- writes to the server admin log file for auditing admin actions.

Chapter: 6.22 Admin & Server

Animation System

Controls player stances, movements, gestures, and object animations via model.cfg animation definitions and script-level commands.

Chapter: 6.18 Animation SystemSee also: model.cfg, P3D

AnimalBase

Base class for wildlife entities (deer, wolves, bears, chickens). Extends the AI system shared with infected.

Chapter: 6.21 Zombie & AI SystemSee also: ZombieBase

ARC (Automatic Reference Counting)

Enforce Script's memory management model. Objects are destroyed when their strong reference count drops to zero. Not garbage collected.

Chapter: 1.8 Memory ManagementSee also: ref, autoptr

Array

Dynamic resizable collection array<T>. Methods: Insert, Get, Find, Remove, Sort, Count. Note: Remove is unordered (swaps with last element).

Chapter: 1.2 Arrays, Maps & SetsSee also: map

autoptr

Scoped strong reference pointer. Object is destroyed when autoptr goes out of scope. Rarely used in DayZ -- prefer ref.

Chapter: 1.8 Memory ManagementSee also: ref, ARC

B

BaseBuildingBase

Entity base class for player-built structures (fences, watchtowers, shelters). Uses the construction part system for assembly and dismantling.

Chapter: 6.17 Construction SystemSee also: Construction

BattlEye

DayZ's anti-cheat system. Managed at the engine level; scripts interact with it through kick/ban APIs.

Chapter: 6.22 Admin & Server

Binarize

The DayZ Tools process that converts human-readable source files (config.cpp, model.cfg, .p3d) into optimized binary format for game loading.

Chapter: 4.5 DayZ Tools Workflow | 4.6 PBO PackingSee also: AddonBuilder, PBO

Bitflags

Pattern using enum values as powers of two, combined with bitwise OR. Used for flags like ECE_CREATEPHYSICS | ECE_UPDATEPATHGRAPH.

Chapter: 1.10 Enums & Preprocessor

bool

Primitive type for true/false values. Default value is false.

Chapter: 1.1 Variables & Types

Building

Entity class for static structures in the world. Inherits from EntityAI.

Chapter: 6.1 Entity System | 4.8 Building Modeling

ButtonWidget

Interactive widget for clickable buttons. Handles click events via OnClick in ScriptedWidgetEventHandler.

Chapter: 3.1 Widget Types | 3.6 Event Handling

C

CallLater

GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(method, delay, repeat) -- schedules a deferred function call with a millisecond delay and optional repeat.

Chapter: 6.7 Timers & CallQueueSee also: ScriptCallQueue, Timer

Camera System

Multi-layered camera system. Player cameras are managed via DayZPlayerCamera subclasses. FreeDebugCamera enables free-flight for debugging.

Chapter: 6.4 Camera System

CarScript

Scriptable base class for drivable vehicles. Extends Car (engine-native physics). Defines doors, fluids, parts, and engine behavior.

Chapter: 6.2 Vehicle System | 8.10 Vehicle ModSee also: Transport

CastTo

Class.CastTo(target, source) -- safe downcast that returns true/false and sets the target variable. Preferred over direct casting.

Chapter: 1.9 Casting & ReflectionSee also: typename

Central Economy (CE)

DayZ's server-side system for managing loot, vehicle, and infected spawning. Configured through XML files (types.xml, events.xml, mapgroupproto.xml).

Chapter: 6.10 Central Economy | 5.5 Server ConfigsSee also: types.xml

CfgMods

Block in config.cpp that defines mod metadata, script module paths, imageset paths, and preprocessor defines.

Chapter: 2.2 config.cpp Deep DiveSee also: config.cpp, CfgPatches

CfgPatches

Block in config.cpp that declares the addon name, required addons (dependencies), and units/weapons it provides.

Chapter: 2.2 config.cpp Deep DiveSee also: config.cpp, requiredAddons

CfgSoundSets

Config class in config.cpp that defines playable sound configurations: volume, distance attenuation, spatial behavior. Referenced by SEffectManager.PlaySound.

Chapter: 4.4 Audio | 6.15 Sound SystemSee also: CfgSoundShaders

CfgSoundShaders

Config class in config.cpp that maps sound samples (.ogg/.wss files) to playback parameters like volume range. Used inside CfgSoundSets.

Chapter: 4.4 Audio | 6.15 Sound SystemSee also: CfgSoundSets

CfgVehicles

Config class in config.cpp where items, entities, and objects are defined. Despite the name, all entities (not just vehicles) are declared here.

Chapter: 2.2 config.cpp Deep DiveSee also: config.cpp

cfgweather.xml

Mission folder XML file that controls weather parameters, overcast thresholds, and atmospheric conditions.

Chapter: 6.23 World Systems | 6.3 Weather System

Chat Commands

Custom commands (e.g., /heal, /tp) implemented by hooking into MissionServer.OnClientNewEvent() and parsing chat text.

Chapter: 8.4 Adding Chat Commands

Class

The root of all Enforce Script class hierarchies. Every object inherits from Class.

Chapter: 1.3 Classes & Inheritance

Clothing Mod

A mod that adds wearable items with insulation, cargo, and hidden selection textures. Created by subclassing vanilla clothing bases in CfgVehicles.

Chapter: 8.11 Creating a Clothing ModSee also: Hidden Selections, CfgVehicles

Community Framework (CF)

Jacob_Mango's open-source framework mod providing module lifecycle, RPC, permissions, and logging. Foundation for COT and many community mods.

Chapter: 7.2 Module Systems | 3.9 Real Mod PatternsSee also: COT

config.cpp

The heart of every DayZ mod PBO. Declares dependencies, script paths, item definitions, sound sets, and preprocessor defines.

Chapter: 2.2 config.cpp Deep DiveSee also: CfgPatches, CfgMods, CfgVehicles

Config Persistence

Pattern for saving and loading mod settings to JSON files using JsonFileLoader<T>. Professional mods add versioning and auto-migration.

Chapter: 7.4 Config PersistenceSee also: JsonFileLoader

Construction

DayZ's base building manager class. Tracks construction parts, material requirements, and build progress for BaseBuildingBase entities.

Chapter: 6.17 Construction SystemSee also: BaseBuildingBase

Container Widgets

Widgets that organize child widgets: FrameWidget (absolute), WrapSpacerWidget (flow), GridSpacerWidget (grid), ScrollWidget (scrollable).

Chapter: 3.4 Container WidgetsSee also: FrameWidget, WrapSpacerWidget

Contaminated Areas

Toxic gas zones configured via cfgEffectArea.json. Apply PPE effects and damage to players within the zone.

Chapter: 6.23 World Systems

Control Flow

if/else, for, while, foreach, switch constructs. Key difference: no do...while, no ternary operator. switch falls through without break (same as C/C++).

Chapter: 1.5 Control Flow | 1.12 Gotchas

COT (Community Online Tools)

Major open-source admin mod by Jacob_Mango. Built on Community Framework. Provides ESP, teleport, spawning, and player management.

Chapter: 3.9 Real Mod UI Patterns | 7.2 Module Systems

Crafting System

Handles combining items via PluginRecipesManager and RecipeBase subclasses, or via custom ActionContinuousBase actions.

Chapter: 6.16 Crafting SystemSee also: RecipeBase, Action System

CreateWidgets

GetGame().GetWorkspace().CreateWidgets(path, parent) -- loads a .layout file and instantiates its widget tree at runtime.

Chapter: 3.5 Programmatic WidgetsSee also: Widget, Layout File

Credits.json

JSON file in the mod root that defines credits displayed in the game's mod menu. Lists team members organized by departments.

Chapter: 5.3 Credits.json

Custom Item

A new item added to DayZ by defining it in CfgVehicles, adding textures, and registering it in types.xml for server spawning.

Chapter: 8.2 Creating a Custom ItemSee also: CfgVehicles, types.xml

D

DayZDiag

Debug executable that enables the Diagnostic Menu, file patching, script profiling, and Workbench debugging. Essential for mod development.

Chapter: 8.6 Debugging & Testing | 8.13 Diag MenuSee also: Diag Menu, File Patching

DayZPlayer

Engine-level player class above PlayerBase in the hierarchy. Provides animation state machine, command system, and input processing.

Chapter: 6.14 Player System

DayZ Tools

Free Steam-distributed suite of development applications from Bohemia Interactive: Object Builder, TexView2, Terrain Builder, AddonBuilder, Workbench.

Chapter: 4.5 DayZ Tools WorkflowSee also: Workbench, AddonBuilder, Object Builder

Debugging

Process of finding and fixing errors in DayZ mods. Primary tools: script logs, Print statements, DayZDiag, file patching, and Workbench debugger.

Chapter: 8.6 Debugging & TestingSee also: DayZDiag, Script Log

Defines

Preprocessor symbols declared in config.cpp's defines[] array. Used with #ifdef/#ifndef for conditional compilation and optional mod dependencies.

Chapter: 1.10 Enums & Preprocessor | 2.2 config.cpp Deep Dive

Destructor

void ~ClassName() -- called when an object's reference count reaches zero. Used for cleanup. No try/catch protection.

Chapter: 1.3 Classes & Inheritance | 1.8 Memory Management

Diag Menu

DayZ's built-in diagnostic tool, available only in DayZDiag. Provides FPS counters, script profiling, weather control, free camera, AI debugging.

Chapter: 8.13 Diag Menu ReferenceSee also: DayZDiag

Dialog

Temporary overlay window for user interaction -- confirmations, alerts, input forms. Uses UIScriptedMenu or manual widget management.

Chapter: 3.8 Dialogs & Modals

E

EDDS

Extended DirectDraw Surface format. High-quality texture format used as a development intermediate. Supports all DXT compression types and mipmaps.

Chapter: 4.1 TexturesSee also: PAA, TGA

EffectParticle

High-level wrapper around Particle for lifecycle-managed visual effects with events and auto-destroy.

Chapter: 6.20 Particle & Effect System

EffectSound

High-level wrapper around AbstractWave for managed sound playback. Created via SEffectManager.PlaySound.

Chapter: 6.15 Sound SystemSee also: SEffectManager

Enforce Script

DayZ's scripting language, powered by the Enfusion engine. Object-oriented, C-like syntax, single inheritance, automatic reference counting.

Chapter: 1.1 Variables & Types

EntityAI

Key class in the entity hierarchy. All interactive world objects (items, players, zombies, vehicles, buildings) inherit from EntityAI.

Chapter: 6.1 Entity SystemSee also: ItemBase, PlayerBase

Entity System

The class hierarchy for all world objects, rooted at IEntity. Provides health, position, physics, attachment, and inventory functionality.

Chapter: 6.1 Entity System

Enum

Named integer constants. Support explicit values, implicit auto-increment, inheritance, bitflag patterns, and reflection via typename.EnumToString().

Chapter: 1.10 Enums & Preprocessor

Error Handling

No try/catch in Enforce Script. Use guard clauses with early return and Print() or structured logging for error reporting.

Chapter: 1.11 Error Handling | 1.12 Gotchas

Event-Driven Architecture

Pattern that decouples event producers from consumers using ScriptInvoker or custom event bus systems. Foundation for extensible mod design.

Chapter: 7.6 Event-Driven ArchitectureSee also: ScriptInvoker

Event Handling (GUI)

Widgets generate events for user interactions. Handled via ScriptedWidgetEventHandler with SetHandler() or through UIScriptedMenu overrides.

Chapter: 3.6 Event HandlingSee also: ScriptedWidgetEventHandler

event Keyword

Method modifier indicating an engine callback. Methods marked event are called by the engine at specific lifecycle points (e.g., OnInit, OnUpdate).

Chapter: 1.13 Functions & Methods

events.xml

Central Economy file that defines dynamic event spawns -- helicopter crashes, vehicle wrecks, infected groups.

Chapter: 6.10 Central Economy | 5.5 Server Configs

F

File I/O

Reading and writing files via FileHandle, FPrintln, ReadFile, and path prefixes ($profile:, $saves:, $mission:).

Chapter: 6.8 File I/O & JSONSee also: JsonFileLoader, Path Prefixes

File Organization

Best practices for structuring a mod directory: Scripts folder by layer, naming conventions, content vs script vs framework mods.

Chapter: 2.5 File Organization

File Patching

Development mode (-filePatching) that lets DayZ load loose files from the P: drive instead of packed PBOs. Enables edit-and-reload without rebuilding.

Chapter: 4.5 DayZ Tools Workflow | 8.6 Debugging & TestingSee also: P Drive

Five-Layer Hierarchy

DayZ's script compilation layers: 1_Core, 2_GameLib, 3_Game, 4_World, 5_Mission. Lower layers cannot reference higher layers.

Chapter: 2.1 The 5-Layer Script Hierarchy

float

Primitive 32-bit IEEE 754 floating-point type. Default value is 0.0.

Chapter: 1.1 Variables & Types

Font

DayZ uses proprietary .fnt font files. Common fonts: gui/fonts/MetroItalic and gui/fonts/MetroSuide. Not user-definable -- only engine-bundled fonts.

Chapter: 3.7 Styles, Fonts & Images

foreach

Loop construct: foreach (Type element : collection). Works with array, map, and static arrays.

Chapter: 1.5 Control FlowSee also: Array, map

FrameWidget

General-purpose invisible container widget. The most commonly used widget in DayZ. Children are positioned absolutely within it.

Chapter: 3.1 Widget Types | 3.4 Container Widgets

FreeDebugCamera

Free-flight camera for debugging. Available in DayZDiag builds. Accessed via the Diag Menu or scripted activation.

Chapter: 6.4 Camera System | 8.13 Diag Menu

Functions & Methods

Enforce Script function declaration, parameter modes (out, inout, notnull), static vs instance, overriding, thread, and event keywords.

Chapter: 1.13 Functions & Methods

G

GetGame()

Global accessor for the CGame singleton. Entry point for most engine APIs: GetGame().GetPlayer(), GetGame().GetWeather(), GetGame().IsServer().

Chapter: 6.1 Entity System | 1.1 Variables & Types

GetPlayer()

GetGame().GetPlayer() -- returns the local player entity as Man. Cast to PlayerBase for gameplay methods.

Chapter: 6.14 Player System

Gotchas

Enforce Script features that do NOT exist or behave unexpectedly: no ternary, no do...while, no try/catch, no namespaces, no #include.

Chapter: 1.12 What Does NOT Exist

GridSpacerWidget

Container widget that arranges children in a grid defined by Columns and Rows properties.

Chapter: 3.1 Widget Types | 3.4 Container WidgetsSee also: WrapSpacerWidget

Guard Clause

Defensive pattern: check preconditions at the top of a function and return early on failure. The standard error-handling pattern in Enforce Script (no try/catch).

Chapter: 1.11 Error Handling

H

Hello World

The simplest possible DayZ mod: prints a message to the script log when the game starts. Three files, zero dependencies.

Chapter: 8.1 Your First Mod | 2.4 Minimum Viable Mod

Hidden Selections

Named texture regions on a P3D model that can be re-skinned via config.cpp. Used for clothing retextures, vehicle skins, and item variants.

Chapter: 8.2 Custom Item | 8.11 Clothing ModSee also: P3D

Hive

The DayZ persistence database. Stores player positions, health, inventory across server restarts. Accessed indirectly via GetHive().

Chapter: 6.22 Admin & Server

HUD Overlay

Custom always-visible UI element layered over the game view. Created by hooking into MissionGameplay and managing widget visibility.

Chapter: 8.8 Building a HUD OverlaySee also: MissionGameplay

I

IEntity

Lowest engine-level entity class. All world objects ultimately inherit from IEntity via the Object chain.

Chapter: 6.1 Entity System

ImageSet

Named sprite regions within a texture atlas. DayZ's mechanism for referencing icons and UI graphics. Defined in .imageset or .edds files and registered in config.cpp.

Chapter: 5.4 ImageSet Format | 3.7 Styles, Fonts & Images

ImageWidget

Widget for displaying images from texture files or imageset sprites. Supports SetImage() and LoadImageFile().

Chapter: 3.1 Widget Types | 3.7 Styles, Fonts & Images

init.c

Mission entry point script. Located in the mission folder. Creates the MissionServer/MissionGameplay instances and initializes the world.

Chapter: 5.5 Server Configs | 6.11 Mission Hooks

inout Parameter

Function parameter modifier. The value is passed by reference and can be both read and modified by the function.

Chapter: 1.13 Functions & Methods

Input System

Two-layer system: inputs.xml declares named actions and keybindings; UAInput API queries input state at runtime.

Chapter: 6.13 Input System | 5.2 inputs.xml

inputs.xml

XML file that registers custom keybindings. Actions appear in the player's Controls settings menu and are queryable via UAInput.

Chapter: 5.2 inputs.xmlSee also: Input System, UAInput

int

Primitive 32-bit signed integer type. Range: -2,147,483,648 to 2,147,483,647. Default value is 0.

Chapter: 1.1 Variables & Types

Inventory

The entity attachment and cargo system. Key methods: GetInventory().CreateAttachment(), GetInventory().CreateInInventory(), LocalDestroyEntity().

Chapter: 6.1 Entity System | 6.14 Player System

IsInherited

obj.IsInherited(SomeClass) -- runtime type check returning true if the object is an instance of the specified class or any subclass of it.

Chapter: 1.9 Casting & Reflection

IsKindOf

obj.IsKindOf("ClassName") -- string-based runtime type check. Useful when you do not have the class available at compile time.

Chapter: 1.9 Casting & Reflection

ItemBase

Base class for all inventory items (weapons, tools, food, clothing). Extends InventoryItem in the 4_World layer.

Chapter: 6.1 Entity System | 8.2 Custom ItemSee also: EntityAI

J

JsonFileLoader

JsonFileLoader<T>.JsonLoadFile(path, data) -- loads a JSON file and deserializes it into an object. Returns void (pass a ref object, do not assign return). Also JsonSaveFile() for saving.

Chapter: 6.8 File I/O & JSON | 7.4 Config PersistenceSee also: File I/O

K

Key Pair

RSA key pair (.bikey + .biprivatekey) used to sign PBOs. Servers verify mod signatures to prevent tampering. Generated via DayZ Tools DSSignFile.

Chapter: 8.7 Publishing to WorkshopSee also: PBO

L

Layout File

DayZ's .layout format for defining UI widget trees. Brace-delimited text format (not XML). Edited in Workbench or by hand.

Chapter: 3.2 Layout File FormatSee also: Widget, CreateWidgets

Listen Server

A server where one player also acts as the host. Both GetGame().IsServer() and GetGame().IsClient() return true. Requires special guard logic.

Chapter: 2.6 Server/Client Architecture

LOD (Level of Detail)

Multiple mesh resolutions within a single P3D model. The engine selects the appropriate LOD based on camera distance. Includes geometry, fire geometry, view geometry, shadow, and memory LODs.

Chapter: 4.2 3D ModelsSee also: P3D

Localization

Multi-language text support via stringtable.csv. The engine resolves translation keys based on the player's language setting.

Chapter: 5.1 stringtable.csvSee also: stringtable.csv

M

Managed

Base class that enables weak reference zeroing. When a Managed object is deleted, all raw pointers to it are set to null instead of dangling.

Chapter: 1.8 Memory ManagementSee also: ref

map

Associative collection map<KeyType, ValueType>. Methods: Insert, Get, Find, Remove, Contains, Count. Key types must be value types or class references.

Chapter: 1.2 Arrays, Maps & SetsSee also: Array

MapWidget

Advanced widget that renders the game's 2D map. Used by mods to display markers, waypoints, and player positions.

Chapter: 3.10 Advanced Widgets

Math

Static utility class for scalar operations: Math.AbsFloat(), Math.Clamp(), Math.Lerp(), Math.RandomFloat(), Math.Floor(), etc.

Chapter: 1.7 Math & Vectors

Memory Management

Enforce Script uses ARC (automatic reference counting) with three pointer types: raw (weak), ref (strong), autoptr (scoped strong).

Chapter: 1.8 Memory ManagementSee also: ARC, ref

Memory Points

Named vertices in a P3D model's Memory LOD used to position effects, attachments, lights, and interaction points.

Chapter: 4.2 3D Models | 4.8 Building Modeling

Mission Hooks

Entry points for mod initialization via MissionServer and MissionGameplay. Lifecycle methods: OnInit, OnMissionStart, OnUpdate, OnMissionFinish.

Chapter: 6.11 Mission HooksSee also: MissionServer, MissionGameplay

MissionGameplay

Client-side mission class. Hook via modded class to add client initialization, HUD elements, and UI management.

Chapter: 6.11 Mission Hooks

MissionServer

Server-side mission class. Hook via modded class to add server initialization, player connection handling, and admin functionality.

Chapter: 6.11 Mission Hooks

mod.cpp

Metadata file in the mod root. Controls launcher display name, icon, description, action URL, and type (client/server/both). No gameplay effect.

Chapter: 2.3 mod.cpp & WorkshopSee also: config.cpp

Mod Template

Pre-made skeleton project with correct folder structure, config.cpp, mod.cpp, and script stubs. See InclementDab's open-source template or the professional template.

Chapter: 8.5 Using the Mod Template | 8.9 Professional Template

model.cfg

Configuration file that defines animations (rotation, translation, hide) for P3D models. Controls doors, turrets, and visual state changes.

Chapter: 4.2 3D Models | 6.18 Animation System

Modded Class

modded class ClassName -- replaces an existing class in the engine's hierarchy with your version. The single most important concept in DayZ modding. Always call super in overrides.

Chapter: 1.4 Modded ClassesSee also: super, Override

Module System

Architectural pattern for organizing code into lifecycle-managed units registered with a central manager. Four approaches documented: CF, VPP, Dabs, and custom.

Chapter: 7.2 Module / Plugin SystemsSee also: Singleton

N

Named Selections

Named groups of faces in a P3D model used for texturing, animation, and damage visualization. Referenced in config.cpp hiddenSelections[].

Chapter: 4.2 3D ModelsSee also: Hidden Selections

Networking

Client-server communication via ScriptRPC. All authoritative logic runs on the server; clients communicate through RPCs.

Chapter: 6.9 Networking & RPCSee also: RPC, ScriptRPC

Notification System

NotificationSystem class for displaying toast-style popup messages. AddNotification() for local, SendNotificationToPlayerExtended() for server-to-client.

Chapter: 6.6 Notification System

notnull Parameter

Function parameter modifier that guarantees the argument is not null at the engine level. Passing null to a notnull parameter causes a script error.

Chapter: 1.13 Functions & Methods

NULL / null

Enforce Script's null reference value. Used interchangeably. No nullptr keyword exists.

Chapter: 1.12 Gotchas | 1.1 Variables & Types

O

Object

Engine class above ObjectTyped in the hierarchy. Provides position (GetPosition()), orientation, and basic world interaction.

Chapter: 6.1 Entity System

Object Builder

DayZ Tools application for creating and editing P3D models. Used to define LODs, named selections, memory points, proxies, and UV mapping.

Chapter: 4.5 DayZ Tools Workflow | 4.2 3D Models

OGG

OGG Vorbis -- DayZ's primary audio format. Lossy compression, open-source. All custom sounds should be 44.1kHz mono or stereo .ogg files.

Chapter: 4.4 AudioSee also: WSS, CfgSoundSets

OnClick

Widget event handler method. Called when a button or interactive widget is clicked. Override in ScriptedWidgetEventHandler or UIScriptedMenu.

Chapter: 3.6 Event Handling

out Parameter

Function parameter modifier. Value is passed by reference but only written to (not read). Used for multi-return patterns.

Chapter: 1.13 Functions & Methods

Override

Redefining a parent class method in a child or modded class. Must call super.MethodName() to preserve original behavior in modded classes.

Chapter: 1.4 Modded Classes | 1.3 Classes & InheritanceSee also: super, Modded Class

P

P Drive (Workdrive)

Virtual P: drive created by DayZ Tools. Contains unpacked game data and mod source files. Required for the asset pipeline and file patching.

Chapter: 4.5 DayZ Tools Workflow | 8.1 Your First Mod

P3D

Bohemia's proprietary 3D model format. Encodes mesh LODs, collision geometry, named selections, memory points, and proxy positions.

Chapter: 4.2 3D ModelsSee also: LOD, Object Builder

PAA

DayZ's runtime compressed texture format. Converted from TGA/PNG via TexView2 during the build process. Power-of-two dimensions required.

Chapter: 4.1 TexturesSee also: TexView2, EDDS

PanelWidget

Widget that draws a solid colored rectangle. Used for backgrounds, dividers, and separators.

Chapter: 3.1 Widget Types

Particle System

Engine system for fire, smoke, blood, explosions, and weather effects. Two layers: low-level Particle/ParticleManager and high-level EffectParticle/SEffectManager.

Chapter: 6.20 Particle & Effect System

Path Prefixes

Special prefixes for file operations: $profile: (user profile), $saves: (save data), $mission: (mission folder). No absolute filesystem paths.

Chapter: 6.8 File I/O & JSON

PBO (Packed Bank of Objects)

DayZ's archive format for mod delivery. Equivalent to a zip file. Every mod the game loads is one or more PBO files.

Chapter: 4.6 PBO PackingSee also: AddonBuilder, Binarize

Performance Optimization

Patterns for keeping script execution fast: caching, spatial partitioning, frame-spreading, object pooling, avoiding per-frame allocations.

Chapter: 7.7 Performance Optimization

Permission System

Mechanism for restricting privileged actions to authorized players. Three patterns: hierarchical dot-separated, user-group roles, framework-level RBAC.

Chapter: 7.5 Permission Systems

PlayerBase

The most important class in DayZ modding. Every player entity is a PlayerBase. Contains health, stamina, bleeding, inventory, and all gameplay state.

Chapter: 6.14 Player SystemSee also: EntityAI

PluginRecipesManager

Central registry for crafting recipes. Discovers RecipeBase subclasses and presents valid combinations when items are used together.

Chapter: 6.16 Crafting SystemSee also: RecipeBase

Post-Process Effects (PPE)

Visual effects applied after scene rendering: blur, color grading, vignette, chromatic aberration, night vision. Driven by PPERequester classes.

Chapter: 6.5 Post-Process EffectsSee also: PPERequester

PPERequester

Base class for requesting post-process visual effects. Multiple requesters can be active simultaneously and the engine blends their contributions.

Chapter: 6.5 Post-Process Effects

Preprocessor

#ifdef, #ifndef, #endif, #define directives for conditional compilation. Common defines: SERVER, DEVELOPER, DIAG_DEVELOPER.

Chapter: 1.10 Enums & PreprocessorSee also: Defines

Print()

Print(string) -- writes a message to the script log. The primary debugging tool in Enforce Script (no IDE debugger in retail builds).

Chapter: 8.6 Debugging & Testing | 1.11 Error Handling

Professional Template

A full-featured mod template with config system, singleton manager, RPC, UI panel, keybinds, localization, and build automation. Copy-paste ready.

Chapter: 8.9 Professional Mod TemplateSee also: Mod Template

Proportional Sizing

Widget dimension expressed as 0.0 to 1.0 relative to the parent widget. Example: width = 0.5 means 50% of parent's width.

Chapter: 3.3 Sizing & Positioning

proto native

Method modifier indicating a C++ engine binding. The method signature is declared in script but the implementation lives in the native engine.

Chapter: 1.13 Functions & Methods

Proxy

Named attachment point in a P3D model's Memory LOD. Used for scope mounts, muzzle devices, flashlights, and other mountable items.

Chapter: 4.2 3D ModelsSee also: Memory Points

Publishing

Process of uploading a finished mod to Steam Workshop: prepare mod folder, sign PBOs, create Workshop item, upload via DayZ Tools or SteamCMD.

Chapter: 8.7 Publishing to WorkshopSee also: Key Pair, Steam Workshop

R

Raycasting

Tracing a line through the world to detect collisions. Provided by DayZPhysics.RaycastRV() and DayZPhysics.RayCastBullet().

Chapter: 6.19 Terrain & World Queries

RecipeBase

Base class for crafting recipes. Defines ingredients, results, conditions, and transformations for the recipe-based crafting system.

Chapter: 6.16 Crafting SystemSee also: PluginRecipesManager

ref

Strong reference keyword. Keeps the referenced object alive (increments its reference count). Standard practice for owned members and collections.

Chapter: 1.8 Memory ManagementSee also: ARC, autoptr

Reference Counting

See ARC.

Reference Cycle

When two objects hold ref pointers to each other, neither can be destroyed. One side must use a raw (weak) pointer to break the cycle.

Chapter: 1.8 Memory Management | 1.12 Gotchas

Reflection

Runtime type inspection via typename, obj.Type(), EnScript.GetClassVar(), EnScript.SetClassVar(). Used for dynamic config systems and serialization.

Chapter: 1.9 Casting & Reflection

requiredAddons

Array in CfgPatches that lists addon dependencies. Controls PBO load order. If a required addon is missing, your PBO silently fails to load.

Chapter: 2.2 config.cpp Deep DiveSee also: CfgPatches

RichTextWidget

Widget that supports inline markup tags for formatted text with embedded images, variable font sizes, and line breaks.

Chapter: 3.10 Advanced Widgets

RPC (Remote Procedure Call)

The mechanism for sending data between client and server. Uses ScriptRPC to write/read serialized data. Every networked mod relies on RPCs.

Chapter: 6.9 Networking & RPC | 7.3 RPC PatternsSee also: ScriptRPC, ScriptInputUserData

RVMAT

Real Virtuality Material file. Defines how textures are combined, which shader to use, and surface properties (shininess, transparency, self-illumination).

Chapter: 4.3 MaterialsSee also: PAA, P3D

S

ScriptCallQueue

Primary deferred call system. GetGame().GetCallQueue(category).Call() / .CallLater() / .CallByName(). Used for scheduling delayed logic.

Chapter: 6.7 Timers & CallQueueSee also: CallLater

ScriptedWidgetEventHandler

Base class for widget event handlers. Override methods like OnClick, OnMouseEnter, OnChange, then attach to a widget via SetHandler().

Chapter: 3.6 Event Handling

ScriptInputUserData

Input-verified client-to-server message system. Used for gameplay-critical actions where the engine must validate timing and authority.

Chapter: 6.9 Networking & RPC

ScriptInvoker

Built-in event primitive. Insert() adds a callback, Invoke() fires all callbacks. Foundation for event-driven architecture.

Chapter: 7.6 Event-Driven Architecture | 6.7 Timers & CallQueue

ScriptRPC

Primary RPC class. Write() serializes data, Send() transmits to the other side. Received via OnRPC() override on entities.

Chapter: 6.9 Networking & RPC | 7.3 RPC Patterns

Script Log

Text file where Print() output and engine errors are written. Located at %localappdata%/DayZ/ or in $profile:. Primary debugging tool.

Chapter: 8.6 Debugging & Testing

ScrollWidget

Container widget that provides scrollable content area. Wrap content in a ScrollWidget to enable vertical or horizontal scrolling.

Chapter: 3.4 Container Widgets

SEffectManager

Static manager for creating, playing, and stopping managed effects (EffectSound, EffectParticle). Handles lifecycle and cleanup.

Chapter: 6.15 Sound System | 6.20 Particle & Effect System

Server/Client Architecture

DayZ's fundamental split: server owns game state, client renders and sends input. Code runs in one of three contexts: server, client, or both (listen server).

Chapter: 2.6 Server/Client ArchitectureSee also: Listen Server, RPC

Server Configuration

XML, JSON, and script files in the mission folder that control server behavior: serverDZ.cfg, types.xml, init.c, cfgeconomycore.xml.

Chapter: 5.5 Server Configuration Files

SetActions

Method on ItemBase where actions are registered. Override it, call super.SetActions(), then AddAction(ActionClass).

Chapter: 6.12 Action SystemSee also: ActionBase, AddAction

SetHandler

widget.SetHandler(handlerInstance) -- attaches a ScriptedWidgetEventHandler to a widget to receive its events.

Chapter: 3.6 Event HandlingSee also: ScriptedWidgetEventHandler

Singleton

Pattern guaranteeing a class has exactly one instance, globally accessible. The most common architectural pattern in DayZ mods.

Chapter: 7.1 Singleton Pattern

Sizing & Positioning

Widget sizing uses a dual coordinate mode -- proportional (0.0 to 1.0 relative to parent) or pixel-based (absolute screen pixels). Each dimension is independent.

Chapter: 3.3 Sizing & Positioning

Sound System

Two approaches: high-level EffectSound/SEffectManager API, and config-driven PlaySoundSet()/StopSoundSet() on entities. All sound is client-side only.

Chapter: 6.15 Sound SystemSee also: CfgSoundSets, EffectSound

Spawning Gear

Two systems: spawn points determine where characters appear; spawn gear (cfgPlayerSpawnGear.json) determines what equipment they carry.

Chapter: 5.6 Spawning Gear Configuration

static

Method/field modifier. Static members belong to the class itself, not to instances. Accessed via ClassName.Member.

Chapter: 1.3 Classes & Inheritance | 1.13 Functions & Methods

Steam Workshop

Valve's mod distribution platform. DayZ mods are uploaded via DayZ Tools publisher or SteamCMD and downloaded by players through Steam.

Chapter: 8.7 Publishing to WorkshopSee also: Publishing

string

Immutable value type for text. Passed by value, compared by value. Rich built-in methods: Substring, IndexOf, Replace, ToLower, Length, Split.

Chapter: 1.1 Variables & Types | 1.6 String Operations

stringtable.csv

CSV file providing localized text. Columns for 13 languages. Keys are referenced in layouts and scripts for user-facing strings.

Chapter: 5.1 stringtable.csvSee also: Localization

Styles (GUI)

Predefined visual appearances applied to widgets via the style attribute. Control backgrounds, borders, and overall look without manual configuration.

Chapter: 3.7 Styles, Fonts & Images

super

Keyword used inside method overrides to call the parent class implementation. Critical in modded classes to preserve original behavior.

Chapter: 1.4 Modded Classes | 1.3 Classes & Inheritance

switch/case

Control flow construct for multi-branch selection. Cases fall through without break (same as C/C++). Always include break unless fall-through is intentional.

Chapter: 1.5 Control Flow | 1.12 Gotchas

T

Terrain Builder

DayZ Tools application for creating and editing terrain data (heightmaps, surface masks, object placement).

Chapter: 4.5 DayZ Tools Workflow

Terrain Queries

Engine APIs for querying terrain height, surface type, and surface normals. Accessed via GetGame().SurfaceY(), GetGame().SurfaceGetType(), etc.

Chapter: 6.19 Terrain & World Queries

TextWidget

Widget for displaying text. Key methods: SetText(string), SetColor(int). Use RichTextWidget for formatted text with inline markup.

Chapter: 3.1 Widget TypesSee also: RichTextWidget

TexView2

DayZ Tools texture viewer and converter. Converts between PAA, TGA, PNG, and EDDS formats. Essential for texture workflow.

Chapter: 4.5 DayZ Tools Workflow | 4.1 Textures

TGA

Truevision TGA -- uncompressed texture source format. Common starting point for texture creation. Converted to PAA for game use.

Chapter: 4.1 TexturesSee also: PAA, TexView2

thread

Method modifier that marks a function as a coroutine. thread methods can yield execution and resume later. Spawned via direct call.

Chapter: 1.13 Functions & Methods

Timer

Managed timer class for repeating or delayed function calls. Alternative to ScriptCallQueue with built-in start/stop lifecycle.

Chapter: 6.7 Timers & CallQueueSee also: CallLater, ScriptCallQueue

Trading System

A shop system with JSON config, server-validated buy/sell, categorized UI, and currency-based transactions.

Chapter: 8.12 Building a Trading System

Transport

Base class for all vehicle entities. Subclasses: Car (land vehicles via CarScript) and Boat (watercraft via BoatScript).

Chapter: 6.2 Vehicle SystemSee also: CarScript

typename

Primitive type that holds a reference to a type itself. Used for reflection: typename t = MyClass;, then t.Spawn() creates an instance dynamically.

Chapter: 1.1 Variables & Types | 1.9 Casting & Reflection

types.xml

Central Economy file that defines every spawnable item's nominal count, min count, lifetime, restock rate, category, usage flags, and value flags.

Chapter: 6.10 Central Economy | 5.5 Server ConfigsSee also: Central Economy

U

UAInput

Script-level API for querying input state at runtime. GetUApi().GetInputByName("UAMyAction") returns a UAInput object with press/release/hold methods.

Chapter: 6.13 Input System | 5.2 inputs.xmlSee also: inputs.xml

UI Patterns

Real-world UI techniques from professional mods: tab navigation, list pooling, context menus, drag-and-drop, tooltip management.

Chapter: 3.9 Real Mod UI Patterns

UIScriptedMenu

Base class for full-screen or modal UI panels. Provides lifecycle methods (OnShow, OnHide, Update) and built-in widget event routing.

Chapter: 3.8 Dialogs & Modals | 3.6 Event Handling

V

Value Types

Types passed by copy, not by reference: int, float, bool, string, vector. Modifications to a copy do not affect the original.

Chapter: 1.1 Variables & Types

vector

Primitive three-component float type (x, y, z). Passed by value. Constructed from string: vector v = "1 2 3";. Access components via index: v[0], v[1], v[2].

Chapter: 1.1 Variables & Types | 1.7 Math & Vectors

Vehicle Mod

A mod that creates custom drivable vehicles by extending CarScript or BoatScript in CfgVehicles with custom stats, textures, and scripted behavior.

Chapter: 8.10 Creating a Vehicle Mod | 6.2 Vehicle System

Vehicle System

DayZ's transport system. Vehicles have fluid systems (fuel, oil, brake, coolant), parts with health, gear simulation, and engine-managed physics.

Chapter: 6.2 Vehicle SystemSee also: CarScript, Transport

VPP (VPP Admin Tools)

Major community admin mod by DaOne and GravityWolf. Provides player management, chat commands, webhooks, ESP, and a permission system.

Chapter: 3.9 Real Mod UI Patterns | 7.5 Permission Systems

W

Weather System

Fully dynamic system controlling overcast, rain, snowfall, fog, wind, and thunderstorms. Accessed via GetGame().GetWeather().

Chapter: 6.3 Weather System | 6.23 World Systems

Widget

Base class for all UI elements. Every visible element on screen is a widget in a parent-child tree rooted at WorkspaceWidget.

Chapter: 3.1 Widget TypesSee also: Layout File

WidgetFadeTimer

Specialized timer for animating widget alpha transitions (fade in/out). Simpler than manual alpha interpolation.

Chapter: 6.7 Timers & CallQueue

Workbench

Bohemia's IDE for the Enfusion engine. Provides script editing, debugger (breakpoints, stepping, variable inspection), layout preview, resource browser, and live console.

Chapter: 4.7 Workbench Guide | 4.5 DayZ Tools WorkflowSee also: DayZDiag

WorkspaceWidget

Root widget obtained via GetGame().GetWorkspace(). Used to create widgets programmatically with CreateWidgets() and CreateWidget().

Chapter: 3.1 Widget Types | 3.5 Programmatic Widgets

World Systems

Mission-folder configurations for contaminated areas, underground darkness, weather overrides, gameplay rules, and object placement.

Chapter: 6.23 World Systems

WrapSpacerWidget

Container widget that arranges children sequentially with wrapping, padding, and margins. The flow layout equivalent.

Chapter: 3.1 Widget Types | 3.4 Container WidgetsSee also: GridSpacerWidget

WSS

Bohemia's proprietary audio format. Legacy format still used in some vanilla sound definitions. Prefer OGG Vorbis for new content.

Chapter: 4.4 AudioSee also: OGG

X

XComboBoxWidget

Dropdown selection widget. Used for settings panels and property editors where the user selects from predefined options.

Chapter: 3.10 Advanced Widgets

Z

ZombieBase

Base class for infected entities. Extends DayZInfected with scriptable behavior: mind states, movement commands, attack patterns, and perception.

Chapter: 6.21 Zombie & AI SystemSee also: AnimalBase

Zombie & AI System

DayZ's hostile AI framework. Infected patrol, detect players through sight/sound/proximity, transition through behavioral states, attack, and die.

Chapter: 6.21 Zombie & AI System


Chapter Index

Quick reference to all 92 chapters plus supplementary pages:

Part 1: Enforce Script Language

#ChapterPage
1.1Variables & Types01-enforce-script/01-variables-types.md
1.2Arrays, Maps & Sets01-enforce-script/02-arrays-maps-sets.md
1.3Classes & Inheritance01-enforce-script/03-classes-inheritance.md
1.4Modded Classes01-enforce-script/04-modded-classes.md
1.5Control Flow01-enforce-script/05-control-flow.md
1.6String Operations01-enforce-script/06-strings.md
1.7Math & Vectors01-enforce-script/07-math-vectors.md
1.8Memory Management01-enforce-script/08-memory-management.md
1.9Casting & Reflection01-enforce-script/09-casting-reflection.md
1.10Enums & Preprocessor01-enforce-script/10-enums-preprocessor.md
1.11Error Handling01-enforce-script/11-error-handling.md
1.12What Does NOT Exist01-enforce-script/12-gotchas.md
1.13Functions & Methods01-enforce-script/13-functions-methods.md

Part 2: Mod Structure

#ChapterPage
2.1The 5-Layer Script Hierarchy02-mod-structure/01-five-layers.md
2.2config.cpp Deep Dive02-mod-structure/02-config-cpp.md
2.3mod.cpp & Workshop02-mod-structure/03-mod-cpp.md
2.4Your First Mod02-mod-structure/04-minimum-viable-mod.md
2.5File Organization02-mod-structure/05-file-organization.md
2.6Server/Client Architecture02-mod-structure/06-server-client-split.md

Part 3: GUI & Layout System

#ChapterPage
3.1Widget Types03-gui-system/01-widget-types.md
3.2Layout File Format03-gui-system/02-layout-files.md
3.3Sizing & Positioning03-gui-system/03-sizing-positioning.md
3.4Container Widgets03-gui-system/04-containers.md
3.5Programmatic Creation03-gui-system/05-programmatic-widgets.md
3.6Event Handling03-gui-system/06-event-handling.md
3.7Styles, Fonts & Images03-gui-system/07-styles-fonts.md
3.8Dialogs & Modals03-gui-system/08-dialogs-modals.md
3.9Real Mod UI Patterns03-gui-system/09-real-mod-patterns.md
3.10Advanced Widgets03-gui-system/10-advanced-widgets.md

Part 4: File Formats & Tools

#ChapterPage
4.1Textures (.paa, .edds, .tga)04-file-formats/01-textures.md
4.23D Models (.p3d)04-file-formats/02-models.md
4.3Materials (.rvmat)04-file-formats/03-materials.md
4.4Audio (.ogg, .wss)04-file-formats/04-audio.md
4.5DayZ Tools Workflow04-file-formats/05-dayz-tools.md
4.6PBO Packing04-file-formats/06-pbo-packing.md
4.7Workbench Guide04-file-formats/07-workbench-guide.md
4.8Building Modeling04-file-formats/08-building-modeling.md

Part 5: Configuration Files

#ChapterPage
5.1stringtable.csv05-config-files/01-stringtable.md
5.2inputs.xml05-config-files/02-inputs-xml.md
5.3Credits.json05-config-files/03-credits-json.md
5.4ImageSet Format05-config-files/04-imagesets.md
5.5Server Configuration Files05-config-files/05-server-configs.md
5.6Spawning Gear Configuration05-config-files/06-spawning-gear.md

Part 6: Engine API Reference

#ChapterPage
6.1Entity System06-engine-api/01-entity-system.md
6.2Vehicle System06-engine-api/02-vehicles.md
6.3Weather System06-engine-api/03-weather.md
6.4Camera System06-engine-api/04-cameras.md
6.5Post-Process Effects06-engine-api/05-ppe.md
6.6Notification System06-engine-api/06-notifications.md
6.7Timers & CallQueue06-engine-api/07-timers.md
6.8File I/O & JSON06-engine-api/08-file-io.md
6.9Networking & RPC06-engine-api/09-networking.md
6.10Central Economy06-engine-api/10-central-economy.md
6.11Mission Hooks06-engine-api/11-mission-hooks.md
6.12Action System06-engine-api/12-action-system.md
6.13Input System06-engine-api/13-input-system.md
6.14Player System06-engine-api/14-player-system.md
6.15Sound System06-engine-api/15-sound-system.md
6.16Crafting System06-engine-api/16-crafting-system.md
6.17Construction System06-engine-api/17-construction-system.md
6.18Animation System06-engine-api/18-animation-system.md
6.19Terrain & World Queries06-engine-api/19-terrain-queries.md
6.20Particle & Effect System06-engine-api/20-particle-effects.md
6.21Zombie & AI System06-engine-api/21-zombie-ai-system.md
6.22Admin & Server Management06-engine-api/22-admin-server.md
6.23World Systems06-engine-api/23-world-systems.md

Part 7: Patterns & Best Practices

#ChapterPage
7.1Singleton Pattern07-patterns/01-singletons.md
7.2Module / Plugin Systems07-patterns/02-module-systems.md
7.3RPC Communication07-patterns/03-rpc-patterns.md
7.4Config Persistence07-patterns/04-config-persistence.md
7.5Permission Systems07-patterns/05-permissions.md
7.6Event-Driven Architecture07-patterns/06-events.md
7.7Performance Optimization07-patterns/07-performance.md

Part 8: Tutorials

#ChapterPage
8.1Your First Mod (Hello World)08-tutorials/01-first-mod.md
8.2Creating a Custom Item08-tutorials/02-custom-item.md
8.3Building an Admin Panel08-tutorials/03-admin-panel.md
8.4Adding Chat Commands08-tutorials/04-chat-commands.md
8.5Using the DayZ Mod Template08-tutorials/05-mod-template.md
8.6Debugging & Testing08-tutorials/06-debugging-testing.md
8.7Publishing to Steam Workshop08-tutorials/07-publishing-workshop.md
8.8Building a HUD Overlay08-tutorials/08-hud-overlay.md
8.9Professional Mod Template08-tutorials/09-professional-template.md
8.10Creating a Vehicle Mod08-tutorials/10-vehicle-mod.md
8.11Creating a Clothing Mod08-tutorials/11-clothing-mod.md
8.12Building a Trading System08-tutorials/12-trading-system.md
8.13Diag Menu Reference08-tutorials/13-diag-menu.md

Supplementary Pages

PageLink
Enforce Script Cheat Sheetcheatsheet.md
API Quick Reference06-engine-api/quick-reference.md
FAQfaq.md
Troubleshooting Guidetroubleshooting.md

This glossary covers 160+ terms across all 92 chapters and 4 supplementary pages of the DayZ Modding Complete Guide.

Released under CC BY-SA 4.0 | Code examples under MIT License