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.
Tutorial names may be prefixed by tags:
- OOD
- The tutorial is marked as being out of date.
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
- 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 concerning 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.
- 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.
General Addon tutorials
- Creating AddOn dependencies
- Adding required or optional dependencies to your addon's .toc file.
- Getting the current interface number
- For use in .toc files.
- Getting more useful errors
- Amending the error handler function to display the execution stack.
- Making an addon easy to localize
- General techniques enabling localization.
- Localizing an addon
- Easily localize an addon
- A localization code example.
- Using bindings.xml to create key bindings for your addon
- Enabling default UI bindings.
- Handling events
- Creating, and managing event handler code.
- OOD Parsing event messages
- Using the GlobalString format methods to match event texts.
- Saving variables between game sessions
- Description and examples of saving variables to disk.
- Creating defaults
- creating default values in your addon's saved variables.
- Using OnUpdate correctly
- Throttling OnUpdate code execution.
Using FrameXML
- Changing a button's action slot ID
- Creating GUI configuration options
- A custom configuration frame tutorial.
- Creating tabbed windows
- Using UIPanelTemplates to create tabs.
- Creating a slash command
- Extracting info from a slash command
- Parsing the message string passed to the slash command handler.
- 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 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.
- HOWTO: Use the ColorPickerFrame
- Invoking the default color picker.
Widgets
- HOWTO: Scroll EditBoxes to the left programatically
- Making Draggable Frames
Using the API
- Getting Player and Realm Name At Load Time
- UnitName and GetPlayerRealm are now always return correct values for the player.
- Detecting an instant cast spell
- Using the UNIT_SPELLCAST_SUCCEEDED event.
- Identifying buffs using textures
Others
- Using Earth to create a QuestLog (Part 2)
- The Earth library is part of Cosmos.
- OOD Using function hooking libraries
- Describes the benefits of using AceHooks.
Macros
- Making a macro
- An overview of the various macro slash commands.
- OOD Shrinking a macro
- Techniques that could shorten scripts in a macro.