# Where Are AAA Configuration Files Located? AzerothAuctionAssassin Data Directory Guide

> Find AzerothAuctionAssassin AAA configuration files in the AzerothAuctionAssassinData directory. Learn where scan parameters, item settings, and logs are stored for this FF14 tool.

- Repository: [FF14 Advanced Market Search/azerothauctionassassin](https://github.com/ff14-advanced-market-search/azerothauctionassassin)
- Tags: data-directory-guide
- Published: 2026-03-01

---

**All AzerothAuctionAssassin (AAA) configuration files reside in the `AzerothAuctionAssassinData/` directory at the project root, storing JSON configs for scan parameters, desired items, pets, and automated backups alongside runtime logs.**

The AzerothAuctionAssassin scanner, maintained in the `ff14-advanced-market-search/azerothauctionassassin` repository, relies on persistent JSON files to drive its market sniping logic. These AAA configuration files are centrally managed in a dedicated data folder that the application constructs relative to the current working directory on every launch.

## AzerothAuctionAssassinData Directory Structure

When the application starts, it builds absolute paths using `os.path.join(os.getcwd(), "AzerothAuctionAssassinData", "<filename>.json")` as implemented in [[`AzerothAuctionAssassin.py`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py)](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py#L207-L218). This directory contains the core JSON configuration files, sub-folders for backups, and region-specific realm ID mappings.

### Primary JSON Configuration Files

The following files control the scanner's behavior and are created automatically on first launch if missing:

- **[`mega_data.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/mega_data.json)** – Stores API credentials, Discord webhook URLs, scan intervals, and global application settings.
- **[`desired_items.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_items.json)** – Contains the list of specific World of Warcraft item IDs to monitor and their price thresholds.
- **[`desired_pets.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_pets.json)** – Tracks battle pet IDs the scanner should watch for auction sniping.
- **[`desired_ilvl.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_ilvl.json)** – Defines global item-level filters with minimum and maximum bounds.
- **[`desired_ilvl_list.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_ilvl_list.json)** – Holds per-item-level pricing rules, including price caps and bonus modifiers.
- **[`desired_pet_ilvl_list.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_pet_ilvl_list.json)** – Manages pet-level specific pricing configurations and bonuses.
- **`*-wow-connected-realm-ids.json`** – Region-specific mappings (EU, NA, classic) connecting realm names to Blizzard API IDs.

### Backup and Logging Subdirectories

The `AzerothAuctionAssassinData/` folder includes two critical subdirectories for data safety and debugging:

- **`backup/`** – Contains timestamped copies of all JSON configuration files. The application automatically generates backups here every time a configuration is saved, using the pattern `YYYYMMDDHHMMSS_<filename>.json`.
- **`logs/`** – Stores runtime diagnostic logs and application output for troubleshooting scan operations.

## How AAA Loads Configuration Files

The Python backend resolves all configuration paths dynamically relative to the execution directory. In [[`AzerothAuctionAssassin.py`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py)](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py#L207-L218), the path construction logic ensures cross-platform compatibility:

```python
import os
import json

def load_mega_data():
    """Load the core configuration from AzerothAuctionAssassinData."""
    config_path = os.path.join(
        os.getcwd(), 
        "AzerothAuctionAssassinData", 
        "mega_data.json"
    )
    with open(config_path, encoding="utf-8") as f:
        return json.load(f)

```

For the Node.js/Electron frontend, the GUI imports configurations through file dialogs and merges them into the running `MegaData` instance, as seen in [[`node-ui/renderer.js`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/node-ui/renderer.js)](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/node-ui/renderer.js#L100-L108):

```javascript
importConfigBtn.addEventListener('click', async () => {
  const file = await dialog.showOpenDialog({ 
    filters: [{ name: "JSON", extensions: ["json"] }] 
  });
  if (!file.canceled) {
    const data = await readJson(file.filePaths[0]);
    megaData.loadRaw(data);
  }
});

```

## Automatic Backup Mechanism

AAA automatically preserves configuration history to prevent data loss. The `backup_config` method in [[`AzerothAuctionAssassin.py`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py)](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py#L2883-L2890) creates timestamped snapshots:

```python
from datetime import datetime
import os
import json

def backup_config(self, config_name: str, config_data: dict):
    backup_dir = os.path.join(os.getcwd(), "AzerothAuctionAssassinData", "backup")
    os.makedirs(backup_dir, exist_ok=True)
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    backup_path = os.path.join(backup_dir, f"{timestamp}_{config_name}.json")
    
    with open(backup_path, "w", encoding="utf-8") as f:
        json.dump(config_data, f, indent=2)

```

## Version Control and Gitignore Rules

User-generated configuration files are explicitly excluded from version control to prevent credential leakage and merge conflicts. The root [`.gitignore`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/.gitignore) file lists:

```text
AzerothAuctionAssassinData/desired_ilvl.json
AzerothAuctionAssassinData/desired_ilvl_list.json
AzerothAuctionAssassinData/desired_pet_ilvl_list.json
AzerothAuctionAssassinData/desired_items.json
AzerothAuctionAssassinData/desired_pets.json
AzerothAuctionAssassinData/mega_data.json
AzerothAuctionAssassinData/backup/*
AzerothAuctionAssassinData/logs/*

```

Only example templates (prefixed with `example_`) and realm ID mapping files are tracked in the repository, allowing users to copy and customize their own versions without affecting upstream code.

## Summary

- **All AAA configuration files** live in the `AzerothAuctionAssassinData/` directory relative to the application root.
- **Core JSON files** include [`mega_data.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/mega_data.json) for API settings, [`desired_items.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_items.json) for item watch lists, and [`desired_pets.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/desired_pets.json) for pet monitoring.
- **Path resolution** uses `os.path.join(os.getcwd(), "AzerothAuctionAssassinData", ...)` throughout the Python codebase.
- **Automatic backups** are stored in `AzerothAuctionAssassinData/backup/` with timestamps.
- **Git exclusion** prevents personal data and logs from being committed via `.gitignore` rules.

## Frequently Asked Questions

### Where exactly are AAA configuration files stored on disk?

All configuration files are stored in the `AzerothAuctionAssassinData/` folder located at the project root. The application constructs this path dynamically using `os.getcwd()` combined with the directory name, ensuring it always looks for files relative to where the executable or Python script is launched.

### What information does mega_data.json contain?

The [`mega_data.json`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/mega_data.json) file contains the master configuration for the AzerothAuctionAssassin scanner, including Blizzard API keys, Discord webhook URLs for notifications, scan interval timings, and global application preferences. This is the first file loaded on startup and is required for the scanner to authenticate with Blizzard's auction house API.

### Does AAA automatically back up configuration changes?

Yes, the application automatically creates timestamped backups every time a configuration file is saved. These backups are stored in the `AzerothAuctionAssassinData/backup/` subdirectory with filenames following the pattern `YYYYMMDDHHMMSS_<filename>.json`, allowing users to roll back to previous settings if needed.

### Can I manually edit AAA JSON configuration files?

Yes, all JSON configuration files in `AzerothAuctionAssassinData/` are human-readable and can be edited manually with any text editor. The files use standard JSON formatting with indentations, and changes take effect the next time the scanner loads the configuration or restarts. However, ensure valid JSON syntax is maintained to prevent parsing errors on startup.