Get an Epic Experience with Premium


Bags & Inventory Login to Add Favorites
  • World of Warcraft
  • 55 Monthly Downloads
  • Supports: 5.0.5
  • 8,675 Total Downloads
  • Updated 09/22/2012
  • Created 06/18/2009
  • 97 Favorites
  • Project Site
  • Comments
  • Release Type: Inactive
  • License: GNU General Public License version 3 (GPLv3)
  • Newest File: v0.6-release-MoPupdate

About SetTheory

What does SetTheory do?

If you switch between different specs or play-styles and use a couple or more addons to support them then this addon will save you time and make those occasions where you enter an arena or boss fight with the wrong gear/spec/UI a thing of the past.

It allows you to define different 'sets' of setups for a number of addons and to switch between them at the click of a button. For example, as a paladin, I play a variety of roles and each one has differences in the buffs I want to cast, gear I want to wear, spec I need and information I want to show in combat. Without SetTheory switching between different play-styles is time consuming; Switching spec or respecing at the trainer, opening and setting each option in each addon's unique UI, double checking I've set everything right, etc. With SetTheory however you can define a 'Healing' set which, for example, is linked to your primary talent set, an Outfitter outfit called 'Normal', a ZOMGBuffs_SelfBuffs template called 'PvE', a TrinketMenu queue called 'PvE' and enables my 'Judgements of the Pure' Power Aura. Selecting your 'Healing' set would automatically activate your primary talents, set the right Outfit, buff assignments, trinket queues and aura display.

You can have as many sets as you like, linked with as many addons as there are modules for (see below). Configuring and selecting your sets is a quick and easy task. When you respec you can be prompted to select a set for your new spec, for example, because I use the Talented I only have to press two buttons to respec at the trainer and my whole UI is setup for my new role. With the right configuration it's possible to near-instantly adapt your UI to a whole different play-style.

You can find a video demonstrating the addon here:


The current version works with Cataclysm with two ommissions; I've disabled glyphs and cancelling buffs for betarians. I won't be updating these actions or other modules that integrate with other addons until they're more developed and no longer such a moving target.

What modules are available?



Please let me know of any module requests.

Ok I've installed this AddOn, what now?

The options are available via:

  • Typing "/settheory"
  • Minimap Icon or FuBar icon (with Broker2Fubar AddOn).
  • Any DataBroker enabled display.

The AddOn is organised such that you create a set for each of your play-styles. Then, for each AddOn or UI feature you wish to change based on your play-style you create an action in that set. These actions are then processed in order when switching between sets. Actions perform the actual changes to your UI, for example, you can add an action to your set which switches between your dual-specs and another one that selects your gear from the Equipment Manager and so on for all the actions you wish to create. If you don't see an action relevant to your interests remember to check the 'Ace Profile' action - this covers all AddOns created using the Ace framework (a LOT of them).

Watch the video for a demonstration of creating a set and its actions.

How easy is it to change my sets?

Once defined you can select your current set in a number of ways:

  • Addon Options GUI
  • Command line (i.e. for macros)
  • Keybinds
  • LibDataBroker (minimap icon, FuBar with Broker2Fubar addon, TitanPanel, any other bar mod supporting LDB, etc)
  • Talent swaps and respecs (when you respec you can be prompted to apply a set for your newly empty spec).
  • Triggers automatically switch sets based on your location, group-status (party, raid, etc), PvP-status, etc (NYI)

Is there anything else I should know?

  • This mod is a work in progress, if a version you've downloaded is crawling with bugs I apologise. Please submit tickets and feedback.
  • If you'd like to see a specific module here please add a comment or send me a message explaining what you'd like it to do.

r155 | fakeh | 2012-09-22 08:32:15 +0000 (Sat, 22 Sep 2012) | 1 line
Changed paths:
   A /tags/v0.6-release-MoPupdate (from /trunk:154)

Tagging as v0.6-release-MoPupdate
r154 | fakeh | 2012-09-22 08:29:29 +0000 (Sat, 22 Sep 2012) | 1 line
Changed paths:
   M /trunk/SetTheory.toc
   M /trunk/actions/CharacterStats.lua
   M /trunk/actions/DualSpec.lua
   M /trunk/core.lua

5.0.4 update. Don't expect all modules to work.


First Previous Page 1 of 4 Next Last
  • #61

    Date: 2014-10-22 17:00:25
    ID: 1
    Error occured in: Global
    Count: 5
    Message: ..\AddOns\SetTheory\core.lua line 87:
    attempt to call global 'GetNumTalents' (a nil value)
    SetTheory\core.lua:87: ?()
    [string "safecall Dispatcher[1]"]:4:
    [string "safecall Dispatcher[1]"]:4
    [C]: ?
    [string "safecall Dispatcher[1]"]:13: ?()
    ...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:92: Fire()

  • #60


    I just found this could I miss it??!! It's awsome, thanks for your work!

    I use ActionSwap2 for changing talents, glyphs and action buttons. This addon can be use with macros like this:

    /a2 equip talent Frost PVE
    /as2 equip glyph Frost PVE
    /as2 equip action Frost PVE

    I'm trying to put that in lua actions, but don't know how to run a macro from there. Can yo give me an example?

    Thanks a lot!


  • #58

    MoP fix: the Talent API's have been renamed/changed.

    core. lua around line 86:

    if GetNumUnspentTalents() == GetNumTalents() then

    DualSpec.lua, around line 27:

    for i=1,GetNumSpecGroups() do

  • #59

    Thanks kilryte,
    I've included your fixes and some other updates to v0.6-release-MoPupdate. Please don't expect all the modules to work, especially for notable addons like Talented.

    Best, Dan. 

  • #56

    can u add a moudule for "profile: keybindings" addon ?


  • #57

    Hi Zelnia,

    It looks like that AddOn uses Ace3 as its database, therefore you should already be able to switch between its profiles using the 'Ace Profile' action.


  • #52

    What about supporting for loading the "MacroBank" category set, is it possible to create?

    I have not used this addon, but the only thing i change (except gear set), when respeccing - is set of macros, some of them use the same name, so i just overwrite their content

    Last edited by Saah88 on 12/20/2011 7:34:06 AM
  • #54

    It looks like MacroBank uses Ace for its database support, so switching its profiles is already supported with the 'Ace Profile' action.


  • #51

    Could you add an option to use global sets or anything?  I use this addon mainly for when I switch between different resolutions for my desktop and laptop and it would be nice if I could just make one set instead of having to do the same thing on each toon.

  • #53

    Hi nagboy,

    Yes I should have included that. In fact, there's a whole load of code in the addon that's commented out that implements 'Global Sets', which also would mean that addon pack authors could auto-configure their layouts and configurations. I'll have another look at it and see if I can get it done easily.



  • #55

    You can now use and select 'Global Sets', see /settheory -> 'Sets' -> 'Global Sets'. However, to edit them you have to have them locally. So to create one, create an ordinary set and choose the 'Publish Set' option. To edit a global set, 'Copy Set' so you can edit it locally and then 'Publish Set' to overwrite it, you can then delete the local copy if you like.

  • #49
    Great mod! Exactly what I was looking for ;)
  • #50
    Hi Tiki, I'm very glad you like it :)
  • #45
    hi, when I try to add an action for dotimer I get the following error: (this is only when I specifically try to add dotimer to the action queue, if I switch to a pre-existing profile that includes a dotimer action it works fine)

    Date: 2010-12-15 15:37:37
    ID: 1
    Error occured in: Global
    Count: 1
    Message: ..\AddOns\SetTheory\actions\DoTimer.lua line 23:
    attempt to call method 'Alphabetize' (a nil value)
    (tail call): ?
    SetTheory\actions\DoTimer.lua:23: member()
    ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1581: FeedGroup()
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[3]"]:9:
    [string "safecall Dispatcher[3]"]:5
    (tail call): ?
    ...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
    ...ibs\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:489: Select()
    ...ibs\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:497: SelectByValue()
    ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1677: FeedGroup()
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[3]"]:9:
    [string "safecall Dispatcher[3]"]:5
    (tail call): ?
    ...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
    ...libs\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua:156: SelectTab()
    ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1617: FeedGroup()
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[3]"]:9:
    [string "safecall Dispatcher[3]"]:5
    (tail call): ?
    ...face\AddOns\Altoholic\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
    ...ibs\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:476: SetSelected()
    Swatter, v5.9.4960 (WhackyWallaby)
    WowheadLooter, v40011
    Cursor, v4.0.0.1
    ACP, v3.3.12
    Align, v
    AlreadyKnown, v
    Altoholic, v4.0.005
    Archy, v1.5
    AtlasLoot, vv6.01.01
    Auditor2, v4.3.3
    BadBoy, v6.216
    BadBoyCCleaner, v3.12
    Bartender4, v4.4.15
    BindPad, v2.3.7
    Blitz, v
    BlitzDisplay, v
    BreadCrumbs, v0.4.0
    BrokerAuditor, v4.3.3
    BrokerSocialState, v
    ButtonFacade, v4.0.340
    ButtonFacadeCaith, v4.0.62
    ButtonFacadeDek, v3.0.47
    ButtonFacadeDek2, v3.0.47
    ButtonFacadeDsmFade, v1.48
    ButtonFacadeElegance, v3.3.0
    ButtonFacadeEntropy, v4.0.62
    ButtonFacadeHelloKitty, v1.1
    ButtonFacadepHish, v2
    ButtonFacadeSerenity, v4.0.63
    ButtonFacadeSion, v
    ButtonFacadeSleek, v4.0.0
    ButtonFacadeSvelte, v1.1
    ButtonFacadeTones, v4.0.0
    Chatter, v1.0
    Chinchilla, vv2.3.1
    Clique, vv40000-1.3.2
    ControlFreak, v3.0.3.15
    DataStore, v4.0.001
    DataStoreAchievements, v4.0.001
    DataStoreAuctions, v4.0.001
    DataStoreCharacters, v4.0.001
    DataStoreContainers, v4.0.001
    DataStoreCrafts, v4.0.001
    DataStoreCurrencies, v4.0.001
    DataStoreInventory, v4.0.001
    DataStoreMails, v4.0.001
    DataStorePets, v4.0.001
    DataStoreQuests, v4.0.001
    DataStoreReputations, v4.0.001
    DataStoreSpells, v4.0.001
    DataStoreStats, v4.0.001
    DataStoreTalents, v4.0.001
    DebugLib, v5.1.DEV.275
    DoTimer, v4.5
    DrDamage, v1.8.0_release-3
    DXELoader, v
    EquipCompare, v2.18
    EquipSetBanker, vAlpha
    fontain, v
    GhostPulse3, v3.0.17
    GhostPulseBasics, v3.0.17
    GoldenTicket, v1.0.17
    Grid, v1.40000.1370
    GridManaBars, v1.04
    GridSideIndicators, v4.0.1-1
    GridStatusCloseUp, v2.4
    GridStatusHealingReduced, v4.0.1.49
    GridStatusHealTrace, v2
    GridStatusRaidDebuff, vv3.1
    GridStatusRDBC, v1.0.1
    GridStatusRDDungeon, v1.1
    GridStatusRDWotLK, v1.1
    HealersHaveToDie, v1.5.2-5-ge0a4dce
    hfLootLog, v1.2.4
    hfLootRoll, v1.2.4
    InterfaceUsage, v10.02.27
    LearningAid, v1.11 Beta 2
    LightHeaded, v321
    Livestock, v1.2.2
    LoggerHead, v4.0.126
    MacroBank, v1.6
    Mapster, v1.4.0
    MikScrollingBattleText, v5.5.91
    nibSpellAlertConfig, v0.18
    OmniCC, v4.0.waffles10
    OPie, v
    Overachiever, v0.58
    PassLoot, v4.2
    Pawn, v1.5.2
    PetLeash, v1.5.9.1
    Postal, v3.4.4
    PowerAuras, v4.9
    Quartz, v3.0.4
    RaidRemover, v40000.2
    RangeDisplay, vv3.9.4
    RatingBuster, v
    ReagentRestocker, v2.4.2
    RealIDToons, v2.0.2
    Recount, v
    Redeemer, v
    ReforgedTooltip, v1.0.3
    rQuestWatchFrameMover, v1.0
    SAL, v1.1
    SatrinaBuffFrame, v3.1
    SaySapped, v2010-10-30
    SellOMatic, vv1.2.9a
    SetTheory, vv0.5-release8
    ShadowedUnitFrames, vv3.3.2
    SharedMedia, v3.0.4-179
    SharedMediaBlizzard, v1.3.1
    SharedMediaAdditionalFonts, v1.0
    SilentFish, v
    SilentRespec, v1.0.5
    SilverDragon, vv2.4.2
    Skinner, vb4.13329.2
    SmartBuff, v4.0d
    SmartTabTarget, v
    Stubby, v5.9.4960 (WhackyWallaby)
    SwindlerPreventer, v4.0.1a
    Talented, vv3.0-beta7
    TBag, v
    ThereIsNoCost, v1.2.1
    TidyThreat, v2.3
    TipTac, v10.12.05
    TipTacItemRef, v10.12.06
    TipTacTalents, v10.11.23
    Titan, v5.0.1.40000 - Revision 485
    TitanBag, v5.0.1.40000
    TitanClock, v5.0.1.40000
    TitanGold, v5.0.1.40000
    TitanLocation, v5.0.1.40000
    TitanLootType, v5.0.1.40000
    TitanPerformance, v5.0.1.40000
    TitanRepair, v5.0.1.40000
    TitanVolume, v5.0.1.40000
    TitanXP, v5.0.1.40000
    TomTom, vv40000-1.0.9
    WIM, v3.4.2
    xMerchant, v101016
    BlizRuntimeLib_enUS v4.0.3.40000

  • #46
    Thanks Kislio,
    I'm looking into it :)
  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Gamepedia Free-shirt Giveaway