Home - RGXMods/RGX-Framework GitHub Wiki

RGX-Framework

Current source version: v2.7.18.

A modern WoW addon framework — one dependency, everything included.

RGX-Framework is a single RequiredDeps entry that provides a declarative addon front door, events, timers, hooks, combat queueing, slash commands, saved-variable profiles, fonts, colors, a color picker, textures, dropdowns, UI controls, a theming system, tooltips, aura scanning, minimap buttons, sound playback, DataBroker support, and more. No embedding. No version conflicts. No library chains.

Current release v2.7.18 supports Retail 120105, Classic Era 11509, TBC 20506, Wrath/Titan 38002, Cataclysm 40402, and Mists 50504 from one runtime-only addon package.

Related: CurseForge · GitHub · Issues · RGX-Hello (reference addon + test suite)


Quick Start — the whole addon in one call

-- MyAddon.toc
## Interface: 120105
## Title: MyAddon
## RequiredDeps: RGX-Framework
## SavedVariables: MyAddonDB

MyAddon.lua
-- MyAddon.lua — this is the entire addon
RGXAddon "MyAddon" {
    slash   = "myaddon",
    minimap = true,
    db      = { enabled = true, volume = 80 },
    every   = {
        heartbeat = { 30, function(self, timer)
            self.heartbeatTicks = (self.heartbeatTicks or 0) + 1
        end },
    },
    options = {
        General = {
            { toggle = "enabled" },
            { slider = "volume", min = 0, max = 100, suffix = "%" },
        },
    },
    welcome = "loaded — /myaddon for options",
}

That gives you saved settings with profiles, a tabbed options panel with controls that save and restore, a named repeating timer, a slash command, a minimap button whose position persists, and branded chat output. Every key works bare with assumed arguments and accepts an advanced form when you need more — see Declarative API.

local RGX = _G.RGXFramework remains available for à la carte use (Quick Start) — it is the escape hatch, not the front door.


Why RGX?

Problem Ace3 / Legacy RGX
Dependency model Select/compose libraries; often embedded One shared RequiredDeps entry
Version conflicts LibStub arbitration at runtime Single shared instance
Addon setup AceAddon + AceDB + AceConfig assembly RGXAddon "Name" { }
Options UI AceConfig definitions and AceGUI widgets Supported declarative forms plus shared UI/design primitives
Safety infrastructure Library guarantees plus consumer integration Centralized dispatch, lockdown guards and documented restricted-value adapters; client evidence still required
Authoring contract Primarily Lua runtime library interfaces Canonical schema/shared engine, validation/generation/audit adapters and conformance fixtures

The full audited comparison lives in docs/ACE3-ANALYSIS.md.


Module Overview

Module Global Getter Status
Core (events, timers, hooks, slash, combat queue, db) RGXFramework — Active
Fonts RGXFonts RGX:GetFonts() Active
Colors RGXColors RGX:GetColors() Active
ColorPicker RGXColorPicker RGX:GetColorPicker() Active
Textures RGXTextures RGX:GetTextures() Active
Dropdowns RGXDropdowns RGX:GetDropdowns() Active
Design RGXDesign RGX:GetDesign() Active
UI RGXUI RGX:GetUI() Active
Tooltip RGXTooltip RGX:GetTooltip() Active
Auras RGXAuras RGX:GetAuras() Active
Minimap RGXMinimap RGX:GetMinimap() Active
Sound RGXSound RGX:GetSound() Active
DataBroker RGXDataBroker RGX:GetDataBroker() Active
SharedMedia RGXSharedMedia RGX:GetSharedMedia() Active
PetBattles RGXPetBattles RGX:GetPetBattles() Active
Combat RGXCombat RGX:GetCombat() Active
Reputation RGXReputation RGX:GetReputation() Active

All modules load from RGX-Framework.xml; the dormant tier was re-enabled in v2.0.0–v2.1.0.


Wiki Pages

Start Here

  • Declarative API — the RGXAddon front door: shipped keys, bare/advanced forms, controls, layout model
  • Quick Start — TOC setup, à la carte integration, complete examples
  • Architecture — load order, module registration, lifecycle
  • API Reference — full public API

Module Deep-Dives

Tooling & Testing

  • RGX-MCP — the temporary source-only conformance fixture used by CI
  • Testing — RGX-Hello, the reference addon and in-game visual test suite

Guides


Versions

Framework releases are tagged vX.Y.Z, published to GitHub, and uploaded to CurseForge when its project ID and secret are configured. The canonical changelog is Changelog.