Get an Epic Experience with Premium

Bitten's SpellFlash Library

Libraries Login to Add Favorites
  • 31 Likes
  • World of Warcraft
  • 163,386 Monthly Downloads
  • Supports: 6.0.3
  • 5,626,136 Total Downloads
  • Updated 11/11/2014
  • Created 04/28/2012
  • 490 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: 60000.3.3
or

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.

Estimated Harm and Heal Target Counts

During your rotation function you will have access to the estimated harm and heal targets, to smoothly ramp through AoE rotatinos:

if c.EstimatedHarmTargets > 2 then
if c.EstimatedHealTargets > 5 then
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 60000.3.3

  • Protect c.GetChargeInfo against unknown spells.

To avoid bugs, if you do not know the spell we return 0 charges, 9001 seconds to next charge, and 9001 seconds to cap. These seems like the safest return values, and avoid needing to guard every invocation with a check the spell is already known.

Version 60000.3.2

  • Added PreFlash to individual rotations.

This is a pretty internal change, but allows a PreFlash function to be defined on any rotation, which will be run prior to any other flashing being done. This exactly mirrors the PreFlash function on the class module, but on a per-rotation basis.

This is to support the Warlock module, which has per-class resources to track, but is applicable to any rotation that has unique management to do prior to rotation calculations.

Version 60000.3.1

  • Fix range detection (c.DistanceAtThe{Least,Most}) for 6.0 API changes.
  • Minor cleanups elsewhere.
  • Added "Armor" food type placeholder, against the future.

Version 60000.3.0

  • New maintainer: http://www.curse.com/users/slippycheeze - HUGE thanks to Xemnosyst for all the work done to get this to where it is today, and keep it awesome. I only hope to be half as good on my best days.
  • Update to utf-8-unix encoding everywhere.
  • Standardize on 3 spaces for indentation.
  • Added AddonLoader support to toc. (delay loading only)
  • Updated author details.

Version 60000.2.1

  • AoE target count, via c.EstimatedHarmTargets and c.EstimatedHealTargets.

Version 60000.2.0

  • Updated buffs and foods for 6.0 (and WoD).

Version 60000.1.2

  • Bugfix for occasional Lua error.

Version 60000.1.1

  • Bugfix: Getting spell cast time changed w/ patch 6.0.

Version 60000.1.0

  • Making the "Out of Date" status go away.

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.

Comments

First Previous Page 6 of 13 Next Last
  • #139

    Hi,

    Just wondering how i can disable the red border that has replaced the blizz default proc highlighting, and get back the blizz default proc highlighting?

    I think spellflash is an awesome addon, but I use it in conjunction with the blizz default proc highlighting.  In the heat of battle, the blizz default grabs my attention much more than the red or the spellflash, which i find very helpful.

    Up until 5.2, I was using the updated class spellflash modules, but retained the 3.15.1 library which allowed the blizz default to continue, but I can't seem to get that to be the case since 5.2.  Any help on this would be greatly appreciated.

    Additionally, on my shadow priest, the macros won't flash.. i've tried disabling and re-enabling 'flash macros' numerous times.

    Thanks

  • #141

    Nevermind, I worked out how to restore the Blizzard default proc highlighting in the updated modules.

    And as for the priest spellflash not flashing macros, that might have had something to do with me mistyping 'showtooltip' in the macros and copying the error across all macros.. lol.  Fixed now :)

    Cheers

     

  • #140

    There is not currently a way to use one of my modules and still have the default animation for proc highlights. I just added a little more info to the FAQ question about it ("I like the default Blizzard proc highlighting. Give it back!").  In what situations are you finding it important to use a spell with a proc, but SpellFlash isn't flashing it?

    As for the macros - have you looked at "My macro is not flashing" in the FAQ?

    Author of Bitten's SpellFlash.

  • #135

    Addon randomly stopped working for me today.  I updated and even went as far as uninstalling and reinstalling it, but still not getting it to work.  Have also deleted the WFT folder. Was working earlier and now just the weapon imbument and totems flash. Any suggestions? 

    Last edited by innocencelost013 on 3/8/2013 3:05:26 PM
  • #137

    Thank you for adding the extra info in your edit - that helps narrow the problem down.  Try turning on debug info and see if it's printing a spell out to your chat log (see the hidden options).  If it is printing a spell out that either you do not know yet (your level is too low), or that you do not have on your bars, I know how to fix it.

    Oops, that won't work for the Shaman module.  If you don't already have it, try installing the separate copy of Bitten's SpellFlash Library.  If that fixes the problem for you, I know how to fix it so that you won't need the separate copy anymore.

    Last edited by Xemnosyst on 3/8/2013 3:20:59 PM

    Author of Bitten's SpellFlash.

  • #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.

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

Curse $5,000 Dreamhack CS:GO Skin Giveaway

Enter Now!