Note
Paragon Anniversary Serverside is now feature-complete and stable! Clientside UI is still in development with some features to complete.
| Component | Status | Notes |
|---|---|---|
| Serverside | โ๏ธ Beta | All core features complete, dual-mode system fully implemented, stabilization in progress |
| Clientside | ๐จ Beta | Core UI functional, features and refinement in progress |
| Documentation | โ Complete | Full code docs, architecture guides, and hook specifications |
Important
The Paragon System is currently available exclusively for AzerothCore (3.3.5a).
We are focusing on ensuring all functionality is stable and bug-free on AzerothCore before expanding to other platforms. This allows us to provide a reliable and well-tested experience.
Future Plans:
- ๐ After stabilization on AzerothCore, a port to ElunaTrinityWotlk is planned
- ๐ Additional emulator support may follow based on community demand
If you're using a different emulator and interested in compatibility, please open an issue on the project repository.
The Paragon System introduces an endgame progression mechanic for AzerothCore servers. After reaching max level, players continue to earn paragon experience and unlock stat bonuses through a point-based talent system.
- ๐ Paragon Levels: Unlimited progression beyond max level
- โก Stat Bonuses: Invest points in Combat Ratings, Stats, and Special Auras
- ๐ฏ Three Categories:
- Combat: Hit, Crit, Haste, Expertise, Armor Penetration
- Stats: Strength, Agility, Stamina, Resistances, HP/Mana
- Auras: Loot, Reputation, and Experience bonuses
- ๐ฎ Multi-Source Experience: Gain paragon XP from creatures, achievements, quests, and skills
- ๐ฐ Point System: Earn points to distribute among available statistics
- ๐ Client Integration: In-game interface via custom addon
- ๐พ Persistent: All progress saved to database
|
Configuration Tables:
Character Data (Character-Linked Mode):
Account Data (Account-Linked Mode):
|
Configure LEVEL_LINKED_TO_ACCOUNT in paragon_config:
0(Default): Character-linked - Each character has independent progression1: Account-linked - All characters on account share level/XP but have separate stat investments
- ๐ Copy the
paragonfolder to your ALE scripts directory - ๐ Restart your AzerothCore server (tables auto-create)
- โ๏ธ Configure
paragon_configtable with your desired settings
๐ Note: Requires ALE engine installed on AzerothCore
For complete installation instructions including:
- โ Prerequisites and dependencies
- โ Step-by-step server setup
- โ Database configuration
- โ Client-side addon installation
- โ Testing and troubleshooting
๐ Read the Full Installation Guide
Configure the system via database entries in paragon_config:
| Field | Description | Default |
|---|---|---|
ENABLE_PARAGON_SYSTEM |
Enable/disable the entire system | 1 |
LEVEL_LINKED_TO_ACCOUNT |
Character-linked (0) vs Account-linked (1) mode | 0 |
PARAGON_LEVEL_CAP |
Maximum paragon level (0 = unlimited) | 999 |
MINIMUM_LEVEL_FOR_PARAGON_XP |
Minimum character level to earn paragon XP | 0 |
| Field | Description | Default |
|---|---|---|
BASE_MAX_EXPERIENCE |
Base XP per level (multiplied by level) | 1000 |
POINTS_PER_LEVEL |
Points awarded per paragon level | 1 |
PARAGON_STARTING_LEVEL |
Starting paragon level for new characters | 1 |
PARAGON_STARTING_EXPERIENCE |
Starting experience value | 0 |
| Field | Description | Default |
|---|---|---|
UNIVERSAL_CREATURE_EXPERIENCE |
Default XP for creature kills | 50 |
UNIVERSAL_ACHIEVEVEMENT_EXPERIENCE |
Default XP for achievements | 100 |
UNIVERSAL_SKILL_EXPERIENCE |
Default XP for skill increases | 25 |
UNIVERSAL_QUEST_EXPERIENCE |
Default XP for quest completion | 75 |
| Field | Description | Default |
|---|---|---|
EXPERIENCE_MULTIPLIER_LOW_LEVEL |
Bonus multiplier for low-level paragons | 1.5 |
EXPERIENCE_MULTIPLIER_HIGH_LEVEL |
Penalty multiplier for high-level paragons | 0.8 |
LOW_LEVEL_THRESHOLD |
Paragon level below which bonus applies | 5 |
HIGH_LEVEL_THRESHOLD |
Paragon level above which penalty applies | 100 |
| Field | Description | Default |
|---|---|---|
DEFAULT_STAT_LIMIT |
Maximum points per individual stat (1-255) | 255 |
- Add categories to
paragon_config_category - Define statistics in
paragon_config_statistic - Configure
type,factor, andlimitfor each stat
Stat Configuration Fields:
type:AURA,COMBAT_RATING, orUNIT_MODStype_value: The specific stat ID from Constantsfactor: Multiplier for each point investedlimit: Maximum points that can be invested (max 255)application: How the stat bonus is applied
|
|
Custom aura IDs: 1900000+ |
- Singleton Pattern: Config and Repository services
- Repository Pattern: Database abstraction layer
- Object-Oriented: Using classic.lua library
- Async Queries: Non-blocking database operations
- Auto-Migration: Tables created automatically on startup
- Normalized Schema: Separated config and character data
- Protocol:
ParagonAnniversaryaddon prefix - Commands:
1: Load paragon data (sends level, experience, and all statistics)2: Update statistics (receives updated stat values from client)
- PLAYER_EVENT_ON_LOGIN (3): Load paragon data on login
- PLAYER_EVENT_ON_LOGOUT (4): Save paragon data on logout
- PLAYER_EVENT_ON_KILL_CREATURE (7): Award paragon experience for creature kills
- PLAYER_EVENT_ON_ACHIEVEMENT_COMPLETE (45): Award paragon experience for achievements
- PLAYER_EVENT_ON_QUEST_COMPLETE (54): Award paragon experience for quests
- PLAYER_EVENT_ON_SKILL_UPDATE (62): Award paragon experience for skill increases
- SERVER_EVENT_ON_LUA_STATE_OPEN (33): Reload paragon data for all players when Lua state opens
- SERVER_EVENT_ON_LUA_STATE_CLOSE (16): Save paragon data for all players when Lua state closes
Paragon experience is awarded from multiple activities:
- ๐ Creatures: Kill monsters and bosses
- ๐ Achievements: Complete achievement goals
- ๐ Quests: Complete quests
- ๐ฏ Skills: Increase character skills
Experience rewards are configurable per source with:
- Universal default: Base experience reward value for each source type
- Specific rewards: Custom experience values per creature/achievement/quest/skill ID (overrides universal default)
- Earning: Players earn a configurable number of points per paragon level (
POINTS_PER_LEVEL) - Available Points: Points = (Level ร Points Per Level) - (Total Points Spent)
- Investing: Allocate points to statistics with configured limits per stat (max 255 points each)
- Validation: Server validates all point allocations before applying stat bonuses
The Paragon System includes comprehensive documentation:
All code is fully documented with LuaDoc comments:
--- Adds points to the available paragon points
-- @param points The amount of points to add
-- @return Self for method chaining
function Paragon:AddPoints(points)
return self:SetPoints(self:GetPoints() + points)
end
--- Retrieves the paragon experience reward for a creature by entry ID
-- @param entry The creature entry ID
-- @return The experience reward value or nil if not configured
function Config:GetCreatureExperience(entry)
return self.experience.creature[entry]
endComplete guides and API documentation are available in the doc/ directory:
- Installation Guide - Step-by-step installation and configuration
- Hook Reference - Complete Mediator hooks specification
- Module Development - Guide for creating custom modules
- Libraries - Documentation for Classic, CSMH, and Mediator
- Development Roadmap - Planned features and development tasks
| Emulator | Version | Status | Notes |
|---|---|---|---|
| ๐ฎ AzerothCore | 3.3.5a | โ Supported | Primary development platform |
| ๐ ElunaTrinityWotlk | 3.3.5a | ๐ Planned | Port scheduled after AzerothCore stabilization |
| Component | Version | Status |
|---|---|---|
| ๐ง ALE | Latest | โ Required |
| ๐ Classic | Any | โ Required |
| ๐ CSMH | Any | โ Required |
paragon/
โโโ lib/
โ โโโ classic/
โ โ โโโ classic.ext # OOP library
โ โโโ Mediator/
โ โ โโโ mediator.lua # Event system
โ โโโ CSMH/
โ โโโ SMH.ext
โโโ modules/
โ โโโ paragon_anniversary.lua # Experience & level-up mechanics
โ โโโ README.md # Module documentation
โโโ paragon_constant.lua # Constants, SQL queries, stat enums
โโโ paragon_repository.lua # Database access layer (Singleton)
โโโ paragon_config.lua # Configuration service (Singleton)
โโโ paragon_class.lua # Paragon entity & business logic
โโโ paragon_hook.lua # Event handlers & entry point
โโโ README.md # This file
doc/
โโโ INSTALL.md # Installation guide
โโโ HOOKS.md # Complete hook documentation
โโโ MODULES.md # Module development guide
โโโ LIBRARIES.md # Libraries documentation (Classic, CSMH, Mediator)
Player Login
โ
Hook.OnPlayerLogin (paragon_hook.lua)
โ
Create Paragon Instance (paragon_class.lua)
โ
Load Level & Statistics from DB (paragon_repository.lua)
โ
Callback: Hook.OnPlayerStatLoad
โ
Apply Statistics to Player & Send Data to Client (ParagonAnniversary addon)
- โ Dual-Mode System: Character-linked and account-linked paragon progression
- โ Mediator Pattern Integration: Extensible event system for custom modules
- โ
Module System: Modular business logic via
paragon_anniversary.lua - โ Robust Error Handling: Fallback defaults for all configuration values
- โ Complete Documentation: HOOKS.md with all Mediator events documented
- โ Advanced Routing: Runtime table selection based on LEVEL_LINKED_TO_ACCOUNT
- Singleton Pattern: Config and Repository are single instances
- Repository Pattern: Clean database abstraction layer
- Mediator Pattern: Decoupled event-driven architecture
- Object-Oriented Design: Using classic.lua for OOP
- ๐ง Development: Custom system for AzerothCore
- ๐จ Concept: Inspired by Diablo 3 Paragon systems
- ๐ Thanks: AzerothCore & ALE communities

