Get an Epic Experience with Premium

Bitten's SpellFlash Library

Libraries Login to Add Favorites
  • 28 Likes
  • World of Warcraft
  • 17,871 Monthly Downloads
  • Supports: 5.4.8
  • 5,323,888 Total Downloads
  • Updated 06/06/2014
  • Created 04/28/2012
  • 461 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: 50400.4.2
or
Support development! **
Donate

About Bitten's SpellFlash Library

When you download one of Bitten's SpellFlash class modules, it comes with a copy of this addon. You do not need to download this addon separately. If you have it installed, you can delete it. That is, of course, unless you like to install the "nolib" versions of addons - but in that case you should know what you are doing and I don't need to give you any more instruction. :)

This is a library to make SpellFlash modules easier to create. Please see the FAQ before posting a question. If that doesn't address your issue, or you have a suggestion to improve this addon, please either leave a comment or create a ticket.

If you are an addon author and want to learn more, read on. If you are not an addon author, there is nothing here you need to worry about - read on only only if you're curious.

Help with cooldown and (de)buff timing

There are often times when want to know whether a certain (de)buff will be present when it's time to cast the next spell. If you use a naive approach of simply checking for the presence of a buff now, and it falls off half way through your current cast, you may have been flashing the wrong spell. There are clones of many (de)buff and cooldown checking functions that allow you to get the information you need easily. For example this library function:

function c.GetMyDebuffDuration(name, noGCD)
    return s.MyDebuffDuration(c.GetID(name)) - c.GetBusyTime(noGCD)
end

Passing a value for noGCD will cause it to ignore the global cooldown, which is useful for spells that are not on the gcd. Otherwise it uses the longer of the gcd and your current cast.

International support without cluttering your code with spell IDs

There are clones of several often-used SpellFlash functions that translate from the spell name you pass to their spell id. For example, you can replace calls that look like

s.Buff(74434--[[Soulburn]], "player")

With calls that look like

c.HasBuff("Soulburn")

Without fear of your code breaking when used on a non-English client. There is also a function, c.GetID("name"), that you can use if a cloned function does not exist in the library. Note that for these functions to work, you must have the spell or buff defined in a.spells.

Learning More

There are several other little features, like simplifying your Spam function while supporting options to turn rotations on and off. Feel free to browse the source to learn more. All of Bitten's SpellFlash modules use this library, so any of them provide examples of how to use it.

Version 50400.4.2

This version only affectly Feral Druids.

  • Small tweak for flashing forms in c.DelayPriorityFlash.

Version 50400.4.1

  • Added flashing for WoW's 9th Anniversary Celebration Package.

Version 50400.4.0

This version is required for the latest Death Kight release.

  • Added c.Flashable().

Version 50400.3.0

This version only adds convenience flashing - it is not a required update for any class.

  • Added flashing for some new foods and items from the Timeless Isle.

Version 50400.2.0

This version supports the latest Hunter release.

  • c.Flashing{} now contains an entry for every spell that is flashing.
  • c.IsTanking() now accepts a "unit" argument.
  • Removed c.CheckFirstForTaunts().

Version 50400.1.7

Updating to this version is not necessary. It causes flashes for the more new food buffs.

Version 50400.1.6

Updating to this version is not necessary. It causes flashes for the new Noodle food buffs.

Version 50400.1.5

Among other things, this is a bugfix release. Everyone should update.

  • c.GetChargeInfo() now takes into account whether the spell is currently casting.
  • The CastSucceeded_FromLog callback now passes more arguments.
  • Bugfix - c.HasDebuff(), c.HasMyDebuff(), and c.GetPowerPercent() had problems.

Version 50400.1.4

This version supports the latest Shaman release.

  • Added c.GetPowerPercent()

Version 50400.1.3

This version supports the latest Rogue release.

  • Added a new event callback for rotations: CastSucceeded_FromLog

Version 50400.1.2

This version supports the latest Pally release.

  • c.DelayPriorityFlash() returns a second value: true if the flashing spell is only a predictor.

Version 50400.1.1

This version breaks backward compatibility for the Druid, Hunter, and Monk modules.

  • Added c.GetChargeInfo().
  • c.RegisterForFullChannels() accepts a new argument indicating that the channel is indicated by a buff, rather than the normal channeling mechanism (read: Spinning Crane Kick)
  • Slight improvements to c.GetBusyTime() and c.GetPower().
  • The Cost entry of casting info tables is now itself a table from power type => cost.

Version 50400.1.0

  • Slightly smarter determination of Target GUID for the CastStarted, CastFailed and CastSucceeded callbacks.
  • All the functions that tested for a buff or its duration now takes a list of spells that apply it, rather than just one.
  • c.GetPower() now uses the regen of your primary power type if not specified.
  • c.GetQueuedInfo() now favors spells that are on the GCD.

Version 4.13.7

This version supports the latest releases for tanking classes.

  • Added c.COMMON_TANKING_BUFFS.
  • c.FlashMitigationBuffs will now match the spell id of buffs when checking if one is already up, rather than the name.

Version 4.13.6

WARNING: If you install no nolib versions of my addons, you will have to download Bitten's Utils now. If you don't know what I'm talking about, you can ignore this, and even deleted Bitten's SpellFlash Library, since it comes packaged with your class module(s) anyway.

  • Splitting some non-SpellFlash-specific functions off into a different library: Bitten's Utils, for use with other addons.

Version 4.13.5

This version supports the latest Druid release.

  • Bugfix: c.DelayPriorityFlash() was not respecting the AoEColor flag.

Version 4.13.4

This version fixes an issue for Fire Mages who use Presence of Mind. There may be other classes/specs which had the same bug, but I'm not sure.

  • Bugfix: no longer consider an aura pending if it was reported to be applied before the spell was reported to be cast.

Version 4.13.3

This version supports the latest Warrior release.

  • Added a callback for rotations: Avoided().

Version 4.13.2

  • Oops - forgot something in 4.13.1.

Version 4.13.1

  • c.PriorityFlash() and c.DelayPriorityFlash() now accept an AoEColor flag in the rotation.

Version 4.13.0

This version supports the latest Paladin release.

  • Added c.InDamageMode().
  • Added c.ToggleDamageModeInGroups().

Version 4.12.0

  • Added c.HasSpell().
  • c.RegisterAddon() now causes it to flash Healthstones.
  • c.DelayPriorityFlash() will no longer flash optional spells with a longer delay than the main spell.

Comments

First Previous Page 5 of 12 Next Last
  • #138

    Unfortunetally that didn't help. Same thing is still happening.  Spell rotation itself isn't coming up at all.  No errors are popping up for the Spellflash, but I did get one for Oqueue. Could be part of the problem?

  • #133

    My addon doesn't seem to work properly. Most of the time, Its on, but it doesnt respond like it does. No spellflashing..nothing..This is puzzling. Reloading UI doesnt seem to fix this problem 

    EDIT: When I restart the game..it behaves properly, but thats the only time it does. 

    Last edited by Keelendis on 2/26/2013 11:34:30 AM
  • #134

    When does it stop working?  Are you getting a Lua error?  (See this question for instructions on checking for a Lua error.)

    Author of Bitten's SpellFlash.

  • #131

    Is there a way to install an other skin of the flashings? like it looks like normal blizz procs?

    Last edited by kaosly on 2/6/2013 10:04:52 PM
  • #132

    Not to my knowledge.  I did not make the part that does the flashing animation, BigRedBrent did.  He is the author of SpellFlash.

    Author of Bitten's SpellFlash.

  • #129

    After installing the update I've got nothing but errors. Here is the latest error message I received just by opening the talent box.

    Message: ...rface\AddOns\BittensSpellFlashLibrary\src\Events.lua:285: attempt to index upvalue 'u' (a nil value)

    Time: 01/31/13 14:25:46

    Count: 1

    Stack: ...rface\AddOns\BittensSpellFlashLibrary\src\Events.lua:285: in function <...rface\AddOns\BittensSpellFlashLibrary\src\Events.lua:279>
    [C]: in function `LoadAddOn'
    Interface\FrameXML\UIParent.lua:299: in function `UIParentLoadAddOn'
    Interface\FrameXML\UIParent.lua:349: in function <Interface\FrameXML\UIParent.lua:348>
    [C]: in function `TalentFrame_LoadUI'
    Interface\FrameXML\UIParent.lua:477: in function <Interface\FrameXML\UIParent.lua:472>


    Locals: self = <unnamed> {
     0 = <userdata>
    }

    event = "ADDON_LOADED"
    (*temporary) = nil
    (*temporary) = "BittensSpellFlashLibrary"
    (*temporary) = "Blizzard_TalentUI"
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = "attempt to index upvalue 'u' (a nil value)"
    select = <function> defined =[C]:-1
    libName = "BittensSpellFlashLibrary"
    u = nil
    hookLAB = <function> defined @Interface\AddOns\BittensSpellFlashLibrary\src\Events.lua:145
    s = <table> {
     GetPrimaryThreatTarget = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2274
     CastingOrChanneling = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2035
     InParty = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2111
     RangedItemBuffDuration = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2694
     Debuff = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2637
     Shooting = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2845
     UsesMana = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2547
     DebuffStack = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2641
     BreakOnDamageCC = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:3538
     Equipped = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2814
     HasSpell = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1722
     CopyTable = <function> defined @Interface\AddOns\SpellFlashCore\SpellFlashCore.lua:79
     Poisoned = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:3581
     FlashPet = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:3686
     AuraDelay = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1619
     InRaidOrParty = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2119
     InGroup = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2119
     CrowedControlled = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:3558
     GetModuleFlashable = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1430
     Buff = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2608
     Class = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1853
     TestFlashSettings = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:622
     Dummy = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:305
     RegisterModuleOptionsWindow = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1426
     ClearAllModuleConfigs = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1465
     MainHandItemBuffDuration = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:2670
     CheckIfVehicleSpellCastable = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:3231
     UnregisterModuleEvent = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1499
     FlashForm = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:3690
     UpdatedVariables = <table> {
     }
     Spec = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1709
     Moving = <function> defined @Interface\AddOns\SpellFlash\SpellFlash.lua:1845
     RegisterOtherAurasFunction = <function> defi

  • #130

    That is a puzzling error.  It seems to me this particular error must be caused by either a bad installation (you could try deleting and re-installing the library), or by an earlier error.  When you login or /reloadui, the first time the error pops up, could you please make sure you are viewing the first error for SpellFlash (using the Previous/Next buttons), and send me that text?  You could create a ticket so not everybody has to look at these error logs.

    Author of Bitten's SpellFlash.

  • #127

    does spell flash change on the execution phase

  • #128

    If you're using Bitten's modules, then yes they should.  You can consult the description of each individual module for an explanation of how exactly they change.

    Author of Bitten's SpellFlash.

  • #126

    Quick note for tanks: the latest version adds small green flashes on your mitigation/healing cooldowns.  Those are just for information (like all small green flashes in my modules), telling you that cooldown is up next if you take enough damage to warrant using it.

    Author of Bitten's SpellFlash.

  • #124

    Is there any chance we can get an option to disable the Red Outline for Spell Procs. I love spell flash but I prefer the orignial blizzard one over the red one.

    Last edited by Olaf4862 on 12/2/2012 4:31:37 PM
  • #125

    Short answer: no.  Frown

    Long answer: Many people never understood the difference between spellflash flashes and default blizzard flashes, so I disabled them in order to make my modules more foolproof.  Also, even for a skilled user it requires less attention to determine which spell is flashing when Blizzard is not also flashing the border of other spells.

    If you can think of a better way to indicate procs than the red border that does not involve making them flashy, I would definitely consider it.

    Author of Bitten's SpellFlash.

  • #118

    I love your class-specific SpellFlash addons. My only (minor) problem that I discovered today is that the dependencies didn't automatically download with the Curse client on my MacBook Pro. My Curse client on my Windows desktop computer correctly grabs them all, though.

    I wonder if it has anything to do with the fact that the Mac Curse client is still version 4 -- Version 4.0.0.425 Beta (4.0.0.425), to be specific (per a Curse post on their forums, they're working on a version 5 for Mac now, to catch it up to the Windows version, but no ETA at the moment).

    Not a huge deal, I guess just more of an FYI at this point.

    Thanks for the awesome addons!

  • #120

    Yes i have them but it says now dependency out of date

  • #123

    Thanks got it working. :)

     

  • 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 »

Alienware Alpha Giveaway!