DataStore is the main component of a series of addons that serve as data repositories in game. Their respective purpose is to offer scanning and storing services to other addons.
The advantages of this approach are:
- data is scanned only once for all client addons (performance gain).
- data is stored only once for all client addons (memory gain).
- addon authors can spend more time coding higher level features.
- each module is an independant addon, and therefore has its own SavedVariables file, meaning that you could clean _Crafts without disturbing _Containers.
Scope : a note to contributing authors
The core of the database is based on my work in Altoholic, and is thus designed with multiple-account support in mind. If client addons want to store data from foreign accounts, the database will be ready for it. Nothing is final at this point though, feel free to contribute, as the concept can and will be perfected.
The scope of each addons is to provide common methods for client addons. For instance, DataStore_Crafts embeds LibPeriodicTable-3.1-Tradeskill allowing it to give more than just scanning & storing data. However, the goal is not to put _everything_ into these addons, they must be seen as an abstraction layer and a service provider, nothing more.
These libraries cannot and should not be embedded, as they all manage their respective SavedVariables.
Existing modules
Each module will exist as a separate addon, so that authors can package only the ones they want with their own project.
More modules will come later.
Information Pages
- Project overview : A slightly more detailed overview of the scope
- API : Samples of commonly used methods (work-in-progress)
------------------------------------------------------------------------
r20 | thaoky | 2009-12-10 17:40:56 +0000 (Thu, 10 Dec 2009) | 1 line
Changed paths:
A /tags/DataStore 3.3.001 (from /trunk:19)
Tagging as DataStore 3.3.001
------------------------------------------------------------------------
r19 | thaoky | 2009-12-09 12:21:33 +0000 (Wed, 09 Dec 2009) | 1 line
Changed paths:
M /trunk/DataStore.lua
Added an integrity check in :GetCharacters()
------------------------------------------------------------------------
r17 | thaoky | 2009-12-08 16:06:00 +0000 (Tue, 08 Dec 2009) | 2 lines
Changed paths:
M /trunk/DataStore.toc
M /trunk/Options.lua
M /trunk/Options.xml
TOC update.
Minor fix when resizing an option panel.
------------------------------------------------------------------------
r16 | thaoky | 2009-12-05 11:52:02 +0000 (Sat, 05 Dec 2009) | 1 line
Changed paths:
M /trunk/Options.lua
M /trunk/Options.xml
Fixed layout when resizing the Help panel.
------------------------------------------------------------------------
r15 | thaoky | 2009-11-30 17:11:21 +0000 (Mon, 30 Nov 2009) | 1 line
Changed paths:
M /trunk/Locals/enUS.lua
Removed unnecessary test in enUS.lua
------------------------------------------------------------------------
r14 | thaoky | 2009-11-30 11:22:06 +0000 (Mon, 30 Nov 2009) | 2 lines
Changed paths:
M /trunk/DataStore.toc
A /trunk/Locals
A /trunk/Locals/deDE.lua
A /trunk/Locals/enUS.lua
A /trunk/Locals/esES.lua
A /trunk/Locals/esMX.lua
A /trunk/Locals/frFR.lua
A /trunk/Locals/koKR.lua
A /trunk/Locals/repoenUS.lua
A /trunk/Locals/ruRU.lua
A /trunk/Locals/zhCN.lua
A /trunk/Locals/zhTW.lua
M /trunk/Options.lua
A /trunk/local.xml
Improved support for Options.
Added support for localization via CurseForge.
------------------------------------------------------------------------
r13 | thaoky | 2009-11-25 14:49:40 +0000 (Wed, 25 Nov 2009) | 1 line
Changed paths:
M /trunk/.pkgmeta
M /trunk/DataStore.lua
M /trunk/DataStore.toc
A /trunk/Options.lua
A /trunk/Options.xml
M /trunk/embeds.xml
Added support for Options via Blizzard's options panel.
------------------------------------------------------------------------
r12 | thaoky | 2009-11-15 13:58:45 +0000 (Sun, 15 Nov 2009) | 5 lines
Changed paths:
M /trunk/.pkgmeta
M /trunk/DataStore.lua
M /trunk/DataStore.toc
M /trunk/embeds.xml
Improved guild communication.
Changed internal messages to use SendMessage() instead of homebrewn methods.
Added support for "guild based" methods.
Added a few methods to support guild members.
Various bugfixes.
------------------------------------------------------------------------
r11 | thaoky | 2009-09-28 11:12:07 +0000 (Mon, 28 Sep 2009) | 2 lines
Changed paths:
M /trunk/.pkgmeta
M /trunk/DataStore.lua
M /trunk/embeds.xml
Made event handlers local.
Added guild alts tracking.
------------------------------------------------------------------------
Installation Guide
- Exit "World of Warcraft" completely
- Download the mod you want to install
- Make a folder on your desktop called "My Mods"
- Save the .zip/.rar files to this folder.
- If, when you try to download the file, it automatically "opens" it... you need to RIGHT click on the link and "save as..." or "Save Target As".
- Extract the file - commonly known as 'unzipping'
Do this ONE FILE AT A TIME!
- Windows
- Windows XP has a built in ZIP extractor. Double click on the file to open it, inside should be the file or folders needed. Copy these outside to the "My Mods" folder.
- WinRAR: Right click the file, select "Extract Here"
- WinZip: You MUST make sure the option to "Use Folder Names" is CHECKED or it will just extract the files and not make the proper folders how the Authors designed
- Mac Users
- StuffitExpander: Double click the archive to extract it to a folder in the current directory.
- Verify your WoW Installation Path
That is where you are running WoW from and THAT is where you need to install your mods.
- Move to the Addon folder
- Open your World of Warcraft folder. (default is C:\Program Files\World of Warcraft\)
- Go into the "Interface" folder.
- Go into the "AddOns" folder.
- In a new window, open the "My Mods" folder.
- The "My Mods" folder should have the "Addonname" folder in it.
- Move the "Addonname" folder into the "AddOns" folder
- Start World of Warcraft
- Make sure AddOns are installed
- Log in
- At the Character Select screen, look in lower left corner for the "addons" button.
- If button is there: make sure all the mods you installed are listed and make sure "load out of date addons" is checked.
- If the button is NOT there: means you did not install the addons properly. Look at the above screenshots. Try repeating the steps or getting someone who knows more about computers than you do to help.
Translations
When you download a mod, please be sure that the mod is compatible with your translation of wow. Some mods only work on the US versions, while some only work on some of the various European versions. These variations are called "Localizations".
TOC Numbers (Out of Date Mods)
When Blizzard patches WoW, they change the Interface number. This means that all mods will be "out of date" unless or until the author releases a new version for that interface. Some people go into the .toc files and update the numbers themselves, but this is STRONGLY advised against as it will cause problems locating possible incompatibilities addons. When you log into WoW after a patch, you DO NOT have to delete your interface directory. All you have to do is simply tell WoW to ignore the interface numbers and load all the mods anyway. All you have to do is, while at the "character select" screen, look in the lower left corner and click on the "addons" button. A window will pop up listing all your installed mods.
If you look in the upper left corner of that window there should be a box that says "Load Out of Date AddOns". You want to CHECK this box. Now simply go into WoW normally and all your mods should load. As of the 1.9 patch, you will have to do this after EVERY patch/update that Blizzard posts! If you encounter any problems with a mod after a patch, please be sure to let the author of the mod know so they can fix it.
See also: About "Out Of Date AddOns"
Mac Support
WoW addons are not platformed based. As such, they can be used on either Mac or PC. You can extract both .zip and .rar files on a Mac using StuffitExpander.
Directory Structure
World of Warcraft
|_ Interface
|_AddOns
|_*AddonName*
|_ *AddonName*.toc
|_ *AddonName*.xml
|_ *AddonName*.lua
|_ (possibly others as well)...