AddOn loading process This document describes the WoW UI Customization aspect of load order for loading AddOn s . It covers when the WoW client first starts up , when AddOns load for the first time , and when user or WoW reloads the UI . The availability of the Lua environment at various points in the process is also detailed . The term ' WoW Client ' means : the WoW game program that ' s launched to play WoW . General steps . Initial Scan . First , the WoW client scans through all of the folders in the Interface \ AddOns directory , looking for sub - folders containing a valid TOC file with a ' . toc ' extension , and in turn then loads each AddOn ' s TOC file into memory . TOC files that were not found during this step cannot be loaded by the game later and only happens on client start - up . This makes it impossible to install additional AddOns , or load updated TOC files , without restarting the client . For a AddOn to be considered valid , it must have a single word folder directly in the Interface \ AddOns folder , and must have a matching named ' . toc ' file , such as a ' MyAddon ' folder with a ' MyAddOn . toc ' underneath it . That is all that is required . AddOn Load . AddOn loading occurs when the player logs in . The dependency information in the . toc files is used , in part , to compute the order in which the AddOns files will be loaded , as well as the natural order in which the AddOns were discovered during the scan process . For AddOns with dependencies , an individual AddOn may not assume that all of the other AddOns that it depends on will be loaded first , without taking specific steps to ensure its dependencies are already loaded and available . When WoW loads a particular AddOn it uses the information in its TOC file discovered during initial scan and loads each file in order that it is found inside the TOC . Inside the TOC file . Files within an AddOn are loaded in the order they ' re listed in the AddOn ' s TOC file , named [ addonname ] . toc . Files included through XML < Include file = " src . xml " / > or < Script file = " src . lua " / > are loaded at the time the tag is encountered while parsing . XML OnLoad script handlers execute when all of a widget ' s children have been created . When the addon code is first loaded during this step , only basic information about the player - - name , class , race and realm - - is available . To illustrate the loading order , consider the following addon code example : LoadingOrder . toc file1 . lua file2 . xml file2 . 5 . lua file3 . lua Saved variables loading . After the addon code has been loaded , the loading process can be followed by registering for various events , listed here in order of firing . Until 3 . 0 , VARIABLES _ LOADED used to fire upon completion of the addon loading process ; since 3 . 0 , it is fired in response to CVars , Keybindings and other associated " Blizzard " variables being loaded , and may therefore be delayed until after PLAYER _ ENTERING _ WORLD . The event may still be useful to override positioning data stored in layout - cache . txt Load On Demand behavior . Load on Demand addons cannot rely on most of the event sequence being fired for them ; only ADDON _ LOADED is a reliable indication that the saved variables for your LoD addon have been loaded .