# General Information about Workbench

general information regarding the enfusion engine and the Worbench Tool for arma reforger &amp; A4

# Warning - How to Save Your Work and Correctly Use Enfusion Prefabs

<p class="callout danger">****WARNING:****<span style="white-space:pre-wrap;"> In Enfusion, the </span>**World Editor**<span style="white-space:pre-wrap;"> is used to edit worlds but also to create or modify prefabs (which is what we’re doing). To modify prefabs, open the </span>**Resource Browser**<span style="white-space:pre-wrap;">, locate your prefab, double-click on it, and click on </span>**Edit Prefab**<span style="white-space:pre-wrap;">. From this point, you can modify your vehicle prefab or anything else (press </span>****Ctrl + S****<span style="white-space:pre-wrap;"> to save). </span></p>

<p class="callout danger">You can also modify prefab parameters by placing them in a world sub-scene. To save your changes, click Apply to Prefab and select the prefab in the window that has just opened.[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-12/scaled-1680-/8NEimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/8NEimage.png)</p>

# Create a new projet

How to create a new project complying with the rules of art

# New Game +

## ****Introduction****

****Today we gonna see how to create a Enfusion project !**** It's look like useless but i've seen a lot of people who don't know how to set-up correctly a projet 👀.

### ****1. Create a new project in Workbench****

You just have to do right click and create a new project, a window like that will appear

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/NoQimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/NoQimage.png)

Name your project (for the tutorial, it will be New Enfusion Project but attention, you can't rename a project easly so choose a good name for your 1st project).

<p class="callout warning">****Warning****: Be careful with dependencies, it can break your addon if Bohemia Interactive publish a Arma Reforger update who will not be compatible with a dependence or if the author of a dependancies decides to delete his addon from the workshop for example.</p>

<span style="white-space: pre-wrap;">Once that done, you will see the Workbench main menu ! </span>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/YmKimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/YmKimage.png)

### ****2. Introducing Workbench****

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/6awimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/6awimage.png)

<span style="white-space: pre-wrap;">This window is used to </span>****find**** resources from your addon, the base game or from a dependency added at the creation of your project.

<span style="white-space: pre-wrap;">You can also </span>****open files****<span style="white-space: pre-wrap;"> (like World, image, 3D model...) from here (instead of opening the tool and opening the file from the tool).</span>

<span style="white-space: pre-wrap;">In Arma Reforger/Enfusion, the most asset, system, prefab, texture, asset.. can be </span>****override**** <span style="white-space: pre-wrap;">or </span>****duplicate****<span style="white-space: pre-wrap;">. For asset in your addon, you can aslo </span>****inherit****.

<p class="callout info">****Override:****<span style="white-space: pre-wrap;"> Override a asset from an addon or Arma Reforger. Caution, all assets will ride if you override it in your addon so be careful with this functionality. For example, if you override a BTR in your addon for delete all lights, every BTR in game will not have lights.</span></p>

<p class="callout info">****Duplicate:****<span style="white-space: pre-wrap;"> Duplicate a asset from an addon or arma reforger. Unlike override, duplicate allow you to modify an asset without modify every asset in game. For example, if you duplicate a BTR in your addon for delete all lights, just your BTR version will have no light ingame.</span></p>

<p class="callout info">****Inherit:****<span style="white-space: pre-wrap;"> Inherit allows you to create a child of your prefab in your addon. For example, if you create a car and you want to do a blue version of it, you just have to right click on your base car and click on inherit, it will create a new prefab and in this new prefab, you will allows to modify the color of your car and if you modify another setting in your base car, that will update your blue version automatically.</span></p>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/qaaimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/qaaimage.png)

Now you have every tools ! So let's see what each one does:

- ****World Editor****: This tool allows you to create a new map and modify yours future prefabs. (See here)
- ****Particle Editor****: Create or modify easly particles.
- ****Animation Editor****: Create, modify or adapt animations projects (high difficulty level in arma reforger, don't start by this).
- ****Script Editor****<span style="white-space: pre-wrap;">: Create and modify scripts. Enfusion use C and Enforce syntax (See </span>[here](https://community.bistudio.com/wiki/Arma_Reforger:Script_Editor))
- ****Audio Editor****: Create and modify audio projects. (See here)
- ****Behavior Editor****: Allows you to modify AI Behavior.
- ****String Editor****<span style="white-space: pre-wrap;">: Allows you to create translation table or value string for example. (See </span>[here](https://community.bistudio.com/wiki/Arma_Reforger:String_Editor))
- ****Procedural Animation Editor****: Create and modify procedural Animations (See here)

At the bottom, you have the Log Console, you will see here, all of what's appening behind the scenes of the Game simulated by the workbench. You have Errors in red, Warn in Orange and global information in white.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/6Bwimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/6Bwimage.png)

At the top, you have the navigation bar:

- In Workbench menu, you have options of your projects and every parameters of the Workshop. It's here where you can publish to workshop your Work.
- In Editors menu, you have every Tools
- In Window menu, you have every parameters for config your layout in Workbench
- In the plugins section, you'll find plugins for small operations, which are especially useful for mapping.

[![2024-11-28 18-15-13.gif](https://wiki.nabla.sh/uploads/images/gallery/2024-11/2024-11-28-18-15-13.gif)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/2024-11-28-18-15-13.gif)

# Import information and advice

Information about importing 3D models, textures and anything else related to importing files from another platform

# What are LODs and why should I add them?

<span style="color: rgb(149, 165, 166);">When importing 3D models, you should always make sure to add LODs.</span>

<span style="color: rgb(149, 165, 166);">LODs are essentially lower detailed versions of the mesh that get displayed when it is further away from the camera, significantly reducing performance impact.</span>

<span style="color: rgb(149, 165, 166); white-space: pre-wrap;">This is important because even with modern and powerful GPUs, </span>[<u><span style="color: rgb(149, 165, 166);">triangle count does absolutely still matter in a major way</span></u>](https://youtu.be/hf27qsQPRLQ)<span style="color: rgb(149, 165, 166);">.</span>

<span style="color: rgb(149, 165, 166);">Setting up LODs is easy and takes no more than a couple of minutes once you know how it works. Here’s how to do it:</span>

1. <span style="color: rgb(149, 165, 166);">First, you duplicate your object in Blender 2-3 times, naming the versions Name\_LOD0, Name\_LOD1, Name\_LOD2 and so on.</span>
2. <span style="color: rgb(149, 165, 166);">Leave LOD0 the same, but for the other ones, add increasingly aggressive Decimate modifiers and apply them.</span>  
    <span style="color: rgb(149, 165, 166);">For example, if LOD0 has 10k faces, LOD1 might have 5k, LOD2 2k and LOD3 only 500.</span>
3. <span style="color: rgb(149, 165, 166);">Finally, click the Sort button in Enfusion Blender Tools to move the LODs into separate collections.</span>

<span style="color: rgb(149, 165, 166); white-space: pre-wrap;">Some of this info is also described on the </span>[<u><span style="color: rgb(149, 165, 166);">FBX Import page</span></u>](https://community.bistudio.com/wiki/Arma_Reforger:FBX_Import#LODs)<span style="color: rgb(149, 165, 166);">.</span>

<span style="color: rgb(149, 165, 166); white-space: pre-wrap;">In addition to regular LODs, you can also add a final </span>[<u><span style="color: rgb(149, 165, 166);">MLOD</span></u>](https://community.bistudio.com/wiki/Arma_Reforger:Enfusion_Blender_Tools:_MLOD_Baking_Tutorial)<span style="color: rgb(149, 165, 166); white-space: pre-wrap;"> or imposter model, which is basically a super low detail version of the asset, which only has maybe 20-200 triangles and all its detail either baked to a special low res texture, or even just a texture-less material, optionally with vertex colors.</span>  
<span style="color: rgb(149, 165, 166);">This is not necessary for most models, but worth considering for frequently used ones such as trees.</span>

<span style="color: rgb(149, 165, 166); white-space: pre-wrap;">In the Workbench, you can optionally also adjust the distances at which these LOD switches happen by modifying a MeshObjects LOD factors - more on that </span>[<u><span style="color: rgb(149, 165, 166);">here</span></u>](https://community.bistudio.com/wiki/Arma_Reforger:Level_Of_Detail)<span style="color: rgb(149, 165, 166);">.</span>  
  
  
<span style="white-space: pre-wrap;">you can use automtic LOD maker on blender with some plugin: </span>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/53Gimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/53Gimage.png)

[https://blendermarket.com/products/lods-maker--create-level-of-details-in-1-click/?ref=1193](https://blendermarket.com/products/lods-maker--create-level-of-details-in-1-click/?ref=1193)

# Prefab Arma Reforger System

Learn all about how prefabs work on Arma Reforger and Enfusion

# What is the difference between prefab colors?

### ****There are 3 types of prefabs:****

****Blue \[\]****:****

Regular prefabs, you'll want to use these for the vast majority of applications.

****Pink \[\]****:****

This is how PrefabLibrary prefabs differ from their blue counterparts:

- They can be placed from the PrefabLibrary, a special resource browser made for placement of common terrain objects.
- Using parameters stored on the pink variant, the Prefab Library can automatically randomize things scale and rotation on placement.
- If you are not currently using the Prefab Library, you can just stick to the blue variant.

<p class="callout warning">Warning: PrefabLibrary prefabs cannot be edited, for example saving changes to an inheriting version will not work.</p>

****Orange \[\]****:****

PrefabsEditable, these can be edited or deleted ingame by GameMaster.

# Enfusion Workbench Tips

# Simulate Multiplayer (peer Tools) ?

### **About PeerTool:**

PeerTool lets you test your project in MP by launching clients in addition to the host player. It can be configured under “Plugins =&gt; Settings” and enabled in the play button options.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeSgHBUhn1GNVL0VyOTMgv1BmWGfQaAlQXtxlUwxxhVIn49hchGKxRIHzbMb0WxNGgG3_EoDdVk8ApRaI6F4f0dWR8rBDsSUaX9XMmBe3t8pR2Cy8j3GJg5NtX8lu_K3OHyvfMrpuHD759GpY_OHCEVRl0?key=u9GOZ4Ta9Mr13MfCHmz-Dg)

Under “Plugins”, there is also the Dedicated Server Tool, which works in the same way, except that it runs a Dedicated instead of a Listen (= player hosted) Server, which is preferable if you’re developing for this environment.

The Executable paths of peer clients and server respectively need to be set to the Arma Reforger and Arma Reforger Server EXEs.

As config class, you should choose DedicatedServerPluginCLI\_Server, this is where you can configure the world.

Additional parameters such as “-addons” or “-addonsDir” can be specified under “Params” in both Server and Peers config.

When using the Dedicated Server Tool, you do not have to specify addons using the “-addons” parameter for both Server or Peer, it will load the required dependencies automatically.  
  
https://youtu.be/ZnDVq58vq4k

To change the name in the peertool:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/OXSimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/OXSimage.png)

> **(sources: https://docs.google.com/document/d/19VrUpAId4UGjykBw1rTP375Q9l2udNIEHPhTzqEgrSc/edit?tab=t.0)**

# About lights, probe and reflection system in ENFUSION

## ****Introduction****

<p class="callout info">Lights and reflection are, in games engines, a very important feature but also a point that is difficult to set correctly to get a nice rendering.</p>

Today we gonna learn how to create a light environnement in a Shelter for example.

We gonna also learn how to correctly place global probe for map creation.

### ****1. Probe creation, placement and configuration****

<details id="bkmrk-what-are-probe-%3Fligh"><summary></summary>

### ****What are probe ?****

<span style="color:rgba(0,0,0,0.9);background-color:rgb(255,255,255);">Light probes are small spherical objects that capture lighting information from the environment:</span>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-12/scaled-1680-/vCNimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/vCNimage.png)

<span style="color:rgba(0,0,0,0.9);background-color:rgb(255,255,255);">They are strategically placed in the scene, usually at points where lighting changes dramatically or where objects interact with light. The game engine then uses the light probes to interpolate the lighting of objects not directly illuminated by the light sources. In this way, you can create realistic effects such as indirect lighting, reflections and shadows without having to calculate them for every pixel on the screen.</span>

### ****How are the different type of probe ?****

There are three different type of probe:

1. ****Global Placed****: Used for map creation, modify every reflection on map environnement
2. ****Global Sky****: Used for map creation, modify sky reflection on map environnement
3. ****Local****: For buildings or area on your map who don't have a good reflection render (cf. @TODO)

<p class="callout info">For this tutorial, will only explain how to use Local probe for a building, for learn how to use Global Placed &amp; Global sky probes, see @TODO.</p>

### ****How to create Local Probe ?****

Search in ressource browser "*****ProbeHouse\_Base.et*****" and drag &amp; drop it in into your house, in Hierarchy window:

[![2024-12-13 21-27-52.gif](https://wiki.nabla.sh/uploads/images/gallery/2024-12/2024-12-13-21-27-52.gif)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/2024-12-13-21-27-52.gif)

<p class="callout warning">If the probe is not correctly positioned, the reflection in your building will not update!</p>

And finaly, we have Probe properties:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-12/scaled-1680-/zvIimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/zvIimage.png)

- ****Visible****: On/Off
- ****Type****: Explained above
- ****Priority****: Priority in "render", always 5
- ****Refresh****<span style="white-space:pre-wrap;">: When the probe will refresh ? On demand if environnement will update during the game (Always) </span>
- ****Near plane****<span style="white-space:pre-wrap;"> &amp; </span>****Far plane****: I'll come back to this a little later in topic.
- ****Visible Distance****: Visible Distance of probe reflection modification (150m is a good value, don't exceed for optimization)
- ****Rendering****: Which relfection will the probe capture?
- ****Interior Probe****: If the probe is located indoors, check yes otherwise no
- ****Capture Lights****: Turn it on if you have lights in your room.
- ****Debug Show****: Debug visualisation on the probe sphere.

As we've seen, a probe will capture and calculate reflections for all light sources and reflections from things checked in Rendering and Capture Lights.

****Near Plane****<span style="white-space:pre-wrap;"> &amp; </span>****Far plane**** <span style="white-space:pre-wrap;">are the parameters that define the zone from which the probe will retrieve information on reflections. Near Plane is the most precise zone and consumes the most performance, so </span><span style="background-color:rgb(241,196,15);">Near Plane &lt; Far Plane</span><span style="white-space:pre-wrap;">. And Far Plane allows less precise calculation of relfections, but saves performance. </span>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-12/scaled-1680-/V9Iimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/V9Iimage.png)

In yellow, there is Far Plane &amp; in blue, there is Near Plane.

Capture light must be turned on if there are lights in your room, here are a comparation without and with captured light:

Without:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-12/scaled-1680-/X4Limage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/X4Limage.png)

With:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-12/scaled-1680-/qObimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-12/qObimage.png)

<p class="callout success">For a good result, you can also play with some parameters in Light Properties</p>

</details>### ****2. Lights creation and configuration****

<details id="bkmrk--1"><summary></summary>

</details>