EventHorizon

Bad news, everyone: I quit WoW, my account expires on August 11th, and unfortunately Taroven quit too. Unless someone takes over, this addon is officially abandoned. So tick that "Load out of date AddOns" check box and hope for the best!
I just wanted to say thanks for using my AddOns and for all the support, feedback, bug reports, and kind words. Very much appreciated. Bye!

Description
Displays timer bars for you most important abilities' target debuffs (including DoT ticks), cooldowns, and player buffs. All bars share a common time scale to make it easier to plan the next casts in your rotation.
Currently supported classes are Druid, Hunter, Mage, Paladin (Retribution), Priest (Shadow), Rogue, Shaman (Elemental) and Warlock.

Dezzimal was kind enough to put a video on youtube, demonstrating and explaining the addon. Edit: I just found another video showing the AddOn on a Destru Warlock.

Here's what it looks like in action on a Shadow Priest (at 1 FPS ):
The big white line is the current time. Future events are on the right side, past events on the left. So as time goes by, the events scroll from right to left.
The green bars are your cast bars. They use exactly the same times that your normal cast bar would display, with all haste modifiers applied.
You can also see cooldowns, DoTs, and their ticks (predicted in the future, and from the combat log in the past).
The white lines that appear before the cast times are the times when you press the button (send the cast message to the server). The difference between this line and the start of the cast is your lag.

Settings
There's no options GUI, and there won't be.
You can move the frame around by dragging this little handle in the upper right corner.
You can toggle the main frame with /eventhorizon or /ehz.
If you want to change anything else, you have to edit the config.lua files. You can open these files in any text editor, for example notepad.
We try to keep these files clean and well-documented. (Comments start with "--".) If an option is not as clear as it should be, please let us know.

Let's say you've changed some settings. When a new version comes out, you'd have to manually merge the config.lua file. To prevent this, you can create a file named EventHorizon/myconfig.lua. If present, this file will be read after config.lua, thus overwriting the settings in config.lua. Here's my myconfig.lua:

If you'd like to show/hide the addon under certain conditions, please have a look at Goose. The frame you have to add is called EventHorizonFrame, a good start for a condition is "[combat] show;hide". If you're worried that you might accidentally move the frame while in combat, you could also use Goose to hide EventHorizonHandle.

FAQHow can I change the colors for bars?
At the moment you can't. It's one of the features planned for v1.0.

What about trinkets?
I don't think that tracking trinket procs is a useful feature. EventHorizon is designed to present you with information relevant to decision-making. Sure, you could occasionally refresh a DoT when a trinket buff is about to fade. But the overall gain in DPS (assuming there even is one!) would be very small. So I don't think it's worth cluttering the interface with two more bars.
That being said, it's already possible to track the proc spells from trinkets. For an example look at the Sundial of the Exiled in the comments of the Priest module.

Notes
The addon is intended for level 80 raid chars. While leveling your rotation doesn't really matter anyways, mobs just die too fast.
If you want to help us develop and fine-tune the existing modules, please contact me via PM.
When you report a bug, please include as much relevant information as possible. (Class/spec/how to reproduce/etc) Get an addon like Bugsack for copypasteable error messages. If your bug report is very long, please send it as a PM.
If you have suggestions/feedback feel free to leave a comment.

Credits
Taroven for adding the Druid, Warlock, and Rogue modules, being helpful on IRC and for pushing me to add more features.
Dezzimal for the nice video.
Psychosomatic for the Paladin module.
Binkenstein for helping me with the Elemental module.

v0.10b:
Druid: Cleaned up comments. Added simple Eclipse tracking (duration and cooldown, no proc info). Rip set to refreshable to fix tick timing with Glyph of Shred.
Hunter: Arcane Shot not tracked when Explosive Shot is talented. Moved Steady Shot to above Kill Shot. Cleaned up some oddities with the comments.
Rogue: Moved ShS nearer to the bottom.
Warlock: Added Glyph of Life Tap for all specs. Added Drain Soul when specced Death's Embrace.

v0.9c
Fixed: Using the slash command will now completely disable the addon. The state is saved in the SavedVar.
Fixed: Indicators are now hidden when their bar is hidden.

v0.9b
Fixed: Ticks from channeled spells were not properly unregistered. This could sometimes lead to disappearing ticks in other spells bars.

v0.9a
Fixed: Overlapping segments won't flicker anymore.
Added config.auraunit field for spell configs to specify a non-default unit (e.g. 'player' for debuffs).
Paladin: Set Divine Storm as required talent for all spells to make the module Retribution-only.
Mage: Added Arcane and (some) Frost spells. Added talent requirements for Fire spells. Added Fireball.
Getting ready for 3.1: Druids' Berserk and Paladins' Divine Storm talent index changes, Warlocks' Siphon Life gets removed. These also should work now on the PTR.

v0.9
The spell bars that depend on talents are now created/shown/hidden when the talents change. Reloading the UI is no longer necessary. Should be working in both 3.0 and 3.1.
Added Paladin module from Psychosomatic. Retribution only, still needs talent dependencies.
Priest: Added talent dependencies.

v0.8
Bar segments are optionally textured now instead of using a solid color.
Added slash commands /eventhorizon and /ehz to toggle the visibility of the main frame.
Added the ability to track debuffs which are unique per mob. The debuff bars get a slightly different color when they were not applied by you.
Druid: The Mangle bars now track Mangle and Trauma debuffs. Added cooldown for Mangle - Bear. Added DoT ticks for Insect Swarm and Moonfire.
Mage: The Scorch bar now tracks both Imp Scorch and Winter's Chill.
Tweaked the default texture a bit.

v0.7b
Removed some settings in the class files that were overwriting settings in the master config.

v0.7a
Warlock: Show Incinerate if Emberstorm is talented, otherwise show Shadow Bolt. Removed Molten Core bar and Backdraft tracking from the default config, as they have no influence on the rotation.
Bugfix: The default anchoring of the handle wasn't working.

v0.7
Added config.spacing = <number> to set the space between two bars.
Added config.iconborder = <boolean> option to toggle the default Blizzard icon border.
Added config.scale = <number> option to scale the main frame.
Added GCD indicator:
config.gcdStyle = 'line' displays the end of the GCD as a thin line.
config.gcdStyle = 'bar' displays the GCD as a bar from now to the end.
config.gcdStyle = nil disables the GCD indicator.
config.gcdColor = {r,g,b,a} sets the color.
The handle and the background frame are now parented to the main frame. If you use Goose to show/hide EventHorizon, you only need to specify conditions for EventHorizonFrame.

v0.6a
Added minstacks=<number> syntax. The Imp. Scorch debuff bar is shown only when five stacks are applied.
Fixed Rogue Hunger for Blood talent index.
Major bug fixed: In some cases the main frame was created multiple times.

v0.5
Added modules for Druids, Hunters, [FFB-]Mages, Rogues and Warlocks.
Most of the settings were moved to the config.lua files. When you want to change something, look there first.
Spell frames can now be shown/hidden depending on stance. Look at the Druid config for an example.
Spell frames can now be created depending on talents. When changing the spec, you may need to reload the interface. Again, look at the Druid config.
Added an (optional) backdrop frame. Enabled by default.

v0.4
Bugfix: When the target dies, predicted ticks are now removed.
Bugfix: Textures of 1 pixel width should now be visible even when the UI scale is low.

v0.3
Minor bug fix.

v0.2
Predicted DoT/MF ticks lying in the past are now replaced by actual ticks taken from the combat log.
If SWP is refreshed after the last tick occured, it's treated like it was recast.

Originally posted by Xumio Excellent addon that really helps with the increasingly complex SV hunter priority system in 3.1. My only question is it is possible to hide Arcane Shot while SV spec but have it visible when MM or BM spec. Possibly some modifier that if ES is present and talented then Arcane Shot is hidden?

Easy to do.

I'll start on that config pass now and make some commits.

EDIT: Alright, fired off a few commits. Here are the changes I've made:

Rogue: Moved ShS nearer to the bottom. Envenom is now tracked alongside Deadly Poison.
Druid: Added simple Eclipse tracking. Only shows duration and cooldown, does not track which proc.
Hunter: Arcane Shot no longer shows if Explosive Shot is talented. Steady Shot moved nearer to the bottom.

Excellent addon that really helps with the increasingly complex SV hunter priority system in 3.1. My only question is it is possible to hide Arcane Shot while SV spec but have it visible when MM or BM spec. Possibly some modifier that if ES is present and talented then Arcane Shot is hidden?

Originally posted by Tifi It's impossible to predict when exactly KS will become available, so I couldn't display a bar. I don't plan to take "not available" into account. It's the same thing if a caster is OOM, Revenge hasn't procced etc.

Could try coloring the icon red or something. *shrug*

EDIT: Better idea might be an opacity shift. Or both color and opacity to make it really distinct.

I put Arcane before CS/ES not because the CD is longer but because you want to be able to use your hardest hitting shot (CS/ES for non-BM hunters) as soon as its available, potentially even interrupting a SS cast to do so. Having CS/ES right next to SS makes that the easiest to see. <snip>

EventHorizon has the nice advantage of being pretty obvious about what to use next: When a bar runs out, it's time to use that skill. If two bars are running out at the same time, (generally) use the higher bar first. It's all about skill priority according to an optimal dps rotation.

There are always exceptions. Steady Shot, for example, is currently in an odd spot rotation-wise, and I'll probably end up tweaking that whenever I get the free time to do a sweep through the classes and specs to check everything over.

Long story short: I can see your point and the objective of the ordering you've posted, however I can't personally agree with it.

Many people use EventHorizon as a pure rotation helper rather than a simple cooldown/dot timer. I've had a few smacktarded-yet-geared DPSers in my guild download EH, and subsequently watched their DPS go to double or triple what it was - Simply because they knew what to do next.

Originally posted by gibreel ...
On a related note, does EventHorizon have a way of showing an ability as unavailable for reasons other than because its on CD? It would be nice if KS showed a CD like bar until the shot was actually usable.

It's impossible to predict when exactly KS will become available, so I couldn't display a bar. I don't plan to take "not available" into account. It's the same thing if a caster is OOM, Revenge hasn't procced etc.

I put Arcane before CS/ES not because the CD is longer but because you want to be able to use your hardest hitting shot (CS/ES for non-BM hunters) as soon as its available, potentially even interrupting a SS cast to do so. Having CS/ES right next to SS makes that the easiest to see.

On a related note, does EventHorizon have a way of showing an ability as unavailable for reasons other than because its on CD? It would be nice if KS showed a CD like bar until the shot was actually usable.

As for BA being missing from my install, I guess I had the previous version somehow, or perhaps you re-uploaded 0.10 because my version showed the base module being 3.1 compatible, but all the class addons being back-revved. I just swapped specs and BA immediately appeared in the EventHorizon window.

Is there a way to create two of these windows? I'm guessing remaking all the files in the original folder and added a 2 to the end of each would to it, but for it to be in one single set (for example having EventHorizon_Class and EventHorizon_ClassII checked in your addon list would enable two tables in game).

Originally posted by gibreel Second, having read through the code, I haven't easily been able to find where you decide the order in which to display bars...

The order of the bars is simply the order in which the :NewSpell function is called. All you have to do is reorder those calls in the config.lua file. How should the Hunter spells be ordered by default?

I added Black Arrow in 0.10, is it not working? The spell ID is in the wowhead URL, wowhead.com/?spell=<spell ID>.