HOWTOs

HOWTOs are detailed documents describing "how to" accomplish something specific. Most of them will assume a basic understanding of the WoW scripting language and framework. For more information on the framework please refer to Portal:Interface customization, AddOns, and World of Warcraft API.

This list may be incomplete; all HOWTOs are listed on Category:HOWTOs.

Getting Started

 * Getting started with writing addons : An overview of the tools, code and file types involved in creating addons.
 * AddOn programming tutorial/Introduction (Overview Page) : Creating a Hello World! AddOn.
 * Setting up Visual Studio for WoW XML : On a Windows platform, you can use Visual Studio to create XML descriptions of interfaces.
 * Viewing Blizzard's interface code : The default UI is shipped as if it were a collection of dozens of addons, and this is how you see the source.

General Lua tutorials

 * Common Lua shortcuts : Commonly occurring uses of Lua logic evaluation short-cuts, method syntax and the global environment.
 * Function arguments : Declaring and passing arguments to functions.
 * Using the argument '...' efficiently : Tips involving the vararg operator.
 * Hooking functions : Functions are first-class values in Lua, which allows you to override or extend the behavior of already declared functions.
 * Pattern matching : An overview of the regular expression features of Lua.

General Addon tutorials

 * Getting the current interface number : For use in .toc files.
 * Handling events : Creating, and managing event handler code.
 * Saving variables between game sessions : Description and examples of saving variables to disk.
 * Creating defaults : creating default values in your addon's saved variables.
 * Localizing an addon : General techniques enabling localization.
 * Using OnUpdate correctly : Throttling OnUpdate code execution.

Using FrameXML

 * Creating GUI configuration options : A custom configuration frame tutorial.
 * Creating tabbed windows : Using UIPanelTemplates to create tabs.
 * Creating a slash command : Creating and using slash command handlers.
 * Creating your own chat types : Adding new chat types allows users to redirect your addon's chat output to one or more desired chat frames.
 * Making a scrollable list using FauxScrollFrameTemplate : FauxScrollFrameTemplate tutorial.
 * Creating standard left-sliding frames : using the UIPanelLayout attributes to manage your frame's position.
 * Make Frames Closable With the "Esc" Key : using UISpecialFrames to enable this behavior.
 * Removing Blizzard default frames : Maps default UI elements to frame names and suggests use of the :Hide widget function.
 * Hooking outgoing chat messages : Describes a mechanism to alter outgoing chat messages.
 * Creating simple pop-up dialog boxes: Using StaticPopup to display simple prompts.
 * Using the ColorPickerFrame : Invoking the default color picker.
 * Using UIDropDownMenu : Drop down boxes and menus using the FrameXML API.
 * Using the Interface Options Addons panel : Describes how to create an option panel that works with the default UI's Interface Options frame.
 * Using bindings.xml to create key bindings for your addon : Enabling default UI bindings.

Widgets

 * HOWTO: Scroll EditBoxes to the left programatically
 * Making draggable frames : Describes several methods to allow the user to move a frame.

Miscellaneous

 * Detecting an instant cast spell : Using the UNIT_SPELLCAST_SUCCEEDED event.
 * Identifying buffs using textures
 * HOWTO: Speed up string match lookups : Describes how to potentially speed up multiple similar pattern string matching.
 * HOWTO: Use Tables Without Generating Extra Garbage : An overview of techniques enabling table reuse and avoiding excessive garbage generation.