Convert Arma3Sync (.a3s) Java-serialized metadata into a clean JSON document — entirely offline, from local files only.
- Reads the five standard
.a3sfiles from a local directory:autoconfig,changelogs,events,serverinfo,sync. - Decompresses each gzipped file to a temporary file and parses it via the bundled Java deserializer.
- Produces a single JSON with top-level keys:
autoconf,serverinfo,changelog,sync,events, plusTYPE,VERSION, andAUTHORS. - Events include a
modsarray resolved from the eventaddonNamesmap for quick mod visibility. - No network access is used; everything reads from local disk.
- Python 3.8+ (tested on 3.12)
- Java Runtime Environment on PATH (used to run
jdeserialize-1.2.jarin the repo root) - Python deps:
pip install -r requirements.txt
- Command:
python Parser.py <path_to_.a3s_dir> <output_json> [--autoconfig] [--serverinfo] [--changelogs] [--sync] [--events] [--debug] - Examples (Windows):
- Parse everything present:
python Parser.py "C:\repo\.a3s" "C:\repo\.a3s\Output\repo.json" - Parse only events:
python Parser.py "C:\repo\.a3s" "C:\repo\.a3s\Output\events.json" --events - Enable verbose parse logging:
python Parser.py "C:\repo\.a3s" out.json --debug
- Parse everything present:
- If no selective flags are provided, all sections are parsed.
--autoconfig--serverinfo--changelogs--sync--events— parse only the specified sections (can combine).--debug— show low-level parse messages (including otherwise suppressed "Could not parse" notices).
autoconf.URL_CONF— auto-detected URL config object (Http/Https/Ftp/Sftp) from the serialized data.serverinfo.SERVER_INFO— repository stats (files, size, revision, etc.).changelog— changelog instances with expanded addon lists.sync— repository tree as a nested structure.events.EVENTS.<id>— each event withname,description, andmods(flattened addon list).TYPE,VERSION,AUTHORS— metadata for the generated JSON (VERSION=0.9, AUTHORS=["GPT", "Darojax"]).
- Missing modules: run
pip install -r requirements.txt. - Java not found: install a JRE and ensure
java -versionworks in your shell. - Empty/missing sections: confirm the
.a3sdirectory containsautoconfig,changelogs,events,serverinfo,sync.
- Local-only: helper module
LocalFilehandles temp file extraction. - Parsers:
autoconfig/,serverinfo/,changelogs/,sync/,events/. - Java bridge:
JDeserialize/(invokesjdeserialize-1.2.jar).
- This project is provided under the Unlicense. See
LICENSE.