πŸ—οΈ

Custom Map Addons in the Editor

Build in the Arma 2 editor β†’ export to SQF β†’ load it on your DayZ Epoch server

Based on this video tutorial β†—

Sam's SQF Manager β†—

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.

⚠️
Before you start
  • 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

  1. 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_Epoch

    Loading 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.)

  2. 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, press Left Alt + E to jump straight into the 3D editor.
  3. 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.
  4. 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.

  5. 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 .sqf in 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];
};
πŸ’‘
Some exports also include header lines such as 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:

πŸ”’
Want to stop people stealing your addons? The mission PBO in 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)

  1. Drop the file into the mission

    With PBO Manager, unpack your mission from MPMissions\ (e.g. DayZ_Epoch_11.Chernarus.pbo). Inside, create a custom folder and copy your trimmed custombuildings.sqf into it.

  2. Call it from init.sqf

    Open the mission's init.sqf and add this near the bottom:

    if (isServer) then {
        [] execVM "custom\custombuildings.sqf";
    };

    The isServer check means the server spawns the objects once and replicates them to everyone β€” not once per client.

  3. Repack and restart

    Repack the mission folder back into a .pbo, drop it back into MPMissions\, 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)

  1. Unpack the server PBO

    With PBO Manager, unpack dayz_server.pbo from @DayZ_Epoch_Server\addons\.

  2. Create a MapAddons folder

    Inside the unpacked dayz_server folder, create a folder named MapAddons and copy your cleaned .sqf file(s) into it, e.g. dayz_server\MapAddons\custombuildings.sqf. You can keep several builds here as separate files.

  3. Call it from server_functions.sqf

    Open dayz_server\init\server_functions.sqf and 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 of dayz_server.pbo. Add one line per file if you split your builds. No isServer wrapper is needed here β€” dayz_server.pbo only ever runs on the server.

  4. 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

πŸ—ΊοΈ
Planning to turn editor builds into AI missions (DZMS / WAI), reuse a layout at different locations, or swap classnames in bulk? Run your editor-exported SQF through Sam's Mission SQF Manager β€” it converts ArmA editor exports into DZMS / WAI / custom spawn formats, with relative positioning and classname replacement, so you don't have to hand-edit coordinates.

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.