This project is abandoned.

Whether this project is out of date or its author marked it as abandoned, this project is no longer maintained.

If you wish to take this project over, please report it and state your intentions.


This project is discontinued
Due to various time constraints on my side and the interface/gameplay changes in Cataclysm regarding absorb effects, I can no longer actively develop or support this library. The healing game has changed considerably, making cumulative absorb tracking a lot less useful than it was in the days of Wrath of the Lich King, and it can be tracked now easily for specific effects just using the Blizzard UI. In generel the code still works, although it would require some small adjustments for the current combat log format. If anyone is interested in continuing this project, please let me know.

AbsorbsMonitor is a library that monitors and exports all ongoing absorb effects in your vicinity. It can handle different effects like Anti-Magic Shell, Power Word: Shield or Divine Aegis at the same time on the same target, as long as there is enough data to calculate the absorb values on creation.

In its core it consists of a framework to easily implement any spell, talent, proc or item that uses an absorb effect and then export this data to display it in a unit/raid frame or similar.

In the future this data can also be used to make precise statistics about the amount absorbed, which attack was absorbed, how much absorb value was wasted and so on.

Among other things, this library is implemented in these addons to actually display the absorb values:

  • ShieldFrames: Powerful and customizeable UI to display any absorb effect as a collection of bars.
  • AbsorbsViewer: A simple addon used for debugging and to demonstrate how to use the values exported by AbsorbsMonitor. Note that this addon no longer gets packaged, but you can still find it in the repository.




  • All spells that report absorb values in combat log, most others as well as all items supported (see list)
  • Mage spells are currently NOT supported. They do not report in combat log and require complete new code to calculate the values
  • Multiple effects of the same spells like it can happen now in Cataclysm for Divine Aegis and Illuminated Healing WILL cause wrong numbers. The integrated self-correction will be able to adjust this in realtime thanks to the combat log reporting.
  • It is not possible to reasonable support Power Word: Barrier at the moment, since the aura gain is not reported in the combat log.
  • Realtime stats sharing: Shares informations like spell power, attack power and talents with other users of AbsorbsMonitor in a party/raid


  • Statistics about absorb effects: how much, what broke it, what is wasted, ...

Limits of Accuracy

Given the new combat log reports in Cataclysm, the values for the most common absorb effects like Power Word: Shield, Divine Aegis and Illuminated Healing as well as specialized effects like Savage Defense and Anti-Magic Shell are 100% accurate. Sadly this does not apply to the warlock and mage spells, as well as the Death Knight Blood mastery and many item effects

Special thanks to my guild and friends on EU-Frostmane for countless hours of testing game mechanics.

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

  • Avatar of Wrawrr Wrawrr Jul 20, 2011 at 15:16 UTC - 0 likes

    Getting this error at startup:

    1x AceComm-3.0-7 (Ace3):70: AceComm:RegisterComm(prefix,method): prefix length is limited to 16 characters
    AceComm-3.0-7 (Ace3):70: in function `RegisterComm'
    LibAbsorbsMonitor-1.0-4:385: in function `Enable'
    LibAbsorbsMonitor-1.0-4:1008: in function `?'
    LibAbsorbsMonitor-1.0-4:66: in function <...libs\LibAbsorbsMonitor-1.0\LibAbsorbsMonitor-1.0.lua:65>
    table: 213A7F30

    It seems that other addon also had some issues with AceComm

  • Avatar of technogeek127 technogeek127 May 17, 2011 at 05:03 UTC - 0 likes

    Please tell me this still works? No update in a long time :(

  • Avatar of yoshimo yoshimo Dec 18, 2010 at 20:21 UTC - 0 likes

    Today while doing the new Cataclysm BG , Twin Peaks i received:

    Date: 2010-12-18 20:58:45 ID: -1 Error occured in: Global Count: 1 Message: ...Ons\LibAbsorbsMonitor\core\LibAbsorbsMonitor-1.0.lua line 1244: Positive refcount 0 remained for area effect 50461 by trigger 0xF1306E9200000088 Debug: (tail call): ? [C]: error() ...Ons\LibAbsorbsMonitor\core\LibAbsorbsMonitor-1.0.lua:1244: ...Ons\LibAbsorbsMonitor\core\LibAbsorbsMonitor-1.0.lua:1229 (tail call): ? [C]: ? [string "safecall Dispatcher[1]"]:9: [string "safecall Dispatcher[1]"]:5 (tail call): ? Ace3\AceTimer-3.0\AceTimer-3.0.lua:166: Ace3\AceTimer-3.0\AceTimer-3.0.lua:138

  • Avatar of Possible Possible Oct 20, 2010 at 11:06 UTC - 0 likes

    @eyogar: Sey gains Sey Guarded by the Light. (5936 Remaining) Unbound Seer's attack was absorbed by Sey.(160 Absorbed) Sey Guarded by the Light is refreshed on Sey. (5776 Remaining)

    Plugin: LimitedCreative | Chat-Status: IRC Online-Status

  • Avatar of eyogar eyogar Oct 16, 2010 at 19:54 UTC - 0 likes


    Could you provide me with the lines in the combat log when you actually gain the shield? My concrete question is whether you see any number in parantheses like this or not:

    <char> gains <char>'s Guarded by the Light (XXX remaining)

    It will be possible to implement it in both cases, but this one would be more efficient.

  • Avatar of Possible Possible Oct 16, 2010 at 19:13 UTC - 0 likes

    Can you add the Prot-Pala Absorb: please?

    Btw: The link to the effectlist is broken.

  • Avatar of eyogar eyogar Oct 16, 2010 at 10:08 UTC - 0 likes

    Definitely yes to Blood mastery, and this will happen very soon.

    The Mage and Warlock spells are a bit more of a problem, since they do not report in combat log and either require "oldschool" calculations with knowledge of spell power, talents etc or tooltip scanning. I will experiment with both methods a bit.

    EDIT: I just pushed an alpha with support for Blood Shield. You can either replace the files in ShieldFrames/libs/LibAbsorbsMonitor with the ones in LibAbsorbsMonitor/core from the alpha package or run LibAbsorbsMonitor as a standalone library.

    EDIT: Sorry, I forgot to round the result indeed. I fixed this now in ShieldFrames though temporarily by just rounding every result. And it looks like Anti-Magic Shell doesn't report the correct value anymore, 75 sounds more like 75% and not 50% of your hp. Gotta take a look at that tomorrow.

    Last edited Oct 16, 2010 by eyogar
  • Avatar of telius telius Oct 16, 2010 at 09:58 UTC - 0 likes

    Hi there, great work so far.

    Is there a possibility to add the deathknights blood mastery - blood shield and the warlock spell nether ward?

    EDIT: thanks for the fast update, blood shield is working fine - 1 comment to make though, it would be a bit nicer to have those numbers rounded up - picture blood shield bar

    Last edited Oct 16, 2010 by telius
  • Avatar of eyogar eyogar Oct 16, 2010 at 00:02 UTC - 0 likes

    Sorry, but since I was a bit short on time the last days, I delayed a proper release for ShieldFrames and the Grid plugin until I'm sure everything works, especially regarding the Grid transition to Ace3. The commit I made here was just the work I did on the PTR. I will try to fix up everything by the end of this weekend.

  • Avatar of Zidomo Zidomo Oct 15, 2010 at 20:07 UTC - 0 likes

    After making the noted changes below & giving this a try with the last ShieldFrames on an 80 Priest in WoW 4.x live, the following error was thrown:

    ["message"] = "LibAbsorbsMonitor-1.0-1:413: attempt to index local 'effectInfo' (a nil value)\nLibAbsorbsMonitor-1.0-1:1365: in function `Test'\nShieldFrames-r20100928163102\\ShieldFrames.lua:142: in function `Test'\nShieldFrames-r20100928163102\\Options.lua:705: in function <Interface\\AddOns\\ShieldFrames\\Options.lua:704>\n(tail call): ?:\n<in C code>: ?\n<string>:\"safecall Dispatcher[3]\":9: in function <[string \"safecall Dispatcher[3]\"]:5>\n(tail call): ?:\nAceConfigDialog-3.0-50:797: in function <...nfig-3.0\\AceConfigDialog-3.0\\AceConfigDialog-3.0.lua:612>\n(tail call): ?:\n<in C code>: ?\n<string>:\"safecall Dispatcher[4]\":9: in function <[string \"safecall Dispatcher[4]\"]:5>\n(tail call): ?:\nAceGUI-3.0-33 (Ace3):314: in function `Fire'\nAce3\\AceGUI-3.0\\widgets\\AceGUIWidget-Button.lua:21: in function <...dOns\\Ace3\\AceGUI-3.0\\widgets\\AceGUIWidget-Button.lua:19>\n\n  ---",
    			["type"] = "error",
    			["session"] = 26,
    			["counter"] = 1,
    		}, -- [693]


Date created
Aug 05, 2010
Last update
May 29, 2011
Development stage
  • deDE
  • enUS
  • frFR
GNU General Public License version 2 (GPLv2)
Reverse relationships
Recent files



Embedded library