Get an Epic Experience with Premium

SpellFlash: Template Module

Plugins Login to Add Favorites
  • 42 Likes
  • World of Warcraft
  • 38,746 Monthly Downloads
  • Supports: 6.0.2
  • 4,170,218 Total Downloads
  • Updated 10/14/2014
  • Created 04/06/2010
  • 169 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: Public Domain
  • Newest File: 3.0.8
or
Support development! **
Donate

About SpellFlash: Template Module

This is the official template module for SpellFlash.

Please click on the "Like" buttons at the top right of this page. Also click here for the Facebook page.

To add code for another class yourself, you may use this addon as a starting template, and may look at the other addons I have made for the existing class functionality as a reference.

The new SpellFlash Cataclysm API list may be found here.

Getting Started:

If you want to secure the name of your new addon module, you will want to create the addon at CurseForge.com under the desired name.

The addon's main folder name and toc file name must be exactly the same as the CurseForge.com identifier Slug: that is chosen (except for upper and lower case differences). This is to prevent the creation of duplicate addons with the same addon folder name.

Example: The CurseForge.com identifier Slug: of this addon is: spellflash_templateaddon
The main folder and toc file of this addon have been named: SpellFlash_TemplateAddon

The Title: of the addon listed inside the toc file and the Addon name: on CurseForge.com may be formatted however you like, but I suggest that they begin with SpellFlash: to make addon searching simpler.

Example: The Title: of this addon inside the toc file and the Addon name: on CurseForge.com is: SpellFlash: Template Module

Making Your Own Module:

First make sure you have the latest version of this Template Module. I prefer to use the program Notepad++ to edit the files with.

  • To begin editing you may start by changing the SpellFlash_TemplateAddon folder name to something like: SpellFlash_MyAddon Then inside that folder change the SpellFlash_TemplateAddon.toc file name to something like: SpellFlash_MyAddon.toc
  • Now inside that same toc file: You will want to edit the Version: number to something like: 1.0 (or whatever version number you want to designate your new module as). And change the Title:, Author: and URL: to reflect your new module. Then change X-SpellFlashAddon-LoadWith: to show the correct class or race that this module is for (without this the module will not load when you enter the game).
  • For every spell that will be used with your module, you must add a table for it in the Spells.lua file.
  • The scripts used to flash the spells are to be placed in the Rotations.lua file.
  • Special options and configurations may be enabled in the Configs.lua file.
  • Any other customizations may be added to the Custom.lua file.
  • Any localizations added to your module (using the L["example"] localization table) will require any translations for them to be added to their designated language section in the Localization.lua file.
  • The Core.lua file should not be edited, but should be replaced by a newer version of the same file if available.
  • You should replace the notes in the Version_History.txt file to reflect your own version notes, and you may want to edit the HELP.txt file to your liking.

If you have even five or ten dollars to spare, it would mean an awful lot to me and my daughter.
Use this button to send donations of $12 or more: http://www.paypal.com/en_US/i/btn/btn_donate_SM.gif
Use this micro payment button to send donations of less than $12: http://www.paypal.com/en_US/i/btn/btn_donate_SM.gif

Or use this address if you have Bitcoins: 1PzPJA5uiUKauuFfe1VJhkPWuHEvMDvvDn

Donations are not required to download and use this addon, but they are very much appreciated.

  • Please create a ticket for bugs and suggestions here.

Please click on the "Like" buttons at the top right of this page. Also click here for the Facebook page.

Version 3.0.8

  • Bumped the toc file interface number to 60000.

Version 3.0.7

  • Bumped the toc file interface number to 50400.

Version 3.0.6

  • Bumped the toc file interface number to 50300.

Version 3.0.5

  • Bumped the toc file interface number to 50200.

Version 3.0.4

  • Added the s.LocalizeFontStrings function to the Core.lua file.

Version 3.0.3

  • Bumped the toc file interface number to 50100.

Version 3.0.2

  • Added a.PlainAddonTitle variable to the Core file.

Version 3.0.1

  • Returned build checking for future simplicity.

Version 3.0

  • Bumped toc version number.

Version 2.17

  • Small change to the Load.xml file to prevent a possible problem with file loading order when not clearly defining all old and new files.

Version 2.16.1

  • Renamed files that begin with Cata_ to use Old_ instead.

Version 2.16

  • Added a.SetSpamFunction function to the Core.lua file to replace s.Spam and s.RegisterModuleSpamFunction in the Rotations.lua file.

Version 2.15

  • Included new registering functions in the Core.lua and Rotations.lua files.

Version 2.13

  • Updated to add transitional support for Mists of Pandaria.

Version 2.12.1

  • Insignificant modification to the Localization.lua file.

Version 2.12

  • Edited the Core.lua file so that a function named config.OnModuleSettingsSave may be added to the Configs.lua file.

Version 2.11

  • Added a Custom.lua file for adding customized variables.

Version 2.10.2

  • Small change to the Core.lua file for testing purposes.

Version 2.10.1

  • Commented out example function calls in the Scripts.lua file.

Version 2.10

  • Using new functions in the Core.lua file that will prevent events from running for a module that is disabled.

Version 2.9

  • Added functions to the Core.lua file:
    • a.SetDefault
    • a.GetDefault
  • The function a.GetConfig will now return default values instead of nil that are set using the a.SetDefault function.
    • A second argument can be set to true to disable this.
  • The function a.SetConfig will now save default values as nil that are set using the a.SetDefault function.
    • A third argument can be set to true to disable this.

Version 2.8

  • Added functions to the Core.lua file:
    • a.Flashable
    • a.AllFlashable

Version 2.7

  • Added a return value to the a.FlashAll function in the Core.lua file.

Version 2.6.1

  • Added the Run flag to the example spell tables.

Version 2.5

  • Replaced spell table examples with a web address where the examples may be found and updated in a single location.

Version 2.4.1

  • Fixed mistake in last version.

Version 2.4

  • Included some of the older code into the Core.lua file for backward compatibility to allow partial transitions to the newer methods.

Version 2.3.1

  • Added an additional description at the top of the form table.

Version 2.3

  • Added edit box configurations.

Version 2.2

  • Added more spell table flags:
    • RequireDebuff - place buff ID or table of IDs here if a debuff needs to be on the target first
    • RequireMyDebuff - place buff ID or table of IDs here if your debuff needs to be on the target first
    • RequireBuff - place buff ID or table of IDs here if a buff needs to be on the target first
    • RequireMyBuff - place buff ID or table of IDs here if your buff needs to be on the target first
    • RequireBuffUnit - you will need to use this if the buff or debuff is not applied to your target
    • RequireStack - use this if the buff or debuff requires more than one application
    • RequireMoreBuffTime - use this to require more time be on the buff or debuff
    • NoGCD - use this to not use global cool down time to indicate the spell earlier
    • Melee - use this to check if you are within melee distance if the spell does not have built in distance checking
    • FlashID - use this to add a spell ID or a table of spell IDs that will replace the spell that is flashed

Version 2.1

  • a.Flash will now return the title of the last spell that is flashed.
  • Added Continue flag as an option for spell tables.

Version 2.0

  • Converted the code to use tables instead of functions to store spell conditions.
  • Added functions:
    • a.Flash
    • a.FlashAll

Version 1.56.1

  • Added functions to the Options.lua file to shorten the config functions:
    • a.SetConfig(key, value)
    • a.GetConfig(key)
    • a.ClearAllConfigs()

Version 1.55.1

  • Reformatted the URL in the toc file to conform with the latest curse.com site changes.

Version 1.55

  • Fixed mistake in template custom button code.

Version 1.54

  • Reconfigured the Configs.lua file to load after the Options.lua file.

Version 1.53.2

  • Fixed mistake in template code.

Version 1.53.1

  • Small word change.

Version 1.53

  • Added an option added to the Options.lua file for a a.OtherAurasFunction function in the Configs.lua file.
  • Changed the Options.lua file so that the event functions in the Configs.lua file gives the name of the event for the first argument and then all of the event arguments.

Version 1.52

  • Moved setup of the Castable tables from the Functions.lua file to the Options.lua file.

Version 1.51

  • Added a few more variables to the Configs.lua file.

Version 1.50

  • Replaced the Events.lua file with a Configs.lua file.

Version 1.48.1

  • Small change in the Options.lua file.

Version 1.48

  • Added an Events.lua file that should help to easily add event triggers to a module.

Version 1.47

  • Added a CustomButtonOptions table of settings in the Options.lua file to simplify adding custom options buttons.

Version 1.46.1

  • Bumped TOC to 40300.

Version 1.46

  • Added support for Brazilian Portuguese translation.

Version 1.45.1

  • Repaired localization fonts for some languages in the XML file directly.

Version 1.45

  • Reformatted the castable functions.

Version 1.44

  • Repaired localization fonts for some languages.

Version 1.43

  • Repaired localization fonts for some languages.

Version 1.41

  • Edited the title color.

Version 1.40.4

  • Repaired toc file.

Version 1.40.3

  • Bumped TOC to 40200.

Version 1.40.2

  • Bumped TOC to 40100.

Version 1.40.1

  • Updated the example Castable functions to show the additional options included in the latest version of SpellFlash.

Version 1.40

  • Build checking has been removed from the Localization.lua file and will now be ran at the start of each file independently.

Version 1.39.1

  • Small change to the Options.lua file.

Version 1.39

  • Added commented out code for the 14 optional check buttons added to the options frame template in the 5.84 version of SpellFlash.

Version 1.38.4

  • Updated to show the new x variables.

Version 1.38.3

  • Edited the Options.lua file a little.

Version 1.38.2

  • Updated the example Castable functions to show the additional options included in the latest version of SpellFlash.

Version 1.38.1

  • Rearranged the code in the Options.lua file a little for better readability.

Version 1.38

  • The options frame template is now loaded with SpellFlash.
    • The options frame template loaded with the OptionsFrame.xml file is no longer required.

Version 1.37

  • Reworked the Options.lua and OptionsFrame.xml files some.
  • The Castable tables will no longer be created in the Options.lua file and will now need to be created at the beginning of the Functions.lua file.

Version 1.36

  • Optimized the localization function in the Localization.lua file for better memory usage.

Version 1.35

  • Will no longer create local z tables for each spell function. Will now always wipe an existing local z table to reduce memory usage.

Version 1.34

  • Updated to be compatible with the 5.51 version of SpellFlash.
    • The z.BuffUnit variable has been returned to the castable functions and will be required for buffs or debuffs that are not applied to your target.
    • z.BuffUnit should be used instead of z.Unit for self buffs or any buff or debuff that is not applied to your target.

Version 1.33

  • Updated to be compatible with the 5.50 version of SpellFlash.
  • In the castable functions replaced z.SpellName with z.SpellID and z.BuffUnit with z.Unit.
    • z.Unit is now required for spells that are not cast on your target such as self buffing spells.
  • Replaced the included "Attack" castable checking function with the "Auto Attack" castable checking function.

Version 1.32

  • The x table is now usable in the Functions.lua and Scripts.lua files.

Version 1.31.1

  • Bumped the toc file interface number to 40000.

Version 1.31

  • For Cataclysm, Castable functions are no longer imported from the main SpellFlash addon.
    • Included a few default Castable functions that are no longer imported.

Version 1.30

  • For Cataclysm:
    • Replaced spell names where applicable with the global spell ID number.
    • The SpellName and ItemName local functions have been replaced with s.SpellName and s.ItemName functions.

Version 1.29

  • Formated the Cataclysm functionality to use the new s table API.

Version 1.28

  • Removed the local function SpellRank from the Cataclysm files.

Version 1.27.1

  • Renamed the table passed to the spam functions in Cataclysm from z to x, to clearly distinguish it from the z table that is used with the castable checking functions.

Version 1.27

  • Added the z.NotWhileMoving argument included in the 5.2 version of SpellFlash to the castable checking function examples.

Version 1.26

  • Updated Cataclysm compatibility for the 5.0 version of SpellFlash.

Version 1.25

  • Made build checking a little simpler to understand.

Version 1.24

  • Renamed files Functions_Old.lua and Scripts_Old.lua to Old_Functions.lua and Old_Scripts.lua.

Version 1.23

  • Added ability to place all the live server support into the Functions_Old.lua and Scripts_Old.lua files so that Cataclysm support may be added into the same module separately.

Version 1.22

  • Moved all localizations into a single file.
  • This version of this template will work with Cataclysm once SpellFlash has been updated to work with Cataclysm.

Version 1.21

  • Replaced the SpellFlashAddon.msg function with the print function.

Version 1.20

  • Updated compatibility for the 4.2 version of SpellFlash.

Version 1.19.4

  • Moved a couple separating commas around in the Spam table for more consistent grouping.

Version 1.19.3

  • All text based documents are now encoded using UTF-8.

Version 1.19.2

  • Because of UTF-8 encoding, unicode escape sequences are not required.
  • Tutorials for unicode escape sequences have been removed from the localization files.

Version 1.19.1

  • Slightly edited the _Initialize.lua file.

Version 1.19

  • Updated compatibility for the 4.1 version of SpellFlash.

Version 1.18.5

  • Replaced the getglobal function with the _G table in the Options.lua file.

Version 1.18.4

  • The Castable functions in the Scripts.lua file will now notify the user if the function is called with a spell name that has not yet been defined in its own function in the Functions.lua file.

Version 1.18.3

  • Spells are now required to be defined in the Functions.lua file to be able to work from the Castable function in the Scripts.lua file.

Version 1.18.2

  • Reverted changes in the Functions.lua from previous version.

Version 1.18.1

  • In the lua files now able to use the letter L in place of Table.Localize.

Version 1.18

  • Now using function SpellFlashAddon.CopyTable to copy tables.

Version 1.17

  • Refined options slider updating code a little.

Version 1.16

  • Now able to check if an item is castable.
  • Renamed localization variable from LOCALIZATION to Table.Localize.
  • Castable functions created from within a module are no longer global and will only work within the addon it was created for.

Version 1.15

  • Removed case sensitivity of the addon name for the options menu.

Version 1.14

  • Reformatted title in the toc file.
  • Reformatted title in the options menu.

Version 1.13

  • Added guide numbers to spec selection slider bar.
  • Options frame is now created from a template file to reduce the amount of required changes to convert SpellFlash_TemplateAddon into a functional module.

Version 1.12

  • Hopefully removed harmless error message from popping up.

Version 1.11

  • Added optional description field to the selectable configurations.
  • Renamed a few local functions to reduce the script size.
  • Added a few more local functions to reduce the script size.
  • Using incremental version numbers again.

Version 1.10

  • Replaced the z.DebuffName and z.BuffName variables in the Castable functions with more specific variables.
    • The new z.Debuff, z.MyDebuff, z.Buff and z.MyBuff variables are now able to take either a single name or a table of names.

Version 1.9

  • Completely reformatted localization functionality.
  • Significantly reconfigured file and variable names to reduce the amount of required changes to convert SpellFlash_TemplateAddon into a functional module.

Version 1.8

  • Added the ability to add multiple selectable scripts per module addon.

Version 1.7

  • Will no longer try to load SpellFlash_TemplateAddon.

Version 1.6

  • Replaced X-SpellFlashAddon-LoadWithClass and X-SpellFlashAddon-LoadWithRace in the toc file with X-SpellFlashAddon-LoadWith.

Version 1.5

  • Added more local functions to reduce the script size.

Version 1.4

  • Added more local functions to reduce the script size, including the SetColor function for selecting a different color if conditions are met.

Version 1.3

  • Added the ability to not load an addon at all unless you log on with a specified class or race.
  • Added option to disable flashing for each addon without requiring to log out of the game to disable them.

Version 1.2

  • Added a child options frame.

Version 1.1

  • Incorporated improvements of the SpellFlashAddon.MeleeDistance function by adding a reference to the SpellFlashAddon.OutsideMeleeSpells variable.

Version 1.0

  • First release.

Comments

  • #64

    Could you pls advise me what I should change in old ReSham with your Template Module so that ReSham would work with new patch? Unfortunatelly the author of ReSham isn't playing wow any more and will not update his addon. I'm interested only in spells for restoration shaman.

  • #65

    I am not sure. I would have to look into it. Currently I am focusing on my school work and don't have a lot of time for side projects.

  • #17
    Im thinking of making one fore moonkin and possible a ret pally one after. I Enjoy both classes and i can copy some of the code from the moonkin "faceroller" addon.
  • #18
    By all means, go right ahead. SpellFlash has been created to be able to work with more than one class module at a time, and is easily changeable in the options window. The more developers the merrier. This allows for more choice. I wish everyone would start making a module for a class that they play. Even if it is only to add support for basic buffs and debuffs, it would still be very useful to people. Buffs and debuffs are a pain to time, and I find that this addon makes them completely painless to handle.

    I very much would like to make this addon more popular. If someone came out with only buff and debuff modules, that might allow this addon to get more popular. I wish I had more expertise with other classes or I would add more support myself. I very mush want this addon to take off and get a lot of downloads like some of the most popular addons do. I think if at least some buff and debuff support was added for every class, then this addon would explode in popularity.
    Last edited by BigRedBrent on 8/20/2012 5:26:14 AM
  • #15
    can u make a pally one?
  • #16
    I can't do everything, that is why I have opened up this addon to third party modules. Start looking for a developer who would be interested in making a pally one!

    Everyone who wants more class functionality added to SpellFlash should look for some good developers who would be interested and point them to this SpellFlash: Template Module page.
  • 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 »

VIP trip to SMITE World Championship