Skip to content

Latest commit

 

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A3SQL

Version CI Downloads License

A3SQL is a live SQL database engine for Arma 3. It runs inside your server and lets your mission store, query, and update data with plain SQL: player stats that survive restarts, faction loadouts, event logs, admin commands, and mid-mission value patching. No external database, no PBO repacking.

Requires the latest version of CBA A3.


What you get

  • Player stats and progression. Rank, score, kills, and playtime across sessions. Saved on disconnect, restored on JIP reconnect.
  • Loadout management. Faction and role loadout templates in SQL, applied on spawn with a single call.
  • Dynamic live patching. Change weapon stats, vehicle properties, and other runtime values mid-mission from SQL rules. No mission restart.
  • Analytics and logging. Performance snapshots, kill events, and player connections logged to SQL, exportable as CSV for after-action review.
  • Remote administration. Manage the server from outside the game over the TCP listener: kick/ban players, change missions, run admin commands. Forward notifications to Discord via webhooks.

Installation

Install from the Steam Workshop, or download the latest release and unpack @a3sql into your Arma 3 directory.

Launch the game or server with:

-mod=@cba_a3;@a3sql

Configure via CBA SettingsA3SQL categories.

Quick start

// Server-side, once, at mission start:
["CREATE TABLE IF NOT EXISTS stats (uid STRING PRIMARY KEY, name STRING, score INT)"] call a3sql_fnc_execute;

// Record a result:
["INSERT INTO stats VALUES ('76561198000000001', 'Scarface', 1500)"] call a3sql_fnc_execute;

// Query the top scores:
_result = ["SELECT name, score FROM stats ORDER BY score DESC LIMIT 10"] call a3sql_fnc_execute;

Every command returns [returnCode, status, data], and user input should go through parameterized queries ($1, $2). The full SQF API, SQL dialect, and server-admin guide live in docs/README.md.

Modules

A3SQL is modular. Remove any PBO you don't need:

Addon Purpose
a3sql_main Core mod definition (required)
a3sql_database SQL engine and query API
a3sql_patch_core Dynamic patching engine
a3sql_patch_editor In-game rule editor
a3sql_patch_operators Value transformation operators
a3sql_admin Player tracking and admin commands
a3sql_analytics Performance monitoring and event logging
a3sql_loadouts Faction/role loadout templates
a3sql_persistence Player state save/restore
a3sql_progression Rank/score tracking

Documentation

For modders

Add a3sql as a dependency:

requiredAddons[] = {"a3sql_main", "a3sql_database"};

Execute SQL from SQF:

_result = ["SELECT * FROM loadout_templates WHERE faction = 'NATO'"] call a3sql_fnc_selectMap;

Python CLI tools (stdlib only):

python tools/a3sql-patch.py list
python tools/a3sql-patch.py rcon kick 76561198000000001 --reason "Team killing"
python tools/a3sql-webhook.py --webhook-url "https://discord.com/api/webhooks/..."

Building

cargo build --release --manifest-path extension/Cargo.toml
hemtt build
cargo test --manifest-path extension/Cargo.toml

Contributing

Pull requests welcome. For bugs and feature requests, open an issue.

License

Licensed under the Arma Public License Share Alike (APL-SA), Copyright 2026 ABE Team.

About

SQL database engine for Arma 3 mission and mod makers — store and query live server data with plain SQL: scoreboards, player/vehicle positions, intel, progression, loadouts. Patch runtime values mid-mission, no restart. Rust callExtension with standalone server, TCP listener, transactions, views, plugins, and code signing.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages