Making HeroStats track Speed Boost buff durations


pudds

 

Posted

For any of you Kinetics out there, you'll know that keeping track of when speed boost is going to expire is a pain. If you use HeroStats, you'll probably also know that speed boost shows up in the buff list as something like "Pyromance -> Unknown", with a duration. This is because the game doesn't show your target name in the combat log for herostats to find like most other buffs do.

However, the guys over at HeroStats do good work, and their method of picking out chat messages is no different. If you look into the ChatMessagesRegexs.dat file (its just a text file), you'll see it has a very large, specially formatted list of power messages. Using this, and a bind/macro, you can force the game to give you something HeroStats can use more effectively.


Step 1: Removing the Original Speed Boost line from the HeroStats Chat File

You'll need to edit the file located in your herostats directory, probably C:\Program Files\HeroStats\. The file name is ChatMessagesRegexes.dat, and can be opened in notepad. You're looking for this section (line 1527 currently):

<font class="small">Code:[/color]<hr /><pre># These are buffs but we don't know who the target is. Still useful to track as a
# timer - at least with the last instance showing you'll have some idea when
# they're about to wear off.
PowerActivated,BuffGiven You activated the {PowerName} power.
ApplyToPower=Grant Invisibility,Inertial Reduction,Speed Boost
PlayerName=Unknown</pre><hr />

This is what HeroStats uses to track speed boost by default. You need to remove speed boost from that line, so it looks like this instead:

<font class="small">Code:[/color]<hr /><pre> ApplyToPower=Grant Invisibility,Inertial Reduction</pre><hr />

If you skip this step, the other steps will still work, but you'll get an Speed Boost buff to Unknown everytime you use it.


Step 2: Adding Your Own Custom Speed Boost Line

Order is relatively important in the chat message file, so you have to be somewhat careful where you put the new line. Don't put it at the top or the bottom, specifically. About 200 lines in (197 currently) there's a section titled "Normal Buff Messages". That's where I put mine (under the Regeneration Aura line, to be exact).

Here's what you need to add to the file:

<font class="small">Code:[/color]<hr /><pre>#######################
#BuffGiven Binds
#######################
# Custom line for Speed Boost
BuffGiven \[\w+\]--&gt;.+: Buffing {PlayerName} with {PowerName}.
BuffGiven \[HSBuffs\] YourGlobal: Buffing {PlayerName} with {PowerName}.</pre><hr />

Note the second BuffGiven line. This should be changed to your global chat handle (without the @ sign). The space between the BuffGiven and the backslashes should paste in as a tab, but you should double check to ensure they did. HeroStats will crash on load if they are spaces instead of a tab.

At this point, you can save and close the chat message file, and reopen HeroStats.

Edited: fixed a bug with the chat file that caused other people in the channel's buffs to be caught as well

Step 3: Creating a Bind/Macro for HeroStats to Use

I used a macro for this, because I'm too forgetful to remember what my bind keys are, but a bind will work just fine.

The trick to getting the real buff timers is to give HeroStats a name to track. This is done by sending a message that HeroStats can see everytime you activate Speed Boost.


3a: Using a Tell

The tell option is the easiest, but it will fill your window with tell messages from yourself, which is a bit annoying. I used it for a day quite successfully when I first created the bind and it didn't bother me much after a while.

For tell mode, use this macro:

<font class="small">Code:[/color]<hr /><pre>/macro SB "/t $name, Buffing $target with Speed Boost.$$powexec_name Speed Boost"</pre><hr />

Don't forget the period before the $$. If you miss it, it won't work.


Step 3b: Chat Channel Mode

The chat channel is nicer, since you won't be bombarded with messages, but you'll need at least one free chat channel. The second line we added to the chat file is setup to watch a channel I created named HSBuffs. You're welcome to join this channel if you like, but if you'd rather create your own channel, you'll need to change the name in the chat file.

One caveat: as of writing, only the unstable version of HeroStats allows you to watch global channels. If you want to use this method, you'll need to download the unstable version (3.7+).

To use chat channel mode, use this macro:

<font class="small">Code:[/color]<hr /><pre>/macro SB "chan_send HSBuffs Buffing $target with Speed Boost.$$powexec_name Speed Boost"</pre><hr />

Don't forget the period before the $$. If you miss it, it won't work.


Step 4: Configuring HeroStats

Under View &gt; Hero Options, you need to tell HeroStats to watch the appropriate channel. If using tells, turn "Private Messages" on under the "Chat Channels" tab. For global channel mode, enter the name of the global channel (HSBuffs) in the first box under the "Global Channels" tab.

HeroStats also doesn't track buff timers by default. Under the "In-Game" tab, you'll want to enable "Show buff timer window" and "Show buff supplier/recipient".


Known Issues

The message will fire off regardless of whether speed boost actually activates or not. This means that if your target is out of range, or your target is invalid, HeroStats will still think you buffed them and show you a timer. Not a major issue for out of range targets, since you can just rebuff them and the timer will reset, but occasionally you'll have to look at things like "Pyromance -&gt; Button Man Gunner" for two minutes

-----------------------------


That's it folks, long-winded as it was. If you actually made it this far, you're all done. One other tip I can offer that's not directly related to the bind is for HeroStats...for anyone that might find HeroStats causes a performance hit, you may want to disable the graphing function under View &gt; Hero Options (I disable it for _Global so it's off for all characters). As cool as this function is, its also pretty resource intensive. Turning it off made all the difference for me.

Enjoy the less stressful boosting