About the Book

World of Warcraft Programming is an all-in-one guide to writing addons for World of Warcraft, leading the reader through a tutorial on Lua programming, guiding them through 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 Warcraft, 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 Warcraft, 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; even 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 highlights 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 concepts 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 book 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 reference 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, including LightHeaded, TomTom, Clique, PerfectRaid and many other small but useful addons. He has been an active member of both the WoW UI and Lua communities since the World of Warcraft Beta began and has been writing addons ever since. When he actually has time to play the game, you can find him playing one of his many characters on the Emerald Dream (EU) server.

Jim currently resides in Oxford, England where he is pursuing his DPhil (PhD) in Computer Science at the Computing Laboratory. In his spare time he enjoys all things rowing, hacking on his Android phone, knitting, crocheting, and spending time with his friends.

Rick Roe -- known in the WoW UI community as the zany goblin tinker Gazmik Fizzwidget -- is the author of several popular addons including Feed-O-Matic and FactionFriend, as well as TrackMenu and a couple of others so useful that Blizzard made them obsolete by rolling their functionality into the default UI. When not slaving away for their goblin master, Rick's alter egos can often be found adventuring on Cenarius US.

Rick currently resides in Vancouver, Washington, with his wife and cats. His time outside of Azeroth is split between working to finish a computer science degree at Washington State University and building Mac and iPhone applications as an independent software developer.

About the Technical Editors

Esteban Santana Santana is known online as MentalPower where acts as both Lead Developer for the Auctioneer AddOns Package and one of the Administrators of Norganna's AddOns. He's been part of the WoW UI community since mid-2005 and has helped many a person via the IRC channels and the various game and UI-related forums. When he logs into World of Warcraft, you can find him on the US-Alleria realm trying to level his various characters on the Emerald Dream guild.

Esteban currently resides in Carolina, Puerto Rico and works for Liberty Cablevision as one of their jack of all trades IT people. On his spare time, he enjoys thrashing his buddies in a good game of Rock Band on the XBox 360.

Daniel Stephens -- more widely known in the WoW addon community as Iriel -- has been helping others develop addons (developing a few of his own along the way) for several years, and was the Blizzard WoW UI Forum's first MVP. His addon contributions include DevTools (recently rolled into the base WoW UI) and significant contributions to secure handlers and a number of other utilities. As somewhat of an altaholic he has characters spread all over the realms, but considers Silver Hand (US) his original WoW home.

Daniel is located in the San Francisco bay area with his wife, cats, and camera. He spends his "not free" time doing systems design, architecture, and occasionally development work.

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.

First edition

In January 2010, this second edition of World of Warcraft Programming was released worldwide, containing updated chapters working through all-new addons and an updated API Reference. Although the majority of the reference material in the first edition of the book remains relevant, the second edition contains updated content and reference materials that are more relevant to the current version of World of Warcraft.