View RSS Feed


Addon Management with Addon Control Panel and Isboxer; Or How I Cut My Load Times In Half

Rating: 2 votes, 5.00 average.
I have been playing World of Warcraft for more than five years and I've been using addons since the second day of that. It seems that I am constantly in the flux of adding new addons and updating old addons and tweaking the settings of old addons. I'm afraid my historical method of managing which addons were enabled was a very haphazard "enable anything that doesn't throw a lua error or otherwise annoy me on this toon" and I thought this method was working well enough until I finally got an SSD for my wow installation and I was still getting the same kinds of slow load times that I'd always gotten rather than the lightning that I was promised by all of the braggers on these forums! So yesterday I sat down to come up with a strategy for managing my addons across accounts and cut down on my load times wherever possible.

Now I get the zippy load times I wanted while keeping all the addons that I really need. And using keybinds to switch between sets costs me no more time than it takes to glance at my reference sheet and hold down 4 keys!

First I needed to make a list of what addons I actually have in my addon folder. I started to do this by hand but then I had a better idea. I ran the following simple perl script to create a file that is a list of all of my addons and then pasted that into excel. I use strawberry perl, but this probably works with any installation:

use warnings;
use strict;
use File::Slurp qw(read_dir);

open(MYOUTFILE, ">AddonList.txt");
my $root = 'F:\World of Warcraft\Interface\AddOns';
for my $dir (grep { -d "$root/$_" } read_dir($root)) {
    print MYOUTFILE "$dir\n";
2) I sorted the addons alphabetically in excel and added a column I called "Who uses this?". I deleted all the rows for the Blizzard addon folders. I was left with 145 addon folders (many addons have more than one folder of course so I didn't really have 145 total addons, but it was still quite a few). On my first pass through I was pretty specific in my "who uses" column, for example the addon Archy was "archeologist" and Enchantrix was "Enchanters". Some addons were clearly necessary for everyone (shadowed unit frames, bartender 4) and some were helpful for multiple groups (Skada is important for both solo raiders and multibox leaders). For those I wanted to delete I simply marked them as "remove" and deleted them from the addon folder when I was done. I'm now down to a slim and trim 118 addon folders! I also had quite a number of addons that I only want to be available to toons that specifically ask for them, and called those "Load on Demand". They don't have groups but I don't want to delete them yet.

3) Groups. I decided that the needs of a solo quester, an archaeologist, and a gatherer were all pretty similar, so I grouped those addons, likewise most of my crafters are also AH toons so it made sense to group them together. I eventually culled the addons all down to fitting into either an "everyone" group or one or more of the following five groups: AH/Crafting, Solo Quest/Gather, Multibox Leader, Multibox Slave, or Instance. If you are curious I will append my addon lists with categories to this entry so you can see what I'm using.

4) Addon Control Panel is the addon that I use to handle my other addons. It allows you to manage which addons you have turned on or off while in game (followed by a reload) so that you do not have to log out and in constantly. I think everyone in the world should be running ACP! Even people not playing Wow. It's that awesome. Setting up my groups in acp was quite simple, I typed /acp and a menu will pop up. I then chose to disable all addons, to start from scratch. For this project make sure that "Title" is selected in the dropdown bar rather than "Sort by group". For some reason you can't protect certain addons when you sort by group. Then follow your addon alphabetic list and click the lock icon to protect the addons that you labelled as "everyone". I did this and then saved the set as set 1, and renamed it to "Basic". For the remainder of your groups you simply check off the addons you want to be in that group, and then select the set and choose "save" and then rename. It is important that you understand that you are using the check boxes in this step and not the locks/stars.

5) test your sets by selecting them and clicking the reloadui button. If the correct addons show up for each set you are ready to move on!

6) duplicate your wtf/account/savedvariables/acp.ahk from the account you built your lists on to all the other accounts. If you don't mind installing AutoHotKey, you can do this automatically using the script from my other post.

7) you could stop here, but I've discovered that I really need to make things very easy for myself or they won't become part of my system so I added a keymap to my IsBoxer profile and called it "Addons". You could also do this using the Jamba Macro module. I added five keys to this keymap, four of them were macros set up like this:

ACP AH/Craft
Step 1:
Popup Text > Self "Enabling AH Addons!"
Right Control + Right Shift +Home > Current

/acp disableall
/acp addset set 2
The correct number for the set in the macro can be counted from the top of the list on your ACP sets list, starting with 0. (For me 0 was the "basic" set which I want separate but don't actually want an isboxer key for).

The fifth key was a meta key that called the ACP Master key on the current toon and the ACP slave key on all other toons.

I've found that now that I took the time to set up these groups I'm not only experiencing much faster load times, but I'm completely comfortable running with a reduced complement of addons knowing that the functionality I need is just a keybind away and I won't have to hunt through the menu to turn things back on or off.

Updated 01-24-2013 at 03:10 AM by luxlunae

Tags: None Add / Edit Tags


  1. luxlunae's Avatar
    Auc-Advanced : AH/Crafting Toons
    Auc-Filter-Basic : AH/Crafting Toons
    Auc-ScanData : AH/Crafting Toons
    Auc-Stat-iLevel : AH/Crafting Toons
    Auc-Stat-Purchased : AH/Crafting Toons
    Auc-Stat-Simple : AH/Crafting Toons
    Auc-Stat-StdDev : AH/Crafting Toons
    Auc-Util-FixAH : AH/Crafting Toons
    BeanCounter : AH/Crafting Toons
    DataStore : AH/Crafting Toons
    DataStore_Auctions : AH/Crafting Toons
    DataStore_Characters : AH/Crafting Toons
    DataStore_Containers : AH/Crafting Toons
    DataStore_Crafts : AH/Crafting Toons
    DataStore_Currencies : AH/Crafting Toons
    DataStore_Inventory : AH/Crafting Toons
    DataStore_Mails : AH/Crafting Toons
    TradeSkillMaster_Accounting : AH/Crafting Toons
    TradeSkillMaster_AuctionDB : AH/Crafting Toons
    TradeSkillMaster_Auctioning : AH/Crafting Toons
    TradeSkillMaster_Crafting : AH/Crafting Toons
    TradeSkillMaster_Destroying : AH/Crafting Toons
    Enchantrix : AH/Crafting Toons
    !Swatter : everyone
    ACP : everyone
    ArkInventory : everyone
    ArkInventoryRules : everyone
    Bartender4 : everyone
    Clique : everyone
    FriendsNoMore : everyone
    Grid : everyone
    GridCustomLayouts : everyone
    ISBoxer : everyone
    Mappy : Everyone
    Mapster : Everyone
    MinimapButtonFrame : everyone
    MoveAnything : everyone
    MySales : everyone
    OmniCC : everyone
    OmniCC_Config : everyone
    OmniCC_Options : everyone
    Prat-3.0 : everyone
    Prat-3.0_Libraries : everyone
    Quartz : everyone
    ShadowedUF_Options : everyone
    ShadowedUnitFrames : everyone
    Stubby : everyone
    SunnArt : everyone
    TradeSkillMaster : everyone
    TradeSkillMaster_Mailing : everyone
    AckisRecipeList : Load on Demand
    Align : Load on Demand
    glyphIndustry : Load on Demand
    GridStatusHots : Load on Demand
    GridStatusRaidDebuff : Load on Demand
    HideRaidFrame : Load on Demand
    MogIt : Load on Demand
    MogIt_Accessories : Load on Demand
    MogIt_Cloth : Load on Demand
    MogIt_Leather : Load on Demand
    MogIt_Mail : Load on Demand
    MogIt_OneHanded : Load on Demand
    MogIt_Other : Load on Demand
    MogIt_Plate : Load on Demand
    MogIt_Ranged : Load on Demand
    MogIt_TwoHanded : Load on Demand
    SlideBar : Load on Demand
    TradeSkillMaster_Shopping : Load on Demand
    WeakAuras : Load on Demand
    WeakAurasModelPaths : Load on Demand
    WeakAurasOptions : Load on Demand
    WeakAurasTutorials : Load on Demand
    MikScrollingBattleText : multibox leader, instancers
    MSBTOptions : multibox leader, instancers
    SimpleILevel : multibox leader, instancers
    SimpleILevel_Group : multibox leader, instancers
    SimpleILevel_Social : multibox leader, instancers
    Skada : multibox leader, instancers
    SkadaCC : multibox leader, instancers
    SkadaDamage : multibox leader, instancers
    SkadaDamageTaken : multibox leader, instancers
    SkadaDeaths : multibox leader, instancers
    SkadaDebuffs : multibox leader, instancers
    SkadaDispels : multibox leader, instancers
    SkadaEnemies : multibox leader, instancers
    SkadaHealing : multibox leader, instancers
    SkadaPower : multibox leader, instancers
    SkadaThreat : multibox leader, instancers
    TidyPlates : multibox leader, instancers
    TidyPlatesHub : multibox leader, instancers
    TidyPlatesWidgets : multibox leader, instancers
    TidyPlates_Neon : multibox leader, instancers
    Jamba : Multiboxers
    Jamba-AdvancedLoot : Multiboxers
    Jamba-DisplayTeam : Multiboxers
    Jamba-Follow : Multiboxers
    Jamba-FTL : Multiboxers
    Jamba-Purchase : Multiboxers
    Jamba-Quest : Multiboxers
    Jamba-QuestWatcher : Multiboxers
    Jamba-Sell : Multiboxers
    Jamba-Talk : Multiboxers
    Jamba-Target : Multiboxers
    Jamba-Taxi : Multiboxers
    Jamba-Toon : Multiboxers
    Jamba-Trade : Multiboxers
    AutoEquipQuestItem : multiboxers, solo questers
    OneChoice : multiboxers, solo questers
    TomTom : multiboxers, solo questers
    GatherMate2 : Solo Questers
    GatherMate2_Data : Solo Questers
    Archy : Solo Questers
    BattlePetCount : Solo Questers
    Loremaster : Solo Questers
    Loremaster_Data : Solo Questers
    Who Framed Watcher Wabbit : Solo Questers
    _NPCScan : Solo Questers
  2. HPAVC's Avatar
    I do something similar, I have a script that copies my master account's ACP.lua to my slaves. Then I load those based on macros in isboxer.

    This way I can just manage the addons on the master account and push them out to the slaves. Slaves have to be logged out or at the login screen. I run this script when I start the game or when I update addons.

    use warnings;
    use strict;
    use File::Copy;
    my $now = time();
    my $wtfacct = 'D:\WoW\WTF\Account'; #change me to root of accounts
    my $master  = "notprepared"; # change me to master account name
    my $masteracplua = sprintf('%s\%s\SavedVariables\ACP.lua', $wtfacct, $master);
    die("cannot location master acp.lua file ($masteracplua)") unless(-f $masteracplua);
    opendir(my $DH, $wtfacct) || die($!);
    for my $dir (sort(grep { !/^\./ && -d "$wtfacct/$_" } readdir($DH))) {
        next if(lc($dir) eq lc($master));
        my $acplua = "$wtfacct/$dir/SavedVariables/ACP.lua";
        if( -f $acplua ) {
            copy($acplua, "${acplua}.bak.${now}") || die($!);
            copy($masteracplua, $acplua) || die($!);
    If your ACP addon sets are 1 "master" and 2 "slave", this type of macro in isboxer might be useful.

    /acp disableall
    !if (character is "slot 1") /acp addset 1
    !else /acp addset 2
    /console reloadui
    If you want to do the class specific addons and what not ,easily done as well with action groups and such, as /acp addset compounds addons. in this example the slave set is loaded as well as the huntard goodies.

    /acp disableall
    !if (character is "slot 1") /acp addset 1
    !else /acp addset 2
    !if (character is in "huntard") /acp addset 3
    /console reloadui