Curse affliction 1

Decursive for World of Warcraft

Gratipay and Bitcoin donation options

Decursive is a cleansing mod intended to make affliction removal easy, effective and fun for all the classes having this ability.


NOTE: Type /DECURSIVE to open the onfiguration panel.
Decursive's options are not directly available in the "Interface" panel due to ongoing tainting issues Blizzard is not willing to fix.

Decursive usage - Micro Unit Frames documentation - Decursive Macro documentation - Frequently Asked Questions - commands

Decursive key benefits

  • Ease of use:

    • Decursive supports all classes with cleansing abilities (Symbiosis' links included) and configures itself automatically,
      it works straight out of the box, no configuration is required.
    • Intuitive interface and detailed options, Decursive is suitable for simple usage and power users.
  • Control what and who you want to dispel:

    • Easily Filter out afflictions you don't want to cure or that are useless to remove by class (some are pre-configured).
      (Such as afflictions affecting mana on non-mana classes, etc...).
    • Choose between what you can dispel (magic, curses, poison, diseases, charms) choosing their priority.
      (this allows you to share the cleansing work with other players effectively)
    • Prioritize or exclude members.
      (keep players, classes, or raid groups in a specific order to cleanse them in order of importance)
  • Manage Mind controlled units:

    • If you are a Mage, a Druid or a Shaman you can Polymorph/Cyclone/Hex mind-controlled players.
    • In any case Decursive will allow you to target mind controlled units easily.
    • Decursive supports magic charming affect removal for Shamans (Purge and Hex), Priests (Dispel Magic),
      Hunters (Tranquilizing Shot), and Warlocks (Fellhunter and Doomguards spells).
  • Don't waste time:

    • Your cleansing spell Cooldown is displayed to maximize your dispel speed.
    • An automatic blacklist will prevent you from loosing time on players who can't be dispelled.
      (player 'out of line of sight' for example).
    • Decursive choose a logical cleansing order depending on your current position in the raid.
      (preventing dispel concurrence between players and thus 'nothing to dispel' messages)
  • React faster:

    • Visual and/or auditive alerts when someone needs your attention and can be dispelled.
    • Special sound alert when Unstable Affliction is detected and you're about to dispel it.
    • Visual and auditive alert when your dispel attempts are resisted or fail.
  • Integration in any interface:

  • Highly optimized and effective coding:

    • Decursive was developed with memory and CPU usage in mind, installing Decursive won't affect your frame rate even in the worst battle conditions.
    • Bug free: bugs are not tolerated in Decursive.

In brief, what you get with Decursive is effectiveness, a player using Decursive will always dispel faster than other players.

See also:

Interesting articles and videos about Decursive's usage:

  • 2010-11-20 (Updated in 2011-06-11)

A complete Decursive guide by @darista:

  • 2009-07-15


  • 2010-02-20:

Video: WarcraftScience's Decursive tutorial

For other videos about Decursive, see the YouTube playlist.

Decursive is dedicated to the memory of Bertrand Sense known as Glorfindal on
the European server Les Sentinelles.
He was the raid leader of my guild (Horizon)

You can subscribe to Decursive's newsletter to be alerted whenever a new stable version is released.

For suggestions, feature request, or bug report, use the ticket system provided by

Development versions of Decursive are available at this URI: ; note that development versions may be unstable.
Unless you want to help testing unstable code you should download the versions considered stable below.

Do not forget to rate Decursive!

Bitcoin donation address: 1LEHZuPsiHN4hM3H3Gru5xKmDgCj867eFX


You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Archarodim Archarodim Aug 15, 2013 at 16:36 UTC - 0 likes

    @BrightBrown: Go

    You don't need to have spells in your action bars for Decursive to work. Decursive displays the cool-downs directly on its MUFs when applicable. If you want to use specific commands when casting a spell, you have to use Decursive's custom spell option panel and check the 'allow macro editing' check-box before adding your spell, then you'll be able to edit the macro Decursive will be using internally when casting your spell and thus add a /StopCasting command if you want. Simply read the tool-tips in Decursive's option panels, they should explain everything you need to know on each and every settings.

  • Avatar of BrightBrown BrightBrown Aug 15, 2013 at 16:21 UTC - 0 likes

    In order for either Counterspell or Remove Curse to work when clicking on a unit in the MUF, does said spell have to be on one of my action bars? AND if said spell is a macro with a stopcasting line in it, will it be honored?

    Says above the cleansing spell cooldown is shown, does that mean on it's icon in the action bar (i.e. does the spell need to be on them action bar for the CD to be shown?)? Or does Decursive have it's own mechanism?

  • Avatar of BrightBrown BrightBrown Aug 13, 2013 at 15:28 UTC - 0 likes

    Ah, thanks. Akin to Polymophing a mind controlled friendly.

  • Avatar of Archarodim Archarodim Aug 12, 2013 at 21:14 UTC - 0 likes

    @BrightBrown: Go

    Thanks! Actually, CounterSpell is configured so you can interrupt mind-controlled team members not mobs. It's linked to the 'Charmed' status.

    Last edited Aug 12, 2013 by Archarodim
  • Avatar of BrightBrown BrightBrown Aug 12, 2013 at 19:17 UTC - 0 likes

    Just got Decursive, darista's guide seriously helped!

    Love that some configs are made based on one's class... good job! One thing strikes me... it was preset with CounterSpell as a custom one (FireMage am I)... and honestly, interrupts I use more than curing curses (i.e. fourth door Horridon)! I can't seem to find any information, how can this be integrated into the MUFs because those are party members, not evil targets. How does this help me to interrupt a mob?

  • Avatar of Archarodim Archarodim Aug 11, 2013 at 17:06 UTC - 0 likes

    @Nekomemi: Go

    This is caused by DBM-Interrupts which is bugged and destroys a shared library required by Decursive...

  • Avatar of Nekomemi Nekomemi Aug 11, 2013 at 07:23 UTC - 0 likes

    Hello =)

    Please report the content of this window to [email protected] (Use CTRL+A to select all and then CTRL+C to put the text in your clip-board) nil(90) CT: 0.0000 D: 08/10/13 15:20:23 enUS BG BDTHFAd: nil nDrE: 0 Embeded: true W: 1 LA: 7 TA: 0 NDRTA: 0 BUIE: 0 TI: [dc:-1, lc:-1, y:-1, LEBY:-1, LB:-1, TTE:0] (5.3.0, 17128, Jun 26 2013, 50300)


    0.0000 (tr:'' ca:'RegisterDecursive_Once' h53_w49-51fps-none): Decursive-\DCR_init.lua:58: Usage: EmbedLibrary(addon, libname, silent, offset): "libname" - Library "110AceEvent-3.0-3" is not Embed capable, STACK: , <in C code> ...\Decursive\Libs\AceAddon-3.0\AceAddon-3.0-12.lua:226: in function "EmbedLibrary" ...\Decursive\Libs\AceAddon-3.0\AceAddon-3.0-12.lua:202: in function "EmbedLibraries" ...\Decursive\Libs\AceAddon-3.0\AceAddon-3.0-12.lua:169: in function "NewAddon" Decursive-\DCR_init.lua:58: in function "RegisterDecursive_Once" Decursive-\DCR_init.lua:494: in main chunk, LOCALS: , self = <table> { DisableAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:586 EnableAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:551 EmbedLibrary = <func> @Decursive\Libs\..\AceAddon-3.0.lua:217 InitializeAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:528 IterateAddonStatus = <func> @Decursive\Libs\..\AceAddon-3.0.lua:628 EmbedLibraries = <func> @Decursive\Libs\..\AceAddon-3.0.lua:199 initializequeue = <table> {} statuses = <table> {} GetAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:184 NewAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:136 IterateModulesOfAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:633 IterateEmbedsOnAddon = <func> @Decursive\Libs\..\AceAddon-3.0.lua:632 embeds = <table> {} IterateAddons = <func> @Decursive\Libs\..\AceAddon-3.0.lua:618 frame = AceAddon30Frame {} addons = <table> {} enablequeue = <table> {} } addon = <table> { SetDefaultModuleLibraries = <func> @Decursive\Libs\..\AceAddon-3.0.lua:398 Enable = <func> @Decursive\Libs\..\AceAddon-3.0.lua:325 NewModule = <func> @Decursive\Libs\..\AceAddon-3.0.lua:266 Print = <func> @DBM-Interrupts\libs\..\AceConsole-3.0.lua:54 EnableModule = <func> @Decursive\Libs\..\AceAddon-3.0.lua:363 modules = <table> {} GetModule = <func> @Decursive\Libs\..\AceAddon-3.0.lua:241 IterateEmbeds = <func> @Decursive\Libs\..\AceAddon-3.0.lua:473 IsModule = <func> @Decursive\Libs\..\AceAddon-3.0.lua:499 defaultModuleLibraries = <table> {} SetEnabledState = <func> @Decursive\Libs\..\AceAddon-3.0.lua:455 GetArgs = <func> @DBM-Interrupts\libs\..\AceConsole-3.0.lua:144 enabledState = true UnregisterChatCommand = <func> @DBM-Interrupts\libs\..\AceConsole-3.0.lua:111 Printf = <func> @DBM-Interrupts\libs\..\AceConsole-3.0.lua:69 RegisterChatCommand = <func> @DBM-Interrupts\libs\..\AceConsole-3.0.lua:85 GetName = <func> @Decursive\Libs\..\AceAddon-3.0.lua:310 defaultModuleState = true Disable = <func> @Decursive\Libs\..\AceAddon-3.0.lua:345 IterateModules = <func> @Decursive\Libs\..\AceAddon-3.0.lua:468 name = "Decursive" SetDefaultModulePrototype = <func> @Decursive\Libs\..\AceAddon-3.0.lua:440 IsEnabled = <func> @Decursive\Libs\..\AceAddon-3.0.lua:482 orderedModules = <table> {} SetDefaultModuleState = <func> @Decursive\Libs\..\AceAddon-3.0.lua:418 DisableModule = <func> @Decursive\Libs\..\AceAddon-3.0.lua:381 } libname = "AceEvent-3.0" silent = false offset = 4 lib = <table> {} error = <func> =[C]:-1 tostring = <func> =[C]:-1 type = <func> =[C]:-1 tinsert = <func> =[C]:-1 -|count: 1

    Loaded Addons:

    !BugGrabber (3.0)[2] ACP (3.4.3 )[1] DBM-Core (N/A)[7] DBM-Interrupts (5.1.0)[3] DBM-RaidLeadTools (N/A)[10] DBM-SpellTimers (N/A)[11] Decursive ([4]

    Using windows 8 home edition.

  • Avatar of Archarodim Archarodim Sep 16, 2012 at 22:55 UTC - 0 likes

    @frozuntexan: Go

    This should be fixed in the latest alpha.

  • Avatar of frozuntexan frozuntexan Sep 07, 2012 at 19:32 UTC - 0 likes

    Please report the content of this window to [email protected] (Use CTRL+A to select all and then CTRL+C to put the text in your clip-board) Also tell in your report if you noticed any strange behavior of Decursive. SHAMAN(85) CT: 678.1230 D: 09/07/12 14:27:46 enUS BGe BDTHFAd: nil nDrE: 1 Embeded: true W: 1 (5.0.4, 16016, Aug 21 2012, 50001)


    634.8780 (h55_w58-20fps-Sethekk Halls): Decursive\Decursive- script ran too long, STACK: , Decursive\Decursive- in function "PlaySound" Decursive-\Dcr_DebuffsFrame.lua:1489: in function "SetColor" Decursive-\Dcr_DebuffsFrame.lua:1161: in function <Decursive\Dcr_DebuffsFrame.lua:1119> Decursive-\Dcr_utils.lua:572: in function <Decursive\Dcr_utils.lua:570> (tail call): ? <in C code> <string>:"safecall Dispatcher[1]":9: in function <string>:"safecall Dispatcher[1]":5 (tail call): ? ...\Decursive\Libs\AceTimer-3.0\AceTimer-3.0-6.lua:166: in function <...\Decursive\Libs\AceTimer-3.0\AceTimer-3.0.lua:138>, LOCALS: , nil -|count: 1

    Loaded Addons:

    Decursive ( HealBot ( DBM-Core (N/A) DBM-LDB (N/A) DBM-Party-BC (N/A)

  • Avatar of Rhazzledazle Rhazzledazle Aug 29, 2012 at 14:29 UTC - 0 likes

    Below is what I'm getting in DCRREPORT, also I can not get my micro unit frames to show up and if I'm cursed nothing happens. I have Decursive- from

    Please report the content of this window to [email protected] (Use CTRL+A to select all and then CTRL+C to put the text in your clip-board) Also tell in your report if you noticed any strange behavior of Decursive. NOCLASS(85) CT: 184.6060 D: 08/29/12 09:47:18 enUS BGe BDTHFAd: nil nDrE: 274 Embeded: true (5.0.4, 16016, Aug 21 2012, 50001)


    15.9210 (h40_w47-104fps-none): Decursive-\Dcr_Events.lua:1059: attempt to call upvalue "GetUnspentTalentPoints" (a nil value), STACK: , Decursive-\Dcr_Events.lua:1059: in function <Decursive\Dcr_Events.lua:1057> Decursive-\Dcr_Events.lua:1095: in function <Decursive\Dcr_Events.lua:1093> (tail call): ? <in C code> <string>:"safecall Dispatcher[1]":9: in function <string>:"safecall Dispatcher[1]":5 (tail call): ? ...\Decursive\Libs\AceTimer-3.0\AceTimer-3.0-6.lua:166: in function <...\Decursive\Libs\AceTimer-3.0\AceTimer-3.0.lua:138>, LOCALS: , nil -|count: 1


Date created
Jan 24, 2007
Last update
Oct 01, 2014
Development stage
  • deDE
  • enUS
  • esES
  • frFR
  • koKR
  • ruRU
  • zhCN
  • zhTW
All Rights Reserved
Curse link
Recent files



Optional dependency
Embedded library