# mod-paragon Server-side support module for the custom `CLASS_PARAGON` (id 12). ## What it does today Hooks `Player::IsClass` / `Player::HasActivePowerType` so Paragon inherits Death Knight ability mechanics where it matters: - **Rune system**: `InitRunes`, rune cooldown tick, runic power regen, `Spell::CheckRuneCost` / `Spell::TakeRunePower`, `SMSG_RESYNC_RUNES` cast flags, combat exit grace reset. - **DK ability scripts**: `spell_dk_*`, `MUST_BE_DEATH_KNIGHT` cast result, DK aura effects. It is intentionally narrow: the hook only fires for `(realClass == PARAGON, queriedClass == DEATH_KNIGHT, context == CLASS_CONTEXT_ABILITY)`. Other DK-flavored contexts (Ebon Hold teleport gating, heroic start level, DK-only taxi mount, talent point math on Ebon Hold, etc.) keep their normal behavior for Paragon. `HasActivePowerType` additionally claims `POWER_RUNIC_POWER` and `POWER_RUNE` for Paragon, which keeps the rune pool sized correctly in `Player::InitStatsForLevel` even if Paragon's primary power type is later switched away from runic power. ## Building Auto-detected by `modules/CMakeLists.txt` (`GetModuleSourceList` globs every subdirectory). No additional CMake plumbing is needed; rebuild the worldserver image and the loader symbol `Addmod_paragonScripts` gets linked into the static `modules` target.