• Knack117 released this 2026-05-10 08:15:11 +00:00 | 45 commits to main since this release

    Fractured 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-Z minus I/O, 2-9 minus 0/1, ~887M codes, collision retry). Right-click a build → Copy share code to grab it (it's also echoed to chat in a StaticPopup so 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_cost so 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_build without 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 in RefreshPetTalentTree when the active class isn't PETS.
    • 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 the Interface\Icons\ prefix at ingest.
    • /paraa and the N keybind work again. A subtle XML 1.0 violation (-- inside an XML comment) was making ParagonAdvancement.xml fail 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.
    • ShareInput EditBox no longer resets the caret on every keystroke — the live-uppercase OnTextChanged + SetText handler 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 FAVORITE is removed. The R BUILDS reply format is now:

    R BUILDS active=<id|->\t<id>:<haspet>:<sharecode>:<remainAE>:<remainTE>:<name>:<icon>; ...
    

    remainAE / remainTE are 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_code gets one generated the next time the owner opens the BuildsPane.

    Server commit

    a251e56 — Paragon: Builds QoL — share codes, unload, remaining AE/TE on hover

    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.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-worldserver
    

    ac-db-import is required so migration 2026_05_10_04.sql is applied. See CLIENT-PATCHES.md for the full install / troubleshoot guide.

    Pairing

    Server commit a251e56 and patch-enUS-6.MPQ v0.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 (no share_code field) and the BuildsPane will render empty until the server catches up.

    Downloads