ArmaQDL - Theseus-Aegis/MissionTemplate GitHub Wiki
ArmaQDL is a Python program that simplifies launching Arma in various development configurations, and for purposes of mission making, makes testing your missions in a complete multiplayer environment easily possible without interacting with any of the Theseus servers.
It supports the following features to make mission testing easier:
- Load mission via mission name only or specifying profile name
- Open the last log file
- Select the profile to start with
- Easy dedicated server and headless client launching
- Load mission on dedicated server
- Join server
You can use ArmaQDL using any terminal application: PowerShell (recommended), Command Prompt, Bash etc.
This guide expects you to use a terminal application throughout and will only use the word "terminal" to describe it. $ means it is a terminal command and you should not type it, only what follows it.
You can install ArmaQDL in 3 ways, using WinGet (recommended) or as a Standalone application.
The third way is for advanced users and is documented on the ArmaQDL page.
Open a terminal and install ArmaQDL.
$ winget install ArmaQDLDownload armaqdl.exe from latest release and place it in a convenient location, then add that location to PATH so it can be used from anywhere:
- Click on Start and search for "environment".
- Open "Edit the system environment variables".
- Go to the "Advanced" tab and choose "Environment Variables".
- In the top list select the line that says "Path" and click on "Edit".
- Click "New" and enter the folder where your
armaqdl.exeis.- Example:
C:\Arma\armaqdl.exeis your ArmaQDL, you would setC:\Armaas the path.
- Example:
- Click "OK", close and re-open the terminal.
Open a terminal and run ArmaQDL once to generate configuration files without launching Arma (add .exe if armaqdl alone does not find it).
$ armaqdlModify the settings file which can be found at %AppData%\ArmaQDL\settings.toml:
- Set the
profilename you wish to use (should be same one as you are using for making missions). - Set
[locations.main] -> pathto the folder where your modpacks are stored.- Example:
<steamapps>/common/Arma 3/tac_coreis your Core modpack, you would set<steamapps>/common/Arma 3as the path.
- Example:
- (Optional) set
[locations.workshop] -> pathto your Workshop folder.
Required only for testing with a Dedicated Server.
Download Theseus server.cfg and place it next to arma3_x64.exe where your Arma 3 is installed, then edit the following values inside it:
-
hostnameto whatever server name you wish. -
passwordto the same value as[server] -> passwordinsettings.toml. -
passwordAdminto whatever password you require. -
verifySignaturesto0.
Additionally create the userconfig/tac sub-folder next to arma3_x64.exe, download the userconfig/tac/auth.hpp and place it inside.
File structure at the end should look like this:
Arma 3
├── arma3_x64.exe
├── server.cfg
└── userconfig
└── tac
└── auth.hppEvery example uses -nfp which disables file patching. This is by default enabled but only used when developing mods.
Every example will also open the RPT log so you can follow it and search for any errors or warnings.
Example 1: (launch with Theseus modpack straight to the editor)
Launches Arma with Theseus Core modpack and loads a given mission from the default profile (set in settings.toml).
$ armaqdl -nfp main:wss main:tac_core/* -m tac_co_MyMission.AltisExample 2: (launch and join a Dedicated Server)
Launches Dedicated Server with Theseus Core modpack and loads a given mission from the default profile (set in settings.toml).
$ armaqdl -nfp main:wss main:tac_core/* -m tac_co_MyMission.Altis -sLaunches Headless Client with the same configuration and makes it join the launched server.
$ armaqdl -nfp main:wss main:tac_core/* -hcLaunches regular player client with the same configuration and joins the launched server.
$ armaqdl -nfp main:wss main:tac_core/* -jNote: Mission (with -m) can be passed to Headless Client or player joining a server, but will not be used.
If you wish to know more about ArmaQDL and its other uses such as building and testing mods, you can read about it here.