A Beginner’s Guide to Developing an Addon for World of Warcraft Classic
I never experienced World of Warcraft. I played other Blizzard games, both before and after its release, including the original Warcraft series and Diablo. I skipped over WoW for reasons I can’t completely recall. During the hype around “classic” I tried “retail” for a moment and abruptly stopped due to a move to a new home. I was tempted to play again after learning about “vanilla” servers but had already mentally committed myself to wait for the official servers. Classic finally launched on August 26, 2019 and I joined in as to not miss out on the twice in a lifetime experience.
Minutes passed during my group’s first play of the game and the chatter started about all the addons they just had to install. Unlike me they had played on and off for the last fifteen years, both vanilla and retail. Not having a clue, I played for a few sittings before getting the itch. What addons were out there and what they could do for me? Everyone had so much experience I thought it was only fair that I bridge the gap. I installed quite a few addons while feeling like a kid in a candy store. With all my handicaps addressed I was firmly hooked.
Then, out of nowhere, my curiosity got the best of me. How do these things work?!
This article assumes you have at least some basic knowledge in software development and are at least interested in how the World of Warcraft addon system works. I’m a software engineer by trade but I’ve never written a game addon before, so it’s not a requirement that you have either. If you’ve used or written a macro in game you’re already ahead.
Setting up the Development Environment
We’re going to need an editor to develop this addon. Older tutorials will recommend you the most basic of text editors, which will work, but we can do better than that. If you don’t already have a preference I would recommend downloading Microsoft Visual Studio Code. That should be more than enough for this journey and enable future programming endeavors. I have crossed paths with vscode plugins touting both Lua and World of Warcraft support but the editor is sufficient out of the box for what is needed here. Do explore the available extensions and make your own decision on their usefulness.