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: | 201,034 |
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 |
01-27-14, 07:19 PM | |||
|
Re: Re: Re: Re: Re: Re: [bug] 1.9.5 table index is nil
Any chance you can zip/rar your EH folders so I can see what's going on? At the minimum a pastebin of EventHorizon.lua would be exceptional. |
||
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-25-14, 03:28 AM | ||
|
Re: Re: Re: Re: Re: [bug] 1.9.5 table index is nil
config.lua in EventHorizon folder http://pastebin.com/tMv9w3Wc myconfig.lua in EventHorizon_Priest http://pastebin.com/xkdhej3n It must be because I use the Curse Client, which deletes the whole folder then installs a fresh copy. And if I downloaded EH from WowInterface, I would have done the same thing manually out of habit. Thanks for the tip! |
|
|
myrroddin |
View Public Profile |
Send a private message to myrroddin |
Visit myrroddin's homepage! |
Find More Posts by myrroddin |
Add myrroddin to Your Buddy List |
01-24-14, 11:12 AM | |||
|
Re: Re: Re: Re: [bug] 1.9.5 table index is nil
As for config: I never include myconfig.lua in the new versions. The intent is that you merge the old folder and the new one, so all the new stuff gets overwritten while your myconfig.lua stays the same. If you're deleting the whole folder and putting it back in then you'd have to backup. |
||
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-24-14, 09:15 AM | ||
|
Re: Re: Re: [bug] 1.9.5 table index is nil
myconfig.lua - in the Priest folder http://pastebin.com/PDvG9TcA config.lua - in the main EventHorizon folder. Line 20 causes the error if changed to true. http://pastebin.com/2c04x2de On a side note, I really wish EventHorizon used saved variables. Remembering to back up myconfig.lua before updating is a headache. Forgetting to do so causes migraines! |
|
|
myrroddin |
View Public Profile |
Send a private message to myrroddin |
Visit myrroddin's homepage! |
Find More Posts by myrroddin |
Add myrroddin to Your Buddy List |
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-15-14, 07:42 PM | |
|
Re: [bug] 1.9.5 table index is nil
I found the error was caused by this line in config.lua, within the main EventHorizon folder:
Code:
config.showTrinketBars = false |
|
myrroddin |
View Public Profile |
Send a private message to myrroddin |
Visit myrroddin's homepage! |
Find More Posts by myrroddin |
Add myrroddin to Your Buddy List |
01-15-14, 08:49 AM | |
|
[bug] 1.9.5 table index is nil
Every time I log in, I get the following error. I play a Shadow Priest.
Code:
4x EventHorizon\EventHorizon-1.9.5-10.lua:1597: table index is nil EventHorizon\EventHorizon-1.9.5-10.lua:1597: in function "Activate" EventHorizon\EventHorizon-1.9.5-10.lua:2423: in function "CreateSpellBar" EventHorizon\EventHorizon-1.9.5-10.lua:1823: in function "CheckRequirements" EventHorizon\EventHorizon-1.9.5-10.lua:2736: in function "Initialize" EventHorizon\EventHorizon-1.9.5-10.lua:2970: in function "f" EventHorizon\EventHorizon-1.9.5-10.lua:475: in function <EventHorizon\EventHorizon.lua:471> Locals: self = <table> { CreateSpellBar = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2343 CheckMouseover = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1920 otherIDs = <table> { } layouts = <table> { } SetFrameDimensions = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1620 modules = <table> { } vars = <table> { } mainframe = <unnamed> { } trinkets = <table> { } defaultcolors = <table> { } defaultconfig = <table> { } InitDB = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2513 NewSpell = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2005 Initialize = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2558 ToggleModule = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2463 defaultDB = <table> { } isActive = true frames = <table> { } styleframe = <unnamed> { } CheckTalents = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1606 GetAura = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:593 classcolor = <table> { } LoadClassModule = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1972 db = <table> { } InitializeClass = <function> defined @Interface\AddOns\EventHorizon_Shaman\config.lua:3 dbg = <table> { } DeactivateModule = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2454 RegisterModule = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2932 SetupStyleFrame = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2902 LoadModules = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2432 ApplyConfig = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2751 glyphs = <table> { } CheckRequirements = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1742 Deactivate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2501 defaultDBG = <table> { } newSpell = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2017 config = <table> { } colors = <table> { } Activate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2481 ModuleEvent = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2472 ActivateModule = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2445 defaultlayouts = <table> { } UpdateConfig = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2821 } config = <table> { internalcooldown = true playerbuff = true slotID = 13 } spellid = nil invid = nil csid = 13 slotname = "Trinket0Slot" spellname = nil tex = nil _ = nil spellframe = <unnamed> { 0 = <userdata> Activate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1589 UNIT_AURA_refreshable = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1152 SPELL_UPDATE_COOLDOWN = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1367 RemoveChannelTicksAfter = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1011 slotID = 13 UNIT_SPELLCAST_CHANNEL_START = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:810 Deactivate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1575 PLAYER_EQUIPMENT_CHANGED = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1424 RemoveTicksAfter = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:999 OnUpdate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:752 UpdateDoT = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1234 isType = "playerbuff" internalcooldown = true slotName = "Trinket0Slot" UNIT_SPELLCAST_CHANNEL_UPDATE = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:840 BAG_UPDATE_COOLDOWN = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1367 interestingEvent = <table> { } interestingCLEU = <table> { } indicators = <table> { } UNIT_SPELLCAST_START = <function> defi |
|
myrroddin |
View Public Profile |
Send a private message to myrroddin |
Visit myrroddin's homepage! |
Find More Posts by myrroddin |
Add myrroddin to Your Buddy List |
01-06-14, 11:24 PM | ||
|
Re: thanks and request
Thanks for bringing this up. It's the only way I know there's a problem! |
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-06-14, 11:21 PM | ||
|
Re:
|
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-06-14, 11:20 PM | ||
|
|
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-06-14, 11:19 PM | |||
|
If you provide the newSpell function with both a "slotID" and an "internalcooldown" EH will start a bar that is of the length provided by "internalcooldown" when the trinket in the slot given by slotID procs. This link should be helpful in determining the slot ID if you don't know it off-hand. http://wowprogramming.com/docs/api/GetInventorySlotInfo |
||
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-06-14, 11:12 PM | ||
|
Apparently I hardcoded in the adding messages without checking for debug. MY BAD!
Last edited by Brusalk : 01-06-14 at 11:12 PM.
|
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-06-14, 11:06 PM | ||
|
"This little table judges the thickness and positioning of each bar element." Look for that line, and after reading the rest of the comments there you should understand how to alter that sort of thing. (Conveniently, the tick indicator you're talking about is the first option in the config table for layouts.) The final piece of the puzzle is to look for the line "The format for the color section is {Red, Green, Blue, Opacity/Alpha}. To color a bar or indicator by class, use {true, <burn>, <alpha>}." Below that is the colors table, where you can look for the tick setting for colors. It's currently set to class color with a slight burn. You can change that to be a white color. All tick indicators are 1px wide and that can't be changed with a config option, though if you're feeling adventurous you could try and change the blend mode of the tick to be something more noticeable. HTH! |
|
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
01-06-14, 10:55 PM | ||||
|
Oh god I wish I could figure out why my inbox is spam-filtering all of my "comment posted" emails from WoWI. I'm sorry guys! I thought no one was asking anything.
(A apologize for this incoming wall-o'-text in advance.)
|
|||
|
Brusalk |
View Public Profile |
Send a private message to Brusalk |
Visit Brusalk's homepage! |
Find More Posts by Brusalk |
Add Brusalk to Your Buddy List |
12-15-13, 11:16 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 1
Uploads: 0
|
thanks and request
Thank you so much for continuing to develop and support Event Horizon. I started using EH way back in vanilla WoW, and it's really my one critical add-on as a caster dps. That being said, here's my request, since I'm not brave enough to start tinkering with EH settings myself - would you consider separating moonfire and sunfire tracking for balance druids? Right now they're tracked as overlapping spells. For instance, if I cast moonfire, some other spell, then sunfire on a single mob in that order, the tracker bar lights up at the beginning of moonfire initially showing the duration appropriate for moonfire, then when moonfire wears off but sunfire is still active the tracker bar automatically extends until the end of the second DOT. It would really help me out if they were tracked separately. Thanks again!
|
|
Araveni |
View Public Profile |
Send a private message to Araveni |
Visit Araveni's homepage! |
Find More Posts by Araveni |
Add Araveni 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.