{"id":35262448,"url":"https://github.com/jonpas/armaqdl","last_synced_at":"2026-04-04T13:02:53.150Z","repository":{"id":88266909,"uuid":"200712848","full_name":"jonpas/ArmaQDL","owner":"jonpas","description":"Quick Development Launcher for Arma 3","archived":false,"fork":false,"pushed_at":"2024-08-20T13:05:42.000Z","size":89,"stargazers_count":10,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-27T17:09:09.313Z","etag":null,"topics":["arma","arma3","developer-tools","hacktoberfest","hemtt","launcher"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonpas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-08-05T19:00:49.000Z","updated_at":"2024-08-20T13:05:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"77c3ac0b-ecb6-473f-a626-0cc8b751430b","html_url":"https://github.com/jonpas/ArmaQDL","commit_stats":null,"previous_names":["jonpas/arma-qdl"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/jonpas/ArmaQDL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonpas%2FArmaQDL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonpas%2FArmaQDL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonpas%2FArmaQDL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonpas%2FArmaQDL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonpas","download_url":"https://codeload.github.com/jonpas/ArmaQDL/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonpas%2FArmaQDL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31400460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arma","arma3","developer-tools","hacktoberfest","hemtt","launcher"],"created_at":"2025-12-30T09:23:17.031Z","updated_at":"2026-04-04T13:02:53.143Z","avatar_url":"https://github.com/jonpas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ArmaQDL\n\n[![CI Test](https://github.com/jonpas/ArmaQDL/actions/workflows/test.yml/badge.svg)](https://github.com/jonpas/ArmaQDL/actions/workflows/test.yml)\n[![PyPI](https://img.shields.io/pypi/v/ArmaQDL.svg?logo=pypi\u0026label=PyPI\u0026logoColor=gold)](https://pypi.org/project/ArmaQDL)\n[![PyPI Python](https://img.shields.io/pypi/pyversions/ArmaQDL.svg?logo=python\u0026label=Python\u0026logoColor=gold)](https://pypi.org/project/ArmaQDL)\n[![winstall](https://img.shields.io/badge/WinGet-lightblue.svg)](https://winstall.app/apps/jonpas.ArmaQDL)\n\nQuick launching various mod development configurations for Arma through a simple CLI.\n\nThrough easily-identifiable preset locations, this program can provide a fast and developer-friendly CLI with some additional optional features, such as building mods and opening the last log file. It is designed around easily modifiable location groups and build tools.\n\n## Features\n\n- Easy **mod launching** from different **preset locations**\n- **Load mission** via mission name only or specifying profile name\n- **Build** development **mods**\n- Open the last log file\n- Select the profile to start with\n- Toggle file patching, script errors, signature check and windowed mode\n- Mod location wildcards (`glob` pattern matching)\n- Easy **dedicated server and headless client launching**\n- Load mission on dedicated server (by manipulating `server.cfg`)\n- Join server\n\n\n## Installation\n\nArmaQDL is distributed on [PyPI](https://pypi.org/) as well as a Standalone executable (Windows only).\n- Use [WinGet (recommended)](#winget-(recommended)) or [Standalone](#standalone) if you are on Windows and don't have Python installed.\n- Use [PyPI](#pypi) if you have Python installed or are not using Windows.\n\nPyPI provides easier updating of ArmaQDL, while Standalone requires manual updates.\n\n#### WinGet (recommended)\n\nOpen Command Prompt, PowerShell or any other terminal application and install ArmaQDL.\n\n```sh\n$ winget install armaqdl\n```\n\n#### Standalone\n\nDownload `armaqdl.exe` from [latest release](https://github.com/jonpas/ArmaQDL/releases/latest) and place it in a convenient location.\n\n_Note: Add location directory to `PATH` environmental variable to use it directly._\n\n#### PyPI\n\nInstallation as a user is recommended to avoid permission issues with CLI script installation.\n\n```\n$ pip install --user ArmaQDL\n```\n_Note: Add pip installation directory to `PATH` environmental variable to use it directly._\n\n\n## Setup\n\nOpen Command Prompt, PowerShell or any other terminal application, and run ArmaQDL once to generate the configuration files (this will not launch Arma).\n\n```sh\n# WinGet / CMD / PyPI if in PATH\n$ armaqdl\n\n# PyPI as a Python module\n$ python -m armaqdl\n```\n_Note: Add `.exe` if `armaqdl` is not enough to find the executable._\n\nYou should modify the [default settings](https://github.com/jonpas/ArmaQDL/blob/master/config/settings.toml) to your needs. Launching without setup may create a new profile and result in failed launches.\n\nSettings file can be found in your operating system's standard configuration directory, usually:\n- Windows: `%AppData%\\ArmaQDL\\settings.toml`\n- Linux: `~/.config/ArmaQDL/settings.toml`\n\nSettings are in [TOML](https://toml.io/en/) format and can be edited with any text editor.\n\n### Dedicated Server\n\nLoading a mission on dedicated server automatically requires `server.cfg` to be present next to `arma3_x64.exe` with at least the following mission and Headless Client entries.\n\n```cpp\n// Automatically load the first mission in rotation\nclass Missions {\n    class Test {\n        template = \"mission.vr\";\n    };\n};\n\n// Allow Headless Clients from local machine\nheadlessClients[] = {\"127.0.0.1\"};\nlocalClient[] = {\"127.0.0.1\"};\n\n// Allow multiple connections, unsigned mods and file patching (as needed)\nkickDuplicate = 0;\nverifySignatures = 0;\nallowedFilePatching = 2;\n```\n\nArmaQDL copies the mission from used profile's missions folder and updates the mission name in `server.cfg` to make the server automatically load it.\n\n\n## Usage\n\nArmaQDL is a CLI script, view all the options with the `--help` flag.\n\n```sh\n$ armaqdl -h\n```\n_Note: All examples use `armaqdl` to launch ArmaQDL, replace it appropriately depending on your install._\n\n**Example 1:** _(launching and building mods)_\n\nLaunches Arma with CBA from main location, ACE3 from Workshop install and ACRE2 from local development folder. Additionally builds ACRE2 mod and opens the latest log file. Loads Arma directly into the editor using the specified mission from the \"Soldier\" profile.\n\n```sh\n$ armaqdl main:cba workshop:@ace dev:acre2:b -m Soldier:test.vr\n```\n\nSpecific build tool can also be specified, such as HEMTT.\n\n```sh\n$ armaqdl main:cba workshop:@ace dev:acre2:bhemtt -m Soldier:test.vr\n```\n\n**Example 2:** _(server and mission handling)_\n\nLaunches Arma Server with CBA from local development folder and loads specified mission from default profile's missions folder, copying it to the server in the process.\n\n```sh\n$ armaqdl dev:cba -m test.vr -s\n```\n\nLaunches Arma with CBA from local development folder and connects to the given server with the given password (`-j` defaults to the settings file).\n\n```sh\n$ armaqdl dev:cba -j 192.168.1.1:2302:test\n```\n\n**Example 3:** _(glob and skipping)_\n\nLaunches Arma with all mods in a folder `modpack` from main location, skipping ACE3 in the same folder and instead loading ACE3 from a local development folder. This is useful for replacing a subset of mods from a bigger modpack.\n\n```sh\n$ armaqdl main:modpack\\* main:modpack\\ace:s dev:ace\n```\n\n**Example 4:** _(launch types)_\n\nLaunches Arma with mods from local development folder, CBA using HEMTT release build, ACE3 using automatic launch type determination and ACRE2 using non-HEMTT build. Available launch types are `dev`, `build`, `release` for HEMTT or none for non-HEMTT `addons/`. Automatic determination uses HEMTT if `.hemttout` folder exists with launch type as specified in settings file, or `dev` if not specified.\n\n\n```sh\n$ armaqdl dev:cba:trelease dev:ace dev:acre2:t\n```\n\nBuild type for HEMTT can also be specified using the same flag in addition to build flag.\n\n```sh\n$ armaqdl dev:cba:bhemtt:trelease dev:ace:b:tbuild\n```\n\n**Example 5:** _(optionals)_\n\n_Note: Only optionals inside `optionals` folder in a full `@mod` folder structure (such as HEMTT produces) are supported._\n\nLaunches Arma with Theseus Services from local development folder and its MELB Variants optional skipping the prefix using glob pattern matching. `@` must still be used for each optional (or pattern) specified.\n\n```sh\n$ armaqdl dev:TheseusServices:o@*variants_melb\n```\n\nGlob pattern matching may also be used to match multiple optionals.\n\n```sh\n$ armaqdl dev:TheseusServices:o@*variants*\n```\n\n\n## Development\n\nArmaQDL uses [Hatchling](https://hatch.pypa.io/latest/) as a build backend and [flake8](https://flake8.pycqa.org/en/latest/) as a style guide.\n\n```sh\n$ pip install --user -e .\n```\n\n[Hatch](https://hatch.pypa.io/latest/) is the primary project manager of choice, but any project adhering to PEP 621 (`pyproject.toml` specification) can be used.\n\n```sh\n# Run development build\n$ hatch run armaqdl\n# Lint with flake8\n$ hatch run lint\n# Test with pytest\n$ hatch run test\n# Bundle with PyInstaller\n$ hatch run static:bundle\n```\n\nLimited Linux support exists for testing purposes, but launching Arma or opening the last log file is not supported. Contributions are welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonpas%2Farmaqdl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonpas%2Farmaqdl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonpas%2Farmaqdl/lists"}