Get an Epic Experience with Premium

Bitten's SpellFlash Library

Libraries Login to Add Favorites
  • 20 Likes
  • World of Warcraft
  • 400,686 Monthly Downloads
  • Supports: 5.3.0
  • 3,931,936 Total Downloads
  • Updated 05/23/2013
  • Created 04/28/2012
  • 323 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: 4.10.1
or
Support development! **
Donate

About Bitten's SpellFlash Library

!NEW INFORMATION BELOW!

This library is packaged together with all of Bitten's SpellFlash class modules now. You do not need to download this addon separately to make any of them work. If you had it install previously, you can safely delete it now. The only change will be the key bindings (if you used them); see this website for more info on that.

!NEW INFORMATION ABOVE!

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 4.10.1

  • Flash food buffs on enemy "detection" instead of targeting.
  • Do not flash food buttons when you don't have any in your bags.

Version 4.10.0 beta

  • Added c.FlashFoods().
  • c.RegisterAddon() now flashes MoP foods for anything listed in a rotation's UsefulStats.

Version 4.9.1

This version supports the latest Warlock release.

  • c.HasMyDebuff() and c.HasBuff() now work on auras without a duration.

Version 4.9.0

This version supports the latest Druid release.

  • Added c.PredictFlash()
  • c.RegisterForEvents() has a new callback: AutoAttack.
  • c.IsCastingOrInAir() and c.IsAuraPendingFor() now work for AoE spells that do not have a target.
  • c.FlashAll() and c.PriorityFlash() now automatically assume NotIfActive if Cooldown is defined.
  • Bugfix - the SpecialGCD and NoGCD flags now correctly influence c.GetBusyTime() for spells with sub-names.

Version 4.8.0

This version supports the latest Shaman release.

  • New spell tags: Tick and PredictFlash.
  • Added c.AoeColor and c.MovementColor.

Version 4.7.4

This version supports the latest Hunter release.

  • c.GetHealth() and g.GetHealthPercent() now work on dead targets (they return 0)
  • Bugfix - the "fct" toggle was not completely turning off floating combat text over the player.

Version 4.7.3

  • NoRangeCheck is now implied when defining Melee or Range.
  • Bugfix - c.LastGCD was not being updated as often as it should.

Version 4.7.2

  • Bugfix: 4.7.1 had a conflict with 4.7.0.
  • c.PriorityFlash() and c.FlashAll() now respect spells' UseBuffID flag.

Version 4.7.1

  • Bugfix for a Lua error w/ some classes.

Version 4.7.0

This version supports the latest Druid release, and may provide some small benefit to most classes - especially tanks.

  • c.GetBusyTime() is a little smarter about spells that don't trigger a GCD, and spells which define the new SpecialGCD flag.
  • c.IsTanking() is smarter when fighting Gara'jal.
  • c.DelayPriorityFlash() now honors Debuff and MyBuff flags.
  • c.DelayPriorityFlash() now flashes blue when in AoE mode.
  • Added c.HasMyBuff(), c.GetMyBuffDuration(), and c.GetMyBuffStack().
  • Added c.IsCastingAt()

Version 4.6.7

This version supports the latest Monk release.

  • Spell info tables now include TargetID, which is the GUID of that spell's target. Does not work if for spells not cast on s.UnitSelection().
  • c.PriorityFlash now respects the MyBuff tag.

Version 4.6.6

  • Added a slash command to use the Blizzard proc highlights instead of the red border.
  • Bugfix - the "/bsf debug" command wasn't working correctly.

Version 4.6.5

This version supports the latest Paladin release.

  • c.DelayPriorityFlash() now respects spell ranges.
  • c.DelayPriorityFlash() now looks for a new spell attribute: "Cooldown".

Version 4.6.4

This version supports the latest Priest release.

  • c.DelayPriorityFlash() was not always accounting for cast time correctly.

Version 4.6.3-beta

This version supports the latest Priest release.

  • Added c.DelayPriorityFlash().
  • Added a "FullCD" parameter to c.GetCooldown().
  • Added c.RegisterInitiatingSpell(), and the logic to make it work w/ event handling.

Version 4.6.2-beta

This version supports the latest Priest release.

  • c.PriorityFlash now considers a new flag: "CanCastWhileMoving".
  • c.PriorityFlash and c.FlashAll now consider the "Range" flag even if Override is defined.

Version 4.6.1-beta

This version fixes a bug in the Mage beta.

  • c.IsSolo() now only considers visible group members, unless you set the "considerFutureGroup" flag.
  • Bugfix - c.PriorityFlash had possible infinite recursion w/ MovementFallthrough.

Version 4.6.0

This version supports the latest Mage and Warlock releases.

  • Now supports rotations with a MovementFallthrough function.
  • Added c.MakeMini()
  • Bugfix - c.PriorityFlash and c.FlashAll were checking your stance for a "form" spell even with Override.
  • Bugfix - c.PriorityFlash and c.FlashAll were not handling EarlyRefresh correctly.

Version 4.5.2

This version supports the latest Rogue and Druid releases.

  • Added c.MakeOptional()
  • Added c.MakePredictor()
  • Most of the buff functions now take an additional argument: "applied".
  • c.RegisterForEvents() now passes along SPELL_PERIODIC_ENERGIZE.

Version 4.5.1-beta

  • Bugfix - c.FlashAll() and c.PriorityFlash() were not properly considering power levels.
  • Added c.GetHealth()

Version 4.5.0-beta

This version supports the latest Druid beta release.

  • Nothing ever flashes when you are in a vehicle anymore.
  • c.GetPower() now considers the currently casting spell even when you pass in the second argument, as long as it is the primary power type.
  • c.FlashAll() and c.PriorityFlash() now consider queued spells for flags like Buff and EarlyRefresh, which are also evaluated even if you define Override.
  • Added c.GetHealthPercent()

Version 4.4.0

This version supports the latest Shaman and Monk releases.

  • Added c.GetMinCooldown()
  • Added c.IsMissingTotem()
  • Added c.GetTotemDuration()

Version 4.3.2

  • Added Energizing Spores to c.SPELL_HASTE_BUFFS
  • Added Legacy of the White Tiger to c.CRIT_BUFFS

Version 4.3.1

  • Bugfix - occasional Lua error when logging in.

Version 4.3.0

  • Bugfix - c.RegisterOptions() was not setting the title at the top of the options window.
  • Bugfix - c.RegisterOptions() was not handling the "Spell Flashing" checkbox in the upper left.
  • Bugfix - now tracks the travel time of spells internally, since SpellFlash's methods got buggy w/ 5.2.
  • Bugfix - work around a quirk in LibActionButton that broke the red border for proc highlights in certain action bar positions.
  • If you pass an argument to c.ToggleDebugging() it now toggles whether that tag is printed by c.Debug().
  • c.AddSpell() now looks for the Applies attribute.
  • Removed c.RegisterAura(), in favor of the new Applies attribute.
  • Removed c.EstimateTravelTime(), since it was never used outside of the library itself.
  • Added c.IsTagOn()

Version 4.2.3

This release is important for the latest Monk version, and may fix unreported issues with non-English clients.

  • Bugfix - c.GetBufStack() would always report 0 on non-English clients.

Version 4.2.2

This release should make some modules more friendly for lower-level characters. But there are still no promises about how well any of them will work at lower levels.

  • c.GetCooldown() now reports a large number when you don't have the spell.
  • c.PriorityFlash() now prints the flashing spell to debug output.

Version 4.2.1

This release may affect many classes, but only if you don't have all of your spec's important spells on your action bar (e.g. because you are low level).

  • c.PriorityFlash() now consults s.ItemFlashable() and s.Flashable().

Version 4.2.0

This release supports the latest Warlock version. IMPORTANT NOTE: You should not have to download this, or any future version of Bitten's SpellFlash Library. It will be included with future versions of class modules from now on.

  • c.IsSolo() now optionally factors in whether you are queued for a dungeon/raid/scenario.

Version 4.1.0

IMPORTANT NOTE: You should not have to download this, or any future version of Bitten's SpellFlash Library. It will be included with future versions of class modules from now on. This updated supports the latest Priest & Atonement releases.

  • No longer flashes anything when you are a ghost.
  • Added c.IdMatches().
  • Replaced Blood Pact with Dark Intent in c.STAMINA_BUFFS.

Version 4.0.0

IMPORTANT NOTE: You should not have to download this, or any future version of Bitten's SpellFlash Library. It will be included with future versions of class modules from now on.

  • No longer flashes anything when you are dead.
  • Replaced the global table management in Utils with BittensGlobalTables (which is better).
  • Converted to the new global table management.
  • Added u.SkipOrUpgrade().
  • Added everything in OptionsFrames.lua.
  • The flags to turn rotations on/off now follow the convention Flash<RotationName>. It flashes when c.GetOption(flagname) is true.
  • Added c.RegisterAddon(), which also takes care of calling c.RegisterForEvents() and s.RegisterModuleSpamFunction.
  • Removed c.Flash().
  • c.PriorityFlash() now correctly colors spells for AoE that set their own color within CheckFirst.
  • c.DistanceAtTheMost() now works for friendly targets ... though perhaps not with the same granularity.

Comments

First Previous Page 1 of 9 Next Last
  • #160

    Thank you for all the updates, love this addon :)

  • #161

    I'm glad!

    Author of Bitten's SpellFlash.

  • #158

    Message: ...rface\AddOns\BittensSpellFlashLibrary\src\Events.lua:736: attempt to index field 'A' (a nil value)
    Time: 05/07/13 22:34:40
    Count: 8
    Stack: ...rface\AddOns\BittensSpellFlashLibrary\src\Events.lua:736: in function <...rface\AddOns\BittensSpellFlashLibrary\src\Events.lua:639>

    <Remaining error message snipped by Bitten to reduce clutter.>

    Last edited by Xemnosyst on 5/8/2013 1:22:48 AM
  • #159

    Thank you for this report.  Please try updating the library & see if it takes care of the issue.

    Author of Bitten's SpellFlash.

  • #156

    Does the library version-out-of-date disable still apply when updating the various modules? For example, I'm playing my priest, hunter, paladin, DK, and mage every day, and starting to play my rogue and monk. Right now I see updates for the base library plus druid, monk, priest, and warrior. I don't want to update just the priest module if all the other modules for the other classes will stop working from seeing the library out of date.

  • #157

    You can update them freely without interefering with any of the other class modules (unless I make a mistake, in which case you should tell me what broke).  There was a special circumstance a while back while I was making a transition when updating the library would break older modules that had not yet been updated, but that is all in the past.

    Also, you can delete the separate installation of the Library if you want to; it is packaged with each module now.

    Last edited by Xemnosyst on 5/7/2013 7:58:39 PM

    Author of Bitten's SpellFlash.

  • #154

    I've read through the comments and I understand that you think that people will confuse the default Blizzard proc highlights with the spellflash ones. I don't find it to be the case for me and I honestly hate the red border.

    Could you please make it an option to allow the true default Blizzard proc highlights instead of the red border? Just make it red border by default and recommend against using it.

    It'd be nice to have for those of us who really want it without having to edit your addon.

    Last edited by RedStarWarrior on 4/12/2013 12:23:38 AM
  • #155

    Done.  This is now available through the slash command "/bsf blizprocs", or via Bitten's SpellFlash Key Bindings.

    Author of Bitten's SpellFlash.

  • #149
    Re: Bitten's SpellFlash Library update naming

    Latest update of Library and Druid have the same name/version number as the previous ones.  This has been happening for at least 4 of the last 6 updates...and has happened a number of times before.  As I use the name/version number to determine if it's newer than the ones I have would be great if this could get sorted.

     

    Thanks

  • #150

    Where are you seeing a version number that is the same as before?

    Author of Bitten's SpellFlash.

  • #153

    I search the Curse Recently Updated every few days.  I see a new Library update, select 'Download Now" and end up with the same version I have.

    Thanks though - I get it now.  The Beta releases trigger the Curse notification, however only the latest 'full release' version is offered through 'Download' now.  The Beta versions are under the 'Other Downloads' tab.

    Cheers.

  • #152
    Quote from vorian4444 »

    It's in the actual name of the download: BittensSpellflashLibrary-4.6.0.zip.  This is the same versioning (4.6.0) title as the previous two downloads of Library posted. 

    Thanks

    Sounds like you are somehow notified that I release a new beta versions (4.6.1-beta.zip and 4.6.2-beta.zip), but then downloading the non-beta 4.6.0 each time.

    Author of Bitten's SpellFlash.

  • #151

    It's in the actual name of the download: BittensSpellflashLibrary-4.6.0.zip.  This is the same versioning (4.6.0) title as the previous two downloads of Library posted.

     

    Thanks

  • #147

    Hi!

    Is there a way to disable the thick red border when a proc happens? I would like to have the Blizz' default hightlightning ^^

     

    Thanks ;)

     

  • #148

    There is not.  I have a little more info about it at the end of the FAQ.

    Author of Bitten's SpellFlash.

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

Infinite Crisis NA

Get Your Preferred Access Code!