Get an Epic Experience with Premium

Fishing Buddy

Professions Login to Add Favorites
  • World of Warcraft
  • 39,196 Monthly Downloads
  • Supports: 6.1.0
  • 8,185,558 Total Downloads
  • Updated 03/28/2015
  • Created 09/30/2008
  • 6,852 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: 1.4y
Support development! **

About Fishing Buddy

Fishing Buddy

A fishing addon that keeps track of the fish you catch and helps manage your fishing gear.

- Double-click fishing
- Supports the new WoW "fish without a pole" feature
- Bring out your fishing pets! Drink heavily!
- 'Fish Watcher' lets you see the fish you've caught here before (or the fish that you've caught in the current session)
- Display your current skill level and the time since you started fishing
- Choose your fishing outfit and change into it easily
- Support for automatically adding a lure to your fishing pole
- Support for tracking 'cycle fish' such as the Nightfin Snapper so you know when to go looking for them

Example commands:
/fishingbuddy or /fb
toggle the display of the Fishing Buddy window
/fb help
print the list of Fishing Buddy commands
/fb switch
wear your chosen fishing outfit, or change back

Silly stuff:
In addition to displaying the fishing bonus for your fishing outfit, it also displays your 'style points' as inferred from Draznar's Fishing FAQ (

Fishing Buddy Plugins:
Outfit Manager -
Fish Tracking --
Broker: Fishing Buddy --
Titan Panel [Fishing Buddy] --

Feel free to send comments to Sutorix=AT=hotmailDOTcom.


1. Unzip the '' file
2. If your unzip program allows you to specify a location, then unzip it into the 'Interface/AddOns' folder contained in your WoW folder (the location that WoW was installed)
3. If your unzip program doesn't let you specify the destination, then find your WoW folder (where it was installed) and drag the 'FishingBuddy' folder into the 'Interface/AddOns' folder.

Version 1.4y
- Fix a random spurious character in the Draenor bait table

Version 1.4x
- Don't overwrite Draenor fishing quest baits (Curse bug #250)
- Add support for Bladebone Hook

Version 1.4w
- Use Draenor bait option is in broker menu
- Update TOC for 6.1

Version 1.4v
- Fix for watcher fish counting (thanks ProphetV!)

Version 1.4u
- Add an option to display just the current fish in the watcher (Curse #237)
- Do some fixing around Curse bug #246 (it looks like some addons turn off minimap icons)
- Updated Traditional Chinese (thanks alec65!)

Version 1.4t
- Remove UI freeze when using the Blizz bag sorter
- Add garrison cavedweller fish to "Pagle" fish list (ding on catch, list in watcher)

Version 1.4s
- Add missing file that maanged to not get into source control

Version 1.4r
- Don't use Draenor special baits while doing the Hookshot or introductory fishing quests
- Display lunkers with other quest fish in the watcher

Version 1.4q
- Now that the library is right, make sure we check it correctly for non-English clients

Version 1.4p
- Fix bug in fishing library that was messing up non-English zone lookups

Version 1.4o
- Add an option to control the application of "Draenor bait"
- More work on cleaning up all of the old lure code to handle all of the new situations

Version 1.4n
- The zone based lures should be applied appropriately, including sea scorpion
- Updated French translation (thanks Matisk, Mips, and ckeurk!)
- Updated to latest LibTourist, now knows about garrisons
- Fix Curse bug #243 (switch error while in combat)

Version 1.4m
- Don't try and remember fish schools if we're not sure where we are (Curse Bug #240)

Version 1.4k
- Fix math error in watcher when you are fishing for the first time

Version 1.4j
- Make sure Nat's Hookshot is applied whenever we're doing the Lunker quest
- Use the Worm Supreme, if we need it to get over 950
- Use the latest LibTourist, and notice if we're in the Draenor zones for skill check

Version 1.4i
- One last "boolean instead of 1" error in the locations frame
- Latest version of LibTourist (hacked for 950 skill everywhere)

Version 1.4h
- Actually fix the issue with checkboxes (Curse bug #234)

Version 1.4g
- Subtle fix for checkbox handling in options, use booleans everywhere (Curse bug #234)
- Use the latest version of LibTourist
- French translation updated (thanks Dabeuliou!)

Version 1.4f
- Use the latest version of LibTourist
- Remove Outfitter failure (I may add the tooltips back in later)

Version 1.4e
- Use the latest version of LibBabble-SubZone
- Italian translation reviewed (thanks _YuSaKu_!)
- French translation updated (thanks Dabeuliou!)

Version 1.4d
- Use the latest beta of LibTourist and LibBabble-SubZone for WoD
- Update TOC

Version 1.4c
- Don't try to summon fishing pets if we're in combat
- Make sure we autoloot things that we're opening automatically
- Better handling when both Angler's Raft and Bipsi's Berg are available
- Fix for Curse bug #231 "Watcher not toggling off automatically"

Version 1.4b
- Get my act together with respect to watch window location (thanks Grizzly_UK!)

Version 1.4a
- More work on keeping the watcher visible and onscreen (using LibWindow)
- Handle version changes and per-player settings correctly
- Fix an issue with LibTourist where it doesn't check for esMX

Version 1.4
- Updated German translation (thanks DirtyHarryGermany!)
- Attempted fix for 64-bit crash bug (#227) by using PLAYER_ALIVE
- Remove invalid frame reference in watcher window (Curse #229)
- Add "/fb fishdata reset" to clear out all fish location data (#127)
- More work on the watcher frame to try and make it stay on screen all the time


First Previous Page 2 of 168 Next Last
  • #2966

    That's just weird. I will investigate and see what I can figure out.

  • #2963

    I get this error on login:

    Message: Interface\AddOns\FishingBuddy\FishingFluff.lua:117: attempt to call method 'IteratePetIDs' (a nil value) Time: 02/25/15 12:34:27 Count: 1 Stack: Interface\AddOns\FishingBuddy\FishingFluff.lua:117: in function <Interface\AddOns\FishingBuddy\FishingFluff.lua:114> Interface\AddOns\FishingBuddy\FishingFluff.lua:607: in function `func' Interface\AddOns\FishingBuddy\FishingBuddy.lua:493: in function <Interface\AddOns\FishingBuddy\FishingBuddy.lua:489> Interface\AddOns\FishingBuddy\FishingBuddy.lua:1832: in function <Interface\AddOns\FishingBuddy\FishingBuddy.lua:1749>

    Locals: (*temporary) = nil (*temporary) = <table> {  UnregisterCallback = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:181  callbacks = <table> {  }  event_frame = <unnamed> {  }  UnregisterAllCallbacks = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:202  RegisterCallback = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:118 } (*temporary) = "attempt to call method 'IteratePetIDs' (a nil value)" ourpets = <table> { } petmap = <table> { } LibPetJournal = <table> {  UnregisterCallback = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:181  callbacks = <table> {  }  event_frame = <unnamed> {  }  UnregisterAllCallbacks = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:202  RegisterCallback = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:118 } UpdateChosenPets = <function> defined @Interface\AddOns\FishingBuddy\FishingFluff.lua:83

  • #2964

    Whoops! Let me check that out. Thanks!

  • #2962
    Fishing Buddy 1.4w
    • Use Draenor bait option is in broker menu
    • Update TOC for 6.1

    Still working on rewriting all of the Draenot bait handling -- the plan is to have the same "auto apply" that it does now, with an option to "maintain only" (like the rafts), so that if you have a Draenot bait applied, it will only reapply that one when it expires.

    (It's slightly more complcated to code correctly than it sounds, but I think I have it worked out :-)

  • #2955

    Hey, for some reason my fishing buddy doesn't use the draenor bait in shadowmoon valley anymore. I tried different locations but I can't figure it out. The other draenor baits are used automatically, as long as I have them in my bag (except for the talador bait, which is not used when I fish in auchindoun).

    Does anybody else have this problem?

  • #2956

    Also having issues in SV; it is not applying a lure for me either.

  • #2961

    So today I made a complete clear install of the game (actually of my entire system). Nothing of fishing buddy could have been left. After installing the current version with the curse client the issue still appears.

    The game automatically uses all kinds of baits (Worm, Hook, whatever). The draenor baits work fine too, except the one for Shadowmoon Valley.

    As far as I can tell, this affects all of SV. I couldn't find a single fishing spot where FB would use the draenor bait.

  • #2957

    That's just weird. I will see what I can figure out.

  • #2953

    The savage pole lure lasts for 10 mins, but has a 20 min CD.  So i changed \World of Warcraft\interface\addons\FishingBuddy\Libs\LibFishing-1.0\LibFishing-1.0.lua.  I removed all lures i am not interested in using.  Changes are in bold:

    local FISHINGLURES = {
    { ["id"] = 117405,
    ["n"] = "Nat's Drinking Hat", -- 150 for 10 mins
    ["b"] = 150,
    ["s"] = 100,
    ["d"] = 10,
    ["w"] = true,
    { ["id"] = 116825,
    ["n"] = "Savage Fishing Pole", -- 200 for 10 minutes
    ["b"] = 200,
    ["s"] = 1,
    ["d"] = 20,
    ["w"] = true,
    { ["id"] = 34832,
    ["n"] = "Captain Rumsey's Lager", -- 10 for 3 mins
    ["b"] = 10,
    ["s"] = 1,
    ["d"] = 3,
    ["u"] = 1,
    { ["id"] = 118391,
    ["n"] = "Worm Supreme", -- 200 for 10 mins
    ["b"] = 200,
    ["s"] = 100,
    ["d"] = 10,

    Last edited by warkitteh on 2/7/2015 1:04:01 PM
  • #2958

    You are right, I have updated it.

  • #2951


    I have put some modifications to this beautifull add on

    it show only the number and pourcent of fish received without the 0:00,0%

    in the line of Total, i have add the SkillMax of the char who change of color when it is able to learn the new skill for be sure to not forget to go learn and fighing for no gain :

    it change from green to red


    Now the code i modified :


    into FishingWatcher.lua

    local function UpdateFishieEntry(index, info)
        local fishietext = FishingBuddy.StripRaw(info.text);
        local dopercent = FishingBuddy.GetSettingBool("WatchFishPercent");
        local amount = info.count;
        if ( info.skipped ) then
            if ( ) then
                fishietext = fishietext.." ("..amount..")";
                fishietext = Crayon:Copper(fishietext.." ("..amount..")");
            if ( info.quality and ITEM_QUALITY_COLORS[info.quality] ) then
                fishietext = ITEM_QUALITY_COLORS[info.quality].hex..fishietext.."|r ";
                fishietext = Crayon:Red(fishietext);

            local white  = "|cff"..Crayon.COLOR_HEX_WHITE;
            local silver = "|cff"..Crayon.COLOR_HEX_SILVER;
            local green  = "|cff"..Crayon.COLOR_HEX_GREEN;
            local color1, color2;
            if ( gotDiffs ) then
                color1 = silver;
                color2 = green;
                color1 = white;
            local numbers = white.."(".."|r"..color1..amount;
            if ( dopercent ) then
                local percent = format("%.1f", ( amount / totalCount ) * 100);
                numbers = numbers.." : "..percent.."%";
            if ( gotDiffs) then
    --            numbers = numbers..", |r";
                amount = info.current or 0;
                local diffs = amount;
                if ( dopercent and amount > 0) then
                    numbers = numbers..", |r";
                    local percent = format("%.1f", ( amount / totalCurrent ) * 100);
                    diffs = diffs.." : "..percent.."%";
                    numbers = numbers..color2..diffs.."|r";
                numbers = numbers.."|r";
            fishietext = fishietext..numbers..white..")|r";
        SetEntry(index, fishietext);
        return index + 1;

    Into LibFishing-1.0.lua

    function FishLib:GetFishingSkillLine(join, withzone, isfishing)
        local SKILLGAMEMAX = 700;
        local part1 = "";
        local part2 = "";
        local skill, mods, skillmax = self:GetCurrentSkill();
        local diffskill = skillmax - skill;
        local totskill = skill + mods;
        local zone, subzone = self:GetZoneInfo();
        local level = self:GetFishingLevel(zone, subzone);
        if ( withzone ) then
            part1 = zone.." : "..subzone.. " ";
        if ( level ) then
             if ( level > 0 ) then
                local perc = totskill/level; -- no get aways
                if (perc > 1.0) then
                    perc = 1.0;
                part1 = part1.."|cff"..Crayon:GetThresholdHexColor(perc*perc)..level.." ("..math.floor(perc*perc*100).."%)|r";
                -- need to translate this on our own
                part1 = part1..Crayon:Red(NONE_KEY);
            part1 = part1..Crayon:Red(UNKNOWN);
        -- have some more details if we've got a pole equipped
        if ( isfishing or self:IsFishingGear() ) then
            part2 = Crayon:Green(skill.."/")
            if ( diffskill <= 25 and skillmax ~= SKILLGAMEMAX) then
                part2 = part2..Crayon:Red(skillmax)
                part2 = part2..Crayon:Green(skillmax)
            part2 = part2..Crayon:Green("+"..mods).." "..Crayon:Silver("["..totskill.."]");
        if ( join ) then
            if (part1 ~= "" and part2 ~= "" ) then
                part1 = part1..Crayon:White(" | ")..part2;
                part2 = "";
        return part1, part2;


    local skilltable = {};
    tinsert(skilltable, { ["level"] = 100, ["inc"] = 1 });
    tinsert(skilltable, { ["level"] = 200, ["inc"] = 2 });
    tinsert(skilltable, { ["level"] = 300, ["inc"] = 2 });
    tinsert(skilltable, { ["level"] = 450, ["inc"] = 4 });
    tinsert(skilltable, { ["level"] = 525, ["inc"] = 6 });
    tinsert(skilltable, { ["level"] = 600, ["inc"] = 10 });
    tinsert(skilltable, { ["level"] = 700, ["inc"] = 15 });

    i inserted the lvl 700 for Draenor.



    Last edited by minosubb on 2/4/2015 5:08:24 PM
  • #2952

    The "number of casts to skill up" is now much more random than it was before, so it's not really that useful :-)

    I will look at your changes and see about making them an option. Thanks!

  • #2954

    yes, i just have put 15 for the lvl 700 just to put something but this info could be removed because it mean nothing. it vould mean something if it could remember the number of cast neededfor the previous point but i haven't found how doing this.

    Last edited by minosubb on 2/8/2015 9:28:32 AM
  • #2947

    So for some reason, starting today, easy cast only works when I'm mounted.  If I'm not mounted, it does nothing.  Any ideas on what could be causing this?

  • #2948

    That's just weird -- I haven't released a new version. Is there another addon that's not playing nice and stealing the mouse down?

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Legends of Hoenn Tin Giveaway