# 2. Creation of a vehicle and all aspects of the import and its integration into ENFUSION

Tutorial for importing and integrating a vehicle from an existing 3D model.

This is the tutorial for the 1st integration of your future vehicle. This tutorial will help you get your vehicle up and running. The fact that it's beautiful and 100% functional, as well as having cool features, is covered in the other categories that follow this one.

**Prerequisite:**

- **A valid 3D model** without too many faces (optimization required)
- If possible, a 3D model with interior (important for Arma Reforger/4)
- **100% understanding of the introduction to vehicles category**

# Preliminary Steps

**Information: This tutorial will be based on a French army vehicle, the VBMR-L Serval. The 3D model is from Arma Mod France Studio where i'm Enfusion Integrator.**

### ****1. Create Necessary Folders****

To start your project correctly, create a folder specifically for your project to centralize your files and other resources.

Once this folder is created, make two subfolders:

- One for 3D models, name it "Sources"
- Create another subfolder within "Sources" called "Textures"

### ****2. Create an ENFUSION Project****

Once the project is created, open it in your file explorer (Windows), and bohemia interactive recommend creating this folder structure:

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

****Recommended File Structure for Arma Reforger****<span style="white-space: pre-wrap;"> You can organize it differently, but you may encounter bugs and difficulties.</span>

<p class="callout info">****Reminder:**** Rectangles represent folders. Bubbles &amp; clouds represent a file or other item.</p>

And, of course, replace "SampleCar\_01" with the name of your vehicle, following this format.

Once this is done, you can move on to the next step.

### ****2. The 3D Model****

The next step is to find an appropriate 3D model. Here are some tips for choosing well:

- Low poly PBR model (like Unreal Engine or Unity)
- With interior (if possible)
- A manageable quantity of polygon

### ****3. Vehicle creation "RoadMap"****

![](https://wiki.nabla.sh/uploads/images/drawio/2024-12/drawing-5-1733667161.png)<p class="callout info">If you need to, you can go back at any stage to the previous stages to achieve a good final result.</p>

# 3D Model preparation

## ****Introduction****

<span style="white-space: pre-wrap;">For create a usable 3D model, you have to adapt it for Enfusion. For exemple, </span>****Split**** somes vehicle parts like Wheel and lights. Dans une étape future, nous ferons le squelette du véhicule ainsi que les vertex groups pour rendre notre véhicule plus vivant avec des animations.

<p class="callout danger">****ATTENTION**** <span style="white-space: pre-wrap;">⚠️: </span>****Vérifier MAINTENANT si votre modèle a les bonnes dimensions en jeu (échelle)****<span style="white-space: pre-wrap;"> pour éviter de devoir tout recommencer depuis cette étape si votre modèle n'a pas les bonnes dimensions ⚠️</span></p>

### ****1. Split parts in Blender****

C'est simple, sélectionnez votre 3D en mode objet, passez en mode Edition, puis sélectionnez les faces ou arêtes ou points sur votre modèle 3D (maintenez shift si vous voulez sélectionner plusieurs zones) et faite clic droit et separate puis selection:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/NYFimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/NYFimage.png)

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

<p class="callout success">Une fois cela fait, vous savez comment séparer vos feux de votre modèle 3D principal. Faite les pour toutes les surfaces qui vont émettre de la lumière.</p>

<p class="callout warning">Pour les feux, faite en sorte qu'ils soit indépendants pour faire en sorte que les joueurs peuvent les casser.</p>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/Mavimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/Mavimage.png)

Une fois toutes vos lumières séparés, copiez les toutes et ouvrez une nouvelle instance blender, puis, coller le tous dans votre nouveau blender. Une fois cela fait, supprimez ce que vous avez copier coller dans le projet principal du véhicule et sauvegardez les deux projets.

Après avoir fait les lumière, faite de même pour les vitres.

Faite également de même avec les roues.

### ****2. Création des colliders****

#### ****Information a propos des colliders sur ENFUSION:****

Les colliders servent a donner une physique a un modèle 3D. Pour ce faire, "on ne peut pas utiliser le véhicule en lui même". On doit passer soit par des bouts de 3D et/ou par des boîtes plutôt simples pour éviter de erreurs.

Dans la configuration des colliders pour un véhicule, il y a différend critère qui entre en jeu:

<table id="bkmrk-layer-presets-%28type%29"><colgroup><col style="width: 240px;"></col><col style="width: 240px;"></col><col style="width: 302px;"></col></colgroup><tbody><tr><td>Layer Presets (type)

</td><td>Type de forme

</td><td>Description

</td></tr><tr><td>FireGeo

</td><td>3D du véhicule

</td><td>Permet de gérer les collisions avec les balles. Vous pouvez régler le type protection et sa puissance ainsi que les particules qui vont apparaître quand les joueurs vont tirer dessus.

</td></tr><tr><td>VehicleSimple

</td><td>Forme la plus simple possible, si besoin, découper le véhicule en plusieurs colliders

</td><td>Permet de gérer les collisions avec les véhicules et le terrain.

</td></tr><tr><td>VehicleComplex

</td><td>Forme simple, reprendre des bouts de 3D du véhicule comme sa base suffit.

</td><td>Permet de gérer les collisions avec les autres véhicules et les objets, bâtiments...

</td></tr><tr><td>ViewGeo

</td><td>Doivent ressembler a ceux du FireGeo

</td><td>Permet d'indiquer aux IA où tirer et les limites du véhicule.

</td></tr><tr><td>Mine

</td><td>Simple, cylindre. Au niveau des roues sur le modèle principal

</td><td>Pour activer les mines.

</td></tr></tbody></table>

Pour chaque collider, vous pouvez y affecter un Game Material et un Layer Presets.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/W8kimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/W8kimage.png)

<p class="callout info">Le Game Material n'est pas obligatoire sauf pour le FireGeo et ViewGeo.</p>

Un collider est tout le temps nommé avec un préfix, chacun a son but précis et a un rôle dans l'optimisation:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/bUWimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/bUWimage.png)<span style="white-space: pre-wrap;"></span>

Voici un graphique qui monte quel type de colliders est optimisé ou pas:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/8hDimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/8hDimage.png)

<p class="callout danger">Les colliders VehicleSimple seront toujours en UCX ⚠️</p>

#### ****Créer vos colliders:****

****Commencer par créer une nouvelle collection "Colliders".****

Pour ce faire, vous devez au minimum faire un collider par Layer Presets (cf. plus haut). Pour les formes simples, utilisez un cube pour faire vos formes, vous pouvez sans soucis en utiliser plusieurs comme on peut le voir sur le screen en dessous.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/k5Qimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/k5Qimage.png)

Pour les colliders simple, ne pas ajouter ni de face, ni d'arêtes supplémentaire. Pour les colliders normaux, vous pouvez récupérer des bouts de votre modèle 3D.

<p class="callout warning"><span style="white-space: pre-wrap;"> </span>****ATTENTION****: Pour le ViewGeo et le VehicleComplex, les bouts de 3D ne doivent pas être trop complexe.</p>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/v0himage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/v0himage.png)

**(Exemple avec cette image: J'ai volontairement pas mis les détails pour le collider VehicleComplex)**

Pour réaliser les colliders des roues, il faut un VehicleComplex, un FireGeo et un FireView (Cf. plus haut pour plus d'information).

### ****3. Création du squelette**** 

Un squelette va permettre de définir des positions et pourvoir animer notre véhicule.

Voici quelques règles importantes a respecter pour que le véhicule ne soit pas buggé:

- Les os doivent toujours être orienté en Y+ (cet à dire que la partie la plus fine doit pointer vers Y+ qui correspond à la boule verte rempli sur l'image si dessous

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/Qsyimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/Qsyimage.png)

- Pour plus de visibilité, il est préférable qu'il soient d'une taille moyenne, pas trop gros, pas trop petit.
- Faites attention à bien respecter le nommage des Os pour éviter toutes confusion une fois l'intégration débutée
- La base des os est la position finale dans Enfusion (Donc la partie la plus large dans l'aperçu Blender est la position précise de la position dans enfusion)
- Il est conseillé de créer autant d'os qu'il faut, les os ne servent pas forcément à animer des bouts de 3D mais peuvent également définir une position d'un objet qu'on placera plus tard sur le véhicule.
- Le squelette a une hiérarchie, cet à dire que certains os sont enfant d'os parent. Ce principe est important pour que l'intégration soit correctement faite, plus pratique et optimisée.

****@TODO: Exemple d'un squelette.****

# First Import of all 3D & Textures

## ****Introduction****

Pour exporter ce qu'il y a dans votre projet Blender vers ENFUSION, vous devez respecter quelques règles. On verra aussi comment importer &amp; correctement configurer les textures.

### ****1. Exporter les modèles 3D****

Tout d'abord, supprimez ce qui ne vous sert pas ou qui est déjà présent dans un autre projet blender.

Par la suite, on va définir une liste de chose qu'on veut que Blender exporte et d'autres pas. Pour ce faire, a chaque fois que vous voudrez exporter votre projet Blender vers Enfusion, sélectionnez tout (en mode objet) avec la touche A ou CTRL+A puis, allez dans File/Export/FBX.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/XwTimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/XwTimage.png)

Une fois cela fait, on va définir ces paramètres:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/ZDVimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/ZDVimage.png)

<p class="callout info">****Tips****: Vous pouvez enregistrer ces paramètres en cliquant sur le petit + au niveau de Operator Presets pour enregistrer le preset de paramètre  
[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/GsJimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/GsJimage.png)</p>

Une fois cela fait, nommez le par le nom de votre véhicule. Puis exportez le dans:

```
{Le nom du dossier de votre véhicule}/Assets/Vehicles/{Le nom de votre véhicule}/
```

Pour les modèle 3D des lumières, nommez les {Type de lumière}\_{Initial en Anglais du coté}01 ou 02 ou 03. Exemple: Headlight\_L01 pour le phare gauche N°1. Puis exportez les dans::

```
{Le nom du dossier de votre véhicule}/Assets/Vehicles/{Le nom de votre véhicule}/VehParts/Lights
```

Pour les modèle 3D des vitres, nommez les Glass\_{Initial en Anglais du coté}01 ou 02 ou 03. Exemple: Glass\_L01 pour le phare gauche N°1. Puis exportez les dans:

```
{Le nom du dossier de votre véhicule}/Assets/Vehicles/{Le nom de votre véhicule}/Dst
```

Une fois cela fait, dans enfusion, faite clic droit sur un modèle et faite Register And Import puis cliquez sur As Model.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/SUHimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/SUHimage.png)

<p class="callout info">****Conseil****: Pendant l'import, Enfusion va créer les matériaux dans le dossier "Data". Il est possible qu'il y ai des duplicata, vous pouvez ré-utiliser.</p>

<p class="callout info"><span style="white-space: pre-wrap;">Il est important que vos modèles 3D et vos matériaux ai des noms cohérant et logique pour être plus à l'aise avec leurs intégrations. </span></p>

### ****2. Importer les textures****

Il vous suffit de déposer vos textures dans le dossier Data et cliquer sur Yes to all quand Enfusion va vous demander une autorisation:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/SSaimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/SSaimage.png)

<p class="callout info">****Conseil****: Créer un dossier "Textures" pour mettre vos .png</p>

Quand vous allez importer, ENFUSION va créer des fichier textures (.edds), dans ces fichier, vous pouvez sélectionner un tas de paramètre d'import pour votre texture

<p class="callout info">****Conseil****: Ouvrez votre .edds puis allez dans la catégorie Import Settings et assurez vous que l'option "Color Space" est bien réglé sur SRGB. Si elle ne l'est pas, votre texture aura l'air pâle et sans beaucoup de couleur.</p>

Une fois vos textures importés, vous devez configurer des matériaux (.emat -&gt; Enfusion Mat). Ces matériaux servent a définir un tas de paramètre pour définir comment la texture va se comporter en jeu (Exemple: Réflexion de la lumière, Emissivité...).

<p class="callout warning">Les matériaux sont crée que quand vos modèles sont importés, commencez par importer vos modèle avant de créer les matériaux.</p>

<p class="callout info">****Conseil****: Pour éditer un matériaux et voir en temps réel les modifications sur votre modèle, vous pouvez ouvrir le .xob de votre modèle et cliquer sur le matériaux pour le modifier et voir en temps réel les modifications.  
[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/lCQimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/lCQimage.png)</p>

Il ne vous reste plus qu'a mettre aux bons emplacements les textures (BCR: Couleur, NMO: Réflexions et modification pour "les jeux de lumières") et régler votre matériaux:

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/9EWimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/9EWimage.png)

Vous pouvez également changer le type de matériaux en cliquant sur "Change Class" en haut à droite. Il en existe beaucoup mais pour les véhicules, il y a MatPBRBasicGlass qui permet de réaliser les matériaux des vitres et de régler par exemple, la distorsion de la lumière. Pour chaque class de matériaux, il existe des paramètres propres a chacun.

# Création des préfabs

## ****Introduction****

<span style="white-space: pre-wrap;">Dans cette partie, nous allons créer les préfabs de base pour faire en sorte que votre véhicule soit jouable. </span>

### ****1. Création du préfab du véhicule****

Bohemia a mis à disposition aux moddeurs, des préfabs dis "****base****". Il permettent d'avoir une base tous le temps à jour avec tous les components (comportement) que le véhicule en lui même a besoin.

Il en existe plusieurs type qui remplissent des missions différentes:

<table class="align-center" id="bkmrk-nom-descriptionwheel"><colgroup><col style="width: 197px;"></col><col></col></colgroup><tbody><tr style="height: 10px;"><td class="align-left"><span style="white-space: pre-wrap;">Nom </span>

</td><td class="align-left">Description

</td></tr><tr style="height: 10px;"><td class="align-left">Wheeled\_base.et

</td><td class="align-left">Préfab base pour créer un nouveau type de véhicule. Ne pas utiliser pour créer votre véhicule mais pour créer un nouveau type de véhicule

</td></tr><tr><td class="align-left">Wheeled\_APC\_base.et

</td><td class="align-left">Préfab base pour créer un véhicule de type Amphibie. Il a été utilisé pour le BTR70 par exemple.

</td></tr><tr><td class="align-left">Wheeled\_Car\_base.et

</td><td class="align-left">Préfab base pour créer un véhicule simple a quatre roues. Le plus commun.

</td></tr><tr><td class="align-left">Wheeled\_Trunk\_base.et

</td><td>Préfab base pour créer un camion.

</td></tr><tr style="height: 10px;"><td class="align-left">Helicopter\_base.et

</td><td>Préfab base pour créer un hélicoptère.

</td></tr></tbody></table>

Bohemia a également mis à disposition aux moddeurs, des préfabs dis "****base****" pour ce qui va être attaché au véhicule comme les roues ou encore des fonctionnalités comme un module sur un camion par exemple. Il permettent d'avoir une base tous le temps à jour avec tous les components (comportement) que le module en lui même a besoin.

<details id="bkmrk-pourquoi-s%C3%A9parer-des"><summary>Pourquoi séparer des parties de mon véhicule 🤔</summary>

Cette possibilité est très pratique si votre véhicule possède plusieurs variantes que vous souhaitez également intégrer dans enfusion. Cela permet d'éviter comme dans Arma 3 d'avoir un modèle 3D par version et donc un préfab a refaire de 0 pour chaque version.

</details>Il en existe plusieurs type qui remplissent des missions différentes:

<table class="align-center" id="bkmrk-nomdescriptionvehicl"><colgroup><col style="width: 240px;"></col><col style="width: 653px;"></col></colgroup><tbody><tr><td>Nom

</td><td>Description

</td></tr><tr><td>VehicleWheel\_base.et

</td><td>Permet de créer le préfab d'une roues quelconque (camion, voiture, hélicoptère...)

</td></tr><tr style="height: 10px;"><td>Vehicle\_Part\_base.et

</td><td><span style="white-space: pre-wrap;">Permet de créer un préfab d'un modèle 3D quelconque qui va être par la suite attaché au préfab du véhicule. </span>

</td></tr><tr><td>DestructibleVehicleGlass\_Base.et

</td><td>Permet de créer les vitres destructibles du véhicule.

</td></tr><tr><td>Vehicle\_Canvas\_Base.et

</td><td><span style="white-space: pre-wrap;">Permet de créer des parties de toit sur les véhicules comme par exemple une bâche. </span>

</td></tr><tr><td>Vehicle\_Cargo\_Base.et

</td><td>Permet de créer des sièges pour s'asseoir dans votre véhicule (il est utile sur des siège qui sont présent ou pas en fonction des versions de votre véhicule).

</td></tr><tr><td>Vehicle\_Rotor\_Base.et

</td><td>Permet de créer le préfab du/des rotors de votre hélicoptère.

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">Bien sûr, il en existe beaucoup d'autres mais il est impossible de tous les citer ici, vous pouvez les retrouver dans </span>[ici](about:blank).

<p class="callout info">Il est également important de noter que des configurations sont également disponibles dans Core/Configs. On verra un peu plus tard comment les utiliser dans notre véhicule pour nous simplifier la tâche.</p>

---

Une fois que vous avez fait vos sélections parmi les préfab base dont vous avez besoin, il suffit de faire clic droit et "Inherit in {YourAddon}" et de donner un nom a vos préfabs.

<p class="callout info"><span style="white-space: pre-wrap;">Si vous aller avoir plusieurs versions de votre véhicule dans ENFUSION, il est préférable de nommer votre préfab véhicule: THENAMEOFYOURVEHICLE\_Base.et </span></p>

<p class="callout success">Une fois cela fait, oubliez pas de déplacer vos préfabs dans la hiérarchie que vous avez crée précédemment ✅</p>

### ****2. Création du préfab des roues:****

Pour ce faire, recherchez "VehicleWheel\_base.et" dans le ressources explorer puis faites clique droit puis, "Inherit in {YourAddon}" et nommez le préfab de vos roues: "{YOURVEHICLENAME}\_Wheel.et".

Une fois cela fait, ouvrez votre préfab de roues, puis allez dans le Component "Mesh Object" puis dans le paramètre object, faites les trois petit points puis sélectionnez la 3D de votre roue.

Après il faut configurer les dégâts, pour ce faire recherchez la roue d'un autre véhicule puis mettez la à côté de votre roue, puis dans votre roue, allez dans le component "SCR\_DamageManagerComponent" puis dans le paramètre Addional hit zones", faites le + pour créer une nouvelle zone de dégâts puis nommez la Wheel. Une fois cela fait, allez dans le même component dans la roue que vous avez pris d'un autre véhicule puis faites clic doit, copier sur la Hit Zone de la roue du véhicule puis retournez dans votre roue puis faites coller dans la hit zone de votre roue.

Il ne vous reste plus qu'a supprimer la roue de l'autre véhicule et à sauvegarder.

<p class="callout success">Si tout s'est bien passé, la roue n'a plus de carré rouge autour de votre roue. Si c'est le cas, votre roue a correctement été crée ✅</p>

# A1 - Configuration de base et annexes d'un véhicule

<details id="bkmrk-informations-%C3%A0-propo"><summary>Informations à propos de l'organisation du wiki sur la configuration des préfabs de véhicules</summary>

#### Le wiki à partir de cette page va être organisé en fonction d'un code simple pour vous repérer dans le niveau de difficulté et votre progression 🔧

> ****A****=Configuration de base pour un véhicule  
> ****B****<span style="white-space: pre-wrap;">=Configuration pour un véhicule qui nécessite un minimum de réflexion et qui dépend de votre véhicule. </span>  
> ****C****=Configuration pour un véhicule qui est complexe et qui nécessite de la recherche personnelle et qui varie en fonction des véhicules.  
> ****D****=Système complexe pour un véhicule qui n'est pas généralisé à tous les véhicules et qui n'est pas évident.

****Il est important de savoir que tout est possible,**** mais ce système de code permet de vous donner une idée de la difficulté. La seule limite que vous avez est l'habitude ainsi que l'expérience avec le workbench et blender, on ne peut pas tout dévoiler car ENFUSION et Blender restent des logiciels complexes ✅

<p class="callout info">Tous les préfabs non commenté dans cette page ne sont pas a modifier pour l'instant (si vous suivez le fil rouge du wiki) ou simplement pas a modifier sur toute l'intégration de votre véhicule (potentiel exception a des systèmes personnalisés).</p>

</details>## ****Introduction****

<span style="white-space: pre-wrap;">Dans cette page, nous allons découvrir les components qui permettent de réaliser un véhicule de base. A la fin de cette page, votre préfab base véhicule aura votre modèle 3D assigné ainsi que des configurations de base pour votre véhicule. </span>

<span style="white-space: pre-wrap;">Il faut savoir que dans l'intégration d'un véhicule, ça ne sert à rien de réinventer la roue, on vous conseil de vous baser sur les véhicules vanilla ainsi que sur les fichiers de configuration déjà existant. </span>

<p class="callout info">Après cette page, le véhicule ne sera pas encore jouable.</p>

#### ****MeshObjet****

<details id="bkmrk-cliquez-pour-en-savo"><summary>Cliquez pour en savoir plus</summary>

****Ce component permet de gérer le rendu de votre modèle 3D dans le préfab.****

Il vous suffit de définir dans le paramètre "Object", le chemin de votre modèle 3D de véhicule principal.

Vous pouvez ici régler un grand nombre de choses en lien avec l'affichage du modèle 3D en lui même.

<span style="white-space: pre-wrap;">Il y a également le menu des matériaux, ce menu va nous être utile pour créer des variants de votre véhicule en lui changeant de camouflage par exemple. </span>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/gZeimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/gZeimage.png)

</details>#### ****RigidBody****

<details id="bkmrk-cliquez-pour-en-savo-1"><summary>Cliquez pour en savoir plus</summary>

Le component RigidBody permet de régler tout ce qui est en lien avec le modèle 3D dans le jeu, cet à dire les collisions qu'il va avoir, sa masse, son centre de masse...

Avec les préfabs base, tout est déjà configuré pour un véhicule de son type. Vous pouvez déjà modifier le paramètre masse pour que la masse dans Arma Reforger correspondent avec celle dans la vraie vie.

<p class="callout danger">****ATTENTION****: Le réglage du centre de la masse et du Massless inertia se font que une fois le véhicule fonctionnel ⚠️  
Si vous grillez des étapes, vous risquez de définir une valeur biaisé qui fait bugger la simulation de la masse.</p>

<p class="callout warning align-left">Les valeurs du centre de la masse et du Massless inertia doivent être ronde pour éviter tous soucis: 1.432 ➡️1.4</p>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/urCimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/urCimage.png)

</details>#### ****SCR\_VehicleSoundComponent****

<details id="bkmrk-cliquez-pour-en-savo-2"><summary>Cliquez pour en savoir plus</summary>

<span style="white-space: pre-wrap;">Ce component va servir a assigner des sons à notre véhicule. </span>

<p class="callout info">A part si vous voulez créer des sons personnalisés, je vous conseil de récuperer la même configuration que dans un véhicule vanilla, recherchez dans la barre de recherche un véhicule similaire qui existe dans Arma Reforger puis copiez collez les propriétés de ce component.</p>

La liste Filenames permet de définir la liste des projets son que le véhicule va utiliser.

<span style="white-space: pre-wrap;">Les sound Points permettent de définir une position ou les sons vont apparaître. PS: c'est le même fonctionnement pour les positions wheels. </span>

Et pour finir HitZoneStateSignalData permet de définir une liste de signaux a donner aux projets son en fonction de l'état du véhicule (Ex: Roue abîmé).

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/t7Bimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/t7Bimage.png)

</details>#### ****ActionManagerComponent****

<details id="bkmrk-cliquez-pour-en-savo-3"><summary>Cliquez pour en savoir plus</summary>

Ce component va nous servir à définir une liste d'actions disponibles pour notre véhicule.

<p class="callout info"><span style="white-space: pre-wrap;">Tips: Faites clic droit sur le component </span>****ActionManagerComponent****<span style="white-space: pre-wrap;"> puis cliquez sur</span><span style="color: rgb(68, 68, 68); white-space: pre-wrap;"> </span>*****toggle context(s) radius visualization*****<span style="color: rgb(68, 68, 68); white-space: pre-wrap;"> et </span>*****toggle context(s) visibility angle visualization**** pour rendre la tâche de créer des actions beaucoup plus simples.</p>

<p class="callout info">Il faut savoir que les noms des actions ne sont que superficiel, vous pouvez très bien les nommer comme vous le voulez, mais dans tout le court de ce topic, les actions auront les noms définit plus bas.</p>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/DhJimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/DhJimage.png)  
**Aperçu avec les aides activées**

Ce component est découpé en deux parties:

- ****Actions Contexts****: Liste des "actions visibles" par les joueurs.
- ****Additional Actions****: Paramètre de ce que les actions vont réaliser une fois que le joueur ai interagit avec.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/1uKimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/1uKimage.png)

Pour créer une nouvelle action, il vous suffit de cliquer sur le + à coté de la ligne "Action Contexts". Voici la description des options d'une action:

- ****UI Info****: Permet de définir une liste d'informations en lien avec l'apparence de l'interaction (PS: Pour les véhicules, inspirez vous de ce qui a déjà été configuré, notamment sur les icônes).
- ****Context Name****: Le nom de l'interaction dans l'éditeur.
- ****Position****: La position de l'interaction (cliquez sur Set Class).
- ****Radius****: Taille de l'action sous la forme d'une sphère.
- ****Height****: Hauteur de l'action. Cette fonctionnalité permet aux actions de prendre une taille qui fait tout le long de votre véhicule par exemple.
- ****Omnidirectionnal****<span style="white-space: pre-wrap;">: Si cette option est cochée, l'action est visible dans tous les angles possibles. Si elle n'est pas cochée, il vous suffit de régler le </span>****Visibility Angle****<span style="white-space: pre-wrap;"> pour définir un angle maximum où l'interaction est visible. </span>
- ****LineOfSightCheck****: Si cette option est cochée, la visibilité de l'action dépendra de la ligne de mire.
- ****Display UI at reference point****<span style="white-space: pre-wrap;">: Si cette option est cochée et que le </span>****Height****<span style="white-space: pre-wrap;"> a une valeur au dessus de 0, l'UI de l'actions ne suivra pas les mouvements de la caméra du joueur et l'UI restera au point que vous avez définit plus haut.</span>

<p class="callout warning"><span style="white-space: pre-wrap;">Pour le cas des actions sur un véhicule, ne mettez pas de titre ou de description aux actions depuis sur l'UI Info, on verra plus tard pour que l'action ai un texte traduis et une icône. </span></p>

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/KNXimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/KNXimage.png)

---

Une fois que vous savez tout ça, il ne vous reste plus qu'a créer ce minimum d'actions dans la catégorie Action Contexts:

****Actions spécifique pour chaque compartiment:****

<table><colgroup><col style="width: 240px;"></col><col style="width: 240px;"></col></colgroup><tbody><tr><td>****Context Name****

</td><td>****Position &amp; description****

</td></tr><tr><td>`<span class="editor-theme-code">driver</span>`

</td><td>Action qui permet de changer de siège ou de monter si la porte est ouverte en place conducteur.

</td></tr><tr><td>`<span class="editor-theme-code">gunner</span>`

</td><td>Action qui permet de changer de siège ou de monter si la porte est ouverte en place tireur. Placez cette action au niveau du siège tireur.

</td></tr><tr><td>`<span class="editor-theme-code">commander</span>`

</td><td>Action qui permet de changer de siège ou de monter si la porte est ouverte en place chef de char. Placez cette action au niveau du siège chef de char.

</td></tr><tr><td>`<span class="editor-theme-code">passenger_l01</span>`<span style="background-color: rgb(248, 248, 248);">,</span>`<span class="editor-theme-code">passenger_m01</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">passenger_r01,</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td>Action qui permet de changer de siège ou de monter si la/les porte(s) est ouverte en place passager gauche, milieu ou droit. Placez cette action au niveau des sièges respectif de chaque action.

</td></tr><tr><td>`<span class="editor-theme-code">passenger_l02</span>`<span style="background-color: rgb(248, 248, 248);">,</span>`<span class="editor-theme-code">passenger_m02</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">passenger_r02,</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td>Action qui permet de changer de siège ou de monter si la/les porte(s) est ouverte en place passager arrière gauche, milieu ou droit. Placez cette action au niveau des sièges respectif de chaque action.

</td></tr></tbody></table>

****Actions extérieure pour les portes:****

<table><colgroup><col></col><col></col></colgroup><tbody><tr><td>****Context Name****

</td><td>****Position &amp; description****

</td></tr><tr><td>`<span class="editor-theme-code">door_L01</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">door_L02</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td>Action pour une porte simple, dans ce cas des portes situés à la gauche du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">door_R01</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">door_R02</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td>Action pour une porte simple, dans ce cas des portes situés à la droite du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">door_back_left</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">door_back_right</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td><span style="white-space: pre-wrap;">Action pour une porte simple, </span>

<span style="white-space: pre-wrap;">dans ce cas des portes situés à l'arrière du véhicule, soit à </span>

gauche soit à droite

</td></tr></tbody></table>

****Actions intérieure pour les portes:****

<table><colgroup><col></col><col></col></colgroup><tbody><tr><td>****Context Name****

</td><td>****Position &amp; description****

</td></tr><tr><td>`<span class="editor-theme-code">door_L01_int</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">door_R02_int</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td>Action pour une porte simple, dans ce cas des portes situés à la gauche et à l'intérieur du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">door_R01_int</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;">, </span>`<span class="editor-theme-code">door_R02_int</span>`<span style="background-color: rgb(248, 248, 248); white-space: pre-wrap;"> </span>`<span class="editor-theme-code">...</span>`

</td><td>Action pour une porte simple, dans ce cas des portes situés à la droite et à l'intérieur du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">door_back_int</span>`

</td><td>Action pour une porte simple, dans ce cas des portes situés à l'arrière du véhicule et à l'intérieur. En général, une seule action suffit si vos deux portes sont proches.

</td></tr></tbody></table>

<p class="callout info">****Conseil****<span style="white-space: pre-wrap;">: Définissez un Radius de visibilité pour les actions des portes. Par exemple, définissez un radius de 90°, vers l'intérieur pour les actions </span>`<span class="editor-theme-code">door_L01_int</span>`. Cela évite que l'action intérieur soit visible depuis l'extérieur.</p>

****Actions extérieure du véhicule:****

<table><colgroup><col style="width: 240px;"></col><col style="width: 240px;"></col></colgroup><tbody><tr><td>****Context Name****

</td><td>****Position &amp; description****

</td></tr><tr><td>`<span class="editor-theme-code">push_front</span>`

</td><td>Action qui permet de pousser le véhicule depuis l'avant. Il faut la placer à l'avant, au niveau d'une zone sur laquelle les joueurs peuvent pousser le véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">push_rear</span>`

</td><td>Action qui permet de pousser le véhicule depuis l'arrière. Il faut la placer à l'arrière, au niveau d'une zone sur laquelle les joueurs peuvent pousser le véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">Unflipper</span>`

</td><td>Action qui permet de retourner le véhicule depuis n'importe quel direction. Il faut la placer en x=0 y=1 z=0.

</td></tr><tr><td>`<span class="editor-theme-code">fuel_cap</span>`

</td><td>Action qui permet de remplir le réservoir du véhicule. Placez la au niveau de la trappe à essence.

</td></tr><tr><td>`<span class="editor-theme-code">engine_lid</span>`

</td><td>Action qui permet de réparer le moteur du véhicule. Placez la au niveau d'une zone accessible par les joueurs, au niveau du moteur.

</td></tr><tr><td>`<span class="editor-theme-code">hood_front</span>`

</td><td>Action qui permet de réparer le véhicule en globalité (boîte de vitesse, transmission...). Placez la au niveau d'une zone accessible par les joueurs, au niveau du capot en général.

</td></tr></tbody></table>

****actions possibles réalisable par le conducteur:****

<table><colgroup><col style="width: 240px;"></col><col style="width: 240px;"></col></colgroup><tbody><tr><td>****Context Name****

</td><td>****Position &amp; description****

</td></tr><tr><td>`<span class="editor-theme-code">starter_switch</span>`

</td><td>Permet de démarrer le véhicule. Placez la au niveau du dispositif de démarrage du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">light_switch</span>`

</td><td>Permet de contrôler les lumières du véhicule. Placez la au niveau du dispositif d'allumage des feux du véhicule. PS: Vous avez la possibilité de séparer l'action pour allumer les feux de route en créant une nouvelle action nommée:

`<span class="editor-theme-code">light_HiBeam</span>`

</td></tr><tr><td>`<span class="editor-theme-code">light_hazard_switch</span>`

</td><td>Permet de contrôler les feux de détresse du véhicule. Placez la au niveau du dispositif d'allumage des feux de détresse du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">handbrake</span>`

</td><td>Permet d'activer ou désactiver le frein parking du véhicule. Placez la au niveau du frein parking du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">light_cabin_switch</span>`

</td><td>Permet d'activer ou désactiver les lumières intérieures du véhicule. Placez la au niveau du bouton pour allumer les lumières intérieures.

</td></tr></tbody></table>

---

Une fois ces actions créés, il faut qu'on leurs affecte une tâche qu'elle vont réaliser une fois actionné par le joueur. Pour ce faire on va utiliser les Additional Actions. Une additional Action est simplement un script qui va être assigné a une ou plusieurs actions et qui va remplir définir ce que font les actions quand elle sont activés, en cours de chargement ou encore annulé par le joueur. C'est également dans les additional Actions qu'on va définir une liste de paramètre pour l'apparence des actions (texte traduis, icône, temps de chargement...).

Pour affecter une/des action(s) qu'on a crée plus haut, il suffit de l'ajouter dans la liste Parent Context List en faisant + et en sélectionnant l'action(s) concernée(s)

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/NURimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/NURimage.png)

> <span style="white-space: pre-wrap;">Pour des raisons de cohérence entre les véhicules, il est fortement conseillé de </span>****prendre en modèle un véhicule d'Arma Reforger****<span style="white-space: pre-wrap;"> et de faire clic droit puis copier sur une additionnal action dans un véhicule vanilla puis clic droit et coller dans sur une additionnal action, dans votre véhicule. Cela permet d'éviter d'avoir des soucis de configuration ou encore une cohérence dans les apparences de vos actions et celle des véhicules déjà existants.</span>

<p class="callout danger">****ATTENTION****: Lors du copier/coller, les class dans ce que vous avez copiée ne sont pas copiée, il faut copier/coller l'addional action et les class dans l'addional action ⚠️</p>

<p class="callout warning">Les actions pour les portes et compartiments seront configurée plus tard dans un autre component.</p>

Pour les véhicules, il en existe beaucoup, mais voici les plus importantes:

<table><colgroup><col style="width: 240px;"></col><col style="width: 240px;"></col><col style="width: 240px;"></col></colgroup><tbody><tr style="height: 10px;"><td>****Action(s) a affecter****

</td><td>****Nom de l'additional action****

</td><td>****Description et informations****

</td></tr><tr><td>`<span class="editor-theme-code">fuel_cap</span>`

</td><td>`<span class="editor-theme-code">SCR_RefuelAtSupportStationAction</span>`

</td><td>Permet de remplir de carburant le véhicule.

</td></tr><tr><td>Dans les préfabs de base pour les véhicules, ces additionals actions sont déjà crée, il vous suffit de changer l'action déjà affecté par une action similaire ou la même avec une syntaxe différente.

</td><td>`<span class="editor-theme-code">SCR_RepairAtSupportStationAction</span>`<span style="white-space: pre-wrap;"> (x4)</span>

</td><td>Permet de réparer certaines parties du véhicule en fonction de l'affectation de l'action.

</td></tr><tr style="height: 10px;"><td>`<span class="editor-theme-code">Unflipper</span>`

`<span class="editor-theme-code">Unflipper</span>`

</td><td>`<span class="editor-theme-code">SCR_UnflipVehicleAction</span>`<span style="white-space: pre-wrap;"> (x2)</span>

</td><td>Permet de retourner le véhicule si il se trouve sur le toit.

</td></tr><tr><td>`<span class="editor-theme-code">push_front</span>`<span style="white-space: pre-wrap;">, </span>`<span class="editor-theme-code">push_rear</span>`

</td><td>`<span class="editor-theme-code">SCR_PushVehicleAction</span>`

</td><td>Permet de pousser le véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">handbrake</span>`

`<span class="editor-theme-code">handbrake</span>`

</td><td>`<span class="editor-theme-code">SCR_ToggleHandbrakeAction</span>`<span style="white-space: pre-wrap;"> (x2)</span>

</td><td>Permet de tirer le frein parking du véhicule.

</td></tr><tr><td>`<span class="editor-theme-code">starter_switch</span>`

`<span class="editor-theme-code">starter_switch</span>`

</td><td>`<span class="editor-theme-code">SCR_EngineAction</span>`<span style="white-space: pre-wrap;"> (x2)</span>

</td><td>Permet de démarrer le véhicule.

</td></tr><tr><td>Une action au choix au niveau d'une zone potentiel de stockage, exemple:

`<span class="editor-theme-code">push_rear</span>`

`<span class="editor-theme-code">door_back</span>`

</td><td>`<span class="editor-theme-code">SCR_OpenVehicleStorageAction</span>`

</td><td>Permet d'ouvrir l'inventaire du véhicule.

</td></tr><tr><td>Une action au choix au niveau d'une zone potentiel de stockage, exemple:

`<span class="editor-theme-code">push_rear</span>`

`<span class="editor-theme-code">door_back</span>`

</td><td>`<span class="editor-theme-code">SCR_ResourceContainerVehicleLoadAction</span>`<span style="white-space: pre-wrap;"> (x2)</span>

</td><td>Permet en mode de jeu conflit, de placer du supply dans le véhicule. (Optionnel).

</td></tr></tbody></table>

<p class="callout success">Vos actions sont désormais entièrement configurées et la plupart sont déjà prête à l'emploi ✅</p>

</details>

# A2 - Création des compartiments et suite de la configuration des actions

<details id="bkmrk-informations-%C3%A0-propo"><summary>Informations à propos de l'organisation du wiki sur la configuration des préfabs de véhicules</summary>

#### Le wiki à partir de cette page va être organisé en fonction d'un code simple pour vous repérer dans le niveau de difficulté et votre progression 🔧

> ****A****=Configuration de base pour un véhicule  
> ****B****<span style="white-space: pre-wrap;">=Configuration pour un véhicule qui nécessite un minimum de réflexion et qui dépend de votre véhicule. </span>  
> ****C****=Configuration pour un véhicule qui est complexe et qui nécessite de la recherche personnelle et qui varie en fonction des véhicules.  
> ****D****=Système complexe pour un véhicule qui n'est pas généralisé à tous les véhicules et qui n'est pas évident.

****Il est important de savoir que tout est possible,**** mais ce système de code permet de vous donner une idée de la difficulté. La seule limite que vous avez est l'habitude ainsi que l'expérience avec le workbench et blender, on ne peut pas tout dévoiler car ENFUSION et Blender restent des logiciels complexes ✅

<p class="callout info">Tous les préfabs non commenté dans cette page ne sont pas a modifier pour l'instant (si vous suivez le fil rouge du wiki) ou simplement pas a modifier sur toute l'intégration de votre véhicule (potentiel exception a des systèmes personnalisés).</p>

</details>## ****Introduction****

Dans cette page, nous allons découvrir comment créer une liste de porte et de compartiment (places assises). Pour par la suite, configurer le reste d'actions qu'on a pas encore configurée.

<span style="white-space: pre-wrap;">Il faut savoir que dans l'intégration d'un véhicule, ça ne sert à rien de réinventer la roue, on vous conseil de vous baser sur les véhicules vanilla ainsi que sur les fichiers de configuration déjà existant. </span>

<p class="callout info">Après cette page, le véhicule ne sera pas encore jouable.</p>

<p class="callout info">Pour ce qui est des places de tireur, cela ce passe dans le préfab de la tourelle.</p>

### ****SCR\_BaseCompartmentManagerComponent:****

Ce component va nous servir à définir une liste de compartiment et une liste de portes pour que des joueurs puissent s'installer dans votre véhicule.

#### ****A. Door Info List:****

Dans ce component, on trouve deux catégories:

1. ****Door Info List****: Liste des portes disponibles.
2. ****Compartment Slots****: Liste des compartiments et des places disponibles pour votre véhicule.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/cUQimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/cUQimage.png)

****Avant de créer une place dans le véhicule, il faut créer une porte, qu'elle soit réelle ou fausse.****

Pour ce faire, cliquez sur le + de Door Info List et créez un "****SCR\_CompartmentDoorInfo****":

- ****Anim door index****: Numéro d'indentification dans le fichier d'animation qui définit le mouvement de la porte (Voir TODO).
- ****OpenCloseDoorAnimGraph****: Non utilisé.
- ****ContextName****: Nom de la porte dans l'éditeur (nommez la dans un nom du type door\_L01, door\_R02, door\_back...)
- ****Coverage****: Nombre, entre 0 et 1 qui indique a quel point la porte est exposée.

Par la suite, on va définir une suite de class qui va permettre de configurer nos portes:

<details id="bkmrk-open-door-actioncett"><summary>Open Door Action</summary>

Cette class va nous permettre de définir l'action qui va permettre aux joueurs de pouvoir ouvrir la porte. Pour ce faire, faites set class, puis SCR\_OpenVehicleDoorUserAction.

Une fois cela fait, mettez les actions de votre nouvelle porte qui vont permettre aux joueurs d'ouvrir votre porte dans "****Parent Context List****" en cliquant sur le +, puis en sélectionnant les actions: Door\_{code de la porte} et Door\_{code de la porte}\_int -&gt; Exemple: Door\_L01 et Door\_L01\_int.

Une fois cela fait, il faut donner une liste d'informations à propos de l'apparence de l'action. Pour ce faire, faites set class sur le paramètre UI Info puis choisissez la class "****SCR\_ActionUIInfo****". Une fois cela fait, mettez les paramètres ci dessous pour que l'action ais l'apparence d'une action pour fermer la porte.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/qKiimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/qKiimage.png)

<span style="white-space: pre-wrap;">Après avec réglé l'UI, il ne vous reste plus qu'a régler le reste des actions, comme sur la capture d'écran si dessous. </span>

</details><details id="bkmrk-close-door-actioncet"><summary>Close Door Action</summary>

Cette class va nous permettre de définir l'action qui va permettre aux joueurs de pouvoir fermer la porte. Pour ce faire, faites set class, puis SCR\_CloseVehicleDoorUserAction.

Une fois cela fait, mettez les actions de votre nouvelle porte qui vont permettre aux joueurs de fermer votre porte dans "****Parent Context List****" en cliquant sur le +, puis en sélectionnant les actions: Door\_{code de la porte} et Door\_{code de la porte}\_int -&gt; Exemple: Door\_L01 et Door\_L01\_int.

Une fois cela fait, il faut donner une liste d'informations à propos de l'apparence de l'action. Pour ce faire, faites set class sur le paramètre UI Info puis choisissez la class "****SCR\_ActionUIInfo****". Une fois cela fait, mettez les paramètres ci dessous pour que l'action ais l'apparence d'une action pour ouvrir la porte.

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/rqPimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/rqPimage.png)

<span style="white-space: pre-wrap;">Après avec réglé l'UI, il ne vous reste plus qu'a régler le reste des actions, comme sur la capture d'écran si dessous. </span>

</details><details id="bkmrk-entry-position-infoc"><summary>Entry Position Info</summary>

Ce paramètre va permettre de définir la position à partir de laquelle le joueur va lancer l'animation d'entrée dans le véhicule. Pour ce faire, cliquez sur set class puis dans Pivot ID, mettez l'os qui correspond à votre porte.

</details><details id="bkmrk-ai-entry-position-in"><summary>AI Entry Position Info</summary>

Ce paramètre permet d'indiquer aux IA, où elle doivent se rendre pour se téléporter dans le véhicule quand elle doivent monter. Ce paramètre s'applique que pour les trappes qui se situent dans une zone que les IA ne peuvent pas accéder sans devoir monter. Placez ce point au niveau du point ou un joueur normal ferait espace pour monter sur le véhicule.

</details><details id="bkmrk-ai-exit-position-inf"><summary>AI Exit Position Info</summary>

Ce paramètre permet d'indiquer aux IA, où elle doivent se rendre pour descendre du véhicule depuis le toit du véhicule. Ce paramètre s'applique que pour les trappes. Placez ce point au niveau du point ou un joueur normal ferait espace pour descendre du véhicule vers le sol.

</details><details id="bkmrk-exit-position-infoce"><summary>Exit Position Info</summary>

Ce paramètre va permettre de définir la position à partir de laquelle le joueur va lancer l'animation de sortie depuis sa place. Pour ce faire, cliquez sur set class puis dans Pivot ID, mettez l'os qui correspond à la place que la porte.

<p class="callout info">Si votre porte couvre la sortie de plusieurs places dans le véhicule, en général, ne faites pas set class (si vous l'avez déjà défini, faites clic doit puis restore to prefab value).</p>

</details>Il ne vous reste plus qu'a configurer quelques options annexes puis votre porte sera correctement configurée pour la suite:

- ****Get In Teleport:**** Si cochée, le joueur sera téléporté dans le véhicule, sans passer par aucune animation, quand il fera l'action pour entrer.
- ****Get Out Teleport:**** Si cochée, le joueur sera téléporté dans le véhicule, sans passer par aucune animation, quand il fera l'action pour sortir.
- ****Portal Position Info:**** Inconnu.
- ****Portal Signal Name:**** Inconnu.
- ****Align during Get Out:**** Si cette option est cochée, le joueur sera aligné à l'os assigné dans Exit Position Info.
- ****Get In Aligning Teleport:**** Si cette option est cochée, le joueur sera téléporté à l'os assigné dans Entry Position Info pour lancer l'animation d'entrée dans le véhicule.
- ****Get Out Aligning Teleport:**** Si cette option est cochée, le joueur sera téléporté à l'os assigné dans Exit Position Info pour lancer l'animation de sortie à l'intérieur du véhicule.
- ****Get In Seat Aligning On Event:**** Inconnu.
- ****Get Out Aligning On Event:**** Inconnu.
- ****Fake Door:**** Cochez cette option si la porte est une porte factice, donc qui n'a pas de modèle 3D comme sur les Jeep d'Arma Reforger.
- ****Activate Physics:**** Si cette option est cochée, le joueur aura une physique. Par exemple, si l'os définit dans Enter Position Info est dans le vide en jeu, quand je joueur va tenter d'entrer en faisant l'animation d'entrée, il va tomber dans le vide.
- ****Stance Change On Exit:**** Quel position le joueur va t'il avoir quand il va sortir du véhicule.
- ****Accessibility Settings:**** Inconnu.
- ****Door Type:**** <span style="white-space: pre-wrap;">Le type de porte, soit une porte normal soit une trappe soit une door factice. </span>

<p class="callout success">Une fois toutes ces étapes faites, votre première porte est crée. Il ne vous reste plus qu'a créer les autres.</p>

#### ****B. Compartment Slots:****

Cette partie du component va nous permettre de créer une place dans le véhicule. On ici configurer le reste d'actions qu'on n'a pas encore réglé.

##### Place du conducteur:

Pour configurer la place conducteur, il vous suffit de déployer le slot "PilotComponent".

[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2025-02/scaled-1680-/XZUimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2025-02/XZUimage.png)

<details id="bkmrk-d%C3%A9tails-des-param%C3%A8tr"><summary>Détails des paramètres importants</summary>

****Default Occupant Name****: Non utilisé en général. Nous vous conseillons de laisser vide.

****Compartment Unique Name****: Non utilisé en général. Nous vous conseillons de laisser vide.

****Compartment Action -&gt; Parent context list****: Faites + à coté de Parent Context List et sélectionnez l'action qui va permettre au joueur d'accéder à la place depuis l'extérieur. PS: Ajoutez également l'action de la place que vous êtes en train de configurer, car si la porte est ouverte, les joueurs pourront monter dans le véhicule en visant vers l'action de la place. (Exemple: driver et door\_L01).

****Get Out Action -&gt; Parent context list****: Faites + à coté de Parent Context List et sélectionnez l'action qui va permettre au joueur de sortir du véhicule depuis sa place ("door\_L01\_int" par exemple).

****Jump Out Action:**** <span style="white-space: pre-wrap;">Action qui va permettre au joueur de s'éjecter du véhicule. </span>

<p class="callout warning"><span style="white-space: pre-wrap;">Pour des raisons de gameplay et pour éviter des erreurs de clic de la part des joueurs, nous vous déconseillons d'ajouter une action dans ce paramètre pour éviter toutes éjections involontaires, ce qui peut détruire une partie de joueur ⚠️ </span></p>

****Switch Seat Action -&gt; Parent context list****: Faites + à coté de Parent Context List et sélectionnez l'action de la place que vous êtes en train d'éditer ("driver" par exemple). Ce paramètre va définir sur quel place il faut mettre l'interaction pour pouvoir changer de siège vers la place que vous êtes en train de configurer.

****Aditionnals Actions -&gt; SCR\_RemoveCasualtyUserAction N°1 -&gt; Parent Context List****: Ce paramètre permet de définir sur quel action le joueur va pouvoir retirer le corps d'un autre joueur mort sur le siège, depuis l'intérieur du véhicule. Mettez donc l'action du siège que vous êtes en train de configurer.

****Aditionnals Actions -&gt; SCR\_RemoveCasualtyUserAction N°2 -&gt; Parent Context List****: Ce paramètre permet de définir sur quel action le joueur va pouvoir retirer le corps d'un autre joueur mort sur le siège, depuis l'extérieur du véhicule. Mettez donc les actions où les joueurs pourront retirer le corps d'un autre joueur depuis l'extérieur.

****Passenger Position:****<span style="white-space: pre-wrap;"> Ce paramètre va nous permettre de définir, où le joueur sera dans le véhicule. Pour ce faire, dans Pivot ID, mettez l'os de la place que vous êtes en train de configurer.</span>

<p class="callout warning">****ATTENTION****: Ne mettez aucune coordonnées dans ce paramètre. Dans tous les cas, l'animation se fera depuis un os, si il n'y en a aucun de définis, l'animation du joueur qui change de siège se fera au 0 0 0 du véhicule ⚠️</p>

<p class="callout info">Si vous devez faire des modifications sur la position du joueur dans le véhicule, faites vos modifications sur l'os dans Blender pour éviter tous soucis a propos des animations ✅</p>

****Forced Free Look****: Permet d'activer la vue libre (laisser coché).

****Mouse Steering****: Si activé, les joueurs pourront tourner les roue qu'avec la souris ou en faisant double Alt (Sauf si hélicoptère, laisser désactivé).

****Skip Character Door Animations From Seat:****<span style="white-space: pre-wrap;"> Si cette option est cochée, le joueur ne fera aucune animations d'ouverture ni de fermeture de porte si il l'ouvre ou la ferme depuis l'intérieur.</span>

****Eject Unconscious And Dead Characters:**** Si cette option est cochée et si le joueur tombe inconscient ou meurt, le cadavre sera automatiquement éjecté.

****Characters Can Fall Out On Flip:****<span style="white-space: pre-wrap;"> Si cette option est cochée et si le véhicule se tourne sur l'axe Y de 90°, le joueur sera éjecté. PS: Vous pouvez régler l'angle avec un paramètre qui apparaît si cette option est coché pour </span>*****y=1=90°*****.

****Seat Type:****<span style="white-space: pre-wrap;"> Numéro d'indentification pour l'animation de repos du joueur dans le véhicule.</span>

<p class="callout info">****Conseil****: Pour des places passagers, il est meilleur de varier cette valeur entre les sièges pour éviter que les joueurs soient tous alignés de façon non naturels.</p>

****Door Info List:****<span style="white-space: pre-wrap;"> Permet de relier une porte à un siège. 0 = 1ère porte dans la liste, 1 = 2ème porte dans la liste, 2 = 3ème porte dans la liste...</span>

****Override Entry/Exit Position Info****: Permet de changer la position d'entrée/sortie sans prendre en compte les paramètres que vous avez définit dans la porte.

****UI Info:****<span style="white-space: pre-wrap;"> Informations d'interface à propos du siège (ne pas changer en général).</span>

****Base Coverage****<span style="white-space: pre-wrap;">: Permet de définir une valeur entre 0 et 1 inclus qui indique à quel point le joueur est isolé du monde extérieur pour le son. Pour donner un ordre de grandeur, la valeur d'un LAV25 est réglé à 0.300. </span>

****Can Occupant Equip Gadget:****<span style="white-space: pre-wrap;"> Es que le joueur pourra prendre en main des équipements comme les jumelles ou encore un autoinjecteur de morphine par exemple.</span>

****Restricted Item Types:****<span style="white-space: pre-wrap;"> Permet de bannir des équipements que le joueur pourrait prendre en main comme par exemple les jumelles.</span>

****Auto Connect To Turret:****<span style="white-space: pre-wrap;"> Inconnu.</span>

****Auto Connect Context Indices:****<span style="white-space: pre-wrap;"> Inconnu.</span>

****Can Turn Out:****<span style="white-space: pre-wrap;"> Es que le joueur peut sortir sa tête en dehors avec une trappe ?</span>

****Turn Out Door Idx:****<span style="white-space: pre-wrap;"> Index de porte de la trappe, si Can Turn Out n'est pas cochée, définir cette valeur à -1.</span>

****Context Name:****<span style="white-space: pre-wrap;"> Nom du siège dans le Workbench.</span>

****Compartment Section:****<span style="white-space: pre-wrap;"> Numéro d'indentification unique d'un compartiment dans le véhicule, si le joueur tente de changer de siège mais que ce numéro n'est pas égal a celui du siège où il tente de changer de siège, l'action n'apparaîtras pas.</span>

****Is Water Tight****: Si cette option est cochée, le joueur ne mourra pas si le véhicule entre dans de l'eau.

****Default Occupant Data:****<span style="white-space: pre-wrap;"> Préfab des personnages de bases qui vont apparaître si le véhicule est placée en GameMaster. Recherchez "Character\_USSR\_Rifleman.et" pour un soldat de l'armée rouge ou "Character\_US\_Rifleman.et" pour un soldat de l'armée américaine.</span>

</details>---

Tous les autres paramètres plus bas sont des paramètres très spécifiques et qui ne sont pas tous exploitée en version 1.3.76. Si vous n'avez pas de raison précise à modifier ces paramètres, nous vous le déconseillons.

<p class="callout success">Vous avez désormais configuré la place conducteur, il ne vous reste plus qu'a faire de même pour les places passagers.</p>

##### 2. Places passagers

Pour ce faire, on va partir d'une base, pour ce faire, dans le Ressource Browser, recherchez "CargoCompartment\_Base" puis mettez le fichier de configuration dans la catégorie Compartment Slots, puis nommez votre nouvelle place assise (Exemple: passenger\_r01):

[![image (5).gif](https://wiki.nabla.sh/uploads/images/gallery/2024-11/image-5.gif)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/image-5.gif)

Une fois cela fait, vous avez crée une place passager. Il ne vous reste plus qu'a la configurer de la même manière que celle du pilote et de créer le reste de vos passagers.

<p class="callout success">Vous avez désormais crée vos places assises et votre place conducteur ✅</p>

# C1 - Paramètres de simulation du véhicule

<details id="bkmrk-informations-%C3%A0-propo"><summary>Informations à propos de l'organisation du wiki sur la configuration des préfabs de véhicules</summary>

#### Le wiki à partir de cette page va être organisé en fonction d'un code simple pour vous repérer dans le niveau de difficulté et votre progression 🔧

> ****A****=Configuration de base pour un véhicule  
> ****B****<span style="white-space: pre-wrap;">=Configuration pour un véhicule qui nécessite un minimum de réflexion et qui dépend de votre véhicule. </span>  
> ****C****=Configuration pour un véhicule qui est complexe et qui nécessite de la recherche personnelle et qui varie en fonction des véhicules.  
> ****D****=Système complexe pour un véhicule qui n'est pas généralisé à tous les véhicules et qui n'est pas évident.

****Il est important de savoir que tout est possible,**** mais ce système de code permet de vous donner une idée de la difficulté. La seule limite que vous avez est l'habitude ainsi que l'expérience avec le workbench et blender, on ne peut pas tout dévoiler car ENFUSION et Blender restent des logiciels complexes ✅

<p class="callout info">Tous les préfabs non commenté dans cette page ne sont pas a modifier pour l'instant (si vous suivez le fil rouge du wiki) ou simplement pas a modifier sur toute l'intégration de votre véhicule (potentiel exception a des systèmes personnalisés).</p>

</details>## ****Introduction****

# Simulation Parameters (Brouillon, ne pas supprimer)

Learning to configure the simulation, which includes engine parameters, wheel simulation, suspension, and various other settings.

<span style="white-space: pre-wrap;">Some sections in this category are not covered due to limited knowledge and are marked </span>****(Not covered in this tutorial)****. For any parameter with this note, leave it at default for now unless otherwise indicated. If someone with expertise wants to share their knowledge, please submit a ticket on Discord.

<span style="white-space: pre-wrap;">The component managing the simulation is </span>**VehicleWheeledSimulation\_SA**, which is divided into several areas:  
[![image.png](https://wiki.nabla.sh/uploads/images/gallery/2024-11/scaled-1680-/rbaimage.png)](https://wiki.nabla.sh/uploads/images/gallery/2024-11/rbaimage.png)

---

- ****Animation:****<span style="white-space: pre-wrap;"> We won’t use this for animations.</span>
- ****Simulation:****
    - ****Engine:****<span style="white-space: pre-wrap;"> All engine-related settings.</span>
    - ****Clutch:****<span style="white-space: pre-wrap;"> Clutch parameters (</span>****Not covered in this tutorial****).
    - ****Gearbox:****<span style="white-space: pre-wrap;"> Transmission parameters (</span>****Not covered in this tutorial****).
    - ****Axles:****<span style="white-space: pre-wrap;"> This is the wheel system, with one for the front and one for the rear.</span>
    - ****Aerodynamics:****<span style="white-space: pre-wrap;"> Aerodynamics (</span>****Not covered in this tutorial****).
    - ****Pacejka:****<span style="white-space: pre-wrap;"> Unsure of its purpose, but it’s quite complex, so we’ll use Bohemia Interactive’s default values.</span>
    - ****Others:****<span style="white-space: pre-wrap;"> (</span>****Not covered in this tutorial****).

---

### Engine:

When setting up engine parameters, it is possible to use real life values. Usually it's not that hard to find information about power &amp; torque of engine with RPM data attached to it. Below is table containing example source data which will be used to configure vehicle in Workbench

<table id="bkmrk-enginepowertorquei4-" style="font-size: 14px; line-height: inherit; background-color: rgb(248, 249, 250); color: rgb(32, 33, 34); margin: 1em 0px; border: 1px solid rgb(162, 169, 177); border-collapse: collapse; box-shadow: rgb(162, 169, 177) 0px 0px 0.125em; font-family: sans-serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Engine****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Power****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Torque****

</td></tr><tr><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">I4 16V

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">86 kW at 5,800 rpm

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">155 N⋅m at 4,400 rpm

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">Using that data, it is possible to fill following data in </span>****Engine****<span style="white-space: pre-wrap;"> section of </span>****VehicleWheeledComponent****

- ****Max Power - 85 kW****
- ****Max Torque - 155 N\*m****
- ****Rpm Max Power - 5800 rpm****
- ****Rpm Max Torque - 4400 rpm****

Below is visualization of data https://www.desmos.com/calculator/j63rwoyvnh

[![armareforger-new-engine-diagram.png](https://community.bistudio.com/wikidata/images/1/1c/armareforger-new-engine-diagram.png)](https://community.bistudio.com/wiki/File:armareforger-new-engine-diagram.png)

****Inertia****<span style="white-space: pre-wrap;"> parameter controls engine moment of inertia. In layman's term, it affects </span>****how fast engine gains or lose rpm****. High inertia results in slower gain of rpm's but it also means that less rpm will be lost during i.e. changing of gears or when releasing thrust. Table below can be used as sort of guidance but it is still recommended to experiment with that value and tweak it till reaches desired state

[![armareforger-new-engine-inertia.png](https://community.bistudio.com/wikidata/images/c/cb/armareforger-new-engine-inertia.png)](https://community.bistudio.com/wiki/File:armareforger-new-engine-inertia.png)

****Steepness****<span style="white-space: pre-wrap;"> parameter controls how fast engine can reach max torque. This parameter can be used to i.e. reduce the acceleration of the vehicle or to fine tune torque/rpm graph. Effect of that parameter can be observed below</span>

[![armareforger-new-car-steppnes.gif](https://community.bistudio.com/wikidata/images/2/29/armareforger-new-car-steppnes.gif)](https://community.bistudio.com/wiki/File:armareforger-new-car-steppnes.gif)

<span style="white-space: pre-wrap;">Rest of the RPM parameters, like </span>****Rpm Idle, Min Clutch, Redline &amp; Max****, can be also directly copied from source data if its available. In this example, following data was used

- ****Rpm Idle - 850 rpm****
- ****Rpm Min - 600 rpm****
- ****Rpm Clutch - 1500 rpm****
- ****Rpm Redline - 6500 rpm****
- ****Rpm Max - 7000 rpm****

<span style="white-space: pre-wrap;">Last but not least, there is </span>****Output****<span style="white-space: pre-wrap;"> parameter, which controls where power produced by the engine is transferred. In this example </span>****Clutch****<span style="white-space: pre-wrap;"> is used as a </span>****Output.****

---

#### Gearbox &amp; Clutch parameters

[![armareforger-new-car-axle-setup.png](https://community.bistudio.com/wikidata/images/e/ed/armareforger-new-car-axle-setup.png)](https://community.bistudio.com/wiki/File:armareforger-new-car-axle-setup.png)

<span style="white-space: pre-wrap;">In </span>****Clutch****<span style="white-space: pre-wrap;"> section of the </span>****VehicleWheeledSimulation****<span style="white-space: pre-wrap;"> component there are two parameters available. Clutch </span>****Output****<span style="white-space: pre-wrap;"> should be kept to </span>****Gearbox****<span style="white-space: pre-wrap;"> &amp; </span>****Max Clutch Torque****<span style="white-space: pre-wrap;"> - parameter controlling maximum torque that clutch can provide - should be tweaked. </span>****1.6 \*****<span style="white-space: pre-wrap;"> </span>****Max Torque****<span style="white-space: pre-wrap;"> can be a good starting point.</span>

<span style="white-space: pre-wrap;">In </span>****Gearbox****<span style="white-space: pre-wrap;"> section gear that can be filled in. In this example, following data was used as source</span>

<table id="bkmrk-final-drive68%C2%A0%3A-16-%3D" style="font-size: 14px; line-height: inherit; background-color: rgb(248, 249, 250); color: rgb(32, 33, 34); margin: 1em 0px; border: 1px solid rgb(162, 169, 177); border-collapse: collapse; box-shadow: rgb(162, 169, 177) 0px 0px 0.125em; font-family: sans-serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><colgroup><col></col><col></col></colgroup><tbody><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****Final drive****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">68 : 16 = 4.250

</td></tr><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****1st gear****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">38 : 11 = 3.455

</td></tr><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****2nd gear****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">35 : 18 = 1.944

</td></tr><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****3rd gear****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">37 : 27 = 1.370

</td></tr><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****4th gear****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">32 : 31 = 1.032

</td></tr><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****5th gear****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">34 : 40 = 0.850

</td></tr><tr><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">****Reverse gear****</th><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">38 : 12 = 3.167

</td></tr></tbody></table>

****Forward****<span style="white-space: pre-wrap;"> parameter contains array of </span>****forward gears****<span style="white-space: pre-wrap;">. New gears can be simply added by clicking on plus sign + on the right side of the parameter. </span>****Reverse****<span style="white-space: pre-wrap;"> parameter is used for </span>****reverse gear****<span style="white-space: pre-wrap;">. </span>****Final drive****<span style="white-space: pre-wrap;"> is defined later in differential which is defined in one of the </span>****Axles****<span style="white-space: pre-wrap;">. Depending on the configuration of the vehicle, it is possible to do various types of drive trains. In this example car is using simple </span>****forward wheels drive.****

---

<p class="callout warning">If you encounter trouble with the speed or the gearshift you need to set up the SCR\_CarControllerComponent</p>

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

You can copy all the parameter from an other prefab in the vanilla game to have something functional jsut right click on the category

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

and copy from vanilla to paste in your moded car

---

#### Suspension parameters

<span style="white-space: pre-wrap;">One of the most important part of the vehicle configuration is setting </span>****Axles****<span style="white-space: pre-wrap;"> &amp; their </span>****Suspension****<span style="white-space: pre-wrap;"> values. First, it is necessary to add as many </span>****Axles****<span style="white-space: pre-wrap;"> as vehicle has. This can be done by clicking on </span>****plus +****<span style="white-space: pre-wrap;"> sign on the right side of the </span>****Axles****<span style="white-space: pre-wrap;"> property.</span>

[![armareforger-new-car-suspension-setup.png](https://community.bistudio.com/wikidata/images/7/76/armareforger-new-car-suspension-setup.png)](https://community.bistudio.com/wiki/File:armareforger-new-car-suspension-setup.png)

---

#### Wheels parameters

##### Differential and Torque Share

<span style="white-space: pre-wrap;">Each vehicle, whether it be FWD, RWD, AWD, or 4WD will have at least one differential on the drive axle. For each drive axle, choose the appropriate </span>****Type****<span style="white-space: pre-wrap;"> (Closed, Open, or Limited Slip Differential) and the </span>****Ratio****<span style="white-space: pre-wrap;"> of the differential's gear reduction.</span>

- ****Open****<span style="white-space: pre-wrap;"> differentials will split torque evenly when both tires will have equal traction, but will send all torque to a tire which loses traction. This is not ideal off road, but is the most common consumer car differential.</span>
- ****Locked****<span style="white-space: pre-wrap;"> differentials will ensure both wheels on an axle always rotate at the same speed. This provides great grip but is not ideal for turns, where wheels are meant to rotate at different speeds.</span>
- ****LSD****<span style="white-space: pre-wrap;">s are not locked but will increase grip between the wheels if one wheel loses traction. This provides a compromise between open and locked differentials. You can set the LSD's clutch grip with the </span>****Strength****<span style="white-space: pre-wrap;"> parameter.</span>

<span style="white-space: pre-wrap;">Once you have set the axle's differential type, set </span>****Output0****<span style="white-space: pre-wrap;"> and </span>****Output1****<span style="white-space: pre-wrap;"> to the left and right wheel. If you are making a vehicle with more than 1 drive axle, you will also need to deliver power to each axle with a new differential under </span>****Simulation &gt; Differentials****<span style="white-space: pre-wrap;">. Set the outputs of that differential to each axle's diff, and set the </span>****Torque share****<span style="white-space: pre-wrap;"> value of each axle to 1/N where N is the number of axles. </span>****If you do not change the torque share from 0 for each axle, it will not be used as a drive axle.****

##### Wheel

<span style="white-space: pre-wrap;">Here you can set the </span>****Radius****<span style="white-space: pre-wrap;"> in meters, </span>****Mass****<span style="white-space: pre-wrap;"> in kg, and </span>****Brake torque****<span style="white-space: pre-wrap;"> in N-m.</span>

##### Tyre

<span style="white-space: pre-wrap;">Here you can set the friction coefficient multipliers. </span>****Longitudinal****<span style="white-space: pre-wrap;"> refers to the tangent direction of the wheel (grip when accelerating) and </span>****lateral****<span style="white-space: pre-wrap;"> refers to the perpendicular to the car (grip when turning).</span>

##### <span style="white-space: pre-wrap;">Wheel Positions </span>****(to complete)****

---

#### Aerodynamics

<span style="white-space: pre-wrap;">Aerodynamics affects maximum speed and acceleration of the vehicle. Furthermore, aerodynamics drag is especially noticeable at </span>****higher speeds****<span style="white-space: pre-wrap;">, since </span>****drag increases with square of speed****.

****Reference Area****<span style="white-space: pre-wrap;"> &amp; </span>****Drag Coefficient****<span style="white-space: pre-wrap;"> values can be obtained by using values of similar vehicles, which have already those values measured. </span>****Drag Area****<span style="white-space: pre-wrap;"> (</span>**Reference Area)**<span style="white-space: pre-wrap;"> &amp; </span>****Typical drag coefficients****<span style="white-space: pre-wrap;"> </span>**(Drag Coefficient) sections**<span style="white-space: pre-wrap;"> of Auto mobile drag coefficient wiki page can be used as reference. This page contains data for quite wide array of vehicles and in most cases it is possible to pick data for something similar in size &amp; shape. In this example, </span>****Reference Area****<span style="white-space: pre-wrap;"> was set to </span>****0.62****<span style="white-space: pre-wrap;"> &amp; </span>****Drag Coefficient****<span style="white-space: pre-wrap;"> to </span>****0.31****.

---

#### Pacejka ****(to complete)****

---

#### Debugging

<span style="white-space: pre-wrap;">The </span>[Diag Menu](https://community.bistudio.com/wiki/Arma_Reforger:Diag_Menu "Arma Reforger:Diag Menu")<span style="white-space: pre-wrap;"> is accessible by holding </span>*****Windows Key + Left Alt*****<span style="white-space: pre-wrap;"> or </span>*****Windows Key + Left Ctrl*****<span style="white-space: pre-wrap;"> and if you are on Windows 11, hold all three keys simultaneously. While holding the aforementioned keys you can navigate the open menu using the </span>****Up****<span style="white-space: pre-wrap;"> and </span>****Down****<span style="white-space: pre-wrap;"> arrow keys. To modify the current selected setting use the </span>****Left****<span style="white-space: pre-wrap;"> and </span>****Right****<span style="white-space: pre-wrap;"> arrow keys. To enter a submenu use the </span>****Right****<span style="white-space: pre-wrap;"> arrow key and to leave the submenu use the </span>****Backspace****<span style="white-space: pre-wrap;"> key.</span>

<table id="bkmrk-name-%26-locationdescr" style="font-size: 14px; line-height: inherit; background-color: rgb(248, 249, 250); color: rgb(32, 33, 34); margin: 1em 0px; border: 1px solid rgb(162, 169, 177); border-collapse: collapse; box-shadow: rgb(162, 169, 177) 0px 0px 0.125em; font-family: sans-serif; letter-spacing: normal; orphans: 2; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><th class="align-center" colspan="3" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">Name &amp; location

</th><th class="align-center" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em; background-color: rgb(242, 242, 242); text-align: center;">Description

</th></tr><tr style="height: 10px;"><td rowspan="19" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Vehicles****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show Entry points****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Enable debugger trace****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show stats****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show vehicle debug****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Need to be activate in order to see any other parameter****

</td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Player vehicle only****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show CoM****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">Toggles Center of Mass debug

</td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show inertia****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show forces****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show engine****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show raycast****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show suspension****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">show the travel between up and down position useful to see how their react

</td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show swaybar****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show wheels****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">Activate the diameter of the wheel (super useful for configure the radius of them)

</td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Show bones****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">Activate the position of the bone

</td></tr><tr><td colspan="2" style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;">****Reset vehicle****

</td><td style="border: 1px solid rgb(162, 169, 177); padding: 0.2em 0.4em;"></td></tr></tbody></table>

# D1 - Nouveau système d'animations du train roulant pour un véhicule



# C1 - Ancien système d'animations du train roulant pour un véhicule (Déconseillé)