CharacterGearOptimizer v3.1.10
What's new
[3.1.0] - 2026-09-14
Added — Dynamic Hit Cap
- New
HitCap.lua: a pure, UI-free hit-cap engine. It detects the equipped or planned combat setup (ranged weapon, one-hander, two-hander, dual wield, shield + main hand), resolves which attack category the selected profile is optimizing, and computes the correct cap from the Classic combat table. - "Melee Hit" in Cap Priorities is now "Dynamic Hit Cap" (same
hitCappedsaved-variable key, so existing characters keep their setting). - New "DW White Cap" toggle. Dual-wield profiles chase the special-attack cap by default (9% at level 60 vs a raid boss); ticking the box switches them to the full dual-wield white cap (28%). The addon never forces the white cap silently.
- Season of Discovery hunters use a 6% ranged raid-boss hit cap, applied as an explicit project policy constant and documented as such in code.
- Talent-provided hit is detected by spell ID first, with a locale-aware tooltip parser (built from the client's own global strings) and the original English parser as fallbacks. The three are reconciled by max, never summed.
- Permanent non-talent hit (e.g. Draenei Heroic Presence) is recognised and subtracted from what gear has to supply.
- HUD, stats-panel tooltips and Cap Priorities tooltips now show: selected attack type, base hit cap, hit from talents, hit from gear, remaining hit required, and capped/uncapped state.
- New
/cgo hitcapcommand printing that breakdown plus every combat-table assumption behind the number. - Offline test suites:
tests/test_hitcap.lua(86 assertions) andtests/test_hitcap_integration.lua, run together bytests/run_all.sh. Compat.luagained hit-cap feature probes (HasCombatRatings,HasWeaponSkill,HasItemClassAPI,IsSeasonOfDiscovery,GetHitCapCapabilities) so every client branch is feature-detected.
Changed
- The optimizer now prioritises hit only up to the selected cap. Partial
progress toward the cap keeps the profile's full hit weight; rating past the
cap is credited at
capPriorities.hitCapOverCapWeight(default 0). A new over-cap cleanup pass re-ranks the finished set on the cap-adjusted score, so a set is never kept merely because it carries excess hit. It refuses any swap that would break the hit cap or any other active cap goal. - Rating-to-percent conversion is calibrated from the live character
(
GetCombatRating / GetCombatRatingBonus) instead of assumed; Classic Era and SoD correctly use 1 rating = 1% because item hit is stored as a percentage. - The hit cap recalculates on equipment, talent, specialization, level and world-entry changes (bursts are coalesced into a single refresh).
- Classic Era / SoD no longer hides the hit cap checkbox behind resistance priorities; both are now shown.
Preserved
- Manual stat weights, all existing cap priorities, and PvP mode behaviour are unchanged. PvP mode deliberately keeps the old static cap, because the dynamic engine models raid-boss combat tables.
- Every supported client continues to load: all five TOC files load
HitCap.luabetweenStatCalculations.luaandClassic.lua.
This mod has no additional files

