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
| # | Chapter | Page |
|---|---|---|
| 1.1 | Variables & Types | 01-enforce-script/01-variables-types.md |
| 1.2 | Arrays, Maps & Sets | 01-enforce-script/02-arrays-maps-sets.md |
| 1.3 | Classes & Inheritance | 01-enforce-script/03-classes-inheritance.md |
| 1.4 | Modded Classes | 01-enforce-script/04-modded-classes.md |
| 1.5 | Control Flow | 01-enforce-script/05-control-flow.md |
| 1.6 | String Operations | 01-enforce-script/06-strings.md |
| 1.7 | Math & Vectors | 01-enforce-script/07-math-vectors.md |
| 1.8 | Memory Management | 01-enforce-script/08-memory-management.md |
| 1.9 | Casting & Reflection | 01-enforce-script/09-casting-reflection.md |
| 1.10 | Enums & Preprocessor | 01-enforce-script/10-enums-preprocessor.md |
| 1.11 | Error Handling | 01-enforce-script/11-error-handling.md |
| 1.12 | What Does NOT Exist | 01-enforce-script/12-gotchas.md |
| 1.13 | Functions & Methods | 01-enforce-script/13-functions-methods.md |
Part 2: Mod Structure
| # | Chapter | Page |
|---|---|---|
| 2.1 | The 5-Layer Script Hierarchy | 02-mod-structure/01-five-layers.md |
| 2.2 | config.cpp Deep Dive | 02-mod-structure/02-config-cpp.md |
| 2.3 | mod.cpp & Workshop | 02-mod-structure/03-mod-cpp.md |
| 2.4 | Your First Mod | 02-mod-structure/04-minimum-viable-mod.md |
| 2.5 | File Organization | 02-mod-structure/05-file-organization.md |
| 2.6 | Server/Client Architecture | 02-mod-structure/06-server-client-split.md |
Part 3: GUI & Layout System
| # | Chapter | Page |
|---|---|---|
| 3.1 | Widget Types | 03-gui-system/01-widget-types.md |
| 3.2 | Layout File Format | 03-gui-system/02-layout-files.md |
| 3.3 | Sizing & Positioning | 03-gui-system/03-sizing-positioning.md |
| 3.4 | Container Widgets | 03-gui-system/04-containers.md |
| 3.5 | Programmatic Creation | 03-gui-system/05-programmatic-widgets.md |
| 3.6 | Event Handling | 03-gui-system/06-event-handling.md |
| 3.7 | Styles, Fonts & Images | 03-gui-system/07-styles-fonts.md |
| 3.8 | Dialogs & Modals | 03-gui-system/08-dialogs-modals.md |
| 3.9 | Real Mod UI Patterns | 03-gui-system/09-real-mod-patterns.md |
| 3.10 | Advanced Widgets | 03-gui-system/10-advanced-widgets.md |
Part 4: File Formats & Tools
| # | Chapter | Page |
|---|---|---|
| 4.1 | Textures (.paa, .edds, .tga) | 04-file-formats/01-textures.md |
| 4.2 | 3D Models (.p3d) | 04-file-formats/02-models.md |
| 4.3 | Materials (.rvmat) | 04-file-formats/03-materials.md |
| 4.4 | Audio (.ogg, .wss) | 04-file-formats/04-audio.md |
| 4.5 | DayZ Tools Workflow | 04-file-formats/05-dayz-tools.md |
| 4.6 | PBO Packing | 04-file-formats/06-pbo-packing.md |
| 4.7 | Workbench Guide | 04-file-formats/07-workbench-guide.md |
| 4.8 | Building Modeling | 04-file-formats/08-building-modeling.md |
Part 5: Configuration Files
| # | Chapter | Page |
|---|---|---|
| 5.1 | stringtable.csv | 05-config-files/01-stringtable.md |
| 5.2 | inputs.xml | 05-config-files/02-inputs-xml.md |
| 5.3 | Credits.json | 05-config-files/03-credits-json.md |
| 5.4 | ImageSet Format | 05-config-files/04-imagesets.md |
| 5.5 | Server Configuration Files | 05-config-files/05-server-configs.md |
| 5.6 | Spawning Gear Configuration | 05-config-files/06-spawning-gear.md |
Part 6: Engine API Reference
Part 7: Patterns & Best Practices
| # | Chapter | Page |
|---|---|---|
| 7.1 | Singleton Pattern | 07-patterns/01-singletons.md |
| 7.2 | Module / Plugin Systems | 07-patterns/02-module-systems.md |
| 7.3 | RPC Communication | 07-patterns/03-rpc-patterns.md |
| 7.4 | Config Persistence | 07-patterns/04-config-persistence.md |
| 7.5 | Permission Systems | 07-patterns/05-permissions.md |
| 7.6 | Event-Driven Architecture | 07-patterns/06-events.md |
| 7.7 | Performance Optimization | 07-patterns/07-performance.md |
Part 8: Tutorials
| # | Chapter | Page |
|---|---|---|
| 8.1 | Your First Mod (Hello World) | 08-tutorials/01-first-mod.md |
| 8.2 | Creating a Custom Item | 08-tutorials/02-custom-item.md |
| 8.3 | Building an Admin Panel | 08-tutorials/03-admin-panel.md |
| 8.4 | Adding Chat Commands | 08-tutorials/04-chat-commands.md |
| 8.5 | Using the DayZ Mod Template | 08-tutorials/05-mod-template.md |
| 8.6 | Debugging & Testing | 08-tutorials/06-debugging-testing.md |
| 8.7 | Publishing to Steam Workshop | 08-tutorials/07-publishing-workshop.md |
| 8.8 | Building a HUD Overlay | 08-tutorials/08-hud-overlay.md |
| 8.9 | Professional Mod Template | 08-tutorials/09-professional-template.md |
| 8.10 | Creating a Vehicle Mod | 08-tutorials/10-vehicle-mod.md |
| 8.11 | Creating a Clothing Mod | 08-tutorials/11-clothing-mod.md |
| 8.12 | Building a Trading System | 08-tutorials/12-trading-system.md |
| 8.13 | Diag Menu Reference | 08-tutorials/13-diag-menu.md |
Supplementary Pages
| Page | Link |
|---|---|
| Enforce Script Cheat Sheet | cheatsheet.md |
| API Quick Reference | 06-engine-api/quick-reference.md |
| FAQ | faq.md |
| Troubleshooting Guide | troubleshooting.md |
This glossary covers 160+ terms across all 92 chapters and 4 supplementary pages of the DayZ Modding Complete Guide.
