Having an hard time spotting new recipes for your character? Is keeping track of your alt's professions a challenging task? Then you ought to give ProfessionsVault a try!
ProfessionsVault is an add-on aimed to ease the process of managing professions. First and foremost, it highlights recipes your characters can learn, anywhere in the UI. It enhances tooltips, displaying which alts can craft an item or learn a recipe. Additionally, it can browse the entire auction house and find all the recipes available for your characters to learn.
On top of that, ProfessionsVault allows you to view the professions of all your characters, link them to other players, and view a list of all existing recipes for any profession.
We also had the opportunity to have a chat with the add-on's author, oscarucb:
Why did you decide to create ProfessionsVault?
I've been a dedicated WoW player and raider since Burning Crusade, and I've always enjoyed the game's professions. I'm an avid recipe collector on all my toons, and I wanted a way to see my trade skills and recipe learnability from any character. I was using the recipe-tracking addons available at the time, but was frustrated by how slow and memory-intensive they were. Blizzard did a major overhaul to the trade skill API in patch 3.0, and I saw an opportunity to write an addon from scratch that could leverage the new trade skill links to be far more efficient in time and space.
The key to the internal design is operating solely on trade skill hyperlinks, which are very small and far more compact than expanded lists of individual recipes and mats. Any information required is extracted from the hyperlinks on demand, leading to very lightweight operation. In practice this approach reduces memory consumption by a factor of 50 or more relative to previous addons, removing load-time bottlenecks and completely eliminating recipe scanning "pauses".
What did you find it most useful for?
The most popular feature and the one I use daily is recipe coloring to show learnability for your alts. ProfessionVault integrates with various other addons to colorize recipe items anywhere you see them in-game, so the recipes that your alts can learn immediately pop out visually, with the mouseover tooltip providing further details. This is extremely helpful for recipe collectors, as is the recently added Auction House scanning feature, which allows you to quickly scan it for recipes that any of your alts need.
ProfessionVault also nicely complements Ackis Recipe List (another must-have for recipe collectors), and using this combo I've recently completed my character's Enchanting to include every recipe available in-game, and my other professions are within a dozen recipes of a complete collection.
Once development on ProfessionVault was underway I realized the design approach could also provide new and useful features that were impossible under traditional designs - namely, the ability to import and store recipe links from trade chat and the guild profession roster. I also wanted quick in-game access to fully stocked trade skills, and that was easy to add. The LibDataBroker (LDB) tooltip also provides handy access to your profession database.
Did you come across any problems during development?
There were two major challenges in the development of ProfessionVault. The first was reverse-engineering the trade skill hyperlink encoding (which is not documented by Blizzard) to convert raw trade skill links into lists of known recipes. To my knowledge ProfessionVault remains the only addon that attempts to do this. The encoding changes with each major patch as recipes are added to the game, but I've automated the scan process so I can easily release updates after each patch.
The second and ongoing challenge is implementing the translation of recipe item IDs into corresponding trade skill spell IDs. About 95% of the time this can be accomplished with simple tooltip scanning, but due to naming irregularities in the item database the other 5% of the time there are unfortunately a large number of exceptions that must be resolved. Some trivial differences are handled automatically in the addon using fuzzy pattern matching, but paradoxically a significant number of recipe items teach trade spells with completely different or otherwise ambiguous names. These exceptions are handled using a manually-constructed list, but this task becomes dramatically worse because most of the exceptions are language-specific; so I manage a list for each of the eleven localized languages currently supported by WoW. Many of these languages I cannot read myself, so I'm deeply indebted to wowhead's translation feature and numerous users who have provided updates. In order to ensure completeness, I wrote an automated test harness that exhaustively scans the entire item database searching for exceptions, and I run this regularly using trial accounts spread on regional servers throughout the world before each major addon release.
Finally, an intermittent display problem cropped up while developing my AceGUI-based UI, which after numerous hours of investigation turned out to be a bug in the base Blizzard frame code, affecting many other addons. This eventually led to the development of my StrataFix addon, which resolves the bug globally.
Could you tell us about any other mods you are working on, or planned for the future?
I'm a classically trained programmer with several degrees in computer science, so merging my passion for Wow with my love of programming was a natural step. ProfessionsVault was my first major add-on project written from scratch. I learned a great deal about the Lua programming language and the WoW environment along the way, which I then used to create and modify additional addons to provide the UI behavior I wanted. I'm not a great enthusiast of the visual "eye candy" aspects of UI design, but I'm very anal about functionality and getting exactly the UI behavior I want, especially in support of hard-core raid leading. I'm currently an author or maintainer of over 20 addons.
On occasion I also contribute to other popular addons I use (basically anytime I find a bug or feature that bothers me I go and fix it). I also have a number of unreleased UI mods and random bits of code that I'm constantly writing for my own private use, and occasionally I'll polish one up and productize it for general release as a stand-alone addon. If I get sufficiently bored before MoP hits I may release a few more of those
Do you have any advice for others who would like to start modding?
Start simple: The best way to learn is by reading existing addon code and following their example to make small changes for yourself.
Follow good programming practices: learn to recognize good coding practices in addons you read and adopt them.
Use good variable naming and explanatory comments. Modularize when appropriate, factor to avoid code duplication and document interfaces.
Quality assurance: add code to assist in debugging problems and perform self-testing. Use an open source code control system (e.g. svn) and cut beta versions for testers before stamping a major release. Test your addons extensively and keep them updated with each new patch. Use a good ticket system for tracking, documenting and resolving bugs.
Use your own software: the best way to test your mod and discover missing features is to use it yourself daily. If you find you're no longer using it, consider passing it on to a new maintainer.
Localization is important: the WoW community is international, and most players don't speak your language. Learn how to use the localization features of your addon hosting site and build in support from the start for contributors to translate your addon. The small additional effort can net a large increase in your addon's user community.
Use the community resources: your best resources for coding information are wowprogramming.com, wowpedia.com, lua.org and the code of existing addons and the Blizzard FrameXML. The #wowace IRC channel is a good place to ask for help from the experts.
Thank you to oscarucb for answering our questions and developing this add-on.