So you want to create your first addon for WoW Classic? Great choice! Whether you’re looking to add a personal tweak to your UI, build a small quality-of-life feature, or one day release a fully-fledged addon to the community, the whole process is much simpler than it looks.
This guide is a gentle introduction to the basics — no coding experience required. By the end, you’ll understand how addons are structured, where files go, what the essential components are, and how to prepare your very first working addon.
What Exactly Is a WoW Addon?
Addons are small modules written in Lua (a lightweight scripting language) and XML. They allow you to customize WoW’s interface, automate UI behaviors (not gameplay!), display additional information, improve usability, and more.
They cannot perform rotation automation, botting, or anything that interacts with combat actions — but they can deeply enhance your interface and your overall experience.
How Addons Are Structured
Every addon is just a folder placed inside:
World of Warcraft\_classic_\Interface\AddOns\
Inside that folder, you typically have:
- A
.tocfile — your addon’s “manifest” that tells WoW what files to load. - One or more
.luafiles — your code and logic. - (Optional)
.xmlfiles — frames, UI definitions, templates. - (Optional) Assets — icons, textures, images, sounds.
A minimal addon contains only a folder + a .toc file + one Lua file.
Creating Your First Addon (Step-by-Step)
Let’s start with the simplest addon possible: something that prints a message when you log in.
1. Create the Addon Folder
Go to:
World of Warcraft\_classic_\Interface\AddOns\
Create a new folder called:
MyFirstAddon
(You can replace the name with anything — just avoid spaces.)
2. Create the TOC File
Inside the folder, create a file named:
MyFirstAddon.toc
Add this content:
## Interface: 11502
## Title: My First Addon
## Notes: A simple test addon for WoW Classic
## Author: YourName
## Version: 1.0
main.lua
Important: Update the Interface number for your version of WoW Classic (it changes every major patch). You can check it by looking at any other addon’s .toc file.
3. Create Your First Lua File
Now create the file referenced in the toc:
main.lua
Put this inside:
local frame = CreateFrame("FRAME")
frame:RegisterEvent("PLAYER_LOGIN")
frame:SetScript("OnEvent", function()
print("|cfff4b034MyFirstAddon loaded successfully!|r")
end)
Congratulations — you’ve just created an addon that loads and displays a message when the player logs in.
Where to See (and Enable) Your Addon
Start WoW Classic and go to the Character Select screen, then click AddOns in the lower-left corner.
You should see My First Addon in the list. Make sure it’s enabled, then enter the game. After login, you should see your custom message in the chat frame.
What You Just Accomplished
You now understand:
- Where addons are stored
- How the
.tocfile works - How Lua code is loaded
- How to respond to events (like
PLAYER_LOGIN) - How to print and test basic behavior
This is the foundation for everything else — frames, slash commands, data storage, UI widgets, and more.
What’s Next?
This introduction is the first part of a series. In the next guides, we’ll cover:
- Adding slash commands (like
/hello) - Creating your first frame with XML or Lua
- Saving data between sessions (SavedVariables)
- Debugging and structuring your addon project
- Packaging your addon for CurseForge or Wago
Stay tuned — your first tiny addon is just the beginning of what you can build for your own WoW Classic UI!

















Leave a Reply
You must be logged in to post a comment.