WoW Spotlight - Setting Binds for Pet Battles

Welcome to another World of Warcraft add-on spotlight! In this issue we are covering Battle Pet Binds, by MMOSimca.

The Problem

There is one small aspect of pet battles that has always bothered me: keybindings. As pet battle binds are not detached from the normal ones, it is very common for them to conflict with each other. Using an action bar addon can mess up the pet battle binds even more - you might end up with nothing bound at all, being forced to play solely with the mouse.

The Solution

Pet Battle Binds solves this issue by allowing you to set up the keybindings for pet battles independently of everything else. Pet Battle Binds also takes this concept even further, allowing you to setup binds for every existing action in pet battles - including changing pet and passing a turn - which are not provided by default in the game. This makes it possible to play pet battles entirely with the keyboard, without ever needing to resource to the mouse. 


The pet battle keybindings are not set in the same way as most others: instead of being found under the standard Keybindings window, they are on the Addons tab from the Interface Options. 

Yet, setting them up is done exactly as with standard bindings: simply click on the button corresponding to the action you want to change, and then press the key you want to bind to it.


We also had the opportunity to have a chat with the add-on's author, Simca: 

Quote from
What's your favorite pet?
My all-time favorite pet has to be the Spectral Tiger Cub, but there are several others that are very close.

Good choice! What motivated you to start Battle Pet Binds?
What motivated me to start this addon was how quickly it got frustrating to swap from keyboard to mouse to keyboard to mouse when doing Pet Battles. I could lay back and issue commands to my pet via the keyboard, but when I had to flee a battle or switch pets, I'd have to do precision-clicking with the mouse, which really interrupted the flow of the battle. With Battle Pet Binds, everything in Pet Battles can be directly bound to either the keyboard or mouse (or some combination), without the Blizzard UI's method of taking away those buttons from your regular bindings.

Roughly how long did it take to complete the first usable version?
The first usable version was actually fairly quick to finish; it took around 3-4 hours from scratch. However, the first version required you to edit the source code to specify custom bindings (which a lot of people want to do, of course), so it was a very rough version.

Which was the hardest problem you had to face during development?
The hardest problem I faced during development was creating an Options panel with the ability to intercept player bindings and change based on them. Part of the issue was that several key combinations are not valid in WoW (for example, you cannot use Shift, Ctrl, and Alt with NumPad keys), so creating a list of all exceptions was difficult. Additionally, I had to deal with all the possible inputs (had to accept Mouse clicks, Keyboard presses, and Mouse wheel movements) and make all of them work together well.

Have you learned anything new from this project?
Yes, I learned a lot from this project, especially from the final parts of its development (not so much from the initial release). The biggest lesson I took away from it is that while looking at code from successful authors is definitely a good thing sometimes, othertimes you will find a solution just as good as theirs if not better on your own in less time. I looked into the keybinding methods of various actionbar addons and keybinding libraries, but eventually I just did my own thing (well, I took a table from Ace3 and another from Blizzard, but the vast majority was original) and it worked out quite well if I do say so myself. There are lots of ways to do the same thing in programming and learning someone else's way is not always better, especially if it means you have to dig through a daisy chain of files and libraries that continuously reference more and more unknown functions.

What stage of development process did you enjoy most?
I enjoyed the final phase of development (right before I hit "feature complete" with this latest version) because it was the most challenging thing I've done addon-wise in WoW yet. It took around 20 hours to learn and test the code added in version 2 of the addon; I added an options panel complete with keybinding / mousebinding / mousewheelbinding and also added a lot of 'logic' code to deal with shortening the names of keybindings so things like "NUMPADPLUS" would become "N+" (and therefore fit into the spaces where the keys are displayed).

Could you tell us about any other mods you are working on?
Sure! I am also the author of Auto Safari Hat and a co-author (with [email protected] Blade) of Battle Pet BreedID.

Auto Safari Hat is a small addon that automatically equips your Safari Hat when appropriate (when targeting a Battle Pet or when entering Battle against a Tamer) and also automatically unequips it after the experience is awarded at the end of a Pet Battle. This resolves awkward incidents where you realize midway through an instance or battleground that you are still wearing your Safari Hat or if you forgot to equip the Safari Hat when you were doing dailies or grinding wild pets! Additionally, the addon automatically accepts quests from tamers, battles tamers, and turns in completed quests to tamers. It even will attempt to fix your hat if the addon was prevented from fixing it due to combat (as soon as you leave combat, it will reevaluate your hat after it fails to equip/unequip).

Battle Pet BreedID is the most accurate in-game source for discovering your Battle Pet's breed, which plays a vital role in stat allocation for Battle Pets. Battle Pet BreedID currently displays your pet's breeds in Battle, on Chat Links, on items, in the Pet Journal, and in the Collected line of tooltips (with BattlePetCount installed). Look for an update in the next week to provide loads of additional functionality: all Pet tooltips will have their own Breed tooltip, showing possible breeds, base stat allocation, all breeds' stats at level 25 Rare, and much more. All of that can be enabled/disabled with ease in the upcoming options panel as well.

Do you have any advice for potential new addon developers?
My top three pieces of advice for potential new addon developers are:
     1) When you set out to make an addon, make an addon that is useful to you. Most authors (long-term) will not maintain an addon if they had very little interest in it the first place and only did it for others. I'd actually wager that a large majority of addon authors start making addons because they are bothered by something in-game and see that there is no solution to their problem (this was the reason behind Battle Pet Binds).
     2) Use Google, Wowpedia, and WoWProgramming often. Google is a great resource just because it can search all of the different addon forums at once. You'd be surprised how often some archived forum post from 2007 is the answer to your question. Wowpedia and WoWProgramming are the two best sources for WoW API information. If one site doesn't have what you're looking for, the other site will.
     3) Don't try to incorporate libraries into your first few addons unless you are aiming for them to be massive in scope. Libraries are great but they vastly overcomplicate simple things and can confuse new users (I know they confuse me often enough).

Thank you to Simca for answering our questions and developing this add-on.


  • To post a comment, please or register a new account.
Posts Quoted:
Clear All Quotes