Skip to content

4.2.0

Choose a tag to compare

@sampconrad sampconrad released this 08 Aug 16:32
· 19 commits to master since this release

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

Unreleased

4.2.0 - 2026-08-08

Added

  • In-game function-level profiler (Core/Dev/FunctionProfiler.lua): lightweight wrapper around C_AddOnProfiler.MeasureCall with per-key cumulative CPU and memory stats. Access via the Debug Mode toggle in the options panel — toggle ON to start profiling, toggle OFF to print a sorted report + CPU stats to chat.
  • CM.StartProfiling() and CM.StopAndReportProfiling() public APIs for automated performance testing.

Changed

  • Debug Mode toggle now also drives profiling: on → start, off → report + reset.
  • Optimised several hot paths:
    • ShouldFreeLookBeOff early-exit short circuit (-14% avg, -42% alloc per call).
    • C_AssistedCombat.GetNextCastSpell cached for 1 second (-31% alloc per assist tick).
    • Consolidated duplicate IsMouselooking() calls in the root OnUpdate (-19% root tick time).
    • Party Radial TrackMousePosition slice refresh throttled to 0.15s (-11% avg, -10% alloc per call).
    • Binding fingerprint uses a numeric hash instead of string allocation.
    • UpdateFocusCycleWheelBindings and UpdateAllHealthBarGlowPulses use local caching and batch operations.

4.1.6 - 2026-08-06

Added

  • Reset Mouse Look keybind to recover a macOS stuck-cursor freeze after switching windows (macOS only, PR #179, thanks Roman Kitaev).
  • GitHub Sponsors button in the config panel header.

4.1.5 - 2026-08-05

Added

  • Scale sliders for Interaction HUD, Combat Assist, and Party Radial (0.5–1.5); each scales the full companion / radial chrome.
  • Added Discord & GitHub repository links to the config panel.

Changed

  • Crosshair Size is now Scale (0.5–1.5, default 1.0); existing pixel sizes migrate to the equivalent scale.
  • Added new Combat Mode theme to celebrate the release of version 4.

Fixed

  • While Target Lock is held (and the marker option is on), the center reticle stays on the locked dot even if the focus nameplate is not visible.
  • Cycling Target Lock with the mouse wheel no longer briefly flashes the reactive crosshair; the locked dot stays up across focus swaps.

4.1.4 - 2026-08-03

Added

  • Target Lock Marker option (on by default): turn off to keep the normal reactive crosshair while locked, with no nameplate hit marker.

Changed

  • Party Radial runtime is split into focused submodules under Core/PartyRadial/ (PartyDataSecureBindingsHealthBarsRoleIconsVisualLifecycle → façade; behavior unchanged).
  • Shared crosshair cast-break VFX tuning and companion side offset live in Constants/Assets.lua (CrosshairCastBreak, CrosshairCompanionOffsetX); cast-break flash red reuses hostile reaction color.
  • Party Radial Show Health Bars is on by default for new installs.
  • Target Lock (keybind, mouse-wheel cycle, marker, and sound cues) is fully disabled when Reticle Targeting is off, matching the options panel.

Fixed

  • Crosshair cast feedback and Combat Assist cast swipe/break no longer error in instances when cast GUIDs are secret under taint.
  • Hardened several patterns across the code base against possibly secret or tainted value comparisons.
  • Target Lock no longer leaves the center reticle stuck on a static Dot when the focus nameplate never appears; the plate marker still shows if the plate arrives later.
  • Party Radial no longer blanket-enables slice mouse when the feature is disabled; inactive slices also collapse hit rects out of combat to reduce free-cursor click-steal.

4.1.3 - 2026-08-02

Added

  • Cycle Target Lock with Mouse Wheel (on by default): while Mouse Look is on and a Target Lock is set, mouse wheel cycles nearby enemies and moves the lock. Without a lock (or with Mouse Look off), the wheel zooms the camera as usual.
  • Target Lock Sound Cues (on by default): play distinct cues when a Target Lock is set, cleared, or cycled to another enemy.
  • Target Lock nameplate marker: while locked, the center reticle becomes a static Dot and a hit marker (the Active texture for your selected crosshair Appearance) appears on the locked unit's nameplate health bar.

Changed

  • Combat Assist animations & appearance reworked to be more subtle/less annoying.
  • Sheath Weapons with Mouse Look now waits briefly before sheathing after unlock, so rapid Mouse Look toggles (e.g. while single-pulling) no longer flash sheath/unsheath. Unsheath on lock is still immediate.
  • Combat Assist and Interaction HUD runtime code are split into focused submodules under Core/Crosshair/AssistedHighlight/ and Core/Crosshair/InteractionHUD/ (behavior unchanged).
  • Party Radial slices have been expanded to provide more information.

Fixed

  • Binding another action to an Interact key that already includes Alt (for example Alt+Mouse Button 3) no longer leaves Interact as Alt+Alt+key.
  • Rapid Single-Button Assistant presses no longer spam Combat Assist cast-success press/pulse animations (repeats are coalesced while feedback is already playing).
  • Click-cast binding refresh no longer loops when Blizzard's Single-Button Assistant rewrites its action slot.

4.1.2 - 2026-08-01

Added

  • Combat Mode is now also published on Wago Addons; GitHub releases upload to both CurseForge and Wago.

4.1.1 - 2026-08-01

Fixed

  • Combat Assist no longer plays its cast-success animation twice when using the Single-Button Assistant action (the assisted-action event and UNIT_SPELLCAST_SUCCEEDED are coalesced into one).

4.1.0 - 2026-07-30

Added

  • Crosshair Cast Feedback: the crosshair grows while channeling, explodes on a successful cast, and shakes on cancel or interrupt.
  • Sheath Weapons with Mouse Look (on by default): unsheath when Mouse Look turns on; sheath when it turns off or Auto Cursor Unlock opens a panel. Temporary unlocks (hold, Party Radial, ground spells, OPie) keep weapons drawn.
  • Redesigned Combat Assist HUD with improved animations and custom keyboard/mouse icons for Click Casting bindings.
  • Redesigned Interaction HUD with Left/Right placement, fixed icon size, and opacity independent of the crosshair opacity slider.
  • Redesigned Party Radial with rebuilt health bars, smooth fade in/out, and greyed role icons for dead members.

Changed

  • Combat Assist, Interaction HUD, and Party Radial options streamlined for a fixed, more controllable layout.
  • Clicking a Party Radial slice now also hard-targets that party member.
  • Clicking the Party Radial center close (X) clears the current target.

Fixed

  • Rebinding Mouse Look, Party Radial, or Target Lock now clears leftover Interact Alt+key chords and refreshes Target Lock overrides immediately (no reload required when stealing a key).

4.0.3 - 2026-07-28

Added

  • Character-specific options now show a blue © mark beside the title; hover it for a tooltip explaining they are saved per character.
  • Interact Unit option (Crosshair Unit or Soft Targeted Unit) under the Interact keybind; switching units rebinds the key and keeps ALT+key on the other command to avoid Blizzard's interact warning.
  • Excluded Spells and Cast at Crosshair input fields under Reticle Targeting now use a pill multi-selector: type a name or ID for suggestions from your spellbook, then pick to add it to the list.

Changed

  • Cast-at-crosshair and excluded-spell lists are stored as spell IDs. Legacy name tokens migrate when the options UI loads.

4.0.2 - 2026-07-27

Added

  • Uninstall button in the options sidebar: restores your pre-Combat Mode camera and targeting CVars, resets Left/Right Click to the default camera binds, disables the addon, and reloads.
  • Combat Mode now snapshots your CVars before changing them, so Uninstall can restore your settings instead of only hard-coded Blizzard defaults.
  • Changelog window now has a left-hand version list; click a version to scroll to that section.

Changed

  • Welcome popup now clarifies the difference between deleting the addon folder and and fully uninstalling.

Removed

  • /undocm slash command — use the Uninstall button in options instead.

4.0.1 - 2026-07-27

Added

  • Excluded Spells and Cast at Crosshair now accept spell IDs as well as names (including mixed lists such as Heroic Leap, #6544).

Fixed

  • Keybind options can no longer bind Left or Right Mouse Button, which previously could clear Camera Or Select Or Move from BUTTON1.

Changed

  • Clarified helper text on several options.

4.0.0 - 2026-07-25

Changed

  • Breaking: rebuilt the settings UI as a standalone, movable Combat Mode window with a sidebar layout. Open it with /cm or /combatmode, or from Escape > Options > AddOns > Combat Mode.
  • Breaking: Crosshair can no longer be edited through Edit Mode; its settings live under the Crosshair tab in the new options window.
  • Healing Radial renamed to Party Radial, with a live preview while adjusting visual settings.
  • Action Camera options moved into a dedicated Action Camera section.

Removed

  • Ace3 / LibStub dependency stack in favor of native Combat Mode modules. SavedVariables (CombatModeDB) and slash commands are unchanged.

Fixed

  • Rapidly toggling OPie rings could leave the cursor stuck and visible while Mouse Look was active.
  • Reloading could leave the cursor visible while still in the Mouse Look state after the loading screen.

3.3.1 - 2026-07-18

Changed

  • Improved cursor unlock performance by caching compiled custom conditions and checking open Blizzard UI panels before scanning watched frames.

3.3.0 - 2026-04-24

Added

  • Combat Assist spell icon suggestion on the Crosshair (Retail Assisted Combat highlight).
  • Edit Mode controls for the assisted highlight widget: enable/disable, size, position (X/Y), keybind display, and keybind anchor.

3.2.2 - 2026-03-28

Added

  • Changelog popup on first login after updating the addon.

3.2.1 - 2026-03-27

Fixed

  • Cast @cursor whitelist not applying correctly.

3.2.0 - 2026-03-27

Added

  • Reticle Targeting CVar editor for customizing Combat Mode Reticle Targeting CVars.
  • Targeting macro prelines editor for customizing injected prelines when Reticle Targeting is enabled.

3.1.10 - 2026-03-26

Added

  • Third-party action bar policy: when Bartender4, Dominos, or ElvUI is detected, Combat Mode forces macroInjectionClickCastOnly=true and locks that toggle; Blizzard default bars keep full reticle targeting macro injection.

3.1.9 - 2026-03-26

Changed

  • Action bar binding overrides now derive the canonical action-slot id from the binding prefix and button index instead of MultiBar*ButtonN frames, whose action attribute can be ambiguous with Bartender4, Dominos, ElvUI, and similar addons.

3.1.8 - 2026-03-25

Fixed

  • Reticle Targeting with ElvUI and Bartender4.

3.1.7 - 2026-03-24

Fixed

  • Sticky crosshair table name.

3.1.6 - 2026-03-24

Added

  • GitHub package release workflow.

3.1.5 - 2026-03-23

Changed

  • Cursor freelook centering is tied to the Crosshair being active, not Reticle Targeting.
  • Crosshair reactivity no longer requires Reticle Targeting.
  • Interaction HUD range check adjusted so the Crosshair and Interaction HUD can be used independently of Reticle Targeting configuration.

3.1.4 - 2026-03-23

Changed

  • Performance improvements.
  • Split Constants.lua into smaller files under /Constants.

3.1.3 - 2026-03-23

Fixed

  • Interaction HUD errors from secret values in dungeons.

Changed

  • Interaction HUD and Healing Radial fonts are no longer tied to a specific client language.
  • Updated LibEditMode.

3.1.2 - 2026-03-22

Added

  • LibEditMode in the Libs folder.

3.1.1 - 2026-03-22

Added

  • Edit Mode support: adjust the Crosshair from Blizzard’s Edit Mode.
  • Interaction HUD option for the crosshair: shows interactable NPCs and objects to the right of the crosshair when enabled.

Changed

  • Crosshair vertical positioning limit removed.
  • Crosshair behavior aligns more closely with config options, including more reliable cursor centering.
  • Reorganized project structure into smaller, easier-to-maintain files.

Fixed

  • Reticle Targeting blacklist not excluding spells from targeting macro injection, which broke Hold To Cast and empowered spell options (e.g. Hold & Release). Excluding a spell by name on the list now restores expected behavior.