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.

Installation

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.

WinGet (recommended)

Open a terminal and install ArmaQDL.

$ winget install ArmaQDL

Standalone

Download 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.exe is.
    • Example: C:\Arma\armaqdl.exe is your ArmaQDL, you would set C:\Arma as the path.
  • Click "OK", close and re-open the terminal.

Setup

Open a terminal and run ArmaQDL once to generate configuration files without launching Arma (add .exe if armaqdl alone does not find it).

$ armaqdl

Modify the settings file which can be found at %AppData%\ArmaQDL\settings.toml:

  • Set the profile name you wish to use (should be same one as you are using for making missions).
  • Set [locations.main] -> path to the folder where your modpacks are stored.
    • Example: <steamapps>/common/Arma 3/tac_core is your Core modpack, you would set <steamapps>/common/Arma 3 as the path.
  • (Optional) set [locations.workshop] -> path to your Workshop folder.

Dedicated Server

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:

  • hostname to whatever server name you wish.
  • password to the same value as [server] -> password in settings.toml.
  • passwordAdmin to whatever password you require.
  • verifySignatures to 0.

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.hpp

Usage

Every 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.Altis

Example 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 -s

Launches Headless Client with the same configuration and makes it join the launched server.

$ armaqdl -nfp main:wss main:tac_core/* -hc

Launches regular player client with the same configuration and joins the launched server.

$ armaqdl -nfp main:wss main:tac_core/* -j

Note: 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.

⚠️ **GitHub.com Fallback** ⚠️