promotional bannermobile promotional banner

PetAssist

Pet attacks on cast; SoftCC pulls pet on Fear/Banish (Warlock/Hunter).
Back to Files

v1.7.0-classic

File namePetAssist-v1.7.0-classic.zip
Uploaded
Oct 21, 2026
Downloads
19
Size
36.5 KB
Flavors
ClassicForever
File ID
9280880
Type
R
Release
Supported game versions
  • 1.60.1
  • 1.15.9

What's new

Changelog

1.7.0

Forever (experimental)

  • Ship one CurseForge package for Classic Era and Forever: PetAssist.toc (11509) and PetAssist_Forever.toc (16001).
  • Add Forever/Compat.lua: client detect, C_Spell name 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; /petattack assist 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.md passes.

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|clear and 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 /click back 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 /petattack on 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; /petfollow interrupts it)
    • Howl of Terror and Frost Trap now opt-in via settings (not default)

Performance & UX

  • Event debouncing: ACTIONBAR_SLOT_CHANGED and 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 pendingRefresh flag is set

Commands

  • New: /pa stance on|off — toggle stance restoration
  • Updated: /pa test now shows stance restore status
  • Updated: /pa status includes stance restore state

1.4.0

  • SoftCC Guard: Fear / Banish / Howl / Death Coil / Enslave / traps / Scare Beast → /petpassive + /petfollow with the cast (pet stops breaking CC)
  • Toggle: options checkbox or /pa softcc on|off (default on)
  • SoftCC overrides assist even in all mode

1.3.2

  • Fixed: DoTs (Corruption, curses, Immolate) no longer skipped in harm mode
  • harm now = everything except built-in CC/utility list (no broken IsHarmfulSpell)
  • Clearer mode descriptions in options

1.3.1

  • Options registered in Esc → Options → AddOns → PetAssist
  • /pa config opens 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 recall or options UI)
  • Options window: /pa config
  • Smarter /petattack [pet,@target,harm,nodead] (skip if no pet / bad target)
  • Items skipped in harm mode (no pet on Healthstone/trinket presses)
  • Slash: mode, block, unblock, recall, config

1.2.3

  • Fixed "You are too far away" spam: /startattack only on the Attack button, not on every spell

1.2.2

  • Restored pet attack via secure /petattack macros on keybinds
  • Keep auto-attack: use /startattack instead 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=action instead of /cast macros
  • Removed typerelease double-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 test and refresh

1.1.0

  • Attempted secure WrapScript helpers (superseded by 1.2)

1.0.0

  • Initial experiment (direct PetAttack() — blocked by Blizzard)

This mod has no related projects