Official Source Audited IndexedDB Architecture Custom UI Modding

Azeroth Survivors AddOns: System Architecture & Modding Guide

A deep technical breakdown of the browser AddOn engine in Azeroth Survivors: IndexedDB persistence, the in-memory virtual filesystem, and zip package installation.

Quick Answer: How the AddOn Engine Works

Azeroth Survivors contains an authentic, fully functional AddOn engine inspired by World of Warcraft's interface modding. Built through addons.js, custom modifications packaged in .zip archives are uploaded via the in-game Options > AddOns screen. Files are persisted locally inside an IndexedDB database (azeroth-survivors-addons) and mounted directly into the Rust client's host filesystem bridge (/benilla-config/addons) before the WebAssembly engine boots.

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:

  1. Launch Azeroth Survivors on the official domain (wow.aethus.pl).
  2. From the title screen (or while paused during an active run), select Options.
  3. Navigate to the AddOns tab on the left-hand navigation panel.
  4. Click the Install AddOn (.zip) button. This opens a native file picker.
  5. Select your downloaded .zip archive. The browser script decompresses the contents, registers all paths in IndexedDB, and updates the addon index.
  6. 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.sav file directly to your downloads folder.
  • Archive Your Mod Zips: Keep your downloaded .zip files in a dedicated folder on your hard drive so you can re-import them in seconds if you switch devices or browsers.

Frequently Asked Questions

Does Azeroth Survivors have an actual AddOn modding system?
Yes. Unlike many casual browser games, Azeroth Survivors features a fully integrated AddOn system implemented via addons.js and IndexedDB. Players can install custom interface modifications, sound packs, and scripts packaged in standard .zip archives through the in-game Options menu.
Where are AddOn files stored in my web browser?
AddOns are stored locally in the browser's IndexedDB storage under a dedicated database named 'azeroth-survivors-addons' in the 'files' object store. Before the WebAssembly engine boots, these files are read into memory and mounted at the virtual root '/benilla-config/addons'.
How do I install an AddOn in the browser version?
Launch the game, open the Options menu from the title screen or during a pause, navigate to the AddOns tab, and click the install button to pick a .zip archive from your computer. Once installed via window.__rogue_addons, the modifications automatically load on your next run.
Can AddOns survive browser cache clearing?
AddOns persist across normal browser restarts and regular page refreshes because they reside in IndexedDB rather than transient HTTP memory. However, clearing your browser's 'Site Data and Cookies' will wipe the IndexedDB store, requiring you to reinstall your zip packages.