Black Skulls is an Arma 3 faction mod project that packages the group across multiple eras instead of as a single all-in-one setting. Each addon focuses on a different time period, with its own units, groups, vehicles, weapons, identities, scripts, textures, and editor assets.
bskulls-modern: present-day / near-contemporary faction contentbskulls-coldwar: Cold War-era faction contentbskulls-nam: Vietnam-era faction content
These are released as separate addons and versioned independently.
Each addon release currently ships as an individual .pbo file.
- Download the addon
.pboyou want from the repository's Releases page. - Create a local mod folder somewhere on disk, for example:
@bskulls-modern@bskulls-coldwar@bskulls-nam
- Inside that folder, create an
Addonsdirectory. - Copy the released
.pbointo thatAddonsdirectory. - Open the Arma 3 Launcher.
- Add the folder as a local mod and enable it in the launcher.
Example layout:
@bskulls-modern/
Addons/
bskulls-modern_v0.1.0.pbo
You can also load the addon with Arma 3's -mod= startup parameter.
Example:
-mod=@bskulls-modern
If you are loading multiple mods, separate them with semicolons.
Example:
-mod=@CBA_A3;@bskulls-modern
These addons depend on Arma 3 base content plus third-party mods. The dependency set is addon-specific, so check each addon's CfgPatches.hpp for the authoritative required addons list.
All releases are signed. Each release includes:
.pbo: the addon.bisign: the signature file, must sit alongside the.pboin the mod'sAddonsfolderRoFz_bskulls.bikey: the public key for server-side verification
Server-side setup:
- place the addon
.pboand its.bisignin the mod'sAddonsfolder - place
RoFz_bskulls.bikeyin the server'skeysfolder
addons/: active HEMTT addon contentdiscarded/: reference and study material kept for context, not for active builds.hemtt/: HEMTT project configuration.github/workflows/: CI and release automation
- Make focused changes.
- Avoid broad structural edits unless they are intentional and reviewed.
- Use Conventional Commits.
- Run
hemtt checkbefore opening a pull request.
The repo devcontainer installs the local tooling used for Arma work, including Java for the skacekachna.sqflint VS Code extension. If SQFLint starts logging spawn java ENOENT after opening or editing Cfg*.hpp files, rebuild the devcontainer so .devcontainer/post-create.sh can reinstall the runtime.
Use the local dependency audit to review CfgPatches.requiredAddons[] against actual config usage:
python3 tools/audit_required_addons.py addons/bskulls-modern
The audit is report-only in v1. It uses:
- actual class references found in addon config and SQF files
tools/class_to_patch_map.jsonfor verified class-to-CfgPatchesownership
When a new external class appears, verify its owning patch in the upstream mod config and add it to the mapping file once. Then re-run the audit and update requiredAddons[] from the report.
You can also compare the static audit against a runtime-exported config snippet, for example an ALiVE ORBAT/autogen export that contains requiredAddons[]:
python3 tools/audit_required_addons.py addons/bskulls-modern --runtime-cfg /path/to/autogen.hpp
That gives you two complementary signals:
- static source scanning catches inheritance and content references even when you have not loaded the modset in game
- runtime/oracle exports reflect what Arma reports from the live loaded config database
When those disagree, the report highlights the gaps so you can either:
- expand
tools/class_to_patch_map.json - correct
requiredAddons[] - or confirm the runtime export was scenario-specific and not a full addon dependency picture
See CONTRIBUTING.md for contribution rules, review expectations, and repository safety guidance.
This repository is licensed under CC BY-NC-ND 4.0.
In short: attribution is required, commercial use is not allowed, and redistribution of modified versions is not allowed under this license.
