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,985 |
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 |
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
Mechrior |
View Public Profile |
Send a private message to Mechrior |
Find More Posts by Mechrior |
Add Mechrior to Your Buddy List |
05-01-10, 08:23 PM | |
|
Re: Re: Re: sad to hear you go but help?!
And your mage is the only char that this happens on?
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
05-02-10, 01:43 AM | |
A Murloc Raider
Forum posts: 7
File comments: 25
Uploads: 0
|
Any idea why the envenom buff doesn't appear while in pvp muti spec?
*edit, after the reply: didn't want to create a new post; thanks a lot for the help, lazy of me not to check it; nice and easy
Last edited by oopsminded : 05-02-10 at 10:41 AM.
|
|
oopsminded |
View Public Profile |
Send a private message to oopsminded |
Find More Posts by oopsminded |
Add oopsminded to Your Buddy List |
05-02-10, 04:31 AM | ||
|
If you want Envenom's bar to appear in your spec, look for its bar in EventHorizon_Rogue/config.lua (halfway down the file, it's not hard to find) and change this line... Code:
requiredTalent = {1,27}, Code:
requiredTalent = {1,24}, |
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
05-04-10, 09:24 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 9
Uploads: 0
|
EH Error
I get this error when I am in a raid. I have never gotten it solo and haven't been in a 5 man grp to try it. Here is the error debug report I get:
Error occurred in: Global Count: 1 Message: ..\AddOns\EventHorizon\EventHorizon.lua line 217: bad argument #1 to 'unpack' (table expected, got nil) Debug: [C]: ? [C]: unpack() EventHorizon\EventHorizon.lua:217: AddIndicator() EventHorizon\EventHorizon.lua:231: AddSegment() EventHorizon\EventHorizon.lua:758: UpdateDot() EventHorizon\EventHorizon.lua:507: UNIT_AURA() EventHorizon\EventHorizon.lua:533: f() EventHorizon\EventHorizon.lua:86: EventHorizon\EventHorizon.lua:83 [C]: CameraOrSelectOrMoveStop() [string “CAMERAORSELECTORMOVE”]:4: [string “CAMERAORSELECTORMOVE”]:1 This error results in a gray bar in the area where the #5 bar should be. The event on that bar shows but is washed out by the darker gray bar. I use a myconfig.lua in both the Event Horizon folder and in the Priest folder. Any idea what is wrong? |
|
keeblar |
View Public Profile |
Send a private message to keeblar |
Find More Posts by keeblar |
Add keeblar to Your Buddy List |
05-04-10, 11:59 PM | |
|
Re: EH Error
Reading over the debug stack, looks like that's happening when you change from one target to another (line 533, part of the PLAYER_TARGET_CHANGED function, is only used in that exact case). What exactly is happening... not entirely sure. Read on for why.
EH uses Lua's unpack function to pass information from the color table in a usable form to what WoW uses to color the bars. That unpack is getting fed something that doesn't exist, so it's barfing an error and stopping in its tracks. (This is what's happening at line 217) Line 758, the part which is actually at fault, contains this code: Code:
self.aurasegment = self:AddSegment(typeid, 'default', start, expirationTime) Code:
local typeid = (source=='player' and self.isType) or (self.isType == 'debuffmine' and source~='player' and 'debuff') For the short term, you can add this at line 209 in EventHorizon.lua: Code:
local typeid = typeid if not typeid then typeid = 'debuff' end As for what's causing it, I need two things: 1) An armory link and the spec it happens with. 2) Both of those myconfigs. Either wrap them in code tags here or host and link them, doesn't matter either way to me. |
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
05-05-10, 03:21 AM | ||
|
Re: Re: Re: Re: sad to hear you go but help?!
yes it is the only character currently having this problem....... |
|
|
Mechrior |
View Public Profile |
Send a private message to Mechrior |
Find More Posts by Mechrior |
Add Mechrior to Your Buddy List |
05-05-10, 07:34 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 9
Uploads: 0
|
Thanks for the quick reply here is the info you need:
Armory http://www.wowarmory.com/character-s...aran&n=Keeblar The spec is Shadow Event Horizon folder, myconfig.lua Code:
local config = EventHorizon.config local _,class = UnitClass('player') 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" -- Past and future determine the number of seconds displayed before and after the current time. config.past = -3 config.future = 12 -- Width and height of a single bar. config.width = 250 config.height = 18 -- This option will add bars for your trinket effects and cooldowns below the rest of your spells. Note that at this time only epic-quality level 80 trinkets are tracked, and not every type of trinket effect can be tracked. Disabled by default. Any value other than true is ignored. -- config.showTrinketBars = false config.showTrinketBars = true -- The space between two bars. config.spacing = 0 -- The overall scale of the main frame. config.scale = 1 -- By default, the main frame is parented to the handle to make it draggable. -- The top-right of the frame is anchored to the top-left of the -- handle, which makes the frame grow downwards. config.anchor = {"TOPRIGHT", "EventHorizonHandle", "BOTTOMRIGHT"} -- Use the following line to anchor the bottom left of the frame to the top left of the handle, thus allowing the -- bars to grow upwards. You will only notice a difference on Druids, where bars are shown/hidden depending on stance. --config.anchor = {"BOTTOMLEFT", "EventHorizonHandle", "TOPLEFT"} -- Alternatively, set a fixed position for the main frame. The handle won't be created if the main frame is not going to be parented to it. -- The following line will anchor the top of the main frame to the center of the screen, making the frame grow downwards. --config.anchor = {"TOP","UIParent","CENTER",100,100} -- When you anchor the bottom, the frame will grow upwards: --config.anchor = {"BOTTOM","UIParent","CENTER",100,100} -- Comment out or remove the following line if you want to keep bars with a solid color. config.texturedbars = true -- Most textures appear darker than a solid color because of the alpha value. To counteract this, -- the alpha value of the color is multiplied by the following value before it's applied to a texture. config.texturealphamultiplier = 2 -- Create the backdrop frame and border. config.backdrop = true -- Set it to nil to remove it, like so: --config.backdrop = nil -- Use the default Blizzard icon border. config.iconborder = false -- Add full-frame casting lines for spellcasts over 1.5 seconds. config.castLine = true -- Display the end of the GCD as a thin line. -- config.gcdStyle = 'line' -- Alternatively, display the GCD as bar from now to the end. config.gcdStyle = 'bar' -- To disable the GCD indicator, clear the style. --config.gcdStyle = false -- Backdrop, border, and texture settings. These are the defaults, tweak to taste. -- Individual bar background. config.bartexture = "Interface\\Addons\\EventHorizon\\Smooth" -- Individual bar background color. config.barbgcolor = {1,1,1,0} -- Frame background. config.bg = "Interface\\ChatFrame\\ChatFrameBackground" -- Border texture. config.border = "Interface\\Tooltips\\UI-Tooltip-Border" -- Advanced settings. -- Use this to shrink or enlarge the background. Negative numbers move the background edges further from its center, positive numbers move it closer. config.inset = {top = 2, bottom = 2, left = 2, right = 2} -- Extra space between the EventHorizon bars and the border. config.padding = 3 -- Thickness of the frame's border. config.edgesize = 8 -- Color of individual bar segments. Format is R,G,B,Alpha with a max of 1 and a minimum of 0. Math and other references may be done within these tables for finer control. Example: {125/255,125/255,240/255,1} or {0.15*1.38, 3/16, 0.1+c.debuff[3], 0.5} -- Class coloring has two options, burn (darkness) and alpha (opacity). Burn has no max, but be careful how high the value is adjusted or you'll end up with pure white. Alpha is 0 to 1. -- To color a bar or indicator by class, use {true, <burn>, <alpha>}. Note that the alpha portion is affected by config.texturealphamultiplier as with manual coloring. local c = EventHorizon.colors c.sent = {true,Priest and 0.7 or 1,1} -- Marker line when a spellcast is sent to the server. Default = {true,Priest and 0.7 or 1,1} (class colored, dimmed a bit if you're a Priest, opaque) c.tick = {true,Priest and 0.7 or 1,1} -- Tick markers. Default = {true,Priest and 0.7 or 1,1} (class colored, dimmed a bit if you're a Priest, opaque) c.casting = {0,1,0,0.3} -- Casting bars. Default = {0,1,0,0.3} (green, 0.3 unmodified alpha) c.cooldown = {1,1,1,0.25} -- Cooldown bars. Default = {1,1,1,0.25} (white, 0.3 unmodified alpha) c.debuffmine = {true,Priest and 0.7 or 1,0.3} -- YOUR debuff bars. Default = {true,Priest and 0.7 or 1,0.3} (class colored, dimmed a bit if you're a Priest, 0.3 unmodified alpha) c.debuff = {true,0.5,0.3} -- OTHER PLAYERS' debuff bars. Default = {true,0.5,0.3} (class colored, darkened by 50%, 0.3 unmodified alpha) c.playerbuff = {true,Priest and 0.7 or 1,0.3} -- Buff bars. Default = {true,Priest and 0.7 or 1,0.3} (class colored, dimmed a bit if you're a Priest, 0.3 unmodified alpha) c.nowLine = {1,1,1,0.3} -- The "Now" line. c.bgcolor = {0,0,0,0.6} -- Color of the frame's background. Default = {0,0,0,0.6} (black, 60% opacity) c.bordercolor = {1,1,1,1} -- Color of the frame's border. Default = {1,1,1,1} (white, fully opaque) c.gcdColor = {1,1,1,0.5} -- Color of the GCD indicator. Default = {1,1,1,0.5} EventHorizon.layouts = { tick = { top = 0, bottom = 0.2, }, smalldebuff = { top = 0.2, bottom = 0.35, }, cantcast = { -- This is the empty section below the smaller section shown for recasting certain spells. top = 0.35, bottom = 1, }, default = { top = 0.2, bottom = 1, }, } Code:
local config = EventHorizon.config local usemouseover = true -- Make this false or nil (or just delete the line altogether) to make your healing bars not change when you mouse over something. function EventHorizon:InitializeClass() self.config.gcdSpellID = 1243 -- Power Word: Fortitude -- Devouring Plague self:NewSpell({ spellID = 25467, debuff = true, cooldown = true, dot = 3, refreshable = true, stance = 1, requiredTalent = {3,19}, hasted = {3,19}, expectedTicks = 8, }) -- Vampiric Touch self:NewSpell({ spellID = 48160, cast = true, debuff = true, dot = 3, stance = 1, requiredTalent = {3,24}, hasted = {3,19}, expectedTicks = 7, }) -- Mind Blast self:NewSpell({ spellID = 8092, cast = true, cooldown = true, stance = 1, requiredTalent = {3,19}, }) -- Mind Flay self:NewSpell({ spellID = 48156, channeled = true, numhits = 3, stance = 1, requiredTalent = {3,19}, }) -- Shadow Word: Death self:NewSpell({ spellID = 32379, cooldown = true, stance = 1, requiredTalent = {3,19}, }) -- Shadow Word: Pain self:NewSpell({ spellID = 10892, debuff = true, dot = 3, refreshable = true, requiredTalent = {3,19}, }) --[[ Shadow Weaving self:NewSpell({ spellID = 15332, playerbuff = true, requiredTalent = {3,12}, })--]] -- Renew self:NewSpell({ spellID = 139, playerbuff = true, auraunit = usemouseover and 'mouseover' or 'target', dot = 3, stance = 0, }) -- Prayer of Mending self:NewSpell({ spellID = 48113, playerbuff = true, cooldown = true, auraunit = usemouseover and 'mouseover' or 'target', stance = 0, }) -- Penance (including Grace) -- Also EASILY the longest spell entry in EventHorizon to date. Uses an absurd amount of nonstandard types! self:NewSpell({ spellID = 53005, playerbuff = 47930, auraunit = usemouseover and 'mouseover' or 'target', channeled = true, numhits = 2, cooldown = true, stance = 0, requiredTalent = {1,28}, cleu = 'SPELL_HEAL', -- Usage of config.cleu (alias: config.event) }) -- Lesser Heal (including Surge of Light) self:NewSpell({ spellID = 2061, playerbuff = 33151, cast = true, stance = 0, }) -- Greater Heal (including Serendipity) self:NewSpell({ spellID = 2060, playerbuff = 63731, unique = true, cast = true, stance = 0, }) -- Circle of Healing self:NewSpell({ spellID = 34863, --playerbuff = -- There's a buff I want to show here, I just haven't decided what. cooldown = true, stance = 0, requiredTalent = {2,24}, }) -- Weakened Soul (Disc - Can't track PW:S on the same bar yet) self:NewSpell({ spellID = 6788, debuff = true, unique = true, auraunit = usemouseover and 'mouseover' or 'target', stance = 0, requiredTalent = {1,15}, -- Soul Warding }) return true end
Last edited by keeblar : 05-05-10 at 07:38 AM.
|
|
keeblar |
View Public Profile |
Send a private message to keeblar |
Find More Posts by keeblar |
Add keeblar to Your Buddy List |
05-05-10, 04:48 PM | ||
|
Mechrior: No idea what's going on. Do you use a custom config or anything? And you said no Lua errors?
Just a random idea, but have you tried reloading your UI once in game? If not, type '/console reloadui' without the quotes and see what happens.
Your Priest myconfig is the exact same as the standard one (I'm guessing you just changed the expectedTicks line in Vampiric Touch, which is standard now). You can delete that. For your EH myconfig, only change I can see is that you changed the GCD indicator to bar mode. You can wipe the contents of the file and just use this: Code:
local config = EventHorizon.config config.gcdStyle = 'bar' |
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
05-06-10, 03:56 AM | ||
|
Strange thing is i recently talented into Icy Fingers and that has appeared on the EH window BELO the problem area...... im thinking it could be a problem with it recognising the talents for my mage tree as im 100% frost so far. and no, not 1 error in the dump stack or lua stack. will try doing a talent respec, and see if that helps...... hopefully that will help |
|
|
Mechrior |
View Public Profile |
Send a private message to Mechrior |
Find More Posts by Mechrior |
Add Mechrior to Your Buddy List |
05-06-10, 04:01 AM | |
|
Well, count me as having no idea what's going on.
|
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
05-06-10, 09:39 PM | ||
|
Re: Re: EH Error
|
|
|
Repaxan |
View Public Profile |
Send a private message to Repaxan |
Find More Posts by Repaxan |
Add Repaxan to Your Buddy List |
05-07-10, 09:30 AM | |
|
Re: Re: Re: EH Error
The game occasionally 'loses' debuffs in some fights - Their effects are still there and they do damage as normal, but they can't be seen by addons or even the default interface.
Happens most often with Warriors for some reason, but I've experienced it on my Priest and Hunter as well. It's rather annoying, but doesn't seem related to EH (it'll happen both with and without EH, just easier to notice with EH involved). Keeblar's issue is very different, trust me. =P |
|
Taroven |
View Public Profile |
Send a private message to Taroven |
Find More Posts by Taroven |
Add Taroven to Your Buddy List |
05-10-10, 09:04 AM | |
A Deviate Faerie Dragon
Forum posts: 12
File comments: 3
Uploads: 0
|
A small but annoying bug.
Hello.. noticed that this is the real home of this addon so will paste my comment from Curse here aswell..
Hello! I really love this addon! Great work! Have a small problem with my Darkmoon Card: Greatness proccs not showing up. Have tried adding them to class lua, and also edited the Trinket lua. Can't get it to work. I see the trinket, but never any uptime or cooldown. Thanks. ------------ Really would like some help to get it to work. /Farstrand |
|
Farstrand |
View Public Profile |
Send a private message to Farstrand |
Find More Posts by Farstrand |
Add Farstrand 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.