Skip to content

iThorgrim/lua-paragon-anniversary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Note

Paragon Anniversary Serverside is now feature-complete and stable! Clientside UI is still in development with some features to complete.


Paragon_AI_Logo

โšก Paragon System

for AzerothCore

AzerothCore Badge Lua Badge ALE Badge

Endless progression system - Continue growing beyond max level


๐Ÿ“Š Status

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

โš ๏ธ Platform Availability

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.


๐ŸŒŸ What's This?

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.

โœจ Key Features

  • ๐Ÿ“Š 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

๐ŸŽฌ Preview

Watch Paragon Anniversary Demo

Click to watch the Paragon Anniversary demo on YouTube ๐ŸŽฅ


๐Ÿ—๏ธ Architecture

๐Ÿ“ฆ Core Components

  • paragon_constant.lua - Constants & SQL queries
  • paragon_repository.lua - Database access layer (Singleton)
  • paragon_config.lua - Configuration service (Singleton)
  • paragon_class.lua - Paragon business logic & state
  • paragon_hook.lua - Event handlers & client communication

๐Ÿงฉ Module System

  • modules/paragon_anniversary.lua - Experience & level-up mechanics
  • Extensible via Mediator pattern for custom features

๐Ÿ—„๏ธ Database

Configuration Tables:

  • paragon_config_category - Stat categories
  • paragon_config_statistic - Available stats
  • paragon_config - General settings (key-value pairs)
  • paragon_config_experience_* - Experience rewards by source

Character Data (Character-Linked Mode):

  • character_paragon - Player levels & XP per character
  • character_paragon_stats - Invested points per character

Account Data (Account-Linked Mode):

  • account_paragon - Account-wide levels & XP
  • character_paragon_stats - Stats always per character

๐Ÿ”„ Dual-Mode System

Configure LEVEL_LINKED_TO_ACCOUNT in paragon_config:

  • 0 (Default): Character-linked - Each character has independent progression
  • 1: Account-linked - All characters on account share level/XP but have separate stat investments

๐Ÿš€ Quick Installation

Quick Start (3 Steps)

  1. ๐Ÿ“ Copy the paragon folder to your ALE scripts directory
  2. ๐Ÿ”„ Restart your AzerothCore server (tables auto-create)
  3. โš™๏ธ Configure paragon_config table with your desired settings

๐Ÿ“ Note: Requires ALE engine installed on AzerothCore

๐Ÿ“– Detailed Installation Guide

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


โš™๏ธ Configuration

Configure the system via database entries in paragon_config:

System Control

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

Progression Settings

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

Experience Rewards

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

Experience Multipliers

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

Other Settings

Field Description Default
DEFAULT_STAT_LIMIT Maximum points per individual stat (1-255) 255

Adding Custom Stats

  1. Add categories to paragon_config_category
  2. Define statistics in paragon_config_statistic
  3. Configure type, factor, and limit for each stat

Stat Configuration Fields:

  • type: AURA, COMBAT_RATING, or UNIT_MODS
  • type_value: The specific stat ID from Constants
  • factor: Multiplier for each point invested
  • limit: Maximum points that can be invested (max 255)
  • application: How the stat bonus is applied

๐ŸŽฎ Stat Types

โš”๏ธ Combat Rating

  • Weapon Skill
  • Defense / Dodge / Parry / Block
  • Hit (Melee/Ranged/Spell)
  • Crit (Melee/Ranged/Spell)
  • Haste (Melee/Ranged/Spell)
  • Expertise
  • Armor Penetration

๐Ÿ’ช Unit Modifiers

  • Primary Stats (Str/Agi/Sta/Int/Spi)
  • Resources (HP/Mana/Rage/Energy/etc)
  • Armor & Resistances
  • Attack Power
  • Damage (Mainhand/Offhand/Ranged)

โœจ Aura Bonuses

  • Loot Bonus (1900000)
  • Reputation Gain (1900001)
  • Experience Gain (1900002)

Custom aura IDs: 1900000+


๐Ÿ”ง Technical Details

Design Patterns

  • Singleton Pattern: Config and Repository services
  • Repository Pattern: Database abstraction layer
  • Object-Oriented: Using classic.lua library

Database

  • Async Queries: Non-blocking database operations
  • Auto-Migration: Tables created automatically on startup
  • Normalized Schema: Separated config and character data

Client Communication

  • Protocol: ParagonAnniversary addon prefix
  • Commands:
    • 1: Load paragon data (sends level, experience, and all statistics)
    • 2: Update statistics (receives updated stat values from client)

Event Hooks

  • 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

๐ŸŽ“ Experience & Points System

Experience Sources

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)

Points System

  • 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

๐Ÿ“š Documentation

The Paragon System includes comprehensive documentation:

Code 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]
end

Documentation Files

Complete guides and API documentation are available in the doc/ directory:


๐Ÿ“Š Compatibility

Emulator Support

Emulator Version Status Notes
๐ŸŽฎ AzerothCore 3.3.5a โœ… Supported Primary development platform
๐ŸŒ™ ElunaTrinityWotlk 3.3.5a ๐Ÿ“… Planned Port scheduled after AzerothCore stabilization

Required Dependencies

Component Version Status
๐Ÿ”ง ALE Latest โœ… Required
๐Ÿ“š Classic Any โœ… Required
๐Ÿ”Œ CSMH Any โœ… Required

๐Ÿ“ Project Structure

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)

๐Ÿ”„ Data Flow

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)

๐ŸŽฏ Recent Improvements

Latest Features (Latest Release)

  • โœ… 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

Architecture Highlights

  • 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

๐Ÿ† Credits

  • ๐Ÿ”ง Development: Custom system for AzerothCore
  • ๐ŸŽจ Concept: Inspired by Diablo 3 Paragon systems
  • ๐Ÿ™ Thanks: AzerothCore & ALE communities

โšก Ready to add endless progression?

Stable serverside system ready for production use on AzerothCore with ALE

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages