Custom map addons are extra buildings, walls, and props you place around the world β a rebuilt
airfield, a new trader city, custom bases, and so on. The workflow is: build your scene in the
built-in Arma 2 editor, export it to an .sqf, trim that file down to
just the objects, and load it on your server so the objects spawn for everyone.
- Launch Arma 2 with the Epoch mod loaded (see step 1) so Epoch's buildings β not just base Arma 2 objects β are available in the editor.
- You'll need PBO Manager to unpack/repack mission files. Download it here.
- Back up your mission PBO (and
dayz_server.pbo) before editing anything.
Part 1 β Build it in the editor
-
Launch Arma 2 with Epoch loaded
Start the game through your usual Epoch launcher (DayZ Launcher / DayZ Commander), or use a desktop shortcut that loads the Epoch client mod, e.g.:
"...\ArmA2OA.exe" -mod=@DayZ_EpochLoading Epoch ensures its custom buildings appear in the editor. (If you only use base Arma 2 objects you can skip the mod, but most Epoch builds use a mix of both.)
-
Open the editor β 2D or 3D
From the main menu go to Single Player β Editor and pick the map you're building for (e.g. Chernarus). This opens the 2D editor β a top-down map view with precise coordinates.
You can also build in the 3D editor, which lets you place, rotate, and nudge objects visually in first/third person instead of on a top-down map β great for lining things up by eye. Use whichever you prefer; the export and clean-up below work the same for both. (Steps 3β4 describe the 2D editor's controls β the 3D editor uses its own click-to-place menus, but you still create a unit and place objects, and the exported SQF is identical.)
Shortcut: from the main menu, pressLeft Alt+Eto jump straight into the 3D editor. -
Create a center, group, and unit
Double-click an empty spot on the map to open the Units insert dialog and place a single playable unit (set its Control to Playable or Player). Placing that first unit automatically creates a center (its side) and a group for it.
The unit is only there so the editor will let you preview the scene and walk around it. It's a throwaway β you'll delete the center, group, and unit out of the exported file in Part 2. You only ever need one. -
Place your objects
Switch the insert type to Empty (press
F7), then choose a category (Buildings, Military, Camp, etc.) and place the objects you want. Drag to move, and use the azimuth field (or the rotate handle) to angle each one.Hit Preview at any time to spawn in as your unit and check how the build looks in 3D, then press Esc β Continue to return to the editor and keep tweaking.
-
Export to SQF
With everything placed, export the mission to SQF. Arma 2 writes your edited missions to:
C:\Users\<you>\Documents\ArmA 2 OA\missions\<YourMission>.Chernarus\Open the exported
.sqfin a text editor (Notepad++ recommended). At the top you'll see the center, group, and unit you created, followed by one block per object you placed.
Part 2 β Clean up the exported SQF
The export contains your throwaway unit as well as your objects. Delete the
createCenter, createGroup, and unit (createUnit) lines β
keep only the createVehicle object blocks.
Remove the lines that look like this (the center / group / unit):
_center_0 = createCenter west;
_group_0 = createGroup _center_0;
_unit_0 = objNull;
if (true) then
{
_this = _group_0 createUnit ["Survivor2_DZ", [6500,7500,0], [], 0, "CAN_COLLIDE"];
_unit_0 = _this;
_this setUnitAbility 0.6;
};
Keep the object blocks (one per item you placed):
_vehicle_0 = objNull;
if (true) then
{
_this = createVehicle ["Land_Mil_Barracks_i", [6510.4, 7521.8, 0], [], 0, "CAN_COLLIDE"];
_vehicle_0 = _this;
_this setDir 145.2;
_this setPosATL [6510.4, 7521.8, 0];
};
activateAddons [...],
initAmbientLife, or a trailing processInitCommands; β those are safe to
remove too. You just want the list of createVehicle blocks. Save the trimmed file as
something memorable like custombuildings.sqf.
Part 3 β Add it to your server
Either way, the objects must be created server-side so they spawn once and exist for every player. Where you keep the file decides whether other people can copy your build:
MPMissions\
is downloaded by every player who connects β anyone can unpack it and copy your layout.
The dayz_server.pbo is never sent to clients, so anything you load from
there stays private. Use Method B if you want to protect your work.
Method A β from the mission (simplest)
-
Drop the file into the mission
With PBO Manager, unpack your mission from
MPMissions\(e.g.DayZ_Epoch_11.Chernarus.pbo). Inside, create acustomfolder and copy your trimmedcustombuildings.sqfinto it. -
Call it from
init.sqfOpen the mission's
init.sqfand add this near the bottom:if (isServer) then { [] execVM "custom\custombuildings.sqf"; };The
isServercheck means the server spawns the objects once and replicates them to everyone β not once per client. -
Repack and restart
Repack the mission folder back into a
.pbo, drop it back intoMPMissions\, and restart the server. Note: because the mission is sent to every client, your layout can be extracted by anyone who joins.
Method B β from dayz_server.pbo (protects your build)
-
Unpack the server PBO
With PBO Manager, unpack
dayz_server.pbofrom@DayZ_Epoch_Server\addons\. -
Create a
MapAddonsfolderInside the unpacked
dayz_serverfolder, create a folder namedMapAddonsand copy your cleaned.sqffile(s) into it, e.g.dayz_server\MapAddons\custombuildings.sqf. You can keep several builds here as separate files. -
Call it from
server_functions.sqfOpen
dayz_server\init\server_functions.sqfand add this at the very bottom:[] execVM "\z\addons\dayz_server\MapAddons\custombuildings.sqf";
\z\addons\dayz_server\is the internal path to the contents ofdayz_server.pbo. Add one line per file if you split your builds. NoisServerwrapper is needed here βdayz_server.pboonly ever runs on the server. -
Repack and restart
Repack
dayz_server.pbo, put it back in@DayZ_Epoch_Server\addons\, and restart. The objects appear in-world for everyone β but the source files never leave your server.
Going further β missions & AI
Based on this DayZ Epoch custom building editor video. Object classnames and paths vary by map and Epoch version β always test on a local server before going live.