Description
Fishmonger
A WoW Retail fishing companion addon that automates the casting workflow — double right-click to fish, with optional pre-cast buff application.
Features
- Auto-Cast Fishing — Double right-click casts Fishing via a secure action button. No keybinds needed.
- With a fishing pole/tool equipped: double right-click to cast
- Without a fishing pole: Alt + double right-click to cast
- Timing window: 50ms–400ms between clicks
- Automatically blocked during combat lockdown or while the loot window is open
- Pre-Cast Buffs — Before casting Fishing, automatically applies configured enhancements in priority order:
- Cosmetic bobber (toy) — changes bobber appearance
- Oversized Bobber (toy or consumable) — makes the bobber larger/easier to see
- Lure (consumable) — applies a fishing skill enchant to your fishing tool
- One item applied per trigger. Once all buffs are active, casts Fishing normally.
- Settings Panel — Configurable via Interface → AddOns → Fishmonger
- Checkboxes to enable/disable each buff category
- Dropdown selectors for choosing which specific bobber or lure to use
Installation
Copy the Fishmonger folder into your WoW addons directory:
- Windows:
World of Warcraft\_retail_\Interface\AddOns\ - macOS:
World of Warcraft/_retail_/Interface/AddOns/
Then type /reload in-game.
Usage
Use /fishmonger or /fm in-game.
Available Commands
Core
/fm help— Show available commands
Debug
/fm debug loglevel <ERROR|WARNING|INFO|DEBUG>— Set log verbosity/fm debug dump— Dump saved variables (requiresDevTools_Dump)
Pre-Cast Buff Detection
The buff system checks whether each enhancement is already active before applying:
| Buff Type | Detection Method |
|---|---|
| Cosmetic bobber | C_UnitAuras.GetPlayerAuraBySpellID (spell ID from KnownItems registry) |
| Oversized Bobber | C_UnitAuras.GetPlayerAuraBySpellID(397827) |
| Lure | GetWeaponEnchantInfo() with item link parsing fallback |
The priority sequence (cosmetic → oversized → lure) evaluates each slot and applies the first missing buff. If all buffs are already active, the cast proceeds directly to Fishing.
Tips
- The double-click window is intentionally tight (50–400ms) to avoid accidental casts during normal right-click interactions.
- Alt-modifier requirement when no fishing pole is equipped prevents interference with normal gameplay right-clicking.
- Pre-cast buffs are applied one per trigger — if you need all three buffs, you'll double-click three times before the actual Fishing cast happens. This is by design to avoid cooldown/GCD conflicts.
- All buff preferences persist across sessions via saved variables.
- Settings are also accessible through the Interface Options panel (no slash commands needed for configuration).
Development
File Structure
Fishmonger.toc— Addon metadata and load orderCore.lua— Addon namespace, structured logger, event dispatcher, slash commands, saved variable initializationModules/KnownItems.lua— Static registry of fishing bobbers and lures (item IDs, spell IDs, enchant IDs)Modules/PreCastBuffs.lua— Buff detection, inventory checks, priority sequence logicModules/AutoCast.lua— Double right-click detection, secure action button managementModules/ConfigUI.lua— Settings panel (checkboxes, dropdown selectors)Tests/— Self-contained test suite (runs outside WoW via plain Lua)Data/— DB2 CSV exports used for item/spell ID lookups (not tracked in git).kiro/— Development specs, skills, and steering docs
Architecture Notes
Auto-Cast uses a SecureActionButtonTemplate with override bindings. On first click, a timestamp is recorded. If a second click arrives within the timing window, an override binding is set on the secure button to fire the cast. A PostClick secure handler immediately clears the binding so only one cast occurs per double-click.
Pre-Cast Buffs hooks into the cast pipeline. Before the secure button fires Fishing, the module checks the priority sequence. If a buff is missing, it uses the item (toy or consumable) instead of casting Fishing. The module queries C_UnitAuras and GetWeaponEnchantInfo to determine what's already active.
Requirements
- WoW Retail (The War Within / 12.x)
- Interface version: 120100


