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+Pand running theArma 3: configurecommandfill in the configuration
.jsonfile 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 Folderand navigate toole1986.arma-dev-0.0.20 -> out -> helpers -> runArma.js -> ln 54and add-debugto the list
let args = [
'2', '1', '0', '-exe', 'arma3_x64.exe',
'-mod=' + clientMods.join(';'),
'-nosplash',
'-world empty',
'-skipIntro',
'-debug'
];
now run the
Arma 3: Buildcommand, this will output into your build folder with packed addons (and signed if you have a key designated)run the
Arma 3: Toggle code livecommand 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 clientorArma 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 BuilderfromArma 3 Tools- Click options
Add to
List of files to copy directlythese file extensions;*.p3d;*.paa;*.hpp;*.sqfClick the three dots next to
Path to project folderand navigate to the repository’s A3A folderAdd the prefix in the format
x/A3A/{folder to build}Optionally add a path to a
.biprivatekeyfor 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 -> addonsEnsure 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
Modstab, 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/addonsfolder to the one in your arma directory.Next you need to go in your ArmA 3 launchers
Parameterstab and underAll Parameters, in theAdvancedsection, 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
Modstab, 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.