Blog

Basic Structure of a Mod in Arma 3


Welcome to the first Arma 3 Series turorial blog. In this case we will make our own basic mod. On this tutorial, I will guide you through. all the steps and tools needed for creating our first mod in Arma 3.

IMPORTANT! Keep in mind that this tutorial is a guide for creating basic addons that will only change basic parts of the game. This is not an advanced tutorial. We will aproach the tutorial from the most basic side of creating an Arma 3 addon or mod.

At the end of this post, I will leave a list of usefull websites for learning about Arma 3 Modding and Addon creation.

Before starting to do something is important to have all our tools setup and ready to go, here you will find a selection of tools we will be using during the Arma 3 tutorials:

  1. Arma 3 Tools (Addon Bulding, Tex2View, Arma 3 Publisher, etc.) from Steam.
  2. PBO Manager from Armaholic.
  3. Text/Code Editor: VS Code. You can use your prefered text/code editor, my personal recommendation is VS Code, but that's your preference. Other options: (Notepad++, Atom or Sublime Text, etc.).

Basic Folder Structure for our Addon

When developing our Addon, we will have to create a folder structure like shown in the picture below:

Addon Folder Tree View

Let's analyse that structure folder-by-folder, file-by-file. The first thing we find is our Addon folder with its name. This will be the name of the addon, is not necesary to name it with the full name, but I will recommend you to name all your folders with no spaces and special characters.

Inside this first folder we will have a couple of files and one folder. Lets create those:

mod.cpp

/// Name of your mod
name = "My Mod";
/// Picture displayed from the expansions menu/ Optimal size is 2048x1024, other sizes work too
picture = "\Samples_F\Data_01\Images\picture.paa";
/// Display next to the item added by the mod
logoSmall = "\Samples_F\Data_01\Logos\logo_small.paa";
/// Logo displayed in the main menu
logo = "\Samples_F\Data_01\Logos\logo.paa";
/// Change the logo When the mouse is over, in the main menu of Arma 3
logoOver = "\Samples_F\Data_01\Logos\logoOver.paa";
/// Website URL, that can accessed from the mod data
action = "https://community.bistudio.com/wiki/Mod_Presentation";
/// Tool tip displayed when the mouse is left over, in the main menu of Arma 3
tooltipOwned = "It's yours!";
/// Color used for DLC stripes and backgrounds (RGBA)
dlcColor[] = {  0.23, 0.39, 0.30, 1};
/// Overview text, displayed from the extension menu
overview = "Unleash your creativity! Here goes the long description of your mod.";
/// Hide the extension name
hideName = 0;
/// Hide the extension menu
hidePicture = 0;

addons

That folder will contain all of our .pbo files. Now we have reached this point, let me explain you what is a .pbo.

A .pbo is a compressed folder where all our content will be saved (scripts, images, audios, etc.). Each folder we create inside the addons folder, will be a separate .pbo. This is done, mainly for two reasons:

  1. Organize our assets on small packages with a logical distribution.
  2. Reduce the size of the package.

NOTE: 2GB is the limit for a single .pbo file.

Later on, in future posts, we will learn how to convert our folders on those .pbo files. For now, lets continue with the addons folder content.

The game does only look for the .pbo files so all the references and content we create will be inside those. Is a good practice to name each folder with a prefix (On this example will be "MA_" as "My Addon"). This way is easier to identify our .pbo folders from other addons and we reduce the chance of naming our .pbo as other developer did in his packages.

The structure of the folders inside addons is up to you, and your way of organizing your content on a logical way. You can pack all your content in one unique folder or create one for each type of object (Example: one folder for my uniforms, other for the weapons and other for my vechicles.)

Inside each folder, by general rule, we will have to create one config.cpp file. And one folder data for saving our textures, 3D Models, sounds, etc. Inside de data folder you can create as many folders as you want to organize everything.

config.cpp

The config.cpp will have all the code necessary to add our objects, textures, sounds and whatever we want to add or modify In-Game.


Those are the basics for creating an addon on Arma 3, on future post, we will be learning the code needed on the config.cpp for adding different types of things to our addon.

For more complex addons, ACE3 Team, has >created an open and more complex template you can use for free. This template can be found on their github page. https://github.com/acemod/arma-project-template and will help you using their framework.

All the tutorials related with Arma 3 can be found on the Arma 3 Category of this Blog.

Usefull websites for Modding

If you did find any other source useful, share them on the comments and will try to add those on the list ;)

Share what you've learned

Get Free Updates

Subscribe to receive my lastest publications! And don't lose any post again.

Delivered by FeedBurner

Let's Get In Touch!


Actions speaks louder than words! Do you want to contact me? Go ahead!