WoW:AddOn: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
m (Bear moved page WoW AddOn to AddOn)
No edit summary
Tag: Manual revert
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{uiaddon}}
{{dev/uiaddon}}
This is the WoW [[AddOn]] main technical reference. WoW AddOns allow for altering and customizing the game, specifically through the [[user interface]].
This is the WoW [[AddOn]] main technical reference. WoW AddOns allow for altering and customizing the game, specifically through the [[user interface]].


Use the '''Reference''' section for detailed information, '''Guides''' for getting started and further understanding, and '''Summary''' for overall concepts details. See [[AddOns]] for information on the general ''AddOn'' term used in WoW.
Use the '''Reference''' section for detailed information, '''Guides''' for getting started and further understanding, and '''Summary''' for overall concepts details. See [[AddOn]]s for information on the general ''AddOn'' term used in WoW.


== Reference ==
== Reference ==

Latest revision as of 18:07, 3 December 2023

This is the WoW AddOn main technical reference. WoW AddOns allow for altering and customizing the game, specifically through the user interface.

Use the Reference section for detailed information, Guides for getting started and further understanding, and Summary for overall concepts details. See AddOns for information on the general AddOn term used in WoW.

Reference[edit]

WoW AddOn files and related files and concepts

Code Files[edit]

Details[edit]

Content Files[edit]

  • BLP file · - Main WoW art and texture format.
  • TGA file · - Alternative WoW art and texture format.
  • Edge file · - Texture file with special layout for use as a border.

WoW Files[edit]

Help[edit]

Guides[edit]

FAQs[edit]

Other[edit]

Summary[edit]

WoW uses AddOns in-part to create functionality for its own user interface. WOW users are allowed load their own addons.

These user created addons allow for custom UI functionality in the game. Before getting started, every developer should read familiarize themselves with the Blizzard AddOn Policy.

Layout[edit]

Example anatomy, or file layout, of a basic WoW AddOn:

  • {WoW Install} (folder) - your WoW installation folder
    • Interface (folder)
      • AddOns (folder)
        • MyAddOn (folder) - your addon's own folder, must match the .toc name
          • MyAddOn.toc (TOC file) - WoW AddOn "manifest" file
          • MyAddOn.xml (FrameXML) - XML file with visible element definitions
          • MyAddOn.lua (Lua) - Code file, with instructions for AddOn behavior


This example establishes a WoW AddOn named 'MyAddOn' with one xml frame file and one lua code file.

Classic and Retail[edit]

With the addition of WoW Classic, around August 2019, the '_classic_' or '_retail_' folders are now the main WoW folders, which are inside the WoW install folder. Each of these folders are a nearly self-contained and distinct version of WoW themselves.

  • {WoW Install} (folder) - your WoW installation folder
    • _classic_ or _retail_ (folder)
      • Interface (folder)
        • AddOns (folder)
          • MyAddOn (folder) - your addons own folder, must match the .toc name
            • ... addon files

From looking at this, you can see that the actual folder layout is almost exactly the same as before. The exception is that there is now an extra child folder under the WoW install folder, that then contains the specific game variant. Inside that game variant are the same folders that were under WoW the install folder before.

Variants[edit]

With the addition of these new WoW game variants, like '__retail__' and '__classic__', each variant additionally has its own separate set of installed addons.

An addon needs to follow the rules for the variant it's placed under. This includes using the correct interface version numbers for the variant it is installed under, which is set in the addon TOC file.

Classic currently has a different interface version from the Retail interface version number, just as any '_ptr_' variant may have a different interface version number. For example, any addon in classic will need a matching version number to the current classic interface version number in order to get loaded automatically.

Because of these reasons, each variant may require a alternate version of the *same addon*, for the addon to have complete functionality for that variant. This may include only a different interface version number, or significant differences in files and code for the same addon.