• Knack117 released this 2026-05-10 23:57:47 +00:00 | 31 commits to main since this release

    Fractured 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 refund next 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 ReconcileEssenceForPlayer pass runs as part of OnPlayerLogin and OnPlayerLevelChanged. It reads character_paragon_panel_spells + character_paragon_panel_talents, sums the AE/TE that ought to have been spent, and rewrites the cache to ComputeStartingAE/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; OnPlayerLevelChanged now goes straight to Reconcile.

    What's new (client patch-enUS-6.MPQ v0.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 and Right-click again to cancel. Same handling on the Search tab.
    • +N refund header 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-Border texture 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 to GetFirstSpellInChain so any rank id from the bake is accepted. The server pre-validates that every requested unlearn corresponds to a row in character_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 reconciliation

    Install

    Drop the patch MPQs into WoW/Data/enUS/ and the Wow.exe at the WoW client root. Only patch-enUS-6.MPQ actually 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; /reload does not pick them up).

    Server side:

    git pull origin main
    docker compose build ac-worldserver
    docker compose up -d --force-recreate ac-worldserver
    

    No DB migration this release — the unlearn flow reuses existing panel tables. Native build path: same as Docker, just cmake --build . instead of docker compose build.

    See CLIENT-PATCHES.md for the full install / troubleshoot guide.

    Downloads