v1.7.0-classic
What's new
Changelog
1.7.0
Forever (experimental)
- Ship one CurseForge package for Classic Era and Forever:
PetAssist.toc(11509) andPetAssist_Forever.toc(16001). - Add
Forever/Compat.lua: client detect,C_Spellname lookup, Assist stance (/petassist), and a secure-snippet probe. - If OnClick wrapping is unavailable on a Forever build, disable bar SoftCC/assist wrapping, keep the Recall key, and print a clear message.
- SoftCC, rules, and Recall remain the primary Forever value;
/petattackassist stays available (e.g. Passive stance).
Validation
- Automated suite: Era regressions plus Forever load path (Compat +
C_Spell) and snippet-failure fallback (80 Lua 5.1 checks total with locale/class init). - Forever in-game smoke is not claimed yet; treat Forever as experimental until the Forever checklist in
tests/IN_GAME.mdpasses.
1.6.2
Fixes
- Fix damage abilities sending the pet to attack without casting the player's spell. Execute the original action slot through a separate secure button instead of clicking the same button recursively.
- Resolve the current action slot at click time, preserve native spell ranks and macro bodies, and forward targeting attributes.
- Leave native clicks untouched if the secure delegate is unavailable and report failures to remove click wrappers.
Diagnostics
- Add opt-in recording with
/pa debug on|off|clearand a copyable/pa report [ButtonName]window, also available in Advanced settings. - Include client/build, locale/class, settings, bar addons, action-slot decisions, click attempts, player spell outcomes, game error IDs and blocked/forbidden addon actions.
- Keep the last 100 events across reloads in a separate per-character diagnostic store. Reports are shared manually; character names, chat, macro bodies/names and custom rule names are not recorded.
- Observe clicks through read-only hooks. Debug controls and reports do not change protected action attributes in combat. Attach Lua errors separately from the game's error viewer.
Validation
- Pass 74 automated Lua 5.1 regression, initialization, settings migration and diagnostic persistence checks, including checks against the packaged addon.
- Confirmed in Classic Era 1.15.9 (build 70003), enUS Warlock with Blizzard bars: Shadow Bolt, Corruption and Curse of Agony cast successfully, and the pet attacks.
- Broader Hunter, macro and third-party bar scenarios remain covered by the in-game checklist rather than this limited client confirmation.
1.6.1
-
Fix blocked casts on Blizzard action bars with ActionButtonUseKeyDown enabled: forward the nested native click on release, matching Blizzard's secure mouse dispatch.
-
Correct the regression fixture to model Blizzard OnClick separately from direct secure key input; reproduce the 1.6.0 failure before applying the fix.
-
Reorganize settings into General, Advanced and Rules tabs with scrollable pages.
-
Use descriptive English/Russian labels and explicit selections instead of cycling through command values.
-
Show saved rules for editing and add custom exclusion management without chat commands.
-
Show inline save feedback and explain automatic saving and deferred combat changes.
-
Cancel Recall key capture when switching tabs.
1.6.0
Fixes
- Execute original action buttons instead of rebuilding spell casts and copying macro bodies. This preserves downranks, native targeting, auto-attack behavior, and long macros.
- Read current secure action/page attributes at click time and precompute policies for all 120 slots, avoiding stale spell proxies after paging in combat.
- Remove invalid restricted-frame
Click()calls; route pet commands through a secure OnClick macro and/clickback to the original button with a recursion guard. - Use one preferred-stance command for mouse and keyboard, including modifier binds.
- Reconcile key-down CVar changes made during combat after combat.
- Store new blacklist entries once; reuse/cancel Recall key capture when closing options.
Features
- Preferred pet stance: Defensive or Passive.
- Explicit spell/macro rules: attack, recall, ignore, clear; editor in options and
/pa rule//pa rules. - Conservative macro auto mode: recognize simple unconditional casts; leave complex macros unchanged unless opted in. Explicit
/pet...commands always retain ownership. - Macro default policy:
/pa macros auto|attack|recall|ignore. - Howl of Terror and Frost Trap opt-in checkboxes and
/pa howl//pa frost. - Recall binding conflict notification.
/pa test ButtonName: current slot, ID, decision/reason, prepared policy, and pending-combat refresh.
Validation
- Lua 5.1 regression suite and class/locale initialization checks; GitHub Actions runs the suite on pushes and pull requests.
- Real-client secure execution, macro chaining, action-bar integrations and UI layout require the in-game checklist before release.
- New UI strings include English/Russian translations and English fallback for other locales.
1.5.1
Localization
- Full Classic Era locale support: Added translations for deDE (German), frFR (French), esES (Spanish - Spain), esMX (Spanish - Mexico), ptBR (Portuguese - Brazil), itIT (Italian), koKR (Korean), zhCN (Simplified Chinese), zhTW (Traditional Chinese)
- Fallback system: All locales fall back to English (enUS) for any missing strings
- Structured for CurseForge: Localization tables organized for future integration with CurseForge localization system
- Note: Asian locales (koKR, zhCN, zhTW) are draft translations; game terminology may need verification by native speakers
Auto-Attack Detection
- Locale-independent: Fixed auto-attack detection to use spell ID 6603 instead of hardcoded string comparisons ("attack", "атака", etc.)
- Classic Era compatible: Uses spell ID check first, fallback to global ATTACK string for reliability
- Eliminates bugs: Now works correctly on all client languages without special-casing locale strings
1.5.0
Features
- Rank-correct casts: Downranked spells on the action bar now cast the exact rank placed on the bar, not max rank
- Restore pet stance after SoftCC: New option (default ON) to restore pet stance (e.g.
/petdefensive) before/petattackon normal spells after using SoftCC abilities - Class gate: Addon now only activates for Hunter and Warlock; shows a single quiet message on other classes
- Localization: All user-facing strings now support English (default) and Russian (ruRU) via locale table
Spell List Improvements
- Added missing Hunter spells to block list:
- All Aspects (Hawk, Cheetah, Pack, Wild)
- All Tracking abilities
- Trueshot Aura, Rapid Fire, Deterrence, Disengage
- Demon summons for Warlock
- All Detect Invisibility ranks
- SoftCC changes:
- Removed Seduction (pet's own spell;
/petfollowinterrupts it) - Howl of Terror and Frost Trap now opt-in via settings (not default)
- Removed Seduction (pet's own spell;
Performance & UX
- Event debouncing:
ACTIONBAR_SLOT_CHANGEDand similar events now debounced into one refresh (100ms delay) - UPDATE_MACROS registered: Edited macros now automatically picked up
- Reduced print noise: Only prints on first login or explicit
/pa refresh, not every world enter - Skip unnecessary post-combat refresh: Only refreshes when
pendingRefreshflag is set
Commands
- New:
/pa stance on|off— toggle stance restoration - Updated:
/pa testnow shows stance restore status - Updated:
/pa statusincludes stance restore state
1.4.0
- SoftCC Guard: Fear / Banish / Howl / Death Coil / Enslave / traps / Scare Beast →
/petpassive+/petfollowwith the cast (pet stops breaking CC) - Toggle: options checkbox or
/pa softcc on|off(default on) - SoftCC overrides assist even in
allmode
1.3.2
- Fixed: DoTs (Corruption, curses, Immolate) no longer skipped in
harmmode harmnow = everything except built-in CC/utility list (no brokenIsHarmfulSpell)- Clearer mode descriptions in options
1.3.1
- Options registered in Esc → Options → AddOns → PetAssist
/pa configopens that panel
1.3.0
- Modes:
harm(default),all,custom— control when the pet is sent - Built-in block list for CC/utility (Fear, Banish, Death Coil, traps, create stones, Life Tap, etc.)
- Dominos / Bartender4 / ElvUI action button support via PreClick
- Recall bind:
/petpassive+/petfollow(/pa recallor options UI) - Options window:
/pa config - Smarter
/petattack [pet,@target,harm,nodead](skip if no pet / bad target) - Items skipped in
harmmode (no pet on Healthstone/trinket presses) - Slash:
mode,block,unblock,recall,config
1.2.3
- Fixed "You are too far away" spam:
/startattackonly on the Attack button, not on every spell
1.2.2
- Restored pet attack via secure
/petattackmacros on keybinds - Keep auto-attack: use
/startattackinstead of/cast Attack, no key-up double-fire - Empty action slots are no longer overridden
1.2.1
- Fixed auto-attack: proxies now use
type=actioninstead of/castmacros - Removed
typereleasedouble-fire that toggled Attack off on key-up - Pet attack runs once per keypress (respects ActionButtonUseKeyDown)
1.2.0
- Secure action-bar proxies with
/petattack+ spell/item/macro - Keybind overrides via
SetOverrideBindingClick - PreClick wrap for mouse clicks on action buttons
/petassist testandrefresh
1.1.0
- Attempted secure WrapScript helpers (superseded by 1.2)
1.0.0
- Initial experiment (direct
PetAttack()— blocked by Blizzard)
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

