-
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: