• Knack117 released this 2026-05-10 06:35:55 +00:00 | 46 commits to main since this release

    Fractured 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_SLOT so 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 (mirroring HandleStableSwapPet) and pet_number is 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 build
    

    Server 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 replace Wow.exe at 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-worldserver
    

    ac-db-import is required because the new SQL migration is baked into the docker image at build time. See CLIENT-PATCHES.md for the full install/troubleshoot guide.

    Pairing

    Server commit 7de018f and patch-enUS-6.MPQ v0.9.0-builds are a matched pair. Mismatched versions surface as the Builds button being a no-op (server doesn't know Q BUILDS) or the panel rendering blank (client doesn't know R BUILDS).

    Downloads