One of the amazing things about World of Warcraft is that Blizzard allows anybody with the know-how to modify/improve the user interface.
There are various websites that distribute these player-made addons, the most well known in my opinion being Curse.com
Admittedly, at this point I don’t have the know-how so everything in this post will be pretty basic and aimed at helping those new to interface modifying.
Anyway, lets get cracking. One of the most simple of enhancements yet arguably the facility most lacking in the “out-of-the-box” interface with WoW, is a map coordinate system. This is something that has been done many times in different ways and these coordinates are referred to by players who wish to communicate near-exact locations to each other in-game and on information websites such as Thottbot
We will create an addon that simply displays the coordinates of the player at the bottom of the minimap, later on we may enhance things a little, who knows!
Files that make up a World of Warcraft Addon
There are 3 main filetypes that are required for a WoW addon:
- .toc - This file defines specific information about the file including things like the author name, the patch version of WoW that the addon is intended for and references to other files that are required by the addon
- .xml - This contains the design elements of the addon, the parts that you actually see on screen, and can also contain some scripting.
- .lua - The main program file containing all the functions required for your addon. The language used is a slightly modified version of Lua (a fast, lightweight embeddable scripting language), something that I have not come accross up until now but appears to be easy enough to learn.
Where do these files live?
All World of Warcraft Addons are placed in a subfolder of your main World of Warcraft folder, usually found in “C:\Program Files”.
The full path is “C:\Program Files\World of Warcraft\Interface\AddOns\MyAddOn”
Creating our addon, which we shall name “BasicCoords”
First create a folder in the location as shown above:
“C:\Program files\World of Warcraft\Interface\AddOns\BasicCoords\”
Defining information in Basic_Coords.toc
## Interface: 20300 ## Title: Techjournal.co.uk BasicCoords ## Version: 1.0 ## Author: ThaGeek ## Notes: Display Player Coordinates on Minimap ## Dependencies: ## OptionalDeps: ## DefaultState: enabled Basic_Coords.lua Basic_Coords.xml
Breaking it down
## Interface: 20300
The interface line tells WoW’s addon manager what version of the WoW UI the addon is intended for. If the version specified here is older than the current version, the addon will be tagged as “Out of Date” in the Addon manager available at the character selction screen when logging in. Out of Date addons can still be loaded if the checkbox in the addon manager is checked (Enable Out of Date Addons).
## Title: Techjournal.co.uk BasicCoords
This defines the text which will be shown in the addons list.
## Version: 1.0 ## Author: ThaGeek
These two lines are “non standard tags” and are not interpreted in any way, they are purely for commentary info
## Notes: Display Player Coordinates on Minimap ## Dependencies: ## OptionalDeps: ## DefaultState: enabled
The “Notes:” tag contains the text that will be displayed to the user when they mouseover the Addon in the Addon list
“Dependencies:” and “OptionalDep:” define which other addons that this addon is dependant on, they are not used in our basic example.
“DefaultState:” tells WoW wether or not to enable the addon by default. If it is set to disabled, the user must explicitly turn it on in the addons list.
And finally we name the required .lua and .xml files, pretty easy?
Laying out our visual elements in Basic_Coords.xml
<ui xmlns="<a href="http://www.blizzard.com/wow/ui/" mce_href="http://www.blizzard.com/wow/ui/">http://www.blizzard.com/wow/ui/</a>" xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" mce_href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" xsi:SchemaLocation="<a href="http://www.blizzard.com/wow/ui/" mce_href="http://www.blizzard.com/wow/ui/">http://www.blizzard.com/wow/ui/</a> ..\..\FrameXML\UI.xsd"> <Frame name="BasicCoords" parent="Minimap" enablemouse="true" frameStrata="LOW" movable="true"> <Size> <AbsDimension x="40" y="10"/> </Size> <Anchors> <Anchor point="BOTTOM" relativeTo="Minimap" relativePoint="BOTTOM"> <Offset> <AbsDimenstion x="-3" y="0"/> </Offset> </Anchor> </Anchors> <Layers> <Layer level="ARTWORK"> <FontString name="BasicCoordsText" toplevel="true" inherits="GameFontGreen" text=""> <Anchors> <Anchor point="CENTER"> <Offset> <AbsDimension x="0" y="0"/> </Offset> </Anchor> </Anchors> </FontString> </Layer> </Layers> <Scripts> <OnLoad> BasicCoords_OnLoad(); </OnLoad> <OnEvent> BasicCoords_OnEvent(); </OnEvent> <OnUpdate> BasicCoords_OnUpdate(); </OnUpdate> </Scripts> </Frame> </Ui>
To be continued shortly…… Please check back on this post

February 27th, 2008 at 12:32 am
You make my day!
March 19th, 2008 at 8:58 am
Hello!
I think this try.