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