Files
Docker Build 7298d89c9a mod-paragon: default HasActivePowers on for rage from white hits
Paragon OnPlayerHasActivePowerType only reported POWER_RAGE when
Paragon.MultiResource.HasActivePowers was true. Core melee rage uses
Unit::DealDamage -> HasActivePowerType(POWER_RAGE) before RewardRage;
missing module config (common on fresh clones / Docker without merged
mod_paragon.conf) fell through to GetOption(..., false) and white swings
never generated rage. Match mod_paragon.conf.dist and default the C++
fallback to true so Paragon behaves correctly out of the box. Set
Paragon.MultiResource.HasActivePowers = 0 only for intentional test builds.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 15:54:39 -04:00

55 lines
2.8 KiB
Plaintext

# mod-paragon — Paragon (class 12) server options
#
# Copy to mod_paragon.conf in the same directory to override defaults.
[worldserver]
# Sticky combo points (server-side): CP pool is per-player; switching targets
# does not reset points. Implemented in core Unit::AddComboPoints / GetComboPoints.
Paragon.StickyComboPoints = 1
# When enabled, Paragon answers HasActivePowerType() for mana/rage/energy/focus
# in addition to runes/runic power. Required for the patch-enUS-5.MPQ player
# frame to populate Mana/Rage/Energy bars - otherwise the server treats those
# powers as inactive and never sends max values, leaving the bars empty.
# Also required for core rage generation: Unit::DealDamage only calls
# RewardRage() when the attacker HasActivePowerType(POWER_RAGE); if this is off,
# Paragon white swings never grant rage (users without this line in any loaded
# config used to hit the C++ fallback default of false). Default is on; set 0
# only if you intentionally want a stripped-down Paragon test build.
Paragon.MultiResource.HasActivePowers = 1
# Ability / Talent Essence (AE/TE) — Ascension-inspired currency
Paragon.Currency.Enabled = 1
Paragon.Currency.AE.Start = 9
Paragon.Currency.TE.Start = 0
# From this character level onward, each level-up grants both essences once.
Paragon.Currency.GrantLevelMin = 10
Paragon.Currency.AE.PerLevel = 1
Paragon.Currency.TE.PerLevel = 1
# Flat TE cost per successful talent rank learn (hook runs once per LearnTalent).
# Applies to passive / aura-only talents (addToSpellBook == 0).
Paragon.Currency.TE.TalentLearnCost = 1
# AE cost per rank for addToSpellBook talents (Starfall, Bladestorm, …).
# Those talents also charge TE.TalentLearnCost per rank — each rank costs
# both essences at the configured amounts.
Paragon.Currency.AE.TalentLearnCost = 1
# Default AE cost when spell is not listed in world.paragon_spell_ae_cost.
# (Phase 3a: every learnable spell baked into the Character Advancement panel
# has an explicit row of value 1 in that table, so this default only kicks in
# for spells learned via .paragon learn that aren't in the panel's bake.)
Paragon.Currency.AE.DefaultSpellCost = 1
# Diagnostics ----------------------------------------------------------------
# When enabled, dumps every Paragon's rune cooldown state to the server log
# every 5 seconds (channel "module"). Use with `.paragon runes` for in-game
# verification. Leave at 0 in production — it's noisy.
Paragon.Diag.RuneTrace = 0
# When enabled, traces every PanelLearnSpellChain commit: chain ids, before/
# after spell-map sizes for each rank learn, and the classification of every
# auto-granted side spell (chain rank / passive dep / active dep revoked).
# Use to diagnose "spell X reappears in spellbook on relog" style bugs.
# Leave at 0 in production.
Paragon.Diag.PanelLearn = 0