I've released a beta version of 5.2 (5.2.8) with an optimized parser and a new, far more flexible, trigger system. The documentation is not complete yet because I wanted to get the new code out for some testing as soon as possible.
The beta should be fairly solid, but if you find any problems with it, please use the bug reporting feature available to the right.
To get all you beta testers started, the general premise of the new system is that you start with the pool of all events of a given type (eg. aura applications, swings, misses, health changes, mana changes, etc) and define conditions that "drill down" to the specific circumstances you want to cause the trigger.
Every event type allows various relationships to test a wide variety of conditions such as source/recipient affiliation, reaction, unit type, unit name, skill name, amount, etc. Keep in mind if you don't define conditions for an event type, your trigger will fire on every single one of those events - almost positively not what you want. Due to this, there is a default set of typical conditions for every event type to ease the process.
For most string type of conditions (skill name, source/recipient names, etc), the "Is Like" relationship allows lua search patterns to be used whereas "Is Equal To" is an exact match. The documentation does include a search pattern reference.
MSBT is designed to be an extremely lightweight, efficient, and highly configurable mod that makes it easier to see combat information by scrolling the information on the screen in separate, dynamically creatable scroll areas. It is a replacement for Blizzard's Floating Combat Text and Damage output.
Note: This video is of version 5.0 and is out of date - specifically regarding triggers. It is still a good overview of the mod however. Make sure to click the Full Screen button on the bottom right of the video to view it full screen!
Features:
Lightweight and efficient design.
Scroll incoming damage/heals, outgoing damage/heals, and notifications in separate configurable scroll areas on the playing field.
Add triggers that will allow you to show notifications based on a variety of conditions.
Assign a sound file to play for events/triggers.
Dynamically create new scroll areas and assign any event/trigger to them.
Customize the position, size, animation style, enabled state, font style, font size, font outline, and opacity for each of the scroll areas.
Customize each individual event's color, font style, font size, font outline, opacity, output message, enabled state, and scroll area.
Set "Master Font" settings that will be inherited by all of the scroll areas and the events in them unless they are overridden at the scroll area or event level.
Merge AoE data into one event with cumulative damage/healing done with number of normal and crits specified.
Show overhealing amounts against yourself or party/raid members.
Color damage amounts according to damage type.
Show partial effects (resists, absorbs, vulnerabilities, etc) colored according to type.
Filter output information with a full suite of spam controls.
Load on demand options.
For mod developers:
Output your own scrolling messages with the MikSBT.DisplayMessage function instead of having to create your own frame and animation code. You can also use your own font by first registering it with MSBT via the MikSBT.RegisterFont function.
Create custom animation styles.
See the included API.html file for reference information.
Supported Events:
Incoming:
Melee Damage, Misses, Dodges, Parries, Blocks, Absorbs, and Immunes
Skill Damage, Damage Over Time (DoTs), Misses, Dodges, Parries, Blocks, Absorbs, Immunes, Reflects, and Interrupts
Spell Resists
Pet Melee Damage, Misses, Dodges, Parries, Blocks, Absorbs, and Immunes
Pet Skill Damage, Damage Over Time (DoTs), Misses, Dodges, Parries, Blocks, Absorbs, and Immunes
Pet Spell Resists
Heals and Heals Over Time (HoTs)
Environmental Damage
Outgoing:
Melee Damage, Misses, Dodges, Parries, Blocks, Absorbs, Immunes, and Evades
Skill Damage, Damage Over Time (DoTs), Misses, Dodges, Parries, Blocks, Absorbs, Immunes, Reflects, Interrupts, and Evades
Spell Resists and Buff Dispels
Heals and Heals Over Time (HoTs)
Pet Melee Damage, Misses, Dodges, Parries, Blocks, Absorbs, Immunes, and Evades
Pet Skill Damage, Damage Over Time (DoTs), Misses, Dodges, Parries, Blocks, Absorbs, Immunes, and Evades
Pet Spell Resists and Buff Dispels
Notification:
Buffs / Buff Fades
Debuffs / Debuff Fades
Item Buffs / Item Buff Fades
Enter/Leave Combat
Power Gains and Losses
Combo Point Gains
Combo Points Full
Honor Gains
Reputation Gains and Losses
Skill Gains
Experience Gains
Killing Blows (Player and NPC)
Extra Attacks
Soul Shard Creation
Enemy Buff Gains
Monster Emotes
Money Gains
Cooldown Completions
Default Triggers:
Backlash
Blackout
Clearcasting
Counter Attack
Execute / Hammer of Wrath
Frostbite
Impact
Kill Command
Low Health
Low Mana
Low Pet Health
Mongoose Bite
Nightfall
Overpower
Rampage
Revenge
Riposte
Victory Rush
Viper Sting
Commands:
Code:
/msbt Shows the options interface.
/msbt reset Resets the current profile to the default settings.
/msbt disable Disables the mod.
/msbt enable Enables the mod.
/msbt version Shows the current version.
/msbt help Shows the command usage.
If you think MSBT is excellent, please give it an excellent rating!
Change Log - MikScrollingBattleText
5.2.8 Beta
Rewrote the core of the event parser to reduce its CPU usage by about 60%.
The trigger system was completely redesigned with the main focus on flexibility.
Triggers now make extensive use of "short-circuiting" to cut down the number of tests needed thereby increasing performance.
Anything that has a patch 2.4 style combat log entry (COMBAT_LOG_EVENT_UNFILTERED) can now be used for a trigger.
The number of available conditions per main event has been substantially increased.
Each parameter for a main event type can now specify various relationships.
Parameters involving strings like skill names and unit names can now choose between an exact match or a search pattern in most cases.
Added a new main event for skill cooldown completions.
Full paths may now be entered for sounds. This includes path to sound files internal to WoW.
5.13
The threshold based triggers such as "Low Mana" and "Low Health" will once again display the current amount.
5.12
Fixed the error when looting money induced in patch 2.4.2.
Fixed the erroneous "Low Mana" warnings when in druid forms.
5.11
Redesigned the trigger system to work with the new combat log mechanics and improve flexibility:
The old main conditions have been replaced with main events that can have several conditions for greater control over things such as affected units (target, focus, etc), applications, etc.
The old secondary conditions has been replaced with exceptions. Exceptions will cause the trigger not to fire when they are true. In addition, most exceptions has a "reverse logic" option that causes them to behave as their opposite for high flexibility.
Triggers now try to choose an appropriate icon based on the main event that fired it. It is still possible to specify an icon that will override the default.
All of the default triggers will now work on non-English clients without the need for localization.
Any additional triggers you may have created in previous versions will have to be recreated under the new system.
Added a default trigger for Viper Sting.
Added the default clearcasting trigger to druids.
Skills like "Mangle (Bear)()" will now be displayed as "Mangle" in the cooldown area.
Animations may now be as slow as 20% of normal instead of the previous 50%.
Scroll areas can now have a minimum height of 50 down from 100.
Increased the allowed font size range to 4-38.
Threshold triggers will no longer misfire when shapeshifting.
Soul Shard gains will now be displayed again.
The %t event type will no longer throw an error.
Added a button to the AddOns tab of Blizzard's Interface Options to launch MSBT's options.
5.1
The optional icons module is no longer required. This is a significant memory savings for those previously using the module.
WARNING: Make sure to remove the old icons module to avoid wasting memory.
Unfortunately, the ability to add and customize triggers is disabled for this release while the system is rewritten.
Rewrote the parser to work with the new combat log mechanics implemented in Patch 2.4. Since manually parsing text strings is no longer required, things like pets with the same name as party/raid members will no longer cause confusion. There also should no longer be problems with non-English clients that had strange parsing issues due to ambiguous strings.
Load up memory usage is now around 221 KiB.
Damage from spell reflects will now be shown to the player who reflected it as if they did the damage.
The horizontal animation style now has an alternating direction option.
Added new events for outgoing (offensive) player and pet dispels.
Internal filtering for identical monster emotes has been added to reduce potential spam.
Only one five combo point notification will now be shown per combo point cycle.
Overhealing will now show on heals that have been excluded from merging.
Fixed an issue regarding cooldowns not being displayed for certain skills like Mangle (Bear).
Added Simplified Chinese localization. Thanks to elafor and hscui for their work.
Updated TOC for Patch 2.4.
5.03
Updated LibStub in MSBTIcons to resolve incompatibilities with a newer library version. This should clear up some issues with other mod compatibility.
Made icons for triggers obey the enable/disable skill icons option.
Updated for Patch 2.3.
5.02
Modified the sound system to allow custom registrations for easier sound selection.
Triggers may now specify a skill name to use for displaying an icon.
Added suitable icons to most of the default triggers.
Added parsing for mana gains from sources like Mana Spring totems now that they can be suppressed, if desired.
Mana gains during Innervate are now shown if the "Hyper Regen" option is set.
Damage from totems and other miscellaneous "pets" will now be displayed.
Changed the minimum scroll area width to 10.
Fixed a problem that was causing all periodic enemy heals and power gains to be shown instead of only buff gains.
Fixed an issue where delayed cooldowns such as combustion were completing before they should.
5.01
DoTs and HoTs may now have independent throttle times.
Power gains can now be throttled and there is a default Vampiric Touch throttle entry.
Power gains now have icons when possible.
Added a "Move All" button to the Events tab to allow the whole category to be moved to a new scroll area quickly.
Added some logic to counteract ill behaved mods such as Recount and SW_Stats modifying global strings.
Fixed some issues with the options interface not saving certain fields properly.
Made search pattern triggers also check secondary conditions to match the behavior of the other condition types.
Updated the MSBTIcons module .toc file to prevent certain cases where it wasn't being loaded in the correct order (Thanks dylanm).
5.0
Complete code rewrite to further reduce memory usage and CPU utilization. Blizzard's addition of memory and CPU tracking tools to the API were used to help achieve this. The CPU utilization is about 55% less, and the load up memory usage is now around 258 KiB.
Redesigned the profile system to use a full master/diff approach. This leads to a substantial memory savings when using multiple profiles. It also adds the benefit of allowing future changes to defaults to take place without having to completely reset user profiles.
The options interface was streamlined and rewritten using pure lua. All the tabs and popup frames are now dynamically created only when needed. The options are still load on demand and use no resources when not loaded.
Created a new set of spam controls:
Show ALL power gains WARNING: This can and will spam you!
Show hyper regen (mana gains during Evocation and Spirit Tap)
Thresholds for Healing, Damage, and Power Gains
Skill name substitution
Skill suppression (e.g. Vampiric Embrace)
Skill abbreviation option with new %sl event code to override at the event level
Independent throttle times per skill
Merge exclusion list (e.g. avoid merging mutilate)
New font opacity setting that follows the same inheritance mechanics as the other font settings, so each individual scroll area and event can have a custom opacity.
Added some "high level" controls to the options interface such as a "Toggle All" button to quickly toggle the enable state of all events in the selected category. This allows you to disable all incoming pet events with one click for example. Another example is a "Disable Skill Names" checkbox which quickly allows you to stop all skill names from being displayed without having to modify every single event and remove the %s.
You'll need the beta version to be able to handle feed pet. Also, from a couple of pages back:
Quote:
Originally Posted by Mikord
I believe feed pet would be a "Periodic Power Gain". So you'd want that to be the main event with conditions of "Recipient Unit Type - Is Equal To - Pet" and "Recipient Unit Affiliation - Is Equal To - Mine". That should do it. You might need to specify a skill name of "Feed Pet Effect" too, though I don't think you should.
I have read the FAQ and watched the video and i cant figure out how to get some sort of notification on screen of when I am feeding my pet. The combat log shows "Feed Pet Effect" but I have tried to no avail to get this to become a screen notification and not just a combat log display. Does anyone have any idea how to setup this trigger?
I have tried:
Trigger Classes:
Hunter
Main Events:
Debuff Application - Feed Pet Effect -1-Any (Any, since there is no selection for specifically pets, so I assume this is correct)
Buff Application - Feed Pet Effect-1-Any
Trigger Exceptions:
Skill Unavailable-Feed Pet Effect
EVENT SETTINGS
Output Scroll Area:
Notification
Output Message:
Feed Pet Effect-%r
Sound:
None
Always sticky checked
Icon Skill:
none
I mainly want to be able to know when the Feed Pet Effect is over and I can mount up since my combat log is usually docked into the small DOCK frame and hard to see. A pet wont gain happiness if u feed it and then immediately mount up to ride since he is technically stored and not gaining the buff.
An additional need would be to know how much happiness is being gained by the food they eat since different foods give different happiness values like 17, 35, etc etc, but this is a secondary option not crucial. The main thing is just I need to know when I can mount up after my pet is fed. In battleground after a pet death being able to feed him and mount up is crucial to the 125% bonus damage if they are kept as happy as possible.
Please help, anyone =(
My pets are counting on you, lol
A buff fade event does not contain who originally applied it, so you can't tell only when it is yours, but if you are using the beta version (5.2.8) you can set the recipient unit reaction as hostile to make it only apply to hostile units.
Jam10:
I'm referring to beta 5.2.8 with this repsonse. I think Water elemental is a "Summon" and Vanish/Totems are a "Cast Success".
Yes you can trigger on party members health falling below a threshold. Health Change: Unit ID - Is Equal To - Party Member Threshold - Is Less Than - #
Hekaton:
If you just want to display the amount, add %a to your output message for the trigger. Example: Gain Lifebloom (%a)
If you are only trying to catch a particular application, you can add the "Amount" condition with the desired value.
my appologies if this is a repeat, but using the current beta there appears to be no way to setup a trigger to "spoof" as such the display of buff stack applications. my goal is to be able to have "Gain Lifebloom (2)" for example instead of just seeing a lot of "Gain Lifebloom" spam. Perhaps i'm overcomplicating my solution? Any help Mikord?
Renew fade - but only for my heal or even just faction
First off, THANK you so much for this amazing mod.
My question is, I am trying to set a trigger that fires when my renew fades from any target that I apply my renew too.
The way I currently have it, when renew fades, every renew fade causes it to fire. Meaning, even a horde renew fading causes the trigger to fire (i play alliance).
I would like to have it only fire for my heal on whomever I applied the renew to. If that is not possible, is it possible to just have a renew trigger that fires only when alliance finish the last renew tick?
I just checked and as you indicated there is in fact no death/destroy event reported when a unit kills a totem, but you could probably fake it fairly accurately with a damage event. Since the totem has 5 health you can look for a damage event to a friendly totem that is greater than 4.
Swing/Range/Skill Damage
Recipient Unit Name - Is Equal To - Windfury Totem
Recipient Unit Reaction - Is Equal To - Friendly
Amount - Is Greater Than - 4
Thanks a ton Mik, I would have never figured that out on my own.
I just checked and as you indicated there is in fact no death/destroy event reported when a unit kills a totem, but you could probably fake it fairly accurately with a damage event. Since the totem has 5 health you can look for a damage event to a friendly totem that is greater than 4.
Swing/Range/Skill Damage
Recipient Unit Name - Is Equal To - Windfury Totem
Recipient Unit Reaction - Is Equal To - Friendly
Amount - Is Greater Than - 4
Aximous:
No, that isn't possible. Icons are either enabled or disabled.
Gadzooks:
You would have to modify the code to do that for the time being.
Marshen:
Medallion/Insignias do not generate combat log events and therefore there is no way for a trigger to detect when they've been used.
Fulnir:
You can't do it through the interface, but here is a script command you can run to change it:
Hello! Just switched from Parrot and loving it so far. One question: is it possible to show looted items in scrolling text? Parrot allows you to see something like "Netherweave cloth +1 (19)" so you can easily see that you have looted one cloth and now have 19. Maybe it's a bit outside of what combat text does, but I found it pretty convenient. It shows money, right?
Hello,
I recently switched to MSBT from Parrot and I was wondering if there's any way to configure Overhealing, besides color?
I know it's a small thing to ask for, but I'd really like to be able to see overhealing like this: "{Amount overhealed}". Right now it's showing "<Amount overhealed>" which I'm not really down with tbh.