WhenLevel World of Warcraft AddOn

This simple addon records when a character gains a new level. It records how much time has been played to that point as well. There is one slash command /whenlevel that creates a simple report of when the character leveled and how much time was played at each level and how much time was played overall.

WhenLevel Date Size SHA1 signature Notes
003 2009-03-15 4080 b95623d324d1c1b015c60ef7814e077c98784e7e Made output strings localizable
002 2009-03-11 3464 4f8e5d6ed1b76211210bea40cccbdf154326d3c6 First public release

SMH - Simply Magical Healer World of Warcraft AddOn

Special Note: As of WoW 3.02 Blizzard has unified +healing into Spell Power and changed the percentage of Spell Power that applies to healing. There are a few cases where specific abilities cause changes to only be applied to Healing and not Spell Power, like a Druids's Tree Form. But more importantly, Blizzard is making it so downranking spells is not possible. Therefore, the real purpose of this addon is being removed, and work on this addon will not continue.

Special Note: Blizzard has changed the way addons work significantly in patch 2.0 and this causes all versions of SMH from 0.9.9.3 and earlier not to work. Basically addons can no longer target nor cast spells. This is the core functionality of SMH. From version 0.9.9.4 of SMH and later the most functionality that Blizzard permits will be provided. The current incarnation of the addon provides a user interface of a window with an icon for each of the caster's supported healing spells. They are arranged from left to right with an icon representing each rank of each spell. This window also indicates who the current target and current focus are. When the user initiates a heal with the /smh command (through the command line, macro or binding) there are two possible results: (1) the spell that needs to be cast will be highlighted with an appropriate color, or (2) the target that needs to receive a spell will be highlighted. In the second case, once the user targets the appropriate recipient, the proper spell icon will be highlighted. The spell recipient will highlight in red if not already one of target, focus or self. The spell icon will highlight in green if the spell should be cast on the target. The spell icon will highlight in blue if the spell should be cast on the focus. The spell icon will highlight in orange if the spell should be cast on self. Clicking on the spell casts it on the target. Shift-clicking on the spell casts it on the focus. Alt-clicking on the spell casts it on self.

This addon was previously known as SMart Heal with version 0.9.7 and earlier. However, since there are two other addons, SmartHeal and SmartHeal Enhanced, that have similar names this has been renamed from version 0.9.8 to hopefully minimize any possible confusion.

This addon's main function is to make the process of healing simpler by determining who needs healing, what spell to cast and what rank to use.

Classes that can use this:

Who can be healed:

The SMH addon is quite smart about determining the spell to cast, the rank of that spell, and the recipient of that spell. It provides the user a large number of options that can be configured to change the healing behavior, and a set of defaults that are reasonable so the user can start using the addon immediately without needing to set anything up.

The SMH addon arranges all of the possible healing recipients into priority tiers based on the options indicating who should be healed. Within each tier the recipients are ordered based on their percentage of remaining health. The addon attempts to heal the recipient in the highest tier with the lowest percentage remaining health. If for some reason that cannot be done, it proceeds to the next recipient in that tier. If it runs out of recipients in a tier, it proceeds to the next tier. This continues until there are no recipients left to attempt to heal. Note that the addon can determine that a recipient cannot be healed and will proceed to the next recipient. However, once it has determined a recipient should be healed and a spell cast is started, no other recipients will be checked until the user initiates another heal. The tiers are determined by setting priority options with the top tiers being:

Options that control putting characters in tiers include the following:

The following are reasons that the addon can determine that it will not attempt a spellcast:

The SMH addon determines the spell to cast and the rank of the spell based on internal settings and options the user can set. You can cast a specific spell in a smart way by using the command line like /smh ht which will have a Druid attempt to cast Healing Touch only. The recipient and rank will still be determined using the rest of the addon's logic, but the actual spell choice will be limited to Healing Touch. Each of the command line options can be shown with /smh help and vary based on the class of the character. If you use the basic healing without a specific spell with /smh the addon will determine the spell to use by looking at an algorithm table and then using a fallback mechanism if that algorithm does not provide a spell that can be cast. The algorithm table allows you to specify what spell will be cast when the recipient has a specific range of health remaining. For example, if in the table Regrowth is present at 75% and Healing Touch at 50% then any time the recipient has at least 75% of health remaining the healing spell will be Regrowth, but if the recipient has between 50% and 75% the healing spell will be Healing Touch. In this case, if the recipient has less than 50% the default mechanism will be used since the algorithm table does not have an entry that covers from 0% to 50%. The default mechanism allows you to order each of your healing spells such that the spells will be tried in that order until one is found that can be cast.

The SMH addon determines the rank of the spell using a lot of information, and will attempt to use the lowest rank spell that accomplishes the goal of bringing the recipient to full health (actually the percentage of full health based on the recipient's class as the options indicate -- allowing for overhealing and underhealing). Therefore, all basic computation use the amount of health the recipient needs and the amount of healing a spell of a specific rank can do. These are some features that go into deciding what rank to use:

There are some limitations to using this addon:

Profiles are named groups of the defaults that SMH provides. You can create a number of profiles, and configure each separately. You can then easily switch between profiles to provide different healing behavior. There is a small profile window that shows a subset of your profiles to allow you to easily switch between these profiles without the need to open the options user interface. Using this small profile window you can select which profile you want to be current to immediately switch the healing behavior of the addon.

Overhealing is accomplished by specifying the number of ranks over what is automatically computed to be needed. Thus, when the machinery determines the rank needed the overhealing modification raises that rank number within the limits of ranks known, mana, etc. For example, when the machinery determines that Healing Touch 5 is needed, but overhealing for Healing Touch is set to 2 ranks, a Healing Touch 7 is actually cast assuming the caster has that spell and enough mana to cast it. Note that overhealing only happens when healing does. In other words, if the recipient is not damaged, no spell will be cast. Another way to overheal is to specify the percentage of health to target higher than 100%. This means the machinery will use this as the target health and if it achieves this the recipient will be given more health than they needed at the start of the cast.

Minimizing mana waste is accomplished by determining the lowest rank spell to use to heal the recipient to its targeted percentage of health. However, in the case when there is more than one healer operating there can be cases when more than one targets the same recipient and has the possibility of wasting healing. This addon attempts to minimize the chance of this happening by communicating with other users of the same addon by sending messages over a private channel indicating the start of a spell cast that is not instant, indicating among other things who will be healed, and the estimated amount of healing that will be done. This addon then takes that information into account using a user-controlled confidence level to evaluate the health of possible recipients. Once a spell cast is complete (either success or failure), another message is sent out so addons can remove this data from its computations. For example, a Priest has started a cast of Greater Heal rank 3 on a Warrior because the addon has determined the Warrior is in most need of the healing. Half a second later a Druid initiates a heal, and normally that same Warrior would be the intended recipient. However, the addon notes that estimated amount of the Greater Heal will heal the Warrior to full, so the addon will not target the Warrior, but the second recipient most in need of healing. Note that in this example, had the Warrior been damaged again after the Priest started the heal, with a crit for example, the Druid's addon may see that the Warrior's current health plus the estimated heal from the Greater Heal would cause the Warrior still to be the first in priority for healing, and cast on the Warrior anyway. Also note that the Greater Heal from the Priest could be interrupted, etc. and the addon cannot compensate for that.

There are numerous options to configure including when to start healing pets and other recipients, how much overcasting should be done by spell, etc.

There is a single slash command that controls the addon: /smh

This basic slash command invokes the smart healing function. With parameters one can do a few other things which are detailed in the help system which can be found by doing: /smh help

Note that most everything should automatically work without any need for configuration. The configuration panel can be toggled open and closed by using the slash command /smh ui or by clicking the minimap button for the SMH addon.

Complete Backend Options SMH Frontend Date Size SHA1 signature
SMH 0.9.9.9 0.9.9.9 0.9.9.7.1 0.9.9.9 2007-10-03 94043 aa4564f8fc6034885dac353ff22fe90d39ed704b
SMH 0.9.9.8 0.9.9.8 0.9.9.7 0.9.9.8 2008-02-10 93840 059801aa10818663bc5ce09a5d207f577e13cd60
0.9.9.7 2007-08-14 16213 3c97b4b1dc85bcdcb04aa133cc2688286270aa16
0.9.9.7 2007-07-10 38660 8177e07ea5cdd2fc3e091036617dab17404f999b
0.9.9.6 2007-07-10 32689 59edc2a8dd013a68ed96859c1b80f229daa05229
0.9.9.6 2007-07-10 16070 93e9def6030823612d9ab54d13a5f0b6d1b111ac
0.9.9.6 2007-03-23 37803 343a3a778a5e1367a3d672a84c0501d51b4e9e47
SMH 0.9.9.5 0.9.9.5 0.9.9.5.1 0.9.9.5 2007-01-29 83735 8972e56268f3365d012dd7970ac5ddd54c509543
0.9.9.5 2007-01-29 36950 113b68d971c082bb5150306f8208428addf1dbf2
0.9.9.5.1 2007-01-29 32220 de37c5cfc7a58d7e0c40000902bf6b890712a1e6
0.9.9.5 2007-01-01 32217 da9fa23651614a3db7bcacf4227fd09c8163a707
SMH 0.9.9.4 0.9.9.4 0.9.9.4 0.9.9.4 2007-01-01 80297 05ab898be8f47e39ff4ea0df1a1815dbedaa539d
SMH 0.9.9.3 2006-10-30 93090 7e7fe0c7474a9ded332abd5d98f5cacb2d317bbe
SMH 0.9.9.2.1 2006-09-27 87602 7fd90ff430de13804a25a9d16a5126c263dfd8c5
SMH 0.9.9.2 2006-09-20 87545 be26d6ea2ba3ccba6a0d0152918f66e4cbf52b5a
SMH 0.9.9.1 2006-08-06 85761 1401a4bbe3d621c4731dfde20106a918eb649328
SMH 0.9.9 2006-07-18 61722 d15434bb2d67470d9a4c3373611c4e9c713b1daf
SMH 0.9.8.6 2006-07-12 59467 b96ae19ebb40c908614ba7a636242251c7203d31
SMH 0.9.8.5 2006-07-06 57626 757ac608c5f6d3e4564bc5ccf0f1f45d5f6c8aeb
SMH 0.9.8.4 2006-07-03 57284 25692a53120bc07368958d8630ea1c59de3178ee
SMH 0.9.8.3 2006-06-23 50923 3d5a134033349a2989141712789d01c276a81ba1
SMH 0.9.8.2 2006-06-22 50720 d33aa36a37b169c85f9dbbe46a81c3ab49a75c85
SMH 0.9.8.1 2006-06-22 50699 8f75ea40e721d229a69ce307d754111e6e17e8b6
SMH 0.9.8 2006-06-21 50680 ac4b8733864350ce5b6d23764220baddced5dd1e
SMH 0.9.7 2006-06-05 39894 ad85aa1caa20a596070afe3c18877e8e36e4a5eb
SMH 0.9.6 2006-05-28 31927 2355957275ed4688b641d60dddab4d8468f6c0da
SMH 0.9.5 2006-05-18 31085 3d8efdd1a9b02e562a0055ed7fab34a47c40a6cc
SMH 0.9.4 2006-05-09 26676 34a8f33ae51e81e052c44b3374d4363d6ef991c0

SMH 0.9.9.9

SMH Options 0.9.9.7.1

SMH Backend 0.9.9.9

SMH 0.9.9.8

SMH Options 0.9.9.7

SMH Backend 0.9.9.8

SMH 0.9.9.7

SMH 0.9.9.6

SMH Options 0.9.9.6

SMH Backend 0.9.9.7

SMH Backend 0.9.9.6

SMH 0.9.9.5

SMH Backend 0.9.9.5

SMH Options 0.9.9.5.1

SMH Options 0.9.9.5

Version 0.9.9.4 (AKA Whack-a-mole)

A major architecture change happens for this release because of the changes Blizzard made to the way addons work. The SMH addon is now split into three addons: SMH_Backend, SMH_Options and SMH. SMH requires SMH_Options and SMH_Backend, SMH_Options requires only SMH_Backend, and SMH_Backend can stand on its own. This architecture split allows others to make use of the SMH_Backend, for example, without all the overhead of the rest of the system. Despite this architecture change, your configuration from previous versions will be retained but the SMH.lua file in your saved variables directory will be renamed to SMH_Options.lua instead.

Currently, you need the Grid addon to allow SMH to work. When you initiate a heal using the /smh command (or keybinding), SMH determines who needs healing most according to your configuration. If that recipient is your current target, current focus or you it will highlight the healing spell in the healing spell window. The healing spell window allows click to heal the target, shift-click to heal the focus, and alt-click to heal self. If the spell is highlighted in green it means you should click to heal the target, blue means shift-click to heal the focus and orange means alt-click to heal self. If SMH sees the recipient is not the target, focus or self, it will highlight the Grid frame for the recipient in red. Click on this frame and the appropriate spell will be highlighted in the spell window. You should probably configure SMH to not heal pets or raid pets at the moment because there is no convenient way to target them.

Version 0.9.9.3

Version 0.9.9.2.1

Version 0.9.9.2

Version 0.9.9.1

Version 0.9.9

Version 0.9.8.6

Version 0.9.8.5

Version 0.9.8.4

Version 0.9.8.3

Version 0.9.8.2

Version 0.9.8.1

Version 0.9.8

Version 0.9.7

Version 0.9.6

Version 0.9.5

Version 0.9.4