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.

All warlock builds now have Glyph of Life Tap as one of their major glyphs. It's a substantial spell power bonus, lasting 20 sec. I recommend adding it to the default warlock config.lua. It could/should be the first spell, since all rotations begin with it.

Originally posted by Sano Would love to see some audio cues worked in. I quickly hacked in a debuff expiration sound last night. I'm sure there is a simple way to schedule a warning sound for expiring debuffs as well using AddIndicator, though it escapes me ATM.

Would love to see some audio cues worked in. I quickly hacked in a debuff expiration sound last night. I'm sure there is a simple way to schedule a warning sound for expiring debuffs as well using AddIndicator, though it escapes me ATM.

Originally posted by Rhomloc I had forgotten that the default Warlock config.lua does not include Drain Soul. Being able to see the ticks of Drain Soul, so that it can be clipped (exact concept as Mind Flay for a Shadow Priest) is critical for an Affliction Warlock, when a mob is < 25% health.

If possible, please add the following to the default Warlock config.lua, so I don't have to help my guildies add it.

I had forgotten that the default Warlock config.lua does not include Drain Soul. Being able to see the ticks of Drain Soul, so that it can be clipped (exact concept as Mind Flay for a Shadow Priest) is critical for an Affliction Warlock, when a mob is < 25% health.

If possible, please add the following to the default Warlock config.lua, so I don't have to help my guildies add it.

[A] Shouldn't be too bad to implement, it'd be Tifi doing that though. I mostly restrict myself to layout issues.

Will hopefully be possible if/when Tifi implements the new config architecture. Until then, you may use config.spacing to separate the bars a bit. (In random bits, you may also edit the color table in EventHorizon.lua at line 66 if you would like a different color scheme)

[C] Possible but not easy to implement. May be better left off to a branch of EventHorizon due to probable config issues, which I probably wouldn't mind taking up.

Leveling: I know what you mean, and agree on principal.

This would be more easily done via the class config files using something very similar to the requiredTalent flag. Really, the only differences between EventHorizon on an 80 char and a 10-79 char are some bars that may not do anything, which a requiredLevel flag would fix.

I'll take a look while I still have some time tonight, should be fairly easy to throw in.

Mind if I take a look at what might be required to allow 2 orientations? (Would probably mean abstracting some stuff out to one of two implemenations.)

i missed the spells for the enhancement shaman and so i added them in my config but it would be nice if they would be added to the "original" addon too so that i dont have to edit my config every time i update the addon.

i not olny added Stormstrike and lava lash because i think that eartshock would be the better choice for the enhancer

Originally posted by Silversage
[A] Lag detector. When the player casts a spell, have an indicator (yellow bar to the left of current time, maybe?) that shows a spell has been cast without corresponding indication of cast from the server.

Either have a way to specify bar color per spell, or allow a separator to be added between spells to help with visual tracking.

[C] This is the biggie. The bars are laid out top-to-bottom and move left. Because I've laid out my actionbar and hotkeys to match, it would be really great to be able to configure EH to flip 90 degrees, so that the bars are vertical, from left to right, and they move upward. This would not just increase the DDR effect, but would allow a closer mapping between visuals and fingers.

Fifth, a discussion about leveling versions of EH. I've read what you've written about rotations not being an issue while leveling. But some of us level by running instances, and the rotations matter more there. Also, using good spell rotations is great practice for building the right nerve wirings for raiding at 80. Last, you're current loading up a class-specific addon. If you actually enumerate possible addons to find that class-specific addon, you could do it in such a way that a level could be embedded in the addon name. This way could could have "Event Horizon Priest" and "Event Horizon Priest 69", and load the first one for priests 70-80 and the latter for 1-69.

[A] Shouldn't be too bad to implement, it'd be Tifi doing that though. I mostly restrict myself to layout issues.

[b] Will hopefully be possible if/when Tifi implements the new config architecture. Until then, you may use config.spacing to separate the bars a bit. (In random bits, you may also edit the color table in EventHorizon.lua at line 66 if you would like a different color scheme)

[C] Possible but not easy to implement. May be better left off to a branch of EventHorizon due to probable config issues, which I probably wouldn't mind taking up.

Leveling: I know what you mean, and agree on principal.

This would be more easily done via the class config files using something very similar to the requiredTalent flag. Really, the only differences between EventHorizon on an 80 char and a 10-79 char are some bars that may not do anything, which a requiredLevel flag would fix.

I'll take a look while I still have some time tonight, should be fairly easy to throw in.

Here it is, for convenience. Would love your thoughts on the suggestions there.

One other suggestion: Consider a requirement to specify which patch a configuration is for. That way, if a patch changes a class' talents, you can either adapt the old config or reject it.

Originally posted by Silversage
[b]First, this is a fantastic addon. Great concept, clean UI, clean implementation, accessible configuration. Glad EJ had a reference in the SP thread.

Second, this is a fantastic addon. My son (plays a durid, alliance I'm ashamed to say) called it DDR for spell rotation.

Third, to other users:
I've found that a doctored dot-timer can be a great complement to EH. I'm using Ovale, although it's not nearly as easy to configure as EH. Basically, I restrict Ovale to long-CD stuff that isn't covered by EH. Just gives you that awareness.

Fourth, the de rigeur feature requests. (Hey, Tifi and Taroven ... you wouldn't be getting feature requests for a crappy addon.)

[A] Lag detector. When the player casts a spell, have an indicator (yellow bar to the left of current time, maybe?) that shows a spell has been cast without corresponding indication of cast from the server.

Either have a way to specify bar color per spell, or allow a separator to be added between spells to help with visual tracking.

[C] This is the biggie. The bars are laid out top-to-bottom and move left. Because I've laid out my actionbar and hotkeys to match, it would be really great to be able to configure EH to flip 90 degrees, so that the bars are vertical, from left to right, and they move upward. This would not just increase the DDR effect, but would allow a closer mapping between visuals and fingers.

Fifth, a discussion about leveling versions of EH. I've read what you've written about rotations not being an issue while leveling. But some of us level by running instances, and the rotations matter more there. Also, using good spell rotations is great practice for building the right nerve wirings for raiding at 80. Last, you're current loading up a class-specific addon. If you actually enumerate possible addons to find that class-specific addon, you could do it in such a way that a level could be embedded in the addon name. This way could could have "Event Horizon Priest" and "Event Horizon Priest 69", and load the first one for priests 70-80 and the latter for 1-69.

Lol. I have not had any installation issues. I commented on someone elses problems, iirc. My comments are further back, #150 or so, and contain kudos and some suggestions I'd like you and Tifi to consider.