Go to Page... |
Compatibility: | Dragonflight (10.0.2) Shadowlands patch (9.2.7) Dragonflight Pre-patch (10.0.0) |
Updated: | 01-02-23 03:01 PM |
Created: | 10-12-09 06:05 AM |
Downloads: | 200,952 |
Favorites: | 380 |
MD5: | |
Categories: | Casting Bars, Cooldowns, Buff, Debuff, Spell, DPS, Healers, Tank, Combat Mods |
EventHorizon now has a Discord: https://discord.gg/mR8xUUK. Come say hi!
Also, EventHorizon is now on github: https://github.com/Brusalk/EventHorizon_Continued -- You can find the latest changes there, but releases will still be released here and on Curse.
-Brusalk (Kilrogg-US)
EventHorizon is now updated and working for Shadowlands. 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 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 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). Addon development has had to take a backseat to real life for the past few months though I've been working on it as much as I can. (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.)
If you have a few extra bucks this month and you like all my work, consider chipping in
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 VS Code 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.
Files
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.
config.lua:
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.
myconfig.lua:
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.
Configuration
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....
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" --[[ EDIT BELOW THIS LINE ]]--
-- Vampiric Touch/swd cd self:newSpell({ debuff = {34914,3}, cast = 34914, cooldown = 32379, refreshable = true, hasted = true, requiredTree = 3, requiredLevel = 28, stance = 1, })
self:newSpell({ itemID = 1543 })
self:newSpell({ itemID = { 1543, 1544, ... , 1243 }, })
self:newSpell({ slotID = 13, })
self:newSpell({ cast = 1543 })
self:newSpell({ cast = { 1543, 1544, ... , 1243 }, })
self:newSpell({ channel = {1543,3}, })
self:newSpell({ channeled = { {1543,2}, {1544,4}, ... , {1254, 6} }, })
self:newSpell({ cooldown = 1543, })
self:newSpell({ cooldown = {1543, 1642, ... , 1274}, })
self:newSpell({ debuff = {1543, 3}, })
self:newSpell({ debuff = 1543, })
self:newSpell({ playerbuff = {1543, 3}, })
self:newSpell({ playerbuff = 1543, })
self:newSpell({ debuff = {1543, 3}, hasted = true, })
self:newSpell({ debuff = {1543, 3}, recast = true, })
self:newSpell({ playerbuff = {1543, 3}, minstacks = 2, })
self:newSpell({ slotID = 14, internalcooldown = 45, })
self:newSpell({ debuff = {1543, 3}, unique = true, })
self:newSpell({ debuff = {1543, 3}, keepIcon = true, })
self:newSpell({ debuff = {1543, 3}, icon = 1544, })
self:newSpell({ cooldown = 1543, smallCooldown = true, })
self:newSpell({ cooldown = 1543, smallCooldown = true, requiredGlyph = 12456, })
self:newSpell({ cooldown = 1543, smallCooldown = true, requiredTree = 3, })
self:newSpell({ cooldown = 1543, smallCooldown = true, requiredTree = {0,1,3}, })
self:newSpell({ cooldown = 1543, smallCooldown = true, requiredLevel = 84, })
self:newSpell({ cooldown = 1543, smallCooldown = true, stance = 1, })
self:newspell({ cooldown = 1543, smallCooldown = true, stance = {0, 1, 4}, })
File Name |
Version |
Size |
Author |
Date |
Type |
2.3e |
78kB |
11-10-14 11:20 PM |
Addon |
||
v1.9.3 |
71kB |
11-05-10 07:02 AM |
Patch |
Comment Options |
11-05-10, 05:57 PM | |
|
Kogasu: Had a packaging mishap which caused a hold on approval. It's the same file across the board, I'll have to check with Seerah to see what's up with the delay on this one.
Warlocomotif: I think we're both right. Since your comment I've made a few changes and have been doing some in-depth tests on the friendly neighborhood target dummy. With this version of EH, try the following (unhasted cast, hasted refresh): 1) Cast Corruption, wait for Eradication to proc. 2) Cast Haunt or Drain Life. 3) Observe ticks. The next predicted tick (tick 1) is accurate every time. Ticks 2, 3, and 4 are 20% slower than predicted, while tick 5 is again accurate. Recasting Corruption with Eradication active, however, results in perfectly accurate ticks until a refresh occurs. Now, test the reverse (hasted cast, unhasted refresh): 1) Cast Corruption, wait for Eradication to proc. 2) Cast Corruption. 3) Observe ticks, allowing Eradication to fall off. 4) Cast Haunt or Drain Life. 5) Observe ticks. All ticks at step 3 will be accurate. Step 5 is interesting. Tick 1 will again be correctly predicted. Ticks 2, 3, and 4 occur 20% faster than predicted, while tick 5 is once again accurate. Hyperspeed accelerators produce the same results in both cases. Unstable Affliction ticks are 100% accurate in both cases when calculating from the end of the aura. From those observations we can gather the following: * Dots keep their initial level of haste until manually refreshed. * Only the next tick of a dot refreshed by another spell is affected by changes in haste. That tick's timing can be found by subtracting [interval*numticks] from the time of the end of the spell. It seems that if the last possible tick occurs before the end of the aura, that tick is used as the end of the aura. * Ticks past the first appear to be based on the first tick. Let's assume some info and provide a practical example. Corruption is an 18 second dot, ticking every 3 seconds. You have 15.3% haste, bringing the tick interval to 2.6 seconds. I honestly haven't looked to see if the aura duration changes with haste on refreshes. I'm assuming not, considering what ends up happening to the last tick after a few changes in haste. Code:
0.0 - Corruption cast at 15.3% haste, 2.6 interval 2.6 - Tick 5.2 - Tick 7.8 - Tick 8.1 - Refreshed by Haunt with 30.4% haste, 2.3 interval. Count reset to 0. 2.3 - Tick 4.9 - Tick (notice the 2.6 interval here) 7.5 - Tick 9.1 - Tick 9.5 - Corruption cast at 30.4% haste, 2.3 interval. Count reset to 0. 2.3 - Tick 4.6 - Tick 6.9 - Tick 7.1 - Refreshed by Haunt at 15.3% haste, 2.6 interval. Count reset to 0. 2.6 - Tick 4.9 - Tick (again, notice the interval) 7.2 - Tick 9.5 - Tick 11.8 - Tick 14.1 - Tick 16.4 - Tick 16.4 - Next tick cannot fit within 18 second period. Corruption fades. Feel free to repost these findings if you want. I'm sure some of the theorycrafters at Elitist Jerks wouldn't mind 'em. Edit: Ack, that example sucks. I got the initial ticks completely wrong. Good enough to give an idea of what's going on though.
Last edited by Taroven : 11-05-10 at 06:07 PM.
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
Warlocomotif |
View Public Profile |
Send a private message to Warlocomotif |
Find More Posts by Warlocomotif |
Add Warlocomotif to Your Buddy List |
11-05-10, 10:03 PM | |
|
The problem I was seeing (first tick after auto refresh affected by present haste, not rolling haste) may have been something else entirely. Testing with a flat 20% haste buff isn't exactly a great idea when dealing with intervals.
I'll do some more work on the matter in a day or two. |
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
11-07-10, 07:43 AM | |
A Kobold Labourer
Forum posts: 1
File comments: 34
Uploads: 0
|
Is there any way to have different profiles? I want my EH window to be much smaller on my rogue compared to my priest. Is there any way to have two configs?
|
|
artiq |
View Public Profile |
Send a private message to artiq |
Find More Posts by artiq |
Add artiq to Your Buddy List |
11-07-10, 04:43 PM | |
A Murloc Raider
Forum posts: 6
File comments: 9
Uploads: 0
|
Downloading Disabled?
Was excited to get this addon back... time-frame for downloading 1.93?
|
|
WernerCD |
View Public Profile |
Send a private message to WernerCD |
Find More Posts by WernerCD |
Add WernerCD to Your Buddy List |
11-07-10, 05:51 PM | ||
|
Re: Downloading Disabled?
|
|
|
Kogasu |
View Public Profile |
Send a private message to Kogasu |
Find More Posts by Kogasu |
Add Kogasu to Your Buddy List |
11-07-10, 09:44 PM | ||
|
1) Make a new file named myconfig.lua in your EventHorizon directory. 2) Insert the following text. Code:
local _,ns = ... local config = ns.config local _,class = UnitClass('player') if class == 'ROGUE' then config.foo = bar elseif class == 'PRIEST' then config.bat = baz else config.stuff = lol end You can also do something like the following: Code:
local Rogue = class == 'ROGUE' local Priest = class == 'PRIEST' local DK = class == 'DEATHKNIGHT' config.width = Rogue and 100 or 150 config.height = Rogue and 12 or 18 config.future = DK and 18 or Rogue and 15 or 12 Edit: Suppose I should clarify something. config.width and config.height are what you'll want to change to shrink EventHorizon. config.height is the height of a single bar and the size of the icons if using static height (config.staticheight, optionally config.staticframes). config.width is the width of a bar not including the icon. So, if you want EventHorizon to be exactly 150 pixels wide with a height of 15 pixels per bar, height would be 15 and width would be 135. If you want EventHorizon to always be a specific height, set config.staticheight to however tall you want it. If you're using staticheight with a class that doesn't use more than a couple EH bars, config.staticframes can tell EH to only set a static height when more than that many bars are in use. Hopefully that all makes sense.
Last edited by Taroven : 11-07-10 at 09:50 PM.
|
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
11-08-10, 12:12 PM | |
A Kobold Labourer
Forum posts: 1
File comments: 34
Uploads: 0
|
Thanks a lot for the help Taroven. I am quite familiar with Java so I understood what you meant quite easily however I don't know lua at all so I guess that's why I never knew what lines to add to have different profiles.
|
|
artiq |
View Public Profile |
Send a private message to artiq |
Find More Posts by artiq |
Add artiq to Your Buddy List |
11-09-10, 08:25 AM | |
A Deviate Faerie Dragon
Forum posts: 11
File comments: 174
Uploads: 0
|
The Death Knight config currently has 2 of the Unholy tree abilities (Sudden Doom and Shadow Infusion/Dark Trans) checking for Frost spec rather than Unholy.
Also, guess it's a pretty noob question here since i've never added tried adding a spell to EH before. I wanted to add Runic Corruption to it since there's a lack of any really good addons otherwise for it even though it's only a really short duration (2s) and clipping it can simply be avoided, but just for the hell of it but i'm not sure what the spellID is. Wowhead has an entry at 51460 but the tooltip for Wowhead is at 0% and i'm wondering if this is the corresponding entry. |
|
keLston |
View Public Profile |
Send a private message to keLston |
Find More Posts by keLston |
Add keLston to Your Buddy List |
11-09-10, 06:16 PM | |
|
No changes in v1.9.2a. That's just Cairenn rolling back the faulty zip from v1.9.3. The next non-beta release will be v1.9.4.
Use the beta releases for v1.9.3 in the meantime. Shouldn't be more than a day or two, as long as I can actually find time to test stuff.
Last edited by Taroven : 11-09-10 at 06:17 PM.
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
11-11-10, 09:38 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 5
Uploads: 0
|
Trying to get swipe to show up in my bear form and with this it shows up but the cooldown isn't working. Suppose to be 6 seconds, is there a number I can put in for the cooldown instead of true?
-- Bear bars -- Swipe self:NewSpell({ spellID = 779, cooldown = true, stance = 1, }) Thanks in advance! D |
|
Demyn |
View Public Profile |
Send a private message to Demyn |
Find More Posts by Demyn |
Add Demyn to Your Buddy List |
11-11-10, 05:10 PM | |
|
Use v1.9.3, Swipe's cooldown is shown on the Pulverize bar.
Just keep in mind that 1.9.3 is a beta release and should be treated accordingly. |
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
11-13-10, 02:06 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 5
Uploads: 0
|
1.9.3 looking good so far, I'll let you know if anything pops up.
Thanks |
|
Demyn |
View Public Profile |
Send a private message to Demyn |
Find More Posts by Demyn |
Add Demyn to Your Buddy List |
11-15-10, 12:37 AM | |
|
The next release is on track for upload fairly soon (perhaps Wednesday). Finding time to code and debug is a bit of a pain at the moment - I was hoping to have it out by now, but my work schedule hasn't been kind enough to allow that.
v1.9.4 is mostly a bugfix release, and refines the tick prediction revamp from 1.9.3. Tick intervals are now stored by GUID - target swaps shouldn't result in inaccurate ticks anymore. Rolling haste is fully supported. The only issue barring it at this point is recasting an auto-refreshed dot, which throws off the tick prediction pretty badly from that point on. I do have a fix in mind, so we'll see what happens over the next day or two.
Last edited by Taroven : 11-15-10 at 12:42 AM.
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
11-21-10, 09:51 PM | |
|
Hate to tell you this, but apparantly haste rolling is fixed in 4.0.3 >_<
I'm not really sure if it really is, I've personally taken a break from wow recently. |
|
Warlocomotif |
View Public Profile |
Send a private message to Warlocomotif |
Find More Posts by Warlocomotif |
Add Warlocomotif to Your Buddy List |
You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.