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,848 |
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 |
07-23-16, 05:03 AM | |
|
v1.9.11 released!
Hey All!
Huge thanks to everyone that's contributed a config for their spec! v1.9.11 should fix all the various bugs that v1.9.10 introduced, such as the problematic login dialogs (OOPS). It also includes all the various spec configs that I've gathered from here and the Discord server chat (Come say hi if you've not checked it out yet ) v1.9.11 Notes can be found here: https://github.com/Brusalk/EventHori...es/tag/v1.9.11 -Brusalk |
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
Neloangelo13 |
View Public Profile |
Send a private message to Neloangelo13 |
Find More Posts by Neloangelo13 |
Add Neloangelo13 to Your Buddy List |
TubbyTimmy |
View Public Profile |
Send a private message to TubbyTimmy |
Find More Posts by TubbyTimmy |
Add TubbyTimmy to Your Buddy List |
07-25-16, 12:26 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 4
Uploads: 0
|
few more basic configs
I've cobbled a few more configs together. Blood and Unholy DK, Windwalker Monk, Arms and Fury Warrior, Ret Paladin and Feral Druid. They're not comprehensive; I just wanted something to use with my alts so I might have missed a few talents, but they should cover the rotations and talents suggested by Icy Veins.
Blood / Unholy DK Code:
function EventHorizon:InitializeClass() self.config.gcdSpellID = 47541 ---blood -- Blood Plague self:newSpell({ debuff = 55078, requiredTree = 1, keepIcon = true, }) -- Bloodboil self:newSpell({ cooldown = 50842, requiredTree = 1, keepIcon = true, }) -- Marrowrend self:newSpell({ cooldown = 195182, requiredTree = 1, keepIcon = true, }) -- Heart Strike self:newSpell({ cooldown = 206930, requiredTree = 1, keepIcon = true, }) -- Rune Weapon self:newSpell({ cooldown = 49028, requiredTree = 1, keepIcon = true, }) -- Blood Mirror self:newSpell({ cooldown = 206977, requiredTree = 1, requiredTalent = 20, keepIcon = true, }) -- vampiric blood self:newSpell({ cooldown = 55233, requiredTree = 1, keepIcon = true, }) ---- Unholy -- Festering Strike self:newSpell({ cooldown = 85948, requiredTree = 3, keepIcon = true, }) -- Outbreak self:newSpell({ cooldown = 77575, requiredTree = 3, keepIcon = true, }) -- Reaper self:newSpell({ cooldown = 130736, requiredTree = 3, requiredTalent = 21, keepIcon = true, }) -- Plague self:newSpell({ debuff = 191587, requiredTree = 3, keepIcon = true, }) -- Reaper self:newSpell({ cooldown = 207317, requiredTree = 3, requiredTalent = 4, keepIcon = true, }) -- blighted weapon self:newSpell({ cooldown = 194918, requiredTree = 3, requiredTalent = 6, keepIcon = true, }) -- Transformation self:newSpell({ cooldown = 63560, requiredTree = 3, keepIcon = true, }) -- Gargoyle / valkyrie self:newSpell({ cooldown = {49206, 207349}, requiredTree = 3, }) -- Death and Decay self:newSpell({ cooldown = {43265, 152280}, requiredTree = {1, 3}, keepIcon = true, }) end Windwalker Monk Code:
function EventHorizon:InitializeClass() self.config.gcdSpellID = 100780 -- rising sun kick self:newSpell({ cooldown = 107428, keepIcon = true, }) -- Fists of Fury self:newSpell({ cooldown = 113656, channel = 113656, keepIcon = true, }) -- dragon punch self:newSpell({ cooldown = 152175, requiredTalent = 20, keepIcon = true, }) -- touch of death self:newSpell({ cooldown = 115080, keepIcon = true, }) -- Storm, Earth and Fire self:newSpell({ cooldown = 137639, playerbuff = 137639, keepIcon = true, }) -- tiger self:newSpell({ cooldown = 123904, requiredTalent = 17, keepIcon = true, }) end Retribution Paladin Code:
function EventHorizon:InitializeClass() self.config.gcdSpellID = 19750 -- Flash of Light (lvl 8 spell common to all specs) -- Crusader Strike (lvl 1 spell) self:newSpell({ cooldown = {35395, 217020}, requiredTree = {0,2,3}, -- Holy drops it but it works without a spec keepIcon = true, }) -- virtues blade / Blade of Wrath / divine hammer self:newSpell({ cooldown = {184575, 202270, 198034}, requiredTree = 3, keepIcon = true, }) -- Judgement self:newSpell({ cooldown = 20271, requiredTree = 3, keepIcon = true, }) -- Execution Sentence self:newSpell({ cooldown = 213757, requiredTree = 3, requiredTalent = 2, keepIcon = true, }) -- avenging wrath self:newSpell({ cooldown = {31884, 224668}, requiredTree = 3, playerbuff = {31884, 224668}, keepIcon = true, }) -- Consecrate self:newSpell({ cooldown = 205228, requiredTree = 3, requiredTalent = 3, keepIcon = true, }) end Arms / Fury Warrior Code:
function EventHorizon:InitializeClass() self.config.gcdSpellID = 100 -- -- Fury -- bloodthirst self:newSpell({ cooldown = 23881, requiredTree = 2, }) -- raging blow self:newSpell({ cooldown = 85288, requiredTree = 2, }) -- enrage self:newSpell({ playerbuff = 184362, requiredTree = 2, }) -- battlecry self:newSpell({ cooldown = 1719, requiredTree = 2, }) -- wrecking ball self:newSpell({ playerbuff = 215570, requiredTree = 2, requiredTalent = 7, }) -- frothing berserker self:newSpell({ playerbuff = 215572, requiredTree = 2, requiredTalent = 14, }) -- dragons roar self:newSpell({ cooldown = 118000, requiredTree = 2, requiredTalent = 21, }) -- bladestorm fury self:newSpell({ cooldown = 46924, requiredTree = 2, requiredTalent = 19, }) -- -- Arms -- Collosal Smash self:newSpell({ debuff = 208086, cooldown = 167105, requiredTree = 1, }) -- Mortal Strike self:newSpell({ cooldown = 12294, requiredTree = 1, }) -- -- Rend self:newSpell({ debuff = {772, 3}, requiredTree = 1, requiredTalent = 8, }) -- overpower self:newSpell({ playerbuff = 60503, requiredTree = 1, requiredTalent = 2, }) -- Deadly Calm self:newSpell({ cooldown = 1719, playerbuff = 1719, requiredTree = 1, }) -- Avatar self:newSpell({ cooldown = 107574, playerbuff = 107574, requiredTree = {1, 2}, requiredTalent = 9, }) -- Cleave self:newSpell({ cooldown = 845, requiredTree = 1, }) -- Bladestorm arms self:newSpell({ cooldown = {227847, 152277}, requiredTree = 1, }) end Feral Druid Code:
function EventHorizon:InitializeClass() self.config.gcdSpellID = 17057 -- Bear Form self.config.hastedSpellID = {50769,10} -- Revive -- -- Feral bars -- -- Savage Roar self:newSpell({ playerbuff = 52610, stance = 2, requiredTree = 2, requiredTalent = 15, }) -- -- Rake self:newSpell({ debuff = {1822,3}, refreshable = true, stance = 2, requiredTree = 2, requiredLevel = 8, }) -- -- Moonfire self:newSpell({ debuff = {155625,2}, refreshable = true, hasted = true, requiredTree = 2, requiredTalent = 3, stance = 2, }) -- -- Rip self:newSpell({ debuff = {1079,2}, refreshable = true, stance = 2, requiredTree = 2, }) -- -- Thrash self:newSpell({ debuff = {106830,3}, refreshable = true, stance = {1,2}, requiredTree = 2, }) -- -- Tiger's Fury, self:newSpell({ cooldown = 5217, playerbuff = 5217, stance = 2, requiredTree = 2, requiredLevel = 24, }) -- -- Berserk / Incarnation self:newSpell({ cooldown = {106951, 102543}, playerbuff = 102543, stance = 2, requiredTree = 2, }) end |
|
backjauerlock |
View Public Profile |
Send a private message to backjauerlock |
Find More Posts by backjauerlock |
Add backjauerlock to Your Buddy List |
08-11-16, 07:13 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 5
Uploads: 0
|
Edit: Ignore this. Taking another look at myconfig I found I'd missed some brackets.
The myconfig is not loading on my shaman for some reason. Seems to be working with other classes. I play Ele main so had set that up immediatly. Worked as ussual. other day I was fiddleing with Enha. When I switched back to Ele it seemed to load the standard config instead. Now it seems to always load this.
Last edited by Morzella : 08-13-16 at 01:51 PM.
|
|
Morzella |
View Public Profile |
Send a private message to Morzella |
Find More Posts by Morzella |
Add Morzella to Your Buddy List |
08-30-16, 12:11 AM | |
|
v1.9.12 Released
Code:
v1.9.12 Fixed requiredArtifactTalent option for non-level-100-characters. Added the following class configs: Paladin - Holy/Prot/Ret Warrior - Arms/Fury Druid - Balance/Feral/Guardian/Resto Death Knight - Blood/Frost/Unholy Priest - Disc/Holy/Discipline Rogue - Assassination/Outlaw/Sub Monk - Windwalker Demon Hunter - Havoc/Vengeance Major thanks to everyone that helped contribute these class configs! |
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
08-30-16, 12:12 AM | ||
|
Re: few more basic configs
|
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
08-30-16, 12:14 AM | ||
|
Code:
{ .. } Here's the fix: Code:
-- Mind Flay/Mind Sear self:newSpell({ channel = {{15407,3}, {48045,4}}, requiredTree = 3, }) |
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
08-30-16, 12:14 AM | ||
|
Re: Rogue complete config
|
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
09-04-16, 07:40 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 1
Uploads: 0
|
Affliction Artifact buff tracking
Sorry if this is already answered but I couldn't seem to find it if so.
Is there a way to track Tormented Souls stacks (216695) on the icon for a bar while also tracking the Deadwind Harvester buff (216708) on the same bar? Oddly, I can only seem to get the stacks to track on the icon if I include another buff ID with Tormented Souls but I can never get the bar to also show the buff timer. I don't know if that has something to do with Tormented Souls not having a timer or what. I've also tried tracking the actual ability Reap Souls (216698) since it also shows the stacks, but to no avail thus far. Anyway, thanks for any help.
Last edited by jthagler : 09-04-16 at 07:41 PM.
|
|
jthagler |
View Public Profile |
Send a private message to jthagler |
Find More Posts by jthagler |
Add jthagler to Your Buddy List |
09-10-16, 08:52 PM | ||
A Fallenroot Satyr
Forum posts: 26
File comments: 95
Uploads: 0
|
Re: Affliction Artifact buff tracking
I don't play a Warlock so I'm not entirely sure but I think this enhancement will fix it when Brusalk gets the time to work it out. https://github.com/Brusalk/EventHori...inued/issues/3 |
|
|
Cluey |
View Public Profile |
Send a private message to Cluey |
Find More Posts by Cluey |
Add Cluey to Your Buddy List |
09-26-16, 11:46 PM | |
|
EventHorizon v1.9.14 Released
Big things:
1) Added Prot Warrior 2) Fixed CurseClient update process deleting myconfig files -- New EventHorizon_Configs folder you can create and dump myconfig.lua files in there. See changelog/class toc files for more details. 3) Fixed requiredArtifactTalent by swapping to a new Artifact API Library 4) Cleaned up debug log spam Code:
v1.9.14 * Updated forgotten changelog v1.9.13 * Added Prot Warrior. Fixed requiredArtifactTalent functionality. Added separate EventHorizon_Configs myconfig folder. * Added Prot Warrior kindly provided by @jcrate on Github! * Disabled debug logging (PR #29) * Fixed requiredArtifactTalent functionality. Swapped to new library which should make things more consistent. Minor startup-process rework to support change * Added a separate EventHorizon_Configs folder to toc files -- Fix for curse client blowing out myconfigs * * This means that you may now specify a my-config file inside the EventHorizon_Configs folder. * * You'll need to create the folder along side the EventHorizon and EventHorizon_Class folders called EventHorizon_Configs. * * Inside that folder, you can create `core_my_config.lua` file, which is the analogue for EventHorizon/myconfig.lua. * * There is also `<class>_my_config.lua` for each class, which is the analogue for EventHorizon_<class>/myconfig.lua. * * * For example, `EventHorizon_Druid/myconfig.lua` can be put into `EventHorizon_Configs/druid_my_config.lua`, and it'll be persisted between Curse-Client upgrades. |
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-11-17, 03:16 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 2
Uploads: 0
|
Addon broken in 7.1.5
Sorry for so general info but in 7.1.5 addon is not loading ,throws a lot of Lua errors. table/event square not seen at all on screen. playing shadow priest
|
|
Velliuss |
View Public Profile |
Send a private message to Velliuss |
Find More Posts by Velliuss |
Add Velliuss to Your Buddy List |
01-11-17, 09:42 AM | ||
A Fallenroot Satyr
Forum posts: 26
File comments: 95
Uploads: 0
|
Re: Addon broken in 7.1.5
As a temporary work around change line 182 to: Code:
channel = {15407, 3}, If you're using the Shadow Crash talent you'll need to change it's talent number to 20. I'll submit a new config on Github when I'm sure Disc and Holy also work, but as I don't play my priest often I'm only testing on target dummies. I'm not totally happy with the Shadow Priest config, depending on talents if can be eight bars long! If you've got suggestions on how to improve the displayed info or the bar order please let us know. |
|
|
Cluey |
View Public Profile |
Send a private message to Cluey |
Find More Posts by Cluey |
Add Cluey to Your Buddy List |
01-11-17, 10:19 AM | |||
A Kobold Labourer
Forum posts: 0
File comments: 2
Uploads: 0
|
Re: Re: Addon broken in 7.1.5
i got my own config to some degree.i have almost every spell having its own bar so it is 8 bars long. |
||
|
Velliuss |
View Public Profile |
Send a private message to Velliuss |
Find More Posts by Velliuss |
Add Velliuss 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.