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 System See 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 Packing See 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 System See 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 System See 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 Management See 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 & Sets See 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 Management See 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 System See 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 Packing See 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 & CallQueue See 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 Mod See 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 & Reflection See 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 Configs See 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 Dive See 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 Dive See 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 System See 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 System See 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 Dive See 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 Mod See 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 Patterns See 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 Dive See 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 Persistence See also: JsonFileLoader

Construction#

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

Chapter: 6.17 Construction System See also: BaseBuildingBase

Container Widgets#

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

Chapter: 3.4 Container Widgets See 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 System See 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 Widgets See 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 Item See 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 Menu See 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 Workflow See 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 & Testing See 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 Reference See 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 Textures See 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 System See 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 System See 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 Architecture See also: ScriptInvoker

Event Handling (GUI)#

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

Chapter: 3.6 Event Handling See 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 & JSON See 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 & Testing See 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 Flow See 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 Widgets See 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 Mod See 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 Overlay See 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.xml See 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 Item See 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 Persistence See 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 Workshop See 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 Format See 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 Models See 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.csv See 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 Management See 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 & Sets See 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 Management See 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 Hooks See 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 & Workshop See 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 Classes See 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 Systems See 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 Models See also: Hidden Selections

Networking#

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

Chapter: 6.9 Networking & RPC See 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 Audio See 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 & Inheritance See 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 Models See 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 Textures See 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 Packing See 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 System See also: EntityAI

PluginRecipesManager#

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

Chapter: 6.16 Crafting System See 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 Effects See 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 & Preprocessor See 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 Template See 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 Models See 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 Workshop See 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 System See 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 Management See 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 Dive See 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 Patterns See 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 Materials See also: PAA , P3D

S#

ScriptCallQueue#

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

Chapter: 6.7 Timers & CallQueue See 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 Architecture See 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 System See also: ActionBase , AddAction

SetHandler#

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

Chapter: 3.6 Event Handling See 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 System See 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 Workshop See 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.csv See 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 Types See 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 Textures See 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 & CallQueue See 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 System See 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 Configs See 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.xml See 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 System See 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 Types See 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 Workflow See 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 Widgets See 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 Audio See 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 System See 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.