Support for all the normal ace3 profile stuff (change current, copy, etc) is now added, with a couple of twists so that you can have the benefits of sharing a profile and still be able to make character specific tweaks. See http:www.wowace.com/addons/pokedex/pages/profiles/ for more info. There's also new support for Warlocks water walking with Soulburned Unending Breath or using Burning Rush when regular mounts can't be summoned.


The games Key Binding UI will contain a section for Pokedex. The only two commands you'll probably want or need to keybind are Toggle Mount and Summon Companion. Pokedex configuration can be reached through the games addons menu or by typing /pd. The full list of commands can be found at http://www.wowace.com/addons/pokedex/pages/main/actions/.


Pokedex allows random summoning of mounts and companions using preference values set by user to influence selection. Pokedex will summon appropriate mount based on what the current location supports. Pokedex can also randomly set character's title using the same basic ranking system.

The chance of a particular item (mount, companion or title) being selected is equal to the rank you have assinged to it divided by the total of the ranks for all other elligible items. Put another way, each point of ranking is one ticket to the raffle drawing to see which mount is selected. If all items are still set to the default value, then they all have an equal chance of being selected. An item which you have assigned a value of 0 will never be selected.


The New Hotness - The idea behind this feature is that your most recently acquired pet/mount/title is something you're probably excited about and what to see more often than the rest of your collection. Or maybe you want to flaunt it in front of the all the people who are still trying to get, for example, their Sinister Squashling. When dealing with large numbers of pets or mounts, even setting it to ten will not cause it to show up very often. So rather than make you downrank every other item, the hotness feature acts as a way to get that one pet out more often. If there is a hot pet, we'll first do a percentile roll against the heat of hot item. If the heat is set to 50, then 50 percent of the time we would summon that hot pet. The other 50 percent of the time, we'll do the usual random selection out of the weighted pet pool.

Safe Dismount - This feature is disabled by default but can be turned on in Pokedex's options ui. This feature allows you to keep as a default behavior that of having the Auto Dismount in Flight option turned off, so that accidently trying to cast a spell in flight won't send you plummeting to your death, but allows you to choose override scenarios where you do want actions to dismount you automatically so that they can be executed. The scenarios you can opt into are 1) when you are in combat, 2) targeting something attackable or 3) attempting to gather a resource via mining, herbalism or skinning.

Random Titles - You can also rank titles the way you do pets and mounts and have Pokedex periodically change your title.

Auto summon pet - You can have Pokedex summon a non-combat pet, if you don't already have one out, everytime you dismount or change zone.

Druid forms, Ghost Wolf and Burning Rush support - Pokedex supports using Druid forms, Shaman Ghost Wolf and Warlock Burning Rush in the appropriate situations as part of the Toggle Mount command.

autocast Water Walking when mounting - An option exists (off by default) for Shamans to cast Water Walking and Affliction Warlocks to cast a Soulburned Unending Breath as they summon a mount with the Toggle Mount command. This way the buff is already in place when they encounter water so they don't have to dismount, buff and then remount (all while wondering why Death Knights get to cast Path of Frost while mounted).

autocast Horn of Winter when mounting - For Death Knights, Pokedex can cast Horn of Winter whenever you mount. This is useful for keeping the buff up while questing or resource gathering (e.g. mining).

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of BNSSNB BNSSNB Jan 03, 2013 at 03:48 UTC - 0 likes

    Thank you very much! now no error when login ^_^

  • Avatar of stencil stencil Dec 31, 2012 at 11:10 UTC - 0 likes

    @BNSSNB: Go

    So, what I think this means is that you have you two pets where Blizzard has given them the same name even though they are different species. This is likely cause by a blizzard localization bug. For example, there Enchanted Lantern and Magic Lamp are two different pets. But if the blizzard localizers accidently gave them both the same name, whatever Magic Lantern would be in Korean, then that would trigger this problem.

    When you look at the pets you own in the pet journal, do you see any that have the same name but different icons? If so which ones?

    Another thing to try would be to open Pokedex\core.lua in a text editor and search for this section

    elseif (not fInitialized) then
    	-- sanity checks that unique ids really are, only do on first pass
    	assert(BySID[speciesID].name == name)
    	assert(BySID[speciesID].cid == creatureID)
    	assert(ByCID[creatureID].name == name)
    	assert(ByCID[creatureID].sid == speciesID)
    	assert(ByName[name].sid == speciesID)
    	assert(ByName[name].cid == creatureID)

    Change it to look like this

    elseif (not fInitialized) then
    	-- sanity checks that unique ids really are, only do on first pass
    	if pet.name ~= name or pet.sid ~= speciesID or pet.cid ~= creatureID then
    		Pokedex:Print("duplicate key found")
    		Pokedex:Print(pet.name, pet.sid, pet.cid)
    		Pokedex:Print(name, speciesID, creatureID)

    Then log in and let me know what it outputs.

  • Avatar of BNSSNB BNSSNB Dec 31, 2012 at 08:50 UTC - 0 likes

    When every time I logged in, Bugsack will display the following error message,Do not know why, you can check it ? Thank you! (Sorry English is not good)

    1x Pokedex-5.1.01\core.lua:2258: attempt to index field "?" (a nil value)
    Pokedex-5.1.01\core.lua:2258: in function "UpdatePets"
    Pokedex-5.1.01\core.lua:2208: in function <Pokedex\core.lua:2196>
    Pokedex-5.1.01\core.lua:1925: in function "GetCurrentPet"
    Pokedex-5.1.01\core.lua:1272: in function "DismissMount"
    Pokedex-5.1.01\options.lua:368: in function <Pokedex\options.lua:368>
    (tail call): ?
    ...\5AceConfig-3.0-2\AceConfigCmd-3.0\AceConfigCmd-3.0-13.lua:143: in function <...\AceConfig-3.0\AceConfigCmd-3.0\AceConfigCmd-3.0.lua:133>
    ...\5AceConfig-3.0-2\AceConfigCmd-3.0\AceConfigCmd-3.0-13.lua:408: in function <...\AceConfig-3.0\AceConfigCmd-3.0\AceConfigCmd-3.0.lua:334>
    (tail call): ?
    ...\5AceConfig-3.0-2\AceConfigCmd-3.0\AceConfigCmd-3.0-13.lua:769: in function "HandleCommand"
    Pokedex-5.1.01\core.lua:80: in function "?"
    Ace3-r1068\AceConsole-3.0\AceConsole-3.0-7.lua:94: in function "?"
    ChatFrame.lua:2747: in function <FrameXML\ChatFrame.lua:2740>
    <in C code>
    <in C code>
    FrameXML\SecureTemplates.lua:275: in function "handler"
    FrameXML\SecureTemplates.lua:560: in function <FrameXML\SecureTemplates.lua:508>
    <in C code>
    FrameXML\SecureHandlers.lua:264: in function <FrameXML\SecureHandlers.lua:261>
    <in C code>
    FrameXML\SecureHandlers.lua:294: in function <FrameXML\SecureHandlers.lua:277>
    (tail call): ?
    t = <table> {}
    k = "ByPID"
    fUpdated = true
    _ = 111
    numOwned = 111
    filter = <table> {
     strSearch = "搜尋"
     sources = <table> {}
     userFlags = <table> {}
     types = <table> {}
    cpj = <table> {
     GetPetTeamAverageLevel = <func> =[C]:-1
     SummonPetByGUID = <func> =[C]:-1
     PetIsHurt = <func> =[C]:-1
     GetPetInfoBySpeciesID = <func> =[C]:-1
     SetCustomName = <func> =[C]:-1
     PetIsTradable = <func> =[C]:-1
     GetPetInfoByIndex = <func> =[C]:-1
     GetNumPets = <func> =[C]:-1
     GetNumCollectedInfo = <func> =[C]:-1
     SetPetLoadOutInfo = <func> =[C]:-1
     SummonRandomPet = <func> =[C]:-1
     GetPetAbilityList = <func> =[C]:-1
     GetPetInfoByPetIDtemp = <func> =[C]:-1
     ClearSearchFilter = <func> =[C]:-1
     GetPetStatstemp = <func> =[C]:-1
     GetOwnedBattlePetStringtemp = <func> =[C]:-1
     SetPetSourceFilter = <func> =[C]:-1
     IsJournalReadOnly = <func> =[C]:-1
     CagePetByID = <func> =[C]:-1
     ReleasePetByID = <func> =[C]:-1
     PetIsCapturable = <func> =[C]:-1
     SetFlagFilter = <func> =[C]:-1
     ClearAllPetSourcesFilter = <func> =[C]:-1
     FindPetIDByName = <func> =[C]:-1
     PetIsSlotted = <func> =[C]:-1
     AddAllPetSourcesFilter = <func> =[C]:-1
     GetPetLoadOutInfo = <func> =[C]:-1
     IsPetSourceFiltered = <func> =[C]:-1
     SetFavorite = <func> =[C]:-1
     PetIsLockedForConvert = <func> =[C]:-1
     GetNumPetSources = <func> =[C]:-1
     ClearAllPetTypesFilter = <func> =[C]:-1
     GetOwnedBattlePetString = <func> @HPetBattleAny\modules\Hook.lua:78
     PetIsRevoked = <func> =[C]:-1
     AddAllPetTypesFilter = <func> =[C]:-1
     IsPetTypeFiltered = <func> =[C]:-1
     SetPetSortParameter = <func> =[C]:-1
     GetPetInfoByPetID = <func> @HPetBattleAny\modules\Hook.lua:114
     GetSummonedPetGUID = <func> =[C]:-1
     GetPetSortParameter = <func> =[C]:-1
     SetPetTypeFilter = <func> =[C]:-1
     GetBattlePetLink = <func> @HPetBattleAny\modules\Hook.lua:88
     GetPetAbilityInfo = <func> =[C]:-1
     PetIsSummonable = <func> =[C]:-1
     IsFindBattleEnabled = <func> =[C]:-1
     GetPetStats = <func> @HPetBattleAny\modules\Hook.lua:118
     PetIsFavorite = <func> =[C]:-1
     IsJournalUnlocked = <func> =[C]:-1
     PetCanBeReleased = <func> =[C]:-1
     SetAbility = <func> =[C]:-1
     SetSearchFilter = <func> =[C]:-1
     IsFlagFiltered = <func> =[C]:-1
     GetNumPetTypes = <func> =[C]:-1
     PickupPet = <func> =[C]:-1
    CPets = <table> {
     numOwned = -1
     __index = <func> @Pokedex\core.lua:2196
     count = 0
     UpdatePets = <func> @Pokedex\core.lua:2217
    DC = <table> {
     MISC = 0
     TITLES = 0
     PETS = 0
     MOUNTS = 0
     DISMOUNT = 0
    DL = <table> {
     NONE = 0
     AV = 3
     MAX = 3
     BASIC = 1
     EXCEP = 2
    Pokedex = <table> {
     SetDefaultModuleLibraries = <func> @Ace3\..\AceAddon-3.0.lua:383
     ADDON_ACTION_FORBIDDEN = <func> @Pokedex\core.lua:491
     EchoZone = <func> @Pokedex\core.lua:464
     optionsFrame = <unnamed> {}
     db = <table> {}
     EnableModule = <func> @Ace3\..\AceAddon-3.0.lua:348
     modules = <table> {}
     GetSkills = <func> @Pokedex\core.lua:1101
     EchoCounts = <func> @Pokedex\core.lua:456
     SummonCompanion = <func> @Pokedex\core.lua:1880
     SecureHookScript = <func> @Ace3\..\AceHook-3.0.lua:413
     ChangeTitle = <func> @Pokedex\core.lua:2
  • Avatar of stencil stencil May 20, 2011 at 10:08 UTC - 0 likes

    Latest release adds support for Druid and Shaman forms as well as Worgen Running Wild racial ability.

  • Avatar of stencil stencil Oct 15, 2010 at 12:42 UTC - 0 likes

    I can't add support for Ghost Wolf or Druid forms at this time. In the future, once I finally figure out the whole SecureTemplates thing, I may be able to. But based off what I think I know about that, I can see a couple of reasons why that might not even work right.

    Anyway, here's a macro that I think should pretty much give you the behavior that you want. Should put you into ghost wolf form only if in combat or indoors. Its wrapped in UIErrors stuff so that you wont get game errors everytime Pokedex fails summoning a mount (because you're already in ghost wolf form for example).

    /script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
    /cast [stance:0,nomounted,indoors] [stance:0,nomounted,combat] Ghost Wolf
    /pd ToggleMount
    /cancelform [stance:1]
    /script UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE");
  • Avatar of jkasquires jkasquires Oct 15, 2010 at 01:38 UTC - 0 likes

    Anyway to add in Shaman Ghostwolf? Thanks for the great addon :).

  • Avatar of stencil stencil Apr 16, 2010 at 07:32 UTC - 0 likes

    New beta - lots of work to remove dependence on string matching for identifying mounts. Should now correctly identify speed of mounts from data in an internal table, only falling back on string matching should we not have an entry for that mount.

    This is coming out a bit early to beta because I need to add some code for handling the new Celestial Steed with the whole "maybe its a 310 mount, maybe its just a 280" business. So I want to get these changes exposed a bit to testing before I roll out the release to support the new mount (which from what I've seen in Dalaran appears to be *very* popular).

  • Avatar of stencil stencil Mar 26, 2010 at 00:07 UTC - 0 likes

    Checked in and released an new BETA build for testing:

    Tons of code cleanup. Change title feature tweaked to work around blizz api changes (to change on mount instead of on load). Fixed bugs related to initializing when blizz cache had been invalidated.

    /pd debug - command line feature lets you turn on chat frame output for various features for debugging purposes.

    Safe dismount feature - manages the "auto dismount while flying" setting to turn it off in situations where you'd want to quick dismount and keep it on the rest of the time to prevent accidents. Not integrated into options yet - to disable this feature, change the option pokedex.lua in your saved variables folder.

    Last edited Mar 26, 2010 by stencil
  • Avatar of stencil stencil Mar 07, 2010 at 06:50 UTC - 0 likes

    NOTE: Changing Title on load was broken by patch 3.3. Blizzard has changed that function to make it a secure function meaning direct user action must initiate the call. Current plan is to offer new options that will let you tie title change to other pokedex actions. For example, you could have it change your title every time you mount up, or perhaps only the first time you mount up for a given session. I'm open to all suggestions for how to improve/reimplement this option.

  • Avatar of stencil stencil Feb 27, 2010 at 03:10 UTC - 0 likes

    In addition to dismounting off mounts, it should also pop you out of vehicles.


Date created
Dec 23, 2008
Last update
Oct 07, 2016
Development stage
  • deDE
  • enUS
  • frFR
  • zhCN
  • zhTW
All Rights Reserved
Curse link
Recent files
  • R: 7.0.14 for 7.0.3 Oct 07, 2016
  • R: 7.0.12 for 7.0.3 Oct 07, 2016
  • R: 7.0.13 for 7.0.3 Sep 29, 2016
  • R: 7.0.11 for 7.0.3 Sep 12, 2016
  • R: 7.0.10 for 7.0.3 Sep 12, 2016



Embedded library