With every patch come the usual slew of addon errors, and 4.1 is no exception. This time, however, there’s more than the usual random problems since Blizzard made a change to the format of in-game combat log events. This means that any addon which listens for and responds to combat events is at risk.
I’m going to assume you’ve turned on “Load Out of Date Addons” from the addon screen. If you’re still having problems with your addons, I have some advice.
Update your addons
And keep updating them. Addon authors are real people too, with real lives; they aren’t always able to respond to a new patch immediately, especially if they aren’t actively playing any more, but they usually get round to it in a few days. Be patient and keep checking the addon sites.
I like to install the Curse Client around the time of major patches because it makes checking for updates much quicker and easier.
Also, as Zelmaru pointed out in her comment below, addon authors often release alpha and beta versions of their addons quickly, and then a full release version once people have tested it for a few days. These early versions are generally quite safe to use though, and can get you through the early few days.
You may also find that other people have fixed some addons and uploaded “Fan Updates” onto the addon sites, usually WowInterface.
She gives advice for getting access to those versions, which can be found in the comment.
Look for replacements
If you’re a glass-half-full type of person, you might regard this as a good time to revisit your UI and look for replacements for older or less well-maintained addons. Titan Panel could be replaced by a LDB addon for example, or Recount by Skada, or XPerl by Pitbull4. (Those might be updated by now, they’re just examples of substitutes).
Toggle “Display Lua Errors”
If you’re having significant framerate issues, especially in combat, this might be because of a large number of addon errors being generates in quick succession. However, I have found a nifty trick that, while it won’t fix your addons’ functionality, does seem to resolve the framerate problems.
Go into Options > Interface > Help and turn on “Display Lua Errors”. Wait for the Lua error box to pop up (or make it pop up by shooting something), then turn off “Display Lua Errors” again. If you’re lucky, your framerate should be back to normal and should stay that way until you log off. Unfortunately you will need to repeat this process every time you relog, but it’s not a particularly onerous process.
Fix the addons yourself
If you’re not comfortable editing the Lua files themselves then don’t, just wait for them to be updated by their authors. However, for addons broken by the combat log change the fix can be pretty quick, if you can use a bit of intuition. If you’re in any doubt though, wait, or risk breaking your addons further.
Bear in mind I’m not an addon coder, but I did some poking around and have fixed a couple of my own addons. I’m including the following in case it helps other people, and I make no guarantees whatsoever!
Wowpedia describes the change thus:
The 4.1 patch added a new parameter, hideCaster, moving all other parameters beginning with sourceGUID one place to the right. Addons that haven’t been updated for 4.1 may not function correctly as a result.
What addons do when parsing the combat log is essentially split the long line into a number of chunks, assigning labels to each chunk. because Blizzard added an extra bit of information early in the combat log line, most of those labels now don’t refer to what the addon authors expect them to. Fixing them is therefore a matter of updating the combat log parsing functions.
An example, by way of illustration, is MikScrollingBattleText.
Open the file MSBTParser.lua, and look for the following:
Line 344:
local function ParseLogMessage(timestamp, event, sourceGUID, sourceName, sourceFlags, recipientGUID, recipientName, recipientFlags, …)
Insert the term ‘hideCaster’ between ‘event’ and ‘sourceGUID’, and hey presto, the problem is fixed. You should now have a line that looks like:
local function ParseLogMessage(timestamp, event, hideCaster, sourceGUID, sourceName, sourceFlags, recipientGUID, recipientName, recipientFlags, …)
Another addon that I have which I fixed manually was Death Note. For this one, you need to open the file DataCapture.lua, and search for the three (3) lines that need editing. These lines are quoted below, so you can use copy/paste to search. (Edit: This one is now fixed officially)
Line 17:
local function SpellAuraRemovedFilter(timestamp, event, hideCaster, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellId, spellName, spellSchool, auraType)
to
local function SpellAuraRemovedFilter(timestamp, event, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellId, spellName, spellSchool, auraType)
Line 24:
local function SpellCastSuccessFilter(timestamp, event, hideCaster, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellId, spellName, spellSchool)
to
local function SpellCastSuccessFilter(timestamp, event, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, spellId, spellName, spellSchool)
Line 338:
function DeathNote:COMBAT_LOG_EVENT_UNFILTERED(_, timestamp, event, hideCaster, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, …)
to
function DeathNote:COMBAT_LOG_EVENT_UNFILTERED(_, timestamp, event, sourceGUID, sourceName, sourceFlags, destGUID, destName, destFlags, …)
I also found that Incubator2 had problems. In this case, the substitution is:
Line 755:
function mod:COMBAT_LOG_EVENT_UNFILTERED(_, timestamp, eventtype, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, …)
to
function mod:COMBAT_LOG_EVENT_UNFILTERED(_, timestamp, eventtype, hideCaster, srcGUID, srcName, srcFlags, dstGUID, dstName, dstFlags, …)
Once again, if you aren’t comfortable doing this then just wait. Not every addon looks identical, and not every addon is coded so it’s simple to spot where you need to make the changes. On the other hand, if you can figure it out then you might just be able to DIY fix your addons and get them working quicker.