GCDsaver 1.2.20 - 02/09/2026
- Leave EA_ActionBars.ActionButton.OnLButtonUp completely untouched so /assist and every macro execute through the original client method.
- Restore the proven 1.0.5 press-time lifecycle with an exact-window, transient ability gate that cannot suppress ASSIST_PLAYER or unrelated UI actions.
- Preserve Potion Saver without the release hook by gating only the matching SendUseItem call for a blocked item.
- Keep virtual-CD confirmation on the matching native action call and route diagnostics through the client's Lua log channel.

GCDsaver 1.2.19 - 01/09/2026
- Let every normal OnLButtonDown reach EA_ActionBars; enforce limits only at the native release/execution point.
- Add bounded temporary UiLog diagnostics for the real hotbar action type, cached frame data, enabled-state updates and final pass/block branch.

GCDsaver 1.2.18 - 01/09/2026
- Follow EA_ActionBars' authoritative GetHotbarData slot state for input classification and enabled-state painting.
- Prevent stale ActionButton metadata from disabling or blocking a newly placed macro, including /assist, before its input event is dispatched.
- Retain release-time blocking for actual abilities/items and leave every macro on the native client path.

GCDsaver 1.2.17 - 01/09/2026
- Stop rewriting game-action data, including temporary per-button window changes.
- Block at EA_ActionBars' real execution point by returning before the native ActionButton.OnLButtonUp handler only for limited abilities/items.
- Classify the active engine action before button metadata, so macros and /assist always take the native path even with stale button caches.
- Preserve ALT/SHIFT configuration, mouse and keyboard blocking, TexturedButtons compatibility and virtual-cooldown confirmation.

GCDsaver 1.2.16 - 01/09/2026
- Removed every GCDsaver assignment to the global WindowGameAction function.
- Block only the concrete action window of the pressed ability and restore its original action data on the next UI update.
- Macro, assist, targeting and other action windows are never suppressed, even if an ability key-up event is missing.
- Retained mouse/keyboard blocking, TexturedButtons compatibility, virtual cooldowns and all per-ability limiters.

GCDsaver 1.2.15 - 01/09/2026
- Restored the proven GCDsaver 1.0.5 WindowGameAction lifecycle that originally fixed /assist compatibility.
- Removed the permanent global execution wrapper introduced in 1.2.14; the no-op blocker now exists only for a blocked ability/configuration click.
- Restore the native/external WindowGameAction handler before every allowed ability, macro or assist press, clearing stale suppression left by a missing key-up.
- Retained TexturedButtons input compatibility, virtual cooldowns, all per-ability limiters and optimized visual refreshes.

GCDsaver 1.2.14 - 01/09/2026
- Replaced the transient WindowGameAction blocker with a permanent type-aware execution filter while GCDsaver is enabled.
- Classify every execution from WindowGetGameActionData; macros, assist and unrelated windows always pass through.
- Engine window data takes priority over stale button metadata, including a macro replacing a suppressed ability in the same slot.
- Missing key-up events can no longer leave assist dependent on stale gate state; configured abilities remain protected by the engine-action filter.
- Retained TexturedButtons input compatibility, action-bar dragging, all limiters and the 1.2.12 performance improvements.

GCDsaver 1.2.13 - 30/08/2026
- Added compatibility for TexturedButtons forwarding OnLButtonDown without its original arguments, which could interrupt /assist macros with native GetSlot errors.
- Preserve the originating input context through chained hooks; keyboard presses cannot trigger mouse pickup on the frame under the cursor.
- Limit the temporary mouse-over guard to the forwarded press and restore it on success or error; ordinary mouse dragging and modifier pickup remain available.
- Keep the 1.2.12 performance improvements and existing ability blockers. No TexturedButtons files or macro settings are modified.

GCDsaver 1.2.12 - 30/08/2026
- Coalesce buff, target, immunity, mechanic and hotbar notifications into one visual refresh per frame, updating only affected limited slots.
- Share buff lists, ability data, normalized rules and block results within each visual refresh; input checks always read current state.
- Stop rewriting unchanged markers and hide stale markers on emptied slots; recover replaced buttons and destroyed overlays.
- Reuse slot indexes and remove repeated dynamic-state string construction and visual-only warning formatting.
- Skip combat-log parsing and AA timer work when auto-attack synchronization is unused or disabled.
- Preserve immediate press/release blocking, assist/macro exclusions, item counts and the periodic Sequencer/virtual-cooldown fallback.

GCDsaver 1.2.11 - 30/08/2026
- Fixed three multi-return cooldown conversions causing tonumber base-out-of-range errors and interrupted hotbar input.
- Excluded macros, assist and other non-ability/item actions from limits, configuration shortcuts, markers and virtual cooldown tracking.
- Scoped temporary execution suppression to the blocked button; unrelated assist/targeting windows continue to the original handler.
- Restore the original execution handler when disabling or unloading GCDsaver.

GCDsaver 1.2.10 - 28/08/2026
- Added multiple required buff/debuff IDs per ability.
- IDs are separated with commas; any matching effect satisfies the requirement.
- Existing single-ID settings remain compatible, and duplicate or invalid IDs are ignored.

GCDsaver 1.2.9 - 28/08/2026
- Replaced the career-mechanic +/- stepper with a directly editable numeric field.
- Typed values are rounded and clamped to the supported -250 to 250 range when saved.

GCDsaver 1.2.8 - 28/08/2026
- Added per-ability career-mechanic rules with minimum, maximum and exact-value modes.
- Reads GetCareerResource and refreshes button state through PLAYER_CAREER_RESOURCE_UPDATED.
- Adapted NerfedButtons handling for signed Archmage/Shaman mechanics and the Rune Priest/Zealot toggle state.
- Added a separate Career mechanic editor tab and M>, M< and M= button markers.
- Unavailable mechanic values block conservatively and show a localized combat warning.

GCDsaver 1.2.7 - 25/08/2026
- Added a per-ability effect-refresh window from 0 to 30 seconds in 0.5-second steps for target/self stack conditions.
- Matching effects block while their remaining duration is above the configured window and allow recasting at or below it.
- A value of 0 preserves the previous behavior; permanent effects always remain blocked.
- Added a separate Effect refresh editor tab, R button markers and live button-state updates as effects cross the threshold.

GCDsaver 1.2.6 - 25/08/2026
- Fixed potion/item quantities being hidden or clipped by GCDsaver markers. Markers now use their own overlay label and the native item counter remains untouched.
- Restored the original GCDsaver 1.0.7 WindowGameAction gate for every configured blocker.
- Virtual cooldown and target-HP limits now suppress the real action on both press and release, including keyboard activation.
- ALT/SHIFT configuration clicks can no longer execute the underlying ability or item on release.
- Widened all ability-editor combo boxes and shortened the target-HP condition labels so options are fully visible.

GCDsaver 1.2.5 - 25/08/2026
- Added per-ability HP limits for the ability, friendly, hostile or self target.
- Added minimum/maximum target HP thresholds in 5% steps.
- Missing selected targets fall back to the player's own health.
- Added A/F/H/S +/- button markers for target health rules.

GCDsaver 1.2.4 - 25/08/2026
- Fixed action blocking when TexturedButtons replaces the hotbar click/key handler after GCDsaver.
- GCDsaver now safely restores its blocker at the front of the handler chain without recursion.
- A blocked ability no longer reaches the base handler that sends the cast.

GCDsaver 1.2.3 - 25/08/2026
- Fixed virtual cooldowns for instant abilities without a real cooldown.
- Added confirmation through the GCD and server-side Sequencer slot advances when PLAYER_BEGIN_CAST is not emitted.
- Rejected activations no longer start the virtual cooldown fallback.

GCDsaver 1.2.2 - 25/08/2026
- Increased stepper rows to 82px so +/- buttons no longer overlap their labels.
- Increased surrounding editor row spacing; the advanced tab now ends at 404px inside a 450px content area.
- Stored the localization source as Windows-1252 because this WAR client interprets Lua source bytes as ANSI, including wide-string literals.
- Verified Spanish accents and ñ are single-byte CP1252 characters instead of misread UTF-8 sequences.
GCDsaver 1.2.1 - 25/08/2026
- Reworked the per-ability editor into Main limits and Advanced limits tabs.
- Increased row spacing so labels, combo boxes, steppers and help text no longer overlap.
- Added English and Spanish localization, with English as the default.
- Added a saved Use Spanish setting; changing it rebuilds both configuration windows in the selected language.
- Spanish UI now uses wide-string literals so accents and ñ render correctly in the WAR client.
- Localized combat alerts, chat feedback and status messages.
GCDsaver 1.2.0 - 25/08/2026
- Merged PotsSaver AP/HP rules into GCDsaver.
- ALT + left click now opens a per-ability limits editor instead of cycling a setting.
- Added per-ability virtual cooldowns (0.5s steps, up to 300s).
- Added required buff/debuff conditions by effect ID and target type, optionally cast by the player.
- Removed the temporary global WindowGameAction override that could block unrelated actions.
- Unified button markers so condition, AA, AP/HP, CD and FX indicators coexist and item counts are preserved.
- Kept SHIFT + left click as the legacy quick condition rotation, including No conditions.
- Old /potssaver command aliases and PotsSaver.OpenConfig() now open GCDsaver settings.
1.1.0
- Integrated a bonus-adjusted melee auto-attack timer based on Swinger
- Added per-ability AA lead settings from 0 to 3 seconds in 0.5-second steps (ALT-left click)
- Added AA-aware blocking for instant and cast-time abilities
- Made the final SHIFT-left-click state explicitly No conditions
- Fixed condition symbols disappearing/erroring when a rule rotates to an empty state
- Reapplies symbols after hotbar, page and equipment updates
- Preserves all existing stack, self-stack, Immovable and Unstoppable rules
- AA timer credits: Sullemunk and Emissary
1.0.10
- Restored stable /assist-safe base
- Restored S1/S2/S3 self-stack programming and display
- Restored self-buff blocking logic without reintroducing the global WindowGameAction hook
- Credits: Talladego, SWF, Kpihuss
