About the Book

Programming World of Warcraft Addons is an all-in-one guide to writing addons for World of Warcraft, leading the reader through a tutorial on Lua programming, guiding them th rough several example addons, and providing them with a comprehensive reference for the World of Warcraft API. Readers should be familiar with the user interface of World of War craft, and may have some experience downloading and installing addons.

Some familiarity with programming is ideal, but the reader doesn't need actual programming experience. The book teaches programming in Lua and XML, the programming languages used to write addons, by introducing concepts that build on prior knowledge to craft more complex programs. This tutorial is geared specifically towards using Lua in World of Wa rcraft, so the book covers only the most relevant material, and covers a number of pitfalls and common mistakes that the reader may experience through the course of the book; ev en experienced users will find this useful.

Once the reader is comfortable using Lua, they are introduced to the specific nuances of the World of Warcraft API through a series of guided examples. Each example highlight s a specific aspect of writing addons for World of Warcraft and builds on the skills the reader has already acquired. Readers will learn how to respond to events, create frames, and use the World of Warcraft API to interact with the game. Programming World of Warcraft Addons continues by teaching the reader how to implement a number of specific addon c oncepts such as saved variables, slash commands, secure templates, dynamic frames, parsing tooltips, creating dropdown menus and more. Once you've created your own addons, the b ook then discusses ways to distribute and host your addons so others can download and use them.

The final section of Programming World of Warcraft Addons is a printed comprehensive reference guide to the World of Warcraft API. Having a fully indexed, consistent set of r eference documentation can make finding the specific function you need that much easier.

About the Authors

James Whitehead II is the author of a number of popular addons for World of Warcraft such as PerfectRaid, Clique, LightHeaded, TomTom, and many other small a ddons available at He has been an active member of both the WoW UI and the Lua communities s ince the World of Warcraft Beta began and has been writing addons since. When he actually has time to play the game, you can find him playing one of his many characters on the S tormrage (US) server, or feverishly leveling his characters on Ravencrest (EU).

Jim is a graduate of Syracuse University where he completed both his BSc and MSc in computer science. He is currently pursuing his DPhil in computer science at the University of Oxford, where he is also the teaching assistant for the Computing Laboratory. In his spare time, he enjoys rowing competitively for Worcester College and stabbing his friend s in the back playing Munchkin.

Bryan McLemore has been a member of the UI community since early 2005. After creating KC_AutoRepair, he went on to co-found the Ace Project and as Kaelten alongside Brent Miller (Turan in the UI community). Following Brent's official departure from WoW, Bryan found himself having to devote more and more time to WowAce and less to his addons; however, he refuses to give up on OneBag and KC_Items. When he actually manages to spend time playing World of Warcraft, he plays one of his many alts on th e US server Whisperwind.

In the remainder of his free time, he is leading the development of Ace3 and working on plans for his addons, along with a few websites he would like to see developed. Bryan recently started a full-time career in web development and system administration when he moved to California with his wife and daughter. They currently live in San Francisco.

Matthew Orlando is the author of numerous addons for World of Warcraft, including BuyEmAll, CogsBar, and MacroTalk. He has been programming for 13 years and has been active in the addon community since early 2006. In addition to his extensive experience with Lua and the World of Warcraft API, he maintains "Cogwheel's Complete Macro Guide", the definitive source for information on writing macros for WoW.

Matthew currently resides in Sebastopol, California, with his wife, Juliella; their dog, Ari; and two cats, Ryo-ohki and Zoe. He works for Kistler Vineyards where his duties range from customer service and data entry to database programming and website development, and he plans to begin law school in mid-2008.

About the Website

This website is powered entirely by Lua, using Sputnik, an extensible wiki package. When the authors and contributers were compiling the electronic API reference, Lua tables were chosen as the data file format, due to it's extreme flexibility and readability. When the time came to produce the online version of the reference, a Lua-based solution was obviously attractive.

Second edition

In January 2010, the second edition of World of Warcraft Programming was released worldwide, containing updated chapters working through all-new addons and an updated API Reference.