4.2.0
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 aroundC_AddOnProfiler.MeasureCallwith 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()andCM.StopAndReportProfiling()public APIs for automated performance testing.
Changed
- Debug Mode toggle now also drives profiling: on → start, off → report + reset.
- Optimised several hot paths:
ShouldFreeLookBeOffearly-exit short circuit (-14% avg, -42% alloc per call).C_AssistedCombat.GetNextCastSpellcached for 1 second (-31% alloc per assist tick).- Consolidated duplicate
IsMouselooking()calls in the root OnUpdate (-19% root tick time). - Party Radial
TrackMousePositionslice refresh throttled to 0.15s (-11% avg, -10% alloc per call). - Binding fingerprint uses a numeric hash instead of string allocation.
UpdateFocusCycleWheelBindingsandUpdateAllHealthBarGlowPulsesuse 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/(PartyData→SecureBindings→HealthBars→RoleIcons→Visual→Lifecycle→ 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/andCore/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_SUCCEEDEDare 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
/undocmslash 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
/cmor/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=trueand 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*ButtonNframes, whoseactionattribute 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.luainto 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
Libsfolder.
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.