-
released this
2026-05-11 03:53:13 +00:00 | 15 commits to main since this releaseServer (AzerothCore + mod-paragon)
- Cascade guard for class skill lines:
Player::learnSkillRewardedSpellsnow skips the SkillLineAbility cascade for class-category skill lines onCLASS_PARAGONcharacters. The Character Advancement panel becomes the sole authority over which class abilities a Paragon owns. Profession, weapon, language, and racial cascades are unchanged, so recipes, weapon proficiencies, and racial perks still auto-learn normally. Fixes the regression where Blood Presence / Death Coil / Death Grip / Forceful Deflection re-appeared on the spellbook seconds after a build reset, every login, every level-up, and on every weapon-skill tick at a training dummy. - Force-attached DK passives: Forceful Deflection (49410) is now explicitly attached to Blood Strike (45902), and Runic Focus (61455) to Icy Touch (45477), the same way Blood Plague / Frost Fever already are. The on-login fixup re-attaches these for existing characters who got them via the old cascade and never had a
panel_spell_childrenrow tying them to a parent. - Panel catalog backfill: Removed the over-aggressive
ClassMask=0filter from the client catalog generator. 42 trainer-taught class abilities previously hidden from the panel are now learnable, including Lava Burst, Hex (Shaman), Evocation / Spellsteal / Invisibility (Mage), Kill Shot / Deterrence / Master's Call (Hunter), Path of Frost / Horn of Winter / Rune Strike / Raise Ally / Dark Command (DK), and the various Druid / Warlock summons. The skill-line filter alone is the correct gate on class-spec lines; ClassMask is redundant there. - AE-cost rows: Migration
2026_05_10_05.sqlbackfillsparagon_spell_ae_costfor all 42 newly visible spells (INSERT IGNOREso any per-spell tuning is preserved). Fresh deployments get them via the regenerated base file.
Database migrations ship with the repo under
modules/mod-paragon/data/sql/and are picked up automatically by AzerothCore's DBUpdater on worldserver start.Client bundle (this release)
Asset Size Purpose Wow.exe 7.70 MB Fractured / ChromieCraft 3.3.5a client binary (unchanged from v0.7.12) patch-enUS-4.MPQ 4.73 MB Spell.dbc overlay (Paragon class, runes, reagents, etc.) patch-enUS-5.MPQ 60 KB UI / rune bar overrides patch-enUS-6.MPQ 154 KB ParagonAdvancement addon — rebuilt to expose Lava Burst and 41 other previously hidden spells Install: copy Wow.exe to the client root, and copy the three patch-enUS-*.MPQ files into
Data\enUS\(same names; load order 4 → 5 → 6 after stock patches). Restart the client completely after replacing Wow.exe so the new spell catalog loads.Launcher users: the auto-updater handles all four assets and now writes
patch-enUS-*.MPQwith uppercase.MPQregardless of how the asset is named on the release page (3.3.5a's case-sensitive MPQ loader requires the uppercase suffix).Deploying the server
git pull && rebuild worldserver(or your full image) so the cascade guard inPlayer.cppand the newkAttached/kFixupentries inParagon_Essence.cppare in the binary. The DBUpdater applies the AE-cost migration on the next worldserver start.Downloads
- Cascade guard for class skill lines:
-
released this
2026-05-11 03:53:13 +00:00 | 15 commits to main since this releaseClient-only fix
The Character Advancement panel's Search tab was returning spell results but never any talents — even when a player typed a keyword that obviously matched a talent's tooltip (e.g. butchery, blade barrier).
Root cause: the baked
ParagonAdvancement_TalentData.luahad nodescfield on any talent. The search index walksdescand falls through when it is empty, so 0 talent hits, every query.Fix:
- Re-baked
ParagonAdvancement_TalentData.luafromTalent.dbc+Spell.dbcwith rank-1 name + description + tooltip flattened into a search-normalizeddescstring for every talent (892 entries, ~204 KB on disk vs. the previous bake's ~110 KB). - Hardened the bake script (
tools/_gen_paragon_advancement_talents_lua.py) so it falls back todbc/Spell.dbcwhen_dbc_work/Spell.dbcis missing, with a clearer warning if neither is found, so this regression cannot happen silently again.
After installing this build, typing a word in the Search bar matches both spells and talents and renders them in their respective result blocks (left = spells, right = talents).
Client bundle (this release)
Asset Size Status Wow.exe 7.70 MB Unchanged from v0.7.12 / v0.7.13 patch-enUS-4.MPQ 4.73 MB Unchanged (Spell.dbc overlay) patch-enUS-5.MPQ 60 KB Unchanged (rune bar UI) patch-enUS-6.MPQ 204 KB Rebuilt — ParagonAdvancementaddon0.9.20-talent-search-descInstall: copy Wow.exe to the client root, and copy the four patch-enUS-*.MPQ files into
Data\enUS\(load order 4 → 5 → 6 after stock patches). Quit and relaunch the client fully so the new addon files are read.Launcher users: the auto-updater handles all four assets and writes
patch-enUS-*.MPQwith uppercase.MPQ(3.3.5a's case-sensitive MPQ loader requires it).Server
No changes since v0.7.13. The cascade guard, force-attached DK passives, and the
paragon_spell_ae_costbackfill from that release remain in effect.Downloads
- Re-baked
-
released this
2026-05-11 02:20:13 +00:00 | 25 commits to main since this releaseServer (AzerothCore + mod-paragon)
- Cascade policy: Skill-line grants that are passives (Forceful Deflection, Runic Focus, disease passives, etc.) are kept and recorded as
character_paragon_panel_spell_childrenwith the spell that pulled them in. Actives (Blood Presence, Death Coil, Death Grip, …) are still revoked and persisted so they cannot be learned for free off another purchase. - Spell.dbc correction (core):
Forceful Deflection(49410) andRunic Focus(61455) are markedSPELL_ATTR0_PASSIVEin memory at load soSpellInfo::IsPassive()matches the real spellbook behavior (stock 3.3.5a rows omit the passive bit). - Login order: Legacy passive attach / cleanup runs before the scoped cascade sweep so re-learned passives are not immediately stripped.
- Talent unlearn:
PanelUnlearnTalentPurchasenow clearsm_talentsvia_removeTalent(same idea asresetTalents) so Beast Mastery loss is detected and hunter pet talents reset when appropriate. - GM:
.paragon recalibrate(requires RBAC modify) — full Character Advancement reset for target or self + AE/TE clamped to level-correct totals.
Database migrations for Paragon ship with the repo under
modules/mod-paragon/data/sql/as usual; native and Docker paths pick them up via AzerothCore DBUpdater.Client bundle (this release)
Asset Purpose Wow.exe Fractured / ChromieCraft 3.3.5a client binary patch-enUS-4.MPQ Spell.dbc overlay (Paragon class, runes, reagents, etc.) patch-enUS-5.MPQ UI / rune bar overrides patch-enUS-6.MPQ ParagonAdvancement addon (Character Advancement UI) Install: copy Wow.exe to the client root, and copy the three patch-enUS-*.MPQ files into
Data\enUS\(same names; load order 4 → 5 → 6 after stock patches). Restart the client completely after replacing Wow.exe.Deploying the server
Rebuild worldserver (or your full image) from
mainaftergit pullsomod-paragonandSpellInfoCorrectionschanges are in the binary.Downloads
- Cascade policy: Skill-line grants that are passives (Forceful Deflection, Runic Focus, disease passives, etc.) are kept and recorded as
-
released this
2026-05-10 23:57:47 +00:00 | 31 commits to main since this releaseFractured v0.7.11 — Spell unlearn queue + AE/TE reconciliation
Follow-up to v0.7.10 Save-Current build. Two new server features and a handful of client polish fixes accumulated since the last release.
What's new (server)
- Right-click → queue unlearn → Learn All to refund. You no longer have to reset your whole panel to drop one spell you regret. Right-click any Character Advancement spell in the per-class spell list and the row dims red and gets queued for unlearn. The header now shows a
+N refundnext to your AE balance. Click Learn All and the spell is removed, its tracked passive children are dropped, and the AE cost is refunded — same atomic commit as your queued learns / talents in the same click. - Mixed commits. A single Learn All can carry learns + talents + unlearns. Refunds are applied first so they cover same-commit spends. The server rejects attempts to learn and unlearn the same chain in one commit (previously this would silently produce an inconsistent state).
- AE/TE reconciliation on login + level-up. A new
ReconcileEssenceForPlayerpass runs as part ofOnPlayerLoginandOnPlayerLevelChanged. It readscharacter_paragon_panel_spells+character_paragon_panel_talents, sums the AE/TE that ought to have been spent, and rewrites the cache toComputeStartingAE/TE(level) − sum-of-spends. Self-heals in both directions: clamps players who somehow have more essence than their level allows (cheese clamp) and tops up players who are under what they should have (admin tweaks, crash recovery). Drift is logged at INFO with before/after values. Subsumes the old per-level grant;OnPlayerLevelChangednow goes straight to Reconcile.
What's new (client
patch-enUS-6.MPQv0.9.16)- Right-click queue UI for the unlearn flow above. Hover tooltip on a learned row now reads
Right-click to queue unlearn (refund on Learn All); once queued it shows the refund amount andRight-click again to cancel. Same handling on the Search tab. +N refundheader preview on the AE counter — colored green next to the existing−N pending(red) so you can see net spend at a glance.- Icon picker fixes. Build picker no longer shows two red question-mark icons (the synthetic default and engine index 1 are deduped). Selection ring is now a tooltip-bordered Frame anchored to the cell bounds — the previous
UI-ActionButton-Bordertexture rendered nearly invisible at non-native sizes, so the highlight was barely visible. Now it's an unmistakable gold rectangle. - Dark-mode editboxes. Search bar, build-import field, and build-name picker no longer use the bright white default — all three tint themselves on load to a near-black background with a muted gold border and warm cream text. Matches the rest of the panel chrome.
- Talent tooltip declutter. Removed the
Next rank: <Spell>preview line from talent button tooltips — wasn't actionable info and just took up a row.
New / changed PARAA verbs
C COMMIT s:<id1>,<id2>,... t:<dbcId>:<delta>,... u:<id>,...The trailing
u:section is optional. Older clients omit it; the server parses it when present. Each id in the unlearn list is normalized toGetFirstSpellInChainso any rank id from the bake is accepted. The server pre-validates that every requested unlearn corresponds to a row incharacter_paragon_panel_spells(you cannot use this to unlearn racials, quest rewards, or spells the panel didn't sell you).Pairing
A pre-v0.7.11 client paired with a v0.7.11 server is harmless: right-click on a learned spell just won't draw the new queued state, and the existing left-click learn flow works as before.
A v0.7.11 client paired with a pre-v0.7.11 server: the right-click UI will queue the unlearn locally and the AE-refund preview will display, but Learn All sends the new
u:section to a server that ignores it — so the spell stays learned and AE is unchanged. Update the server first if you're upgrading mid-realm.Server commit
9fb8010 Paragon: spell unlearn queue + AE/TE reconciliationInstall
Drop the patch MPQs into
WoW/Data/enUS/and theWow.exeat the WoW client root. Onlypatch-enUS-6.MPQactually changed since v0.7.10 — the others are bundled for fresh installs. Fully exit and relaunch the WoW client afterward (patch MPQs are read at startup;/reloaddoes not pick them up).Server side:
git pull origin main docker compose build ac-worldserver docker compose up -d --force-recreate ac-worldserverNo DB migration this release — the unlearn flow reuses existing panel tables. Native build path: same as Docker, just
cmake --build .instead ofdocker compose build.See
CLIENT-PATCHES.mdfor the full install / troubleshoot guide.Downloads
- Right-click → queue unlearn → Learn All to refund. You no longer have to reset your whole panel to drop one spell you regret. Right-click any Character Advancement spell in the per-class spell list and the row dims red and gets queued for unlearn. The header now shows a
-
released this
2026-05-10 19:12:12 +00:00 | 43 commits to main since this releaseFractured v0.7.10 — Save-Current build + retired-code share archive
Follow-up to v0.7.9 Builds QoL. The Builds catalog now has a one-click "Save current loadout" path on the Overview page, and several footguns from the original drop are now closed. Old share codes posted to Discord no longer rot when the owner edits their build — they continue importing the exact recipe that was current the moment they were retired.
What's new
- Overview → "Save as Build". Brand new button on the top-right of the Overview tab. Switches to the Builds page, opens the icon/name picker pre-titled "Save Current Loadout", and on Save creates a new build whose recipe is whatever you have learned right now (no AE/TE motion, no relearning). The new build is set active immediately. Server verb:
C BUILD SAVE_CURRENT <name>\t<icon>. - Retired share codes keep working forever. When you Learn All on top of an active build, the build's previous
share_codeand recipe are now frozen into a newcharacter_paragon_build_share_archivefamily of tables before the live row is overwritten with the new recipe and assigned a fresh code. Any code you posted to Discord, an alt's spellbook, etc. continues importing the exact loadout it pointed at the moment you shared it.C BUILD IMPORT <code>falls back to the archive transparently. - Reset Abilities / Reset Talents now detach you from the active build. Previously they left the active pointer set, so the next swap silently overwrote the active build's saved recipe with the (post-reset) state — effectively erasing the build. Now both reset paths clear the active pointer and re-push the catalog so the cell border drops client-side. The build's saved recipe is preserved; you can re-load it any time.
- Deleting the active build now does a full panel reset. Same effect as
C RESET ALL: unlearn everything the panel bought, refund all AE/TE. Deleting a non-active slot is unchanged (just removes the saved recipe + parked pet). Prevents the dangling state where the active pointer pointed at a row that no longer existed. - Loading the currently-active build = "revert to last snapshot". Used to be a no-op refresh. Now it skips the outgoing snapshot (so the saved recipe stays authoritative), parks the pet, runs the reset+respend cycle, and re-applies the recipe. Useful for discarding pending edits without manually reset-and-reload.
- Imports never carry the source player's pet. A parked pet belongs to the original owner's
character_petrows; cloning that across to the importer would either steal the source player's pet or summon something the importer can't legally own. New imports always start withpet_number = NULL. If the imported recipe contains Tame Beast (1515), the server prints a one-line system message reminding you to tame your own pet after loading the build. - Talent-granted active spells survive relog. The login cascade sweep now walks
SPELL_EFFECT_LEARN_SPELLtriggers on talent rank spells (Mangle, Feral Charge, Mutilate, Lava Burst, etc.), so the abilities those passives grant are correctly preserved on the panel allowlist instead of being revoked as "not allowlisted".
Client (
patch-enUS-6.MPQv0.9.11-build-picker-save-fix)save_currentmode for the build picker. Plumbed throughParagonAdvancement_Builds_OpenPickerand pinned on the picker frame as_openModeso nothing can clobber it between opening and saving. Title bar reads "Save Current Loadout (Max 32 Characters):".- Picker no longer breaks on
%in build names.string.format("C BUILD ... %s\t%s", name, icon)was Lua's format parser eating any%in the name as a directive ("invalid option in format%c"), which silently aborted Save. All three send paths (NEW,SAVE_CURRENT,EDIT) now build the wire payload by concatenation +tostring(...)instead. - "Revert?" prompt when right-click → Load on the build that's already active, instead of the regular swap-confirm copy.
New / changed PARAA verbs
C BUILD SAVE_CURRENT <name>\t<icon> -- create a build from current panel state (snapshot + set active; no AE/TE motion)C BUILD DELETE <id>semantics changed when<id>is the active build: in addition to deleting the row + parked pet, it now also runs a full panel reset (unlearn + refund) likeC RESET ALL.C BUILD LOAD <id>semantics changed when<id>equals the active build: instead of being a no-op, it now reverts the panel to the build's last saved recipe (discards pending edits).Schema (mod-paragon migration
2026_05_10_05.sql)CREATE TABLE IF NOT EXISTS `character_paragon_build_share_archive` ( `share_code` CHAR(6) NOT NULL, `name` VARCHAR(32) NOT NULL, `icon` VARCHAR(64) NOT NULL DEFAULT 'INV_Misc_QuestionMark', `archived_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`share_code`) ); CREATE TABLE IF NOT EXISTS `character_paragon_build_share_archive_spells` (...); CREATE TABLE IF NOT EXISTS `character_paragon_build_share_archive_talents` (...);The old codes are populated lazily: a code only enters the archive when its build's owner does a Learn All on top of that build, at which point the live
share_coderotates and the previous one is frozen here.Server commit
Paragon: Save-Current build, archive retired share codes, reset clears activeInstall
Drop the patch MPQs into
WoW/Data/enUS/and theWow.exeat the WoW client root. Onlypatch-enUS-6.MPQactually changed since v0.7.9 — the others are bundled for fresh installs. Fully exit and relaunch the WoW client afterward (patch MPQs are read at startup;/reloaddoes not pick them up).Server side:
git pull origin main docker compose build ac-db-import ac-worldserver docker compose up -d ac-db-import docker compose restart ac-worldserverac-db-importis required so migration2026_05_10_05.sqlis applied. SeeCLIENT-PATCHES.mdfor the full install / troubleshoot guide.Pairing
A pre-v0.7.10 client paired with a v0.7.10 server is harmless — the player just won't have an Overview "Save as Build" button. Save-as-Build still works for them via the existing "+" cell on the Builds page; the recipe ends up empty and they fill it via the normal commit flow.
A v0.7.10 client paired with a pre-v0.7.10 server will see "Save as Build" silently no-op (the server doesn't recognize
C BUILD SAVE_CURRENTand drops it without anR ERR). Update the server first if you're upgrading mid-realm.Downloads
- Overview → "Save as Build". Brand new button on the top-right of the Overview tab. Switches to the Builds page, opens the icon/name picker pre-titled "Save Current Loadout", and on Save creates a new build whose recipe is whatever you have learned right now (no AE/TE motion, no relearning). The new build is set active immediately. Server verb:
-
released this
2026-05-10 08:15:11 +00:00 | 45 commits to main since this releaseFractured v0.7.9 — Builds catalog quality of life
Polish pass over the v0.7.8 Builds catalog. Replaces the favorites toggle with a much more useful import-by-share-code, makes "remaining AE/TE if loaded" visible on the build hover tooltip so you can see at a glance whether a load will fit your currency, and wires up an explicit Unload verb plus a few client-side bug fixes.
What's new
- Share codes (replaces favorites). Every build now gets a 6-character realm-unique alphanumeric code on creation (
A-ZminusI/O,2-9minus0/1, ~887M codes, collision retry). Right-click a build → Copy share code to grab it (it's also echoed to chat in aStaticPopupso you can copy/paste anywhere). To import someone else's build, paste the code into the new share input row at the bottom of the BuildsPane and click Load Build!. The server copies the recipe (name + icon + spells + talents) into your catalog as a brand new build with a fresh share code, so you can re-share independently of the original. - Tooltip now shows "Remaining if loaded: X AE / Y TE" for every saved build that isn't the active one. Computed server-side as
total_earned − recipe_costso the number includes the AE/TE you'll get back from refunding your current loadout. Negative values render in red ("Insufficient currency — load would fail.") so you can see ahead of time which builds you still need to grind for. - Right-click → Unload (clear active). Clears
character_paragon_active_buildwithout forcing a swap. Useful if a build's recipe drifts from your live state and the tooltip's stale "Active build" label gets in the way. - Pet talents tab no longer bleeds into other class tabs when switching pages. Pet UI is now anchored under two dedicated container roots (
_treeRoot/_infoRoot) which are hidden in one shot, plus an early-bail inRefreshPetTalentTreewhen the active class isn'tPETS. - Icon picker now actually shows every macro icon (~1,000 options instead of 4). The 4.0+ table-fill APIs (
GetMacroIcons/GetMacroItemIcons/MACRO_ICON_FILENAMES) don't exist on 3.3.5; the picker now uses the real 3.3.5 surface (GetNumMacroIcons/GetMacroIconInfo) and strips theInterface\Icons\prefix at ingest. /paraaand theNkeybind work again. A subtle XML 1.0 violation (--inside an XML comment) was makingParagonAdvancement.xmlfail to parse, which silently disabled every binding the addon installs. Comment reworded.- FavStar replaced cleanly. The intermediate "favorite glow" texture (
Interface\Common\ReputationStar, missing on 3.3.5) is gone now that favorites are gone, eliminating the green missing-texture sentinel. ShareInputEditBox no longer resets the caret on every keystroke — the live-uppercaseOnTextChanged + SetTexthandler was the culprit; both the import handler and the server now normalize at submit time so we accept any case.
New / changed PARAA verbs
C BUILD UNLOAD -- clear active-build pointer (no swap) C BUILD IMPORT <code> -- import by 6-char share code (replaces FAVORITE)C BUILD FAVORITEis removed. TheR BUILDSreply format is now:R BUILDS active=<id|->\t<id>:<haspet>:<sharecode>:<remainAE>:<remainTE>:<name>:<icon>; ...remainAE/remainTEare signed int32; negative is rendered red on the tooltip.Schema (mod-paragon migration
2026_05_10_04.sql)ALTER TABLE `character_paragon_builds` DROP COLUMN `is_favorite`, ADD COLUMN `share_code` CHAR(6) NULL DEFAULT NULL AFTER `icon`, ADD UNIQUE INDEX `uk_share_code` (`share_code`);Backfill is lazy: any existing build row with a NULL
share_codegets one generated the next time the owner opens the BuildsPane.Server commit
a251e56— Paragon: Builds QoL — share codes, unload, remaining AE/TE on hoverInstall
Drop the patch MPQs into
WoW/Data/enUS/and theWow.exeat the WoW client root (onlypatch-enUS-6.MPQactually changed since v0.7.8 — the other three are bundled for fresh installs). Then on the server host:git pull origin main docker compose build ac-db-import ac-worldserver docker compose up -d ac-db-import docker compose restart ac-worldserverac-db-importis required so migration2026_05_10_04.sqlis applied. SeeCLIENT-PATCHES.mdfor the full install / troubleshoot guide.Pairing
Server commit
a251e56andpatch-enUS-6.MPQv0.9.6-build-tooltip-remaining are a matched pair. A pre-v0.7.9 client paired with a v0.7.9 server will fall back gracefully: the catalog parser simply won't see the new fields and the tooltip "remaining" line won't render. A v0.7.9 client paired with a pre-v0.7.9 server will fail to parse the catalog payload (noshare_codefield) and the BuildsPane will render empty until the server catches up.Downloads
- Share codes (replaces favorites). Every build now gets a 6-character realm-unique alphanumeric code on creation (
-
released this
2026-05-10 06:35:55 +00:00 | 46 commits to main since this releaseFractured v0.7.8 — Builds catalog (saved Character Advancement loadouts)
Adds named, icon-tagged build slots to the Character Advancement panel for one-click swaps between "specs" without re-buying spells/talents every time. Saves Hunter pets across swaps via
PET_SAVE_NOT_IN_SLOTso name, talents, and exp are preserved.What's new
- Bottom-row "Builds" button opens a full-pane overlay listing all saved loadouts (favorites first, then by id).
- New Build (+) tile opens a name + icon picker that reuses
MACRO_ICON_FILENAMES(every macro icon the client knows about, ~1,000 options). - Right-click on a saved build → Edit name/icon, Favorite/Unfavorite, Delete (with a confirmation popup that warns about losing any parked pet forever).
- Shift + Left-click → toggle favorite. A glow border appears around favorited builds and they bubble to the top of the sort.
- Left-click → "Load Build?" yes/no popup. Loading is a server-driven swap: snapshot current state into the previously-active build, refund all AE/TE through the existing Reset Abilities/Talents path, re-spend AE/TE on the target build's recipe, and unpark the build's hunter pet (if any).
- Hunter pet park/unpark. When swapping away from a build that has a hunter pet summoned, the pet moves to
PET_SAVE_NOT_IN_SLOT(mirroringHandleStableSwapPet) andpet_numberis recorded on the build row. Swap back and the same pet — same name, same talents, same xp — is resummoned. Non-hunter pets (warlock demon, DK ghoul, mage water elemental) are not parked because the engine resummons them from a fresh template each cast. - Swap is blocked while in combat.
- Per-spec talent fidelity. The build-talents recipe table is keyed by
(build_id, spec, talent_id)so a build remembers Tank/DPS dual-spec layouts independently. - Build catalog is server-side (lives in
acore_characters, follows the character across machines).
New PARAA verbs (server-driven)
Q BUILDS -- request catalog C BUILD NEW <name>\t<icon> -- create empty build C BUILD EDIT <id>\t<name>\t<icon> -- rename / re-icon C BUILD DELETE <id> -- delete + drop parked pet C BUILD FAVORITE <id> <0|1> -- toggle favorite C BUILD LOAD <id> -- swap to this buildServer replies push
R BUILDS active=<id|->\t<id>:<fav>:<haspet>:<name>:<icon>; ...after every mutation.Schema (mod-paragon migration
2026_05_10_03.sql)character_paragon_builds— catalog (build_id PK, guid, name, icon, is_favorite, pet_number, created_at)character_paragon_build_spells— recipe (build_id, spell_id)character_paragon_build_talents— recipe (build_id, spec, talent_id, rank)character_paragon_active_build— per-character active pointer (guid PK, build_id)
Server commit
7de018f— Paragon: add Builds catalog (saved loadouts with pet park/unpark)Install
Drop the three patch MPQs into
WoW/Data/enUS/and replaceWow.exeat the WoW client root. Then:git pull origin main docker compose build ac-db-import ac-worldserver docker compose up -d ac-db-import docker compose restart ac-worldserverac-db-importis required because the new SQL migration is baked into the docker image at build time. SeeCLIENT-PATCHES.mdfor the full install/troubleshoot guide.Pairing
Server commit
7de018fandpatch-enUS-6.MPQv0.9.0-builds are a matched pair. Mismatched versions surface as the Builds button being a no-op (server doesn't knowQ BUILDS) or the panel rendering blank (client doesn't knowR BUILDS).Downloads
-
released this
2026-05-10 05:36:54 +00:00 | 47 commits to main since this release## Server (
main@abb25f5)- mod-paragon /
Paragon_SC.cpp: ExpandedParagon_PlayerScript::OnPlayerIsClassso Paragon players satisfy morePlayer::IsClass(..., ClassContext)gates:CLASS_CONTEXT_ABILITYfor all nine vanilla classes (class-specific spell scripts),CLASS_CONTEXT_PETscoped by the active pet (hunter beast, warlock demon summon, DK undead summon, mage/shaman elemental summon),CLASS_CONTEXT_PET_CHARM(warlock), armor/shield equip contexts, and rogue weapon-swap cooldown context. Intentionally does not claimCLASS_CONTEXT_STATSor DK/druid starting-zone contexts. - mod-paragon /
Paragon_Essence.cpp: New addon-channel commandC RESET PET TALENTS(PARAA prefix) — instant hunter pet talent reset viaPlayer::ResetPetTalents(no gold, no popup). Rejects when no hunter pet is out.
Rebuild after pull:
docker compose build ac-worldserverthen restartac-worldserver.Client patches
File Notes patch-enUS-4.MPQSame artifact as v0.7.6 (bundled again for a single download). patch-enUS-5.MPQFrameXML: Paragon pet frame anchored below the rune row; paper-doll stat tooltip fix (duplicate strength to attack power lines). patch-enUS-6.MPQParagonAdvancement v0.8.7: PETS tab (hunter pet talents, preview learn), dedicated Reset Pet Talents (requires server above), bottom-row reset buttons disabled on PETS tab. Wow.exeUnchanged from v0.7.6 (MPQ signature bypass). Re-use your existing patched executable if you already have it; this release includes the same binary for first-time installs.
Downloads
- mod-paragon /
-
released this
2026-05-10 02:38:32 +00:00 | 49 commits to main since this releaseFractured v0.7.6
Server / repo:
f2952c9onmain.What changed
- Class spell reagents: Spells with a non-zero
SpellFamilyName(all player-class abilities) haveReagent/ReagentCountcleared in memory at worldserver load (SpellInfoCorrections.cpp). Profession crafts (SpellFamilyName == 0) still require their normal materials. The matchingSpell.dbcedits ship inpatch-enUS-4.MPQso the 3.3.5 client’s local pre-cast check stays in sync with the server. - Paragon relic slot: Paragon can equip librams, idols, totems, and sigils in the ranged slot (
mod-paragonOnPlayerIsClass/CLASS_CONTEXT_EQUIP_RELIC).
Install (client)
Use a stock Wrath 3.3.5a (build 12340) tree. Replace root
Wow.exewith the one from this release, and copypatch-enUS-4.MPQ,patch-enUS-5.MPQ, andpatch-enUS-6.MPQintoData\enUS\(adjust the locale folder if you are not onenUS). Step-by-step:contrib/fractured-dev-extras/CLIENT-PATCHES.md.Patched
Wow.exeSame MPQ signature bypass as prior Fractured releases so numbered
patch-enUS-*.MPQarchives load. Keep a backup of your retailWow.exeif you want to revert.Downloads
- Class spell reagents: Spells with a non-zero
-
Paragon Bug Fixes v0.7.5 Stable
released this
2026-05-09 21:37:08 +00:00 | 51 commits to main since this releaseFractured Paragon - v0.7.5 Client Bundle
Pairs with server commit
34cc87a.Install
Full install instructions and per-MPQ descriptions live in the repo:
contrib/fractured-dev-extras/CLIENT-PATCHES.md.If you're upgrading from v0.7.4, you only need to overwrite
Data/enUS/patch-enUS-5.MPQand pull the latest server. Everything else
(Wow.exe,patch-enUS-4.MPQ,patch-enUS-6.MPQ) is byte-identical to
v0.7.4 and is included only for fresh installs.Quick version (fresh install):
- Replace
Wow.exeat the root of your 3.3.5a (build 12340) client with
theWow.exefrom this release. - Drop
patch-enUS-4.MPQ,patch-enUS-5.MPQ,patch-enUS-6.MPQinto
Data/enUS/. - Edit
Data/enUS/realmlist.wtfto point at your Fractured server. - Launch and create a Paragon character.
What's new since v0.7.4
Server side
- Panel cascade sweep no longer revokes talent-granted spells.
RevokeUnwantedCascadeSpellsForPlayerandRevokeBlockedSpellsForPlayer
now build their allowlist fromcharacter_paragon_panel_spellsand
character_paragon_panel_talents(was only the spells table). Many
Wrath "abilities" players perceive as spells are stored as panel
talents - Scourge Strike (talent id 2216, rank-spell 55090),
Bladestorm, Starfall, etc. With the previous allowlist, buying
Death Coil after Scourge Strike opened the DK skill line and the
post-commit sweep revoked Scourge Strike as if it were an orphan
cascade dependent. The same misclassification was running in the
login revoke path and unlearning the spell on every relog, after
whichPushSpellSnapshotremoved the panel record because
HasSpellwas now false - silently vanishing the purchase entirely.
Fix is purely C++; no migration required. - Self-healing revoke table. When a panel purchase covers a spell
that's still listed incharacter_paragon_panel_spell_revoked,
PanelLearnSpellChainnow drops the matching revoke rows up front,
and the login sweep prunes any stale entries it sees. Existing
characters affected by the v0.7.4 bug (e.g. ghost
(guid, 0, 55090)rows) self-heal on their next panel purchase or
login. - See commit
34cc87a
for the full diff.
Client side: refreshed
patch-enUS-5.MPQ- Rune-cost tooltip line restored for DK abilities. The DBC bake in
patch-enUS-4.MPQzerosSpell.dbc.RuneCostIDclient-side so the
3.3.5 engine doesn't dropCMSG_CAST_SPELLfor non-DK casters.
The same field is what the engine uses to render the rune-cost
line on tooltips, so as a side effect every DK ability tooltip
was missing it.RuneFrame.luanow hooksOnTooltipSetSpelland
rewrites the cast-time row in place:1 Unholy(etc.) on the
left,Instant/1.5 sec cast/Channeledon the right -
matching stock 3.3.5 layout. Works on the action bar, in the
spellbook, in Character Advancement, and inItemRefTooltipfor
shift-clicked chat links. The cost data is generated from the
serverSpell.dbc+SpellRuneCost.dbcso it stays accurate
across server-side rune-cost adjustments. - No changes to
patch-enUS-4.MPQ,patch-enUS-6.MPQ, or
Wow.exesince v0.7.4. They are re-uploaded for fresh installs only.
What v0.7.4 already shipped (for new installs)
(Quoted verbatim from v0.7.4 so this release is self-contained.)
- Paragon class: complete server scaffolding for
CLASS_PARAGON
(id 12), AE/TE currency, talent learn pipeline, panel commit/reset. - Character Advancement panel: full per-class spell + talent
grids, Overview/Search tabs, currency-aware preview, combat-locked
commit. - Server-authoritative resource sync (
Paragon_SC.cpp):R CP <n>
andR RUNES <cd0..cd5>PARAA pumps so the client always mirrors
the server's combo points and rune cooldowns instead of inferring
from combat-log latency. - Glyph + class-restricted item usability:
Player::CanUseItem
short-circuitsAllowableClassfor class 12 server-side, and
migration2026_05_10_04.sqlORs class 12's bit into every
class-restricteditem_templaterow so the 3.3.5 client's local
pre-check stops blocking right-click usage. patch-enUS-4.MPQ: PARAGON class slot in DBC + GlueXML +
Paragon resource bar definitions.patch-enUS-5.MPQ: rune simulator, combo-point simulator,
PARAA resource sync, action-button usability + click guard, expanded
spellbook (24 skill-line tabs with column wrap),
classes-line tooltip patcher.patch-enUS-6.MPQ: Character Advancement addon - spell tabs,
talent grid, Overview / Search, AE+TE currency display, commit /
reset / preview, login-time toast suppression, draggable +
scaleable window.Wow.exe: standard 3.3.5a (build 12340) byte-patched to skip
the MPQ signature check so the custom patches load.
Known issues
- Players running an older client bundle against a v0.7.5 server
see the Character Advancement panel render blank or AE/TE read
0/0 - pull this release. - Players running a v0.7.5 client against a pre-v0.7.4 server see
worldserver crashes referencing
character_paragon_panel_spell_revoked- pull server commit
34cc87a(or any v0.7.4-or-later commit that includes the
migration) and re-rundocker compose up -d ac-db-import.
Verifying the build
After login,
/dump ParagonUIPatchVersionshould print the FrameXML
patch version, and the addon's chat banner should show
[Paragon UI] loaded ParagonAdvancement v0.7.4-combat-lockdown
(unchanged - the addon side did not need a bump).Downloads
- Replace