- This document explains the knowledge required to understand, use, and improve the
G-MADin the future. - Most of the content in this document is also available on the official Arma3 online community wiki, but because the wiki is extensive, only the necessary parts are summarized here.
- For more information than what is included in this document, please refer to the Arma3 Online Community Wiki.
- If there are any errors in this document or if you would like to add more information, please feel free to contact us.
- A basic
parameter.txtfile must be placed underC:/Users/{username}/Documents/Arma 3. - Move the
missionsfolder included in the code toC:/Users/{username}/Documents/Arma 3/missions. - Note that while the code is running, you must not open or modify any files that the code uses or creates.
Arma3 allows users to create various missions through the features of the EDEN Editor and scripts. Arma3 players can create their own missions using the editor and distribute them through the export function.
The image below shows the main screen of Arma3. Depending on the applied mods and settings, it may look slightly different.
When you move the mouse cursor over the area where there is one person on the screen, the following screen appears.
On this screen, you can use EDITOR to create and debug the desired mission, and then run it through SCENARIO to obtain the desired dataset.
⚠️ You must distinguish betweenEDITORandSCENARIO. The files used byEDITORare located in the Documents folder (Documents\ARMA 3), while the folders used bySCENARIOare located under the ARMA 3 folder inside the Steam directory (C:\Program Files (x86)\Steam\steamapps\common\Arma 3). There may be multipleEDITORfolders depending on the user profile, but there is only one folder used bySCENARIO.
⚠️ The mission folder name handled inEDITORismission, while the mission folder name handled inSCENARIOisMission(the first letter differs in lowercase/uppercase).
⚠️ When running a scenario from the default profile, screenshots are saved in theDocuments\Arma 3\Screenshotsfolder. However, when running it from another profile, screenshots are saved inDocuments\Arma 3 - Other Profiles\{ProfileName}\Screenshots.
⚠️ The reason for distinguishing between the two is error handling. If you run a scenario created through theEDEN Editor, all errors are displayed, so production may stop due to non-critical errors. However, if you export the created scenario and then run it throughScenarios, errors are not printed during actual gameplay, so scene production can continue without being interrupted by errors. In addition, inScenarios, various warnings can be ignored through mods.
At a high level, G-MAD operates as follows.
-
It receives user-specified information such as camera type, time of day, map, weather, image size, sampling rate, and so on.
-
It creates a mission based on the user's information.
-
It moves the mission created by the user to the Steam directory and runs it through
Play Scenario. -
While Arma3 is running, Python reads and organizes the folders containing the generated scenario files.
-
When data generation is finished, it cleans up dummy files.
Among these steps, steps 2 and 3 require knowledge of the Arma3 game itself rather than the SQF language.
Whether you edit a mission in the EDEN Editor or later work under the Steam directory, when the created mission is opened, the basic execution flow inside Arma3 is as follows.
-
The
mission.sqmfile is opened.- The
mission.sqmfile contains basic item placement, basic weather, and related information.
- The
-
The
init.sqffile is executed.- The
init.sqffile is automatically executed after themission.sqmfile is loaded. - The
init.sqffile contains SQF commands that execute files such asplay1.sqf,play2.sqf, and so on.
- The
-
Code that creates the scene, such as
play1.sqf, is executed.
Since init.sqf is generated in Python, this section will cover the mission.sqm file that is created and distributed within Arma3.
The mission.sqm files are created and distributed by the developer. They contain one basic player and a Zeus game master placement.
However, because they contain elements that affect the overall map and the data, this document will explain them briefly.
After placing a basic character and a Zeus game master in the EDEN Editor, open the General section under Attributes as shown in the image below.
When opened, the following window appears.
The parts that require attention are the States and Misc sections.
When you click States, the following window appears.
The settings should be checked as shown in the screenshot above.
The Show briefing/debriefing options are processes that explain related information before and after the mission starts. Since they are unnecessary, both should be unchecked.
In particular, disabling debriefing is important because the game returns to the main screen after data generation only when that option is unchecked. Therefore, you should check these two options carefully.
The remaining settings were left at their default values.
In the Misc section, there is an item like the one below.
In this section, Binarize the Scenario File must be unchecked. This does not have a major impact, but if binarization is enabled, the mission.sqm file is saved in an unreadable format.
There is also an option to binarize when saving the mission.sqm file, so make sure to check it when saving.
There are many other settings, but these seem to be the important ones.
Among the current maps, the maps whose mission.sqm files have been modified are Altis, Malden 2035, Stratis, Weferlingen, and Weferlingen (Winter). The modified mission.sqm files are located in the mission folder of the project.
Since the purpose of this document is to explain Arma3 itself, it will skip writing files such as init.sqf.
In Arma3, users subscribe to various mods from the Steam user community and load those mods into the game.
You must distinguish between DLCs and mods, and also between subscribing to a mod and loading a mod. The differences are as follows.
DLC → officially distributed by Arma3
MOD → distributed through the Steam user community
Subscribing to a mod in the Steam community → automatically downloads the mod to disk. It is not applied to the game.
Loading a mod into the game → downloads the mod to disk and applies it to the game.
To subscribe to a MOD, go to the Steam Library, enter the Community Hub, and then go to the Workshop, where various MODs are available.
After finding the desired mod, click Subscribe, and it will be downloaded automatically.
The MODs and DLCs currently subscribed to and loaded in G-MAD are as follows.
-
DLC
- GM (Global Mobilization)
- AoW (Art of War)
-
MOD
- 3CB Factions
- A3 Thermal Improvement;
- Automatic Warning Suppressor
- CBA_A3
- Cold War Rearmed III
- CUP Terrains - Core
- CUP Units
- CUP Vehicles
- CUP Weapons
- Debug Console
- Global Mobilization - Cold War Germany- Compatibility Data for Non-Owners
- Pook ARTY Pack
- POOK Camonets
- POOK SAM PACK
- RHSAFRF
- RHSGREF
- RHSSAF
- RHSUSAF
- Global Mobilization - Cold War Germany - Community Language Pack
DLCs are located under C:\Program Files (x86)\Steam\steamapps\common\Arma 3 with folder names such as GM and AoW. Mods are located under C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop with folder names such as @CBA_A3.
Inside each folder, the data is organized as .pbo files. These files can be inspected using a program such as Pbo Manager. In particular, they contain .p3d files, which are 3D objects, as well as various textures. Therefore, the contents of mods can be created or used in other programs with 3D tools such as Blender.
This is an important part that enables automatic execution of G-MAD.
Using startup parameters, you can run the created scenario with a single command-line execution.
Detailed information can be found in Arma3: Startup Parameters, but this document describes only the parameters needed for G-MAD and those that may be applicable in the future.
In general, strings are written in the form "text". For paths, use backslashes as in C:\User\"ARMA 3"\, and if a folder name contains spaces, enclose it with \".
| parameter | Parameter explanation | ✓ / ✗ / ? |
|---|---|---|
| -enableHT | Enable HyperThreading and Multicore Processing | ✓ |
| -malloc=<string> | Change memory allocation type | ✗ works well but is not currently used |
| -hugePages | Change page size from 4 KB to 2 MB | ✗ used with -malloc, but does not work well |
| -noPause | Enable the game to keep running in the background | ✓ |
| -noPauseAudio | Enable game sound to keep running in the background | ✓ |
| -filePatching | Enable unloaded mods to be loaded | ✓, but the unloaded mod must be subscribed |
| maxFileCashSize=<int> | Maximum size of file cache | ? Not sure whether it works |
| -mods=<string> | Mod to be loaded | ✗ use -par instead |
| -par=<path> | Use parameters in XXX.txt |
✓ |
| parameter | Parameter explanation | ✓ / ✗ / ? |
|---|---|---|
| -skipIntro | Skip the ARMA III logo | ✓ |
| -noSplash | Skip the Nvidia and other logos | ✓ |
| -window | Force the game to run in windowed mode | ✓ |
| -init=<sqf script> | Execute an SQF script at the main menu | ✓ |
| -debug | Enable a specific debug mode | ✓ |
| -noLogs | Stop writing logs | ✓ |
| -posX | X coordinate of the top-left corner of the window | ✓ |
| -posY | Y coordinate of the top-left corner of the window | ✓ |
Debug files are saved as ***.rpt files under C:\Users\{username}\AppData\Local\Arma 3\.
The ARMA 3 executable is C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3_x64.exe. Therefore, entering a command like the one below automatically loads mods and runs the mission.
# on Windows Powershell or Terminal
C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3_x64.exe -skipIntro -noSplash -window -enableHT -hugePages -noPause -noPauseAudio -filePatching -maxFileCacheSize=2048 -debug -par=C:\Users\{username}\Documents\"Arma 3"\parameter.txtFor reference, parameter.txt looks as follows.
-posX=20
-posY=20
-mod="GM;AoW;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CBA_A3;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CUP Weapons;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@RHSUSAF;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@RHSAFRF;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CUP Weapons;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CUP Units;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@RHSGREF;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@RHSSAF;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CUP Vehicles;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@CUP Terrains - Core;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@3CB Factions;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@Cold War Rearmed III;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@A3 Thermal Improvement;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@Pook ARTY Pack;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@POOK Camonets;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@POOK SAM PACK;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@Global Mobilization - Cold War Germany- Compatibility Data for Non-Owners;C:\Program Files (x86)\Steam\steamapps\common\Arma 3\!Workshop\@Automatic Warning Suppressor;"
For parameter.txt, the important points are that mods must be separated with ;, there must be no spaces ( ) or line breaks inside the string, and all entries must be written continuously. Also, paths can be relative or absolute, but absolute paths are recommended for MODs.
There are various maps in the current mission folder. Some of these require purchasing ARMA 3 Ultimate Edition or downloading specific MODs. The corresponding information is summarized in the table below. If you want to use various maps, please subscribe to the relevant mods or purchase Ultimate Edition.
Map-adding mods:
- CUP Terrains - Maps
- CUP Terrains - Maps 2.0
- CUP Terrains - CWA
| Folder Name | Map Name | Arma3 / DLC / MOD |
|---|---|---|
| altis.Altis | Altis | Arma3 |
| bukovina.Bootcamp_ACR | Bukovina | CUP Terrains - Maps |
| bystrica.Woodland_ACR | Bystrica | CUP Terrains - Maps |
| chernarus_autumn.chernarus | Chernarus 2020 | CUP Terrains - Maps 2.0 |
| chernarus_summer.chernarus_summer | Chernarus Autumn | CUP Terrains - Maps |
| chernarus_winter.Chernarus_Winter | Chernarus Winter | CUP Terrains - Maps |
| everon.eden | Everon | CUP Terrains - CWA |
| kolgujev.cain | Everon | CUP Terrains - CWA |
| livonia.Enoch | Livonia | Arma3 Contact |
| malden.abel | Malden | CUP Terrains - CWA |
| malden2035.Malden | Malden 2035 | Arma3 Free DLC |
| nogova.noe | Nogova | CUP Terrains - CWA |
| proving_grounds.ProvingGrounds_PMC | Proving Grounds | CUP Terrains - Maps |
| sahrani.sara | Sahrani | CUP Terrains - Maps |
| shapur.Shapur_BAF | Shapur | CUP Terrains - Maps |
| southern_sahrani.saralite | Southern Sahrani | CUP Terrains - Maps |
| stratis.Stratis | Stratisis | Arma3 |
| takistan.takistan | Takistan | CUP Terrains - Maps |
| takistan_mountains.Mountains_ACR | Takistan Mountains | CUP Terrains - Maps |
| tanoa.Tanoa | Tanoa | Arma3 Apex |
| united_sahrani.sara_dbe1 | United Sahrani | CUP Terrains - Maps |
| weferlingen.gm_weferlingen_summer | Weferlingen | Arma3 Global Mobilization |
| weferlingen_winter.gm_weferlingen_winter | Weferlingen (Winter) | Arma3 Global Mobilization |







