Find help on the FRENCH REFORGER MOD discord if you need ✅ Check our progress about this wiki here 📜

3D Building Creation Tutorial

The goal of this documentation is to provide all the tools needed to create a building from A to Z in Arma Reforger.

Prerequisites

Arma documentation

3D Creation

A - Creating the Hierarchy

Start by creating your working hierarchy, right-click → New Collection.

image.png

What do these collections mean?

This part will mainly be done in Blender, with an import into the Reforger tool at the end.

  1. Creating the 3D model
    For building creation, there aren’t necessarily any difficulties; just remember that walls and floors are cubes with one visible face and one invisible face. This setup is essential to prevent collisions and in-game issues.

Example:
I’ve created a wall for the building’s frame by subdividing the edges of the foundation cube. As you can see, one side is split into three faces. Upon closer inspection, there are two faces overlapping inside (one visible and one invisible). THIS IS NOT GOOD.
image.png

image.png

To delete if, select the face -> suppr -> deletefe face

after, you can create interior wall

  1. Adding Materials for MultiMat
    After creating the interior walls, apply a material (an emat in Reforger), allowing up to 7 textures per material. Apply materials from the bottom up, floor by floor.
    To Create a Material: Go to Material → + → name it logically, like YOUR_OBJECT_NAME_INT_or_EXT_n.
    image.png
    To Apply a Material: Select face(s) → Material → check the desired material → Assign.
  2. Adding Door and Window Frames
    In order to create thsi you will need to get the right dimensions here the wiki from reforger:

Measurement

Small Window

Large Window

Min distance from the floor

169 cm

99 cm

Common dimensions


Height

47

72

118

142

182*

Width

70

70 × 47

70 × 72

-

70 × 142

70 × 182

90

-

90 × 72

-

90 × 142

90 × 182

110

-

-

110 × 118

110 × 142

-

130

-

130 × 72

-

130 × 142

130 × 182

170

-

170 × 72

-

170 × 142

170 × 182

195

-

195 × 72

195 × 142

195 × 182

-

Some other uncommon formats exist, such as e.g 260×230 for the air control tower.

It’s better to create cutouts for doors and windows by defining their dimensions precisely. Two techniques:

Creating the Box Volume
Select all interior building faces, duplicate them, and form a cube with visible exterior faces. Do this floor by floor before adding the roof.

image.png

Creating Sockets for Portals
In the Memory Points collection, add an empty point.
image.png


PRO TIPS:

Creating the BSP
BSPs help attenuate sound within the building. Duplicate the LOD, remove excess details, rename it BSP_n, and place it in Light Portals with dummyvolume applied.
BSP Validation: Go to Enfusion ToolMesh Topology → Check “Non-Planar Faces,” “Non-Convex Geometry,” “Non-Manifold Edges” → Create Validator (Temporary BSPs appear in Invalid_Topology).
image.png
PRO TIPS:

LOD Verification
Once all your frames, box volumes, portals, and BSP are correctly set:

Apply Weighted Normal

Arma doesn't like objects that are too sharp, so just go to your LOD --> modify --> Normals --> Weighted Normal.Then click on “keep sharp” and apply this to your LOD.Capture d'écran 2025-02-24 235449.png


Creating Multiple LODs
Use a mod for LOD separation if desired. Select LOD0LODs MakerMake Lod Object.

Creating Colliders
Duplicate your LOD0 mesh in Object Mode (Shift + D). Rename it UTM_LOD0, try to add an DECIMATE effect on it to reduce a bit some detail in order to make lighter collider (blue wrench)image.png

go to Enfusion ToolColliders Setup to set:

Creating an Occluder
Create a cube, place it against a solid wall, apply dummyvolume, and rename it OCC_n. Select Sort Object.
image.png

You will need to do this operation only on the face that are closed (non windows and door)

Export, Import, and 3D Testing

Only once all steps are completed, you can export your building: go to FileExportFBX → Check Custom Properties. Open the Enfusion tool and import it!
PRO TIPS:

Once imported, select the XOB and adjust the following properties:

PRO TIPS:



UV creation in blender

This process will start in Blender, then move to Substance Painter, and finally Enfusion Tool.

I recommend using textures at 4096 or even 8192 resolution for higher quality and precision in Substance. In the Reforger tool, you can later downscale textures to 2048 if needed.

UV Creation in Blender

  1. Separate Faces by Material for Easier UV Creation
    Select LOD0Edit Mode → select all faces → P “by material”.
  2. Adding Seams
    Seams help control how textures are applied to objects. For instance, with a cube, if unfolded, you have six faces. Without seams, the texture will apply uniformly. With seams on all edges, the cube splits into six squares.
    • To create a seam, select edges → right-click → Mark Seam.
      image.png
    PRO TIP: In this example, I selected everything and created seams, but I don’t want interior wall seams (e.g., under windows). So, select those specific edges → right-click → Clear Seam.
  3. Creating UVs
    UVs unfold the 3D model (e.g., a cube with six faces). Start by renaming the UV map for both materials (which remain separate).
    image.png
    • For better visibility, go to each material, click the yellow circle next to Base ColorImage TextureNewGenerate TypeColor Grid.
      image.png
    • Click UV Editing (top menu) → New (4096x4096) → Color Grid. A colored grid will appear on the left.

      A colored grid has appeared on the left.
      Now, when I select all faces in Edit Mode for a single material, I get a completely broken UV layout.
      image.png
    Select all faces in Edit Mode of a single material. If the UV is misaligned:
    • Press U → Reset, then U → Unwrap to correct it.
      image.png

    You can also use UVPackmaster3:
    • After resetting and unwrapping, click A (to select all) in the left window → Pack.
      image.png

    Do the same things for each material

  4. Verification
    Once UVs are set, return to Layout and verify that the grid squares aren’t stretched.
    image.png
  5. Export
    Before exporting, select all materials and join them to the same LOD with Ctrl + D. Export the FBX with only LOD0.

Creating Texture Masks in Substance Painter

  1. Import and Setup
    In Substance Painter, go to NewPBR - Metallic Roughness Alpha-blend model → select your FBX → set resolution to 4096.
    (you can use the export preference from bohemia: https://github.com/BohemiaInteractive/Arma-Reforger-Misc/tree/main/Art/Substance%20Export%20Profiles) OR you can use my preset export https://drive.google.com/file/d/1f9OWzuCv8zRdU5heMJhle_m5PEqSlm6z/view?usp=drive_link
  2. Put the export preset on Documents\Adobe\Adobe Substance 3D Painter\assets\export-presets

    image.png
    You’ll see two views: the 3D view on the left and the 2D view on the right. At the top right, you’ll find your two materials.

Before starting, set up the Substance project:

  1. Select a material → Texture Set SettingsBake Mesh Maps.
  2. Set the resolution to 4096.
  3. Check Use Low Poly Mesh.
  4. Set Antialiasing to x4.
  5. Choose Match by Mesh Name.
  6. Bake the selected textures.

Repeat these steps for each material.

  1. Add User Channels: Add channels for user0, user1, user2, user3, and user4.
  2. Delete Default Layer: In the Layers panel, delete the default layer.
  3. Create Folders:
    • Create a folder named Mask and add three fill layers. Assign each a black mask and rename them R, G, and B.
    • Create another folder named VFX and add two fill layers with black masks, renaming them Rvfx and Gvfx.
  4. Set User Properties:
    • For each layer, go to Properties - Fill and deselect unused user channels.
    • Assign channels: R=user0, G=user1, B=user2, Rvfx=user3, Gvfx=user4.
  5. Create Two Empty Layers: Place them below the existing fill layers.
    • For the export mask, set user0, user1, and user2.
    • For the export VFX, set user3 and user4.

This setup should be complete and ready for texturing.
image.png

  1. Object texturing
    As mentioned above, a multimat can include:

This setup totals six textures. Here, I won’t use Substance Painter's textures, as I’ll apply the vanilla game textures instead. However, the concept remains the same. In this template example, I’ll apply as many details as possible to the faces.

image.png
Here, in each layer, I’ve added a base color corresponding to the mask colors, with different colors for the floor, walls, ceiling, and tags on the VFX masks.

c - Export
Once finished, go to FileExport Textures.
Select an output directory → choose the output template “MY PRESET REFORGER.”or "Arma reforger BCR"
image.png

If you select one of the materials (e.g., `CUBE_EXT_01`), you can choose to export specific textures—here, only the VFX and global_mask.

Click *Export* to complete the process.

Import and modification in Enfusion Tool

a - Import
Once imported, select the XOB file and modify the following properties:

b- Modificaiont of the Emat

Go to the emat concerning -> change class -> MatPBRMulti
image.png

c - Import your texture masks:

image.png

Prefab Building Creation

a - Prefab Création

Open a custom world, drag and drop your XOB on your view port.

Capture d'écran 2024-12-17 164049.png

Take your generic entity en drag and drop on your ressource browser and give it a name like building_base

Capture d'écran 2024-12-17 164136.png

b - Add Component

Edit your prefab and on object properpy :

c - Add probeVolume

The volume probe allows you to have darkened buildings. To add more, simply search for “probe” and add it directly as a child in the building tree.

Capture d'écran 2024-12-17 165146.png

d - Add furniture

An empty building is fine, but a building full of supplies is better! Following the nomenclature, there's the empty “building_base” with a prefab inside, usually called “building_furniture”.

To do this, open a custom world, drop the prefab into the viewport, then add a genericentity in the viewport's tree at coordinates 0.0.0.

Capture d'écran 2024-12-17 170020.png

Capture d'écran 2024-12-17 170130.png

Then all the objects you place in the viewport must be put in the genericentity like this.

Capture d'écran 2024-12-17 170444.png

Then select the generic entity, move it to your building's resource browser and give it the name building_furniture.

Capture d'écran 2024-12-17 170627.png

Duplicate your batiment_base and give it the name of the building --> edit it

Finally, move the building_furniture into the building tree, as the generic entity was at coordinates 0.0.0, the furnitures will be in the same place where you placed them.

Capture d'écran 2024-12-17 170924.png

LODs making to improve performance

As every 3D model importing in a game it's supper important to have multiple Level Of Detail to be improve performance:


here the explainaition for it: https://wiki.nabla.sh/books/general-info-tips-for-the-workbench/page/what-are-lods-and-why-should-i-add-them