WoW EventHorizon addon Shadowlands/Burning Crusade Classic 2022
wow addon EventHorizon


Game Version: 9.0.2
Total Downloads: 175,143
Updated: Nov 23, 2020
Created: Jan 14, 2010
download EventHorizonDownload Earlier Versions

Earlier Versions

Name Size Uploaded Game Version Downloads release 109.07 KB Nov 23, 2020 9.0.2 780 download EventHorizon releaseDownload release 109.81 KB Oct 1, 2020 9.0.1 1,069 download EventHorizon releaseDownload release 120.05 KB Sep 25, 2017 7.3.0 +2 6,787 download EventHorizon releaseDownload
EventHorizon v1.9.20 release 119.74 KB Jun 19, 2017 7.2.5 +4 2,966 download EventHorizon EventHorizon v1.9.20 releaseDownload
EventHorizon v1.9.19 release 117.68 KB Mar 29, 2017 7.2.0 +2 2,945 download EventHorizon EventHorizon v1.9.19 releaseDownload
EventHorizon v1.9.18 release 113.73 KB Jan 16, 2017 7.1.5 +2 3,167 download EventHorizon EventHorizon v1.9.18 releaseDownload
EventHorizon v1.9.15 release 115.67 KB Sep 28, 2016 7.0.3 4,698 download EventHorizon EventHorizon v1.9.15 releaseDownload
v1.9.14 release 115.25 KB Sep 27, 2016 7.0.3 1,112 download EventHorizon v1.9.14 releaseDownload
EventHorizon v1.9.12 release 102.28 KB Aug 30, 2016 7.0.3 3,511 download EventHorizon EventHorizon v1.9.12 releaseDownload
EventHorizon v1.9.11 release 98.52 KB Jul 23, 2016 7.0.3 3,842 download EventHorizon EventHorizon v1.9.11 releaseDownload
EventHorizon v1.9.8 release 85.59 KB Jul 23, 2015 6.2.0 +2 7,984 download EventHorizon EventHorizon v1.9.8 releaseDownload
EventHorizon v1.9.7 release 85.87 KB Apr 21, 2015 6.1.0 4,665 download EventHorizon EventHorizon v1.9.7 releaseDownload
EventHorizon v1.9.6 release 85.36 KB Nov 17, 2014 6.0.3 +2 8,085 download EventHorizon EventHorizon v1.9.6 releaseDownload
EventHorizon v1.9.5-Beta-4 release 85.89 KB Sep 7, 2014 6.0.2 5,750 download EventHorizon EventHorizon v1.9.5-Beta-4 releaseDownload
EventHorizon v1.9.5-15 release 84.58 KB Jan 7, 2014 5.4.2 9,717 download EventHorizon EventHorizon v1.9.5-15 releaseDownload
EventHorizon v1.9.5-14 release 84.24 KB Sep 21, 2013 5.4.0 6,416 download EventHorizon EventHorizon v1.9.5-14 releaseDownload
EventHorizon v1.9.5-13 release 84.05 KB Sep 17, 2013 5.4.0 2,446 download EventHorizon EventHorizon v1.9.5-13 releaseDownload
EventHorizon v1.9.5-12 release 84.07 KB Sep 16, 2013 5.4.0 1,316 download EventHorizon EventHorizon v1.9.5-12 releaseDownload
EventHorizon v1.9.5-11 release 84.08 KB Sep 16, 2013 5.4.0 240 download EventHorizon EventHorizon v1.9.5-11 releaseDownload
EventHorizon v1.9.5-10 release 84.00 KB Sep 1, 2012 5.0.4 15,616 download EventHorizon EventHorizon v1.9.5-10 releaseDownload
EventHorizon v1.9.5-9 release 83.55 KB Sep 1, 2012 5.0.4 1,600 download EventHorizon EventHorizon v1.9.5-9 releaseDownload
EventHorizon v1.9.5-6 release 83.48 KB Aug 31, 2012 5.0.4 2,321 download EventHorizon EventHorizon v1.9.5-6 releaseDownload
EventHorizon v1.9.5-4 release 82.59 KB Aug 30, 2012 5.0.4 2,340 download EventHorizon EventHorizon v1.9.5-4 releaseDownload
EventHorizon v1.9.5-3 release 82.56 KB Aug 30, 2012 5.0.4 58 download EventHorizon EventHorizon v1.9.5-3 releaseDownload
EventHorizon v1.9.5 release 76.93 KB Aug 28, 2012 5.0.4 3,358 download EventHorizon EventHorizon v1.9.5 releaseDownload
EventHorizon v1.9 r378 release 65.39 KB Oct 25, 2010 4.0.1 41,348 download EventHorizon EventHorizon v1.9 r378 releaseDownload
EventHorizon v1.9 r377 release 65.36 KB Oct 22, 2010 4.0.1 5,702 download EventHorizon EventHorizon v1.9 r377 releaseDownload
EventHorizon v1.9 r376 release 65.29 KB Oct 22, 2010 4.0.1 1,383 download EventHorizon EventHorizon v1.9 r376 releaseDownload
EventHorizon v1.9 r362 release 64.59 KB Oct 17, 2010 4.0.1 7,829 download EventHorizon EventHorizon v1.9 r362 releaseDownload
EventHorizon v1.9 (r249) release 55.40 KB Jun 14, 2010 3.3.3 9,706 download EventHorizon EventHorizon v1.9 (r249) releaseDownload
EventHorizon v1.8 release 49.33 KB Apr 21, 2010 3.3.3 3,238 download EventHorizon EventHorizon v1.8 releaseDownload
EventHorizon v1.7c release 44.90 KB Apr 19, 2010 3.3.3 1,129 download EventHorizon EventHorizon v1.7c releaseDownload
EventHorizon v1.7b release 44.74 KB Mar 23, 2010 3.3.0 304 download EventHorizon EventHorizon v1.7b releaseDownload
EventHorizon v1.7a release 44.73 KB Mar 20, 2010 3.3.0 58 download EventHorizon EventHorizon v1.7a releaseDownload
EventHorizon v1.7 release 44.70 KB Mar 18, 2010 3.3.0 82 download EventHorizon EventHorizon v1.7 releaseDownload
EventHorizon v1.6 release 43.38 KB Mar 13, 2010 3.3.0 82 download EventHorizon EventHorizon v1.6 releaseDownload
EventHorizon v1.5c release 38.41 KB Jan 14, 2010 3.3.0 351 download EventHorizon EventHorizon v1.5c releaseDownload
EventHorizon v1.9.9 (Legion Beta) beta 87.59 KB May 22, 2016 6.2.4 +2 646 download EventHorizon EventHorizon v1.9.9 (Legion Beta) betaDownload
EventHorizon v1.9.5-Beta-3 beta 85.72 KB Jul 27, 2014 6.0.1 73 download EventHorizon EventHorizon v1.9.5-Beta-3 betaDownload
EventHorizon v1.9.5-Beta-2 beta 85.67 KB Jul 21, 2014 5.4.8 338 download EventHorizon EventHorizon v1.9.5-Beta-2 betaDownload
EventHorizon v1.9.5-Beta-1 beta 85.67 KB Jul 21, 2014 5.4.8 85 download EventHorizon EventHorizon v1.9.5-Beta-1 betaDownload



Share this:

EventHorizon now has a Discord: Come say hi!

Also, EventHorizon is now on github: You can find the latest changes there, but releases will still be released here and on Curse.

-Brusalk (Kilrogg-US)**

NOTE: This is not EventHorizon's primary home! If you want better support and a guarantee that I'll read and address your comment, you should ask questions in the Discord ( or add a comment on EventHorizon's WoWInterface page ( I'll still respond here, but I don't check here nearly as often as WoWI or Discord.

EventHorizon is now updated and working for Shadowlands Beta. Just download the most recent version and you should be good to go!

If you have and comments, concerns, questions, suggestions, anything, don't hesitate to contact me either through comments here, on Discord, or via mail or whisper in game.

If you feel that the class config for your class is not up to snuff then please let me know why and/or update it yourself!

There is now a how-to on class configuration below!

There is also a how-to on customization of how EH looks below as well. Check it out!

Please be aware that I'm rewriting this addon from scratch to be released officially soon(tm). As such some configuration options for the current version of EH may change or not exist in the rewrite in an effort to make things easier to understand. (Also, coming in the rewrite is an in-game configuration menu as well as the ability to alter class-configs in-game to make it easier to customize EH. Among other features)

What does EventHorizon do?**

EventHorizon displays all of your class/spec's rotational abilities on a common time scale. This means that instead of seeing a regular percentage-based timer bar, EH shows you exactly what is happening in relation to everything else. If that sounds complicated at all, just look at the screenshots.
The basic idea: An ability that lasts 12 seconds and has 6 seconds remaining shouldn't look exactly the same as one that lasts 5 minutes and has 2.5 minutes remaining.

Videos showing EH in action:
Dezzimal posted a great instructional video using a Shadow Priest for reference.
breakingsong demonstrated EH on a Destro Warlock.

Also, for instant gratification, here's a quick snippet showing a Shadow Priest's rotation at 1 frame per second, using an older layout:

The big white line is the current time. Future events are on the right side, past events on the left. 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). EventHorizon is extremely intelligent when dealing with most things DoT/HoT-related.

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.

How do I set it up? EventHorizon does not include an in-game configuration UI. However, it really doesn't need one – Everything should "just work".

Power users and those wishing to theme EventHorizon for a specific UI, please read on to the advanced portion of this section. Don't worry, it's easier than it may seem.

The basics:

  • The window may be moved via the drag-handle on the upper right frame corner. It may be a little hard to see at first, but will light up as soon as you mouse over it.
  • You can show/hide EventHorizon manually by using /eventhorizon or /ehz.

Advanced configuration:

Note: I would highly recommend an advanced text editor such as Notepad++ if you wish to edit the configuration files. While this isn't required by any means, an editor with syntax highlighting makes changing the files MUCH easier.

  • The default configuration for EventHorizon is located in EventHorizon\config.lua. This file contains every setting available for EH and is heavily commented to help tweak things to your liking. This file may be deleted and EventHorizon will maintain its functionality (not that I would ever recommend doing that).
  • Any changes you make to config.lua will be removed when you update EventHorizon. This is by design. HOWEVER, there's an easy way to get around that. Simply create a new file (or a copy of config.lua) named "myconfig.lua". This file is automatically loaded, and because it loads after config.lua, the settings in myconfig.lua will always be the ones to appear in-game.


There are 2 files which you can edit to change the physical appearance of EventHorizon including colors, size, global functionality and other things. I'm going to assume that you have the most recent version of the configuration file provided in the most recent version of EventHorizon.

You can think of this as the default settings of EventHorizon. If you want to change settings then you can do so here, but when you download a new version of EventHorizon you have to be careful as the new version includes config.lua and will overwrite any changes you've made to this file. You can always skip this file when overwriting, but it's better to use myconfig.lua as it's intended to avoid this problem.

This file overwrites any values in config.lua with the values changed inside it. So if you have config.width set to 375 in config.lua and config.width set to 200 in myconfig.lua, EventHorizon will use 200 as the value.
Where this is useful is that myconfig.lua is never included in the updated versions of EventHorzion, and as such will never be overwritten when downloading a new version of EventHorizon.

As such best practice is to alter any values you wish to change in config.lua by changing the values inside myconfig.lua.


In order to change settings of something you just have to change the text after the equals sign on the line with the setting you want to change.

For example if you wanted to change the width of the addon you would change line 33 which normally reads (by default)

config.width = 375                                -- Width of a single bar....


config.width = 200                                -- Width of a single bar....

And now EventHorizon will have a width of 200 rather than 375.

Other variables are well explained in the text which comes after the


on the lines respective to their variables.

Best practice would be to have open config.lua and myconfig.lua at the same time. Then for any changes you want to make to EventHorizon that you do not want to change you add into myconfig.lua on a new line the line you want to change by copy and paste, and then change the value to what you want. This way when you update EventHorizon you do not lose all your configuration options ๐Ÿ™‚

It may seem complicated at first, and you can completely skip the step with myconfig.lua if you want, but once you understand it it's very simple to do ๐Ÿ™‚

The default myconfig.lua with no variable changes inside it should have the following at the top of the file before any variable changes:

local EHN,ns = ...

local config = EventHorizon.config
local c = EventHorizon.colors

local _,class = UnitClass('player')	-- These locals make in-line conditions a little easier. See the color section for a few examples.
local DK = class == "DEATHKNIGHT"
local Druid = class == "DRUID"
local Hunter = class == "HUNTER"
local Mage = class == "MAGE"
local Paladin = class == "PALADIN"
local Priest = class == "PRIEST"
local Rogue = class == "ROGUE"
local Shaman = class == "SHAMAN"
local Warlock = class == "WARLOCK"
local Warrior = class == "WARRIOR"

  • If you would like to show/hide the frame under specific circumstances take a look at EventHorizon_Redshift, which is located in the Optional Files section of this page.
  • If you're a Goose user, or have another addon managing your frame visibility, EventHorizonFrame is what you'll want to track.

EventHorizon_Redshift has a similar configuration to EventHorizon itself, though is much simpler in nature.

Altering your classes configuration to fit your specific needs!

The settings where classes/specs bars are located are in config.lua in the folder for your class. (Example: EventHorizon_Monk) For examples I'll use the priest configuration. This is written for use with the new configuration system in mind so if things don't quite match up with what is in your config.lua that is why. You can either use what I've written here or alter what you already have by trial and error ๐Ÿ™‚

Bars are added to EventHorizon in the order which they are called for the player's class. So the order of the bars that appear in EventHorizon is dependent on the order in which you add them in the config.lua.

How to add new bars

This is done by calling self:newSpell(). self:newSpell() is a function which takes in a table of bar configuration options.

For example, in the priest configuration we add a bar which has Vampiric Touch/SWD CD with the following:

-- Vampiric Touch/swd cd
		debuff = {34914,3},
		cast = 34914,
		cooldown = 32379,
		refreshable = true,
		hasted = true,
		requiredTree = 3,
		requiredLevel = 28,
		stance = 1,

Here we add a new bar with the options debuff, cast, cooldown, refreshable, hasted, requiredTree, requiredLevel, and stance
The values of the options is represented by what appears after the = sign and before the ,. cast is set to 34914 which is the spellID of Vampiric Touch. As a result the bar will now show Vampiric Touch casts on this new bar. Any calls of self:newSpell() before this one will appear before this bar, and any calls after this one will appear after this bar in-game.

Altering existing bars:
Simply change values, delete lines of options you want to remove, or add options/values you want to add. ๐Ÿ™‚

Comprehensive list of options and acceptable values and what they do:

Display the cooldown of the item with itemID provided. If more than one itemID is provided in a table, then EH will show the longest.


        itemID = 1543

EH will show as a cooldown on this bar the cooldown of item with itemID 1543

       itemID = { 1543, 1544, ... , 1243 },

EH will show as a cooldown on this bar the longest cooldown of the items with itemIDs 1543, 1544, … , 1243

Display the cooldown/internal cooldown/playerbuff of the item located in the slot of slotID provided

ChestSlot = 5
FeetSlot = 8
Finger0Slot = 11
Finger1Slot = 12
HandsSlot = 10
HeadSlot= 1
LegsSlot = 7
MainHandSlot = 16
NeckSlot = 2
SecondaryHandSlot = 17
ShirtSlot = 4
ShoulderSlot = 3
abardSlot = 19
Trinket0Slot = 13
Trinket1Slot = 14
WaistSlot = 6
WristSlot = 9


        slotID = 13,

EventHorizon will show the playerbuff/internal cooldown/cooldown of the trinket located in the first trinket slot (slotID = 13)

Display the casts of the spell(s) provided on this bar.


        cast = 1543

EH will show the casts of the spell with spellID 1543

      cast = { 1543, 1544, ... , 1243 },

EH will show the casts of the spells with spellIDs 1543, 1544, … , 1243

channel: (or channeled)
Display the cast of the channeled spell(s) provided on this bar.


        channel = {1543,3},

EH will show as a cast the channel with spellID 1543 that hits 3 times over it's full duration

       channeled = { {1543,2}, {1544,4}, ... , {1254, 6} },

EH will show as a cast the channel with spellID 1543 that hits 2 times, the channel with spellID 1544 that hits 4 times, … , and the channel with spellID 1254 that hits 6 times over it's full duration.

A spellID or a table of spellIDs. EH will show the longest cooldown of the provided spellID(s)


        cooldown = 1543,

EH will show the cooldown of spell with spellID 1543,

        cooldown = {1543, 1642, ... , 1274},

EH will show the longest cooldown of the spells with spellIDs 1543, 1642, … , 1274

A spellID or a table of a spellID and it's unhasted time between ticks (if it's a DoT). Defaults to debuffs on the target.


        debuff = {1543, 3},

EH will show the debuff with spellID 1543 that has an unhasted time between ticks of 3 seconds.

		debuff = 1543,

EH will show the debuff with spellID 1543 that has no ticks. Just a simple debuff

If there is no debuff defined for this bar, then EH will show the buff which appears on the player by default. Either a spellID or a table of a spellID and it's unhasted time between ticks


        playerbuff = {1543, 3},

EH will show a buff on the player of the buff with spellID 1543 and unhasted time between ticks of 3 seconds.

		playerbuff = 1543,

EH will show a buff on the player with spellID 1543 that has no ticks.

true or false/nil. If true then the debuff/playerbuff for this bar has hasted ticks.


        debuff = {1543, 3},
        hasted = true,

EH will the debuff with spellID 1543 that has a unhasted tick time of 3 seconds that is affected by haste.

true or false/nil. If true then a recast line will appear at the end of the debuff/playerbuff indicating that the player should aim to have the cast finish within this area.


        debuff = {1543, 3},
        recast = true,

EH will show a recast line for the debuff with spellID 1543 that has an unhasted time between ticks of 3 seconds.

number or nil. If a number then the debuff/playerbuff defined for this bar must have greater than or equal to the number of stacks for it to show.


        playerbuff = {1543, 3},
        minstacks = 2,

EH will show a buff on the player of spellID 1543 that has an unhasted tick time of 3 seconds, but will only show if more than two stacks of the buff is on the player.

number or true or false/nil. If a number than EH will display an internal cooldown of number seconds for the slotID provided. If true then EH will display the internal cooldown of the trinket in the provided slotID that is defined in trinkets.lua. If false or nil then will not show an internal cooldown


        slotID = 14,
		internalcooldown = 45,

EH will show the internalcooldown of the trinket in slotID 14 as if it has an internal cooldown of 45 seconds.

true or false/nil. If true then EH will show buffs/debuffs on the target (by default) that are casted by anyone that match the provided debuff or buff ID. Normally debuffs are only shown if cast by the player


        debuff = {1543, 3},
        unique = true,

EH will show a recast line for the debuff with spellID 1543 that has an unhasted time between ticks of 3 seconds that is cast by anyone.

true or false/nil. If true then EH will not change the icon from the icon that's first shown on login regardless of what's cast.


        debuff = {1543, 3},
        keepIcon = true,

EH will keep the icon of debuff 1543 regardless of what else occurs on this spellbar.

number or string. If a number than EH will always show as the icon for this bar the icon of the spell of spellID number. If a string then EH will always show the icon provided by the string. The string must be a path to a string. Look up frame:SetTexture() on wowprogramming for more information.


        debuff = {1543, 3},
        icon = 1544,

EH will show the debuff 1543 with unhasted time between ticks of 3 seconds, but will always show the icon of the spell with spellID 1544.

true or false/nil. If true then the cooldown will use the height settings provided inside config.lua represented by smallCooldown rather than cooldown. Basically makes it so a cooldown is smaller than the normal height


        cooldown = 1543,
        smallCooldown = true,

EH will show a small cooldown of the spell with spellID 1543

Options to restrict when bars are shown:

You may have noticed how not all bars are shown at the same time. That's because of these options! Wooo!

spellID or false/nil. If not false/nil then in order for this bar to show the player must have the glyph with spellID provided.


        cooldown = 1543,
        smallCooldown = true,
		requiredGlyph = 12456,

EH will show a small cooldown of the spell with spellID 1543 if they have the glyph with spellID 12456 active.

A number, a table of numbers or false/nil. If a number between 0 and the number of possible specializations for the players class, then the player's active specialization must be the one represented by the number. 1 represents the first specialization (Disc for priests), 2 represents the second (Holy for priests), 3 represents the third (Shadow for priests) and 4 represents Resto if a druid. 0 represents no specialization.
Can also be a table of numbers in which case the player's active specilization must be one of the provided numbers in the table.


        cooldown = 1543,
        smallCooldown = true,
		requiredTree = 3,

EH will show a small cooldown of the spell with spellID 1543 if the player's active specialization is the third one for their class.

        cooldown = 1543,
        smallCooldown = true,
		requiredTree = {0,1,3},

EH will show a small cooldown of the spell with spellID 1543 if the player's active specialization is either none, the first, or the third for their class.

A number between 1 and max level or nil/false. If a number than the player must be at the level or higher for the bar to show.

        cooldown = 1543,
        smallCooldown = true,
		requiredLevel = 84,

EH will show a small cooldown of the spell with spellID 1543 if the player is 84 or higher.

A number between 0 and the number of stances the player can use. The stances start at 0 for no stance, and then as you go right on the stance bar (default UI) the next stance is 1, then 2 and so on.
Can also be a table of numbers in which case the player must be in one of the stances for the bar to show.


        cooldown = 1543,
        smallCooldown = true,
		stance = 1,

EH will show a small cooldown of the spell with spellID 1543 if the player is in stance 1.

		cooldown = 1543,
		smallCooldown = true,
		stance = {0, 1, 4},

EH will show a small cooldown of the spell with spellID 1543 if the player is in either no stance, stance 1, or stance 4.

A few last things in regard to class configs: These are all individual options which can be combined together to form advanced functionality. The only interaction between the options to keep in mind is that playerbuffs will not show if a debuff is also provided for that bar. This is simply a technical limitation which can't be avoided.

I hope this has made it easier for you to understand how to configure EventHorizon to suit your individual needs!

What's changed from the original EventHorizon? Check the changelog for the long version, but for a very quick summary of some of the changes:

  • ALL classes and specs are now supported. This includes both healing and tanking.
  • Class coloring has been implemented, giving a more personal touch to the addon and also providing a more differentiated layout.
  • Glyphs that add time to an existing spell now display a stack count on the affected spell's icon. Check the Balance Druid screenshot for an example, it's on the Moonfire bar.
  • Much more support has been added for custom spell configuration. Check out the class module code for examples, they're all over the place.
  • DoT and HoT ticks are now recalculated every time they occur. This makes EH much, much more accurate than it was previously.

What still needs to be changed?
EventHorizon is past due for a complete rewrite. This is being actively developed and is planned for a release before the official release of Mists of Pandaria within the next month. Please be advised that after it's release 1) I'll no longer be supporting previous versions of EventHorizon, and 2) Configuration options will most likely be lost in the transition. Part of the rewrite is to make EventHorizon easier to configure via in-game options so hopefully it will be easy to get back to what you want. I will attempt to let you still use your old configuration options for the new version, but I can't promise you that it will work ๐Ÿ™

If you have a bug to report, please post it in the comments here.
If you would like to actively participate in EventHorizon's development and know how to work with Google Code's SVN (or are willing to learn), or if you just want to contact me directly, feel free to send me a PM and I'll reply with my contact details.


Add a comment