Advanced build methods
With VS code Arma Dev Extension
With VS code Arma Dev Extension
Install extension from marketplace
configure the extension from the Antistasi workspace by opening the command pallet
Ctrl
/⌘
+Shift
+P
and running theArma 3: configure
commandfill in the configuration
.json
file something like this
{
"title": "A3 Antistasi",
"name": "A3A",
"author": "Official Antistasi dev team",
"website": "https://antistasi.de/",
"version": "2.5.4",
"buildPath": "build",
"privateKey": "", //add the path to a private bikey for signing when building
"serverDirs": [],
"serverUse32bit": false,
"clientDirs": [ //should list all addons the mod provides
"A3A/addons/config_fixes",
"A3A/addons/core",
"A3A/addons/Events",
"A3A/addons/Garage",
"A3A/addons/gear",
"A3A/addons/GUI",
"A3A/addons/jeroen_arsenal",
"A3A/addons/Logistics",
"A3A/addons/maps",
"A3A/addons/patcom"
],
"clientMods": [
// Example:
// "!Workshop/@CBA_A3",
// "!Workshop/@ace",
// "!Workshop/@User Input Menus",
// "!Workshop/@Extended Function Viewer",
// "!Workshop/@Debug Console",
// "!Workshop/@Zeus Enhanced",
// "!Workshop/@Zeus Enhanced - ACE3 Compatibility",
// "!Workshop/@Enhanced Movement",
// "!Workshop/@DUI - Squad Radar"
],
"ftpConnection": {},
"steamPath": "H:\\SteamLibrary" //arma 3 install steam library, arma 3 tools should be in the same folder
}
Run the command
Extensions: Open Extension Folder
and navigate toole1986.arma-dev-0.0.20 -> out -> helpers -> runArma.js -> ln 54
and add-debug
to the list
let args = [
'2', '1', '0', '-exe', 'arma3_x64.exe',
'-mod=' + clientMods.join(';'),
'-nosplash',
'-world empty',
'-skipIntro',
'-debug'
];
now run the
Arma 3: Build
command, this will output into your build folder with packed addons (and signed if you have a key designated)run the
Arma 3: Toggle code live
command this will create symlinked folders in your arma directory for filepatching, allowing “live editing” of code, by editing the source files (dosnt include anything processed by the config.cpp)run the
Arma 3: Run client
orArma 3: Run client (with logging)
command arma should start with everything ready for you, (the logging alternate will open the rpt thats created on arma launch)
With batch scripting
With batch scripting
This method allows you to “somewhat” easily sign your mod with a private key if you want to run your mod on a dedicated server with signature verification.
To use the following batch script, copy it into a text file and rename the extension to .bat
Make sure to change all of the marked paths to the relevant absolute paths.
You can remove the portions about filepatching, private key signing, and public key signing if those parts are not needed.
@echo off
setlocal
rem *******Edit these three to match local config*********
set builderpath="C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\AddonBuilder\AddonBuilder.exe"
set armapath="G:\SteamLibrary\steamapps\common\Arma 3"
set keypath="C:\Projects\BISkeys\Antistasi__NAME__.biprivatekey"
set sourcedir="%CD%\A3A\addons"
set builddir="%CD%\build\@A3A\addons"
set extraparams=-packonly -sign=%keypath%
del /Q %builddir%\*.*
for /F %%x in ('dir /A:D /B /D %sourcedir%') do (
%builderpath% %sourcedir%\%%x %builddir% %extraparams% -prefix=x\A3A\addons\%%x
)
rem *******Create links to mod and file patching data*******
rmdir %armapath%\@A3ALocal
mklink /J %armapath%\@A3ALocal "%CD%\build\@A3A"
rmdir %armapath%\x\A3A
mklink /J %armapath%\x\A3A "%CD%\A3A"
endlocal
With Arma 3 Tools
With Arma 3 Tools
Note that this guide exists almost solely for reference; building the mod this way is extremely inefficient and should be automated with one of the previous methods.
Packing
Open
Addon Builder
fromArma 3 Tools
- Click options
Add to
List of files to copy directly
these file extensions;*.p3d;*.paa;*.hpp;*.sqf
Click the three dots next to
Path to project folder
and navigate to the repository’s A3A folderAdd the prefix in the format
x/A3A/{folder to build}
Optionally add a path to a
.biprivatekey
for signing, this allows you to leave key verification on for dedicated server testing
Back in the main window, add a source directory, this will be in turn each addon folder in
repository -> A3A -> addons -> {folder to build}
Add a destination folder, this would be for example:
repository -> build -> @A3A -> addons
Ensure for testing that it doesn’t binarize the files
Now, simply press build and repeat for each folder in the
A3A -> addons
Running
Copy the folder in your build directory to your arma 3 directory (or symbolic link it, recommended)
In the arma 3 launcher, under the
Mods
tab, click... More
->Add watched folder...
->Add 'Arma 3' folder
. This will automatically add local mods in your arma directory to your mods list for easy loading.
Live editing
Live editing
Live editing is where you use an option known as “filepatching” to make changes in-game without having to restart the entire game. It is not essential for building, but can help optimize your workflow.
For live editing you need to create this folder structure in your arma 3 directory;
x/A3A/addons
, and then create symbolic links from each folder in your repositoryA3A/addons
folder to the one in your arma directory.Next you need to go in your ArmA 3 launchers
Parameters
tab and underAll Parameters
, in theAdvanced
section, tick the parameterEnable File-Patching
, then under the sectionAuthor
, tick the parameterDebug Mode
. I recommend favoriting these two for ease of use later on.Now when you start with the build loaded under the
Mods
tab, it will start in Dev mode and allow for recompilation of functions on the go either by reloading the mission or by calling the functionA3A_fnc_prepFunctions
.