This wiki contains inaccurate and out-of-date information. Please head over to for more accurate and up-to-date game information.



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.

General Lua tutorials

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.


HOWTO: Scroll EditBoxes to the left programatically
Making Draggable Frames 
Describes several methods to allow the user to move a frame.


Detecting an instant cast spell 
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.

See also