Technical Architecture: Inside addons.js
An inspection of the official client source code (https://wow.aethus.pl/addons.js) exposes how browser-based modding is achieved without requiring a local native filesystem:
| Architecture Component | Implementation Detail | Function in Game Engine |
|---|---|---|
| IndexedDB Database | const DB_NAME = 'azeroth-survivors-addons' | The persistent client-side storage where all addon scripts and assets are stored across sessions. |
| Object Store | const STORE = 'files' | Key-value store mapping normalized file paths to raw Uint8Array binary data. |
| Virtual Mount Root | const ROOT = '/benilla-config/addons' | The virtual mount point that the Rust WebAssembly client queries during startup. |
| Synchronous FS Bridge | window.__wenilla_fs | Pre-populates all addon assets in RAM so Rust host filesystem calls (benilla_formats::host_fs) execute synchronously without I/O pauses. |
| Global Management Hook | window.__rogue_addons | The JavaScript API exposed to the game's Options screen for importing and deleting zip packages. |
How to Install AddOns Step-by-Step
Installing verified community modifications or personal Lua scripts is straightforward:
- Launch Azeroth Survivors on the official domain (wow.aethus.pl).
- From the title screen (or while paused during an active run), select Options.
- Navigate to the AddOns tab on the left-hand navigation panel.
- Click the Install AddOn (.zip) button. This opens a native file picker.
- Select your downloaded
.ziparchive. The browser script decompresses the contents, registers all paths in IndexedDB, and updates the addon index. - Restart your run or refresh the browser. The WebAssembly engine mounts the new files at boot.
Creating Custom AddOns: Directory Structure
Community creators can build custom interface skins, DPS meters, and audio packs. A valid Azeroth Survivors addon package follows this directory layout:
MyCustomMod.zip
├── MyCustomMod.toc # Table of Contents metadata (Title, Author, Version)
├── core.lua # Primary script logic executed during boot
├── textures/
│ ├── custom_hud.blp # Custom Blizzard texture files (.blp or .png)
│ └── icons/
└── sounds/
└── alert.ogg # Custom sound assets
When zipped, the root folder name becomes the primary addon directory under /benilla-config/addons/MyCustomMod/. Because the underlying game engine executes Lua scripts via WASI shims (wasi_stubs.js), UI events and hook registrations follow classic Warcraft API conventions.
Backing Up Your AddOns & Save Files
Because your installed mods and character progress live inside browser storage, clearing your browser's site data will delete them. Follow these safety practices:
- Export Your Save Regularly: Open Options > Saves and click Download your save. This saves an encrypted
AzerothSurvivors YYYY-MM-DD.savfile directly to your downloads folder. - Archive Your Mod Zips: Keep your downloaded
.zipfiles in a dedicated folder on your hard drive so you can re-import them in seconds if you switch devices or browsers.