Recap 3.32 This AddOn will track and summarize the damage dealt and received by every participant in a fight around the user. __ New in 3.32 __ - Displaced text back in minimized view - Scrollwheel works on lists - All combat events unregister when paused __ Useage __ Once installed, use /recap to summon or dismiss the window. Alternately, you can set up a key binding in options to toggle the window. There are three states to the mod indicated by the color of the light in the upper left of the window: Red (Stopped): The mod is currently paused and inert. Fight logging is suspended. Off (Idle): The mod is currently idle and waiting for a fight to begin. Green (Active): The mod is actively watching a fight and accumulating totals. There are two forms of the window toggled by the minimize button: Minimized: This form is a single bar of DPS numbers. Updated in realtime. Maximized: This form shows the data in a list. Updated at the end of each fight. There are three views of the data in maximized form: Last Fight (Green titlebar): This is the damage detail of every participant in only the last fight. All Fights (Red titlebar): This is the damage detail of every participant in all fights since you last reset. Personal Details (Blue titlebar): This is a breakdown of your spells and abilities independent of fights. The buttons along the top are, right to left: Minimize: This will minimize/restore the window from list to minimized form. You can choose what elements to display in each form in the options window. Close: This will hide the window. If the mod is idle or active, fight logging will still continue. Pin: This will toggle a lock to permit/prevent the window from being moved. If you choose to hide all buttons in minimized view, right-click of the minimized window is the same as pushing the pin button. Pause/Resume: This will suspend or resume fight logging. If you are currently in a fight it will update the totals of the fight up to that point. Options: This will bring up the options window. Last/All: This will toggle between Last Fight and All Fights views. Personal Details: This will toggle the view to your personal details view and back to all combatants. (for now only usable when not in Light Data Mode) In Last/All views you can sort each column by clicking its header. Click it once to sort by descending values or click again to reverse directions. In general, the colors used are: Green: Outgoing damage. This is the damage caused by your group/raid to others. Red: Incoming damage. This is the damage caused by others to your group/raid. Blue: Healing. This is the amount of healing going to others. Green is also used to note a friendly combatant. This is generally those in group/raid and their pets, but you can add others manually. __ Reporting To Chats (/w, /p, /g, /ra, etc) __ The standard method of sending information to chats is by linking, the same as you would a quest or item. Everything that highlights when you mouseover (aside from options) is linkable in this way. Begin a chat and then shift+click the information and it will insert into your /w, /p, /ra, /g or whatever mode you want to send. For instance if you're looking at the details of Gello's Fire Blast and want to /p its crit rate to group, you would /p then shift+click Gello's Crit% under Fire Blast. It will now say: [Party] [You]: Gello's Crit Rate for Fire Blast: 7.8% Or you can shift+click Fire Blast itself and it will say: [Party] [You]: Gello's Fire Blast did 12598 damage (24% of their damage) Or you can shift+click the Totals header in his details: [Party] [You]: __ Gello's Effects __ [Party] [You]: Fireball: 52345 (46%) [Party] [You]: Scorch: 49821 (30%) [Party] [You]: Fire Blast: 12598 (24%) Or you can shift+click Gello himself and it will say: [Party] [You]: Gello took 16703 damage and dealt 51624 damage over 13:22 for 64.4 DPS (max hit 386) for All Fights You can shift+click the damage out column header ("Out" on main window) and it will say: [Party] [Gello]: __ Damage Dealt for All Fights __ [Party] [Gello]: 1. Gello: 51624 (64.4%) [Party] [Gello]: 2. Arcanite Dragonling: 18838 (23.5%) [Party] [Gello]: 3. Battle Chicken: 117364 (12.1%) If you uncheck 'Report in multiple rows' in the Report tab in options, reports will attempt to link to a single line: [Party] [Gello] Gello's Effects: [Fireball 52345 (46%)] [Scorch 49821 (30%)] [Fire Blast 12598 (24%)] [Party] [Gello] Damage Dealt for All Fights: [1. Gello 51624 (64.4%)] [2. Arcanite Dragonling 18838 (23.5%)] [3.Battle Chicken 117364 (12.1%)] If the text would exceed a single line, including whatever you've typed into the chat already, it will send what it can fit to chats and then automatically send another line with the rest of the information, repeating as necessary. At the Report tab in options, you can also choose to automatically post changes in leadership of a stat after each fight. You can also choose to automatically report the results of the last fight. Be considerate when using this option as it can really be annoying. I suggest: 1. /join a new channel, like MyDPSSpam 2. Set recap to send auto-posts to MyDPSSpam 3. Ask those interested to join that channel __ Details Panel __ This additional window initially acts like a tooltip in that it will reveal extra information when you mouseover a combatant in the list, then dismiss when you leave the window. Selecting a combatant will lock the details to that combatant. You can move it to any part of the screen, or align it to an edge of the recap window and it will dock to move with the main window. The details panel is broken into three tabs: Summary (book icon): This is the last/all fight data you would see if you had all columns turned on. Damage (sword icon): This is a breakdown of outgoing damage/heals by effect for each combatant. Selecting an effect will fill in further details in the lower part of the panel. Tanking (shield icon): This is a breakdown of incoming damage and misses. By default, the list of effects in the Damage pane shows their total damage(or healing) and its contribution. You can right-click the header and choose which stat to show in its place: Total, Max Hit, Average Hit, Crit Rate, Miss/Overheal Rate. As mentioned above, every field that's highlightable in the details panel can be linked to chats (including the details header to link a summary of all effects). Tooltips explain what each value means. When Light Data Mode is enabled in options, only the summary tab works in details. __ Fight Definition __ - By default, a fight is defined from the moment damage is first attempted around you to when you leave combat mode. In options you can choose to wait until you enter combat to begin logging, or let logging expire after a period of inactivity. - Within the fight, the total duration is from the first attempted point of damage to the last attempted point of damage dealt by anyone, friend or foe. - Within that total duration, each combatant's time fighting is defined from the first attempted point of damage to the last attempted point of damage that individual dealt to anyone, friend or foe. __ Damage Per Second __ - Damage Per Second uses the durations mentioned above. One timer for a total fight duration, friend or foe. And separate timers for each individual combatant. - The state of your in-game combat mode has little bearing on fight durations except as a convenient stopping point to update totals. - Initial casting times and misses/resists of effects that have been known to do damage will trigger the timer to start. Resists or misses at the end of a fight will extend that individual's time fighting. Casting times are now included in the duration. - There is a conspicuous lack of DPS Incoming except as a total. This is because each individual's timer is from the first to last attempted point of damage they dealt to others. Others dealing damage to them will not affect their fight time. - When a combatant only does damage once in a fight, their fight time is zero, hence their DPS will be zero as well. You can choose to hide these hits in options, but the damage dealt will still be accumulated into totals. (Total damage is a far better metric for group/raid contribution) - In 3.2 there is a new DPS column: DPS vs All. This is the damage over the total fight duration, friend or foe. Note that if you don't reset just before an instance/raid, the DPS vs All will have little meaning for that instance/raid. __ Melee vs Non-Melee, Misses __ Melee: Everytime you see a stat for Melee, it means pure melee with a weapon. It does NOT include physical effects such as Heroic Strike, Sinister Strike or Eviscerate. Yes, Heroic Strike says it will make your next melee hit for X, but when your next melee happens it is Heroic Strike doing the damage, not melee. Non-Melee: This is all forms of damage that are not pure melee. This includes Heroic Strike and other physical effects, as well as spells, ranged shots, damage shields, etc. The combat log makes a distinction between melee vs non-melee, but unfortunately it does not make a distinction between physical and spell non-melee. Because of this, if we pretend Heroic Strike is a melee effect, then we have to pretend Frost Bolt is a melee effect which it's not. To hopefully make the data more meaningful: Dodge/Parry/Block only apply to Melee. Physical non-melee effects do not report the dodge/parry/block at this time. This may change. When I add a separate timer for damage incoming, then a lot of this will become moot, as we can then track the number of dodges etc per hour instead of per attempt. There are rumors of the combat log spam changing in the near future, so these definitions and what's tracked may change. __ Overhealing __ New in 3.1 is an attempt to estimate overhealing. This is largely based on a method Faydra posted on the WoW forums that works like this: 1. Once per fight, the current hp/max hp of each group/raid member is stored. 2. As the fight happens, the current hp is adjusted based on damage and healing occuring. 3. When it thinks a heal will fill a group/raidmember's hp to max, it clips the value to what would make it max, uses that for its heal and adds the rest to an overheal counter. 4. When in doubt, ie, if a groupmember ran far away so it's possible damage/healing spam aren't visible and then they run back for a heal (or much more likely the healer plays Chase-The-Fleeing-Minimap-Dots-To-Heal), it will credit the full amount for the heal. 5. For now, full heals are credited in the first fight a combatant appears. For intance, if a priest were to cast Prayer of Healing on this group: player: 4000/4000 life (missing 0hp) party1: 4500/5000 life (missing 500hp) party2: 3250/3500 life (missing 250hp) party3: 2000/5000 life (missing 3000hp) party4: 5000/5000 life (missing 0hp) and the Prayer of Healing healed each player 600, it would report 1350hp healed. 500 for party1, 250 for party2, and the full amount (600) for party3. 1650hp would be the overhealing amount, or 55%. __ Resetting Totals __ In the lower left of the window is a red reset button. - If you are in All Fights view, hitting this button will wipe all current fight data. You can reasonably store hundreds of combatants in the accumulated totals, but it can make for some excessive scrolling and the amount of data that builds up can get rather large. Periodically you can save these into fight data sets if you really don't want to lose the data. - If you are in Last Fight view, hitting this button will wipe only the last fight's data and remove them from the accumulated totals. Any new max hit in the last fight will not be reverted in that combatant's accumulated totals. - If you are in Personal Details view, hitting this button will wipe only your personal details. Otherwise they will persist even after resetting Last/All Fights. You can also reset individual combatants and effects by right-click and choosing Reset in the menu that appears. Individual resets use the same rule as the reset button: In Last Fight view, it will rollback that combatant one fight. In All Fights view, it will reset that combatant's data entirely. In Personal View, it will reset that effect. __ Display Options __ In the Minimized and Maximized views you can turn nearly element on and off by right-clicking a header (or the window itself while minimized) and checking which to display. In the screenshot above of the minimized view is an example. You can turn on or off any number of elements and the window will resize to only the elements you choose. You can display just your DPS and buttons, just the status light, total DPS in and total DPS out, etc etc. In list view you can turn on or off the columns to display. The window will resize for only the columns checked in options. It will continue to accumulate totals for elements you choose to hide. So you can turn columns off without affecting any fight data should you want to go back and look at them later. In the minimized view there are only three numbers shown: - Your DPS: Colored white, this is your personal DPS including your pet if it was alive at the end of a fight. - DPS In: Colored red, this is the total DPS incoming to all friendly combatants. The damage the group/raid received from others. - DPS Out: Colored green, this is the total DPS out of all friendly combatants. The damage the group/raid dealt to others. The DPS values reflect the view state you're in: Last Fight or All Fights. Because the window resizes a lot in different directions, it will always make sure it's on the screen. But it doesn't watch all the other mods on your screen to make sure it's exactly visible. In the event you lose the window from its gyrations, /recap reset will bring it back to center. __ Friendly Combatants __ This mod makes an assumption that anyone in the group or raid is a friendly combatant. To the best of its ability it will attempt to note them as one. There may be times when it misses a combatant. For instance if a groupmate goes LD in the middle of the first fight, or if they were added to the raid by a raidleader and the mod got notification of the change but before they actually joined, etc. In this event you can right-click the combatants name then choose 'Add Friend' to add them. Generally for group/raid members you only need to do another fight and it will catch them. It won't catch things such as Barov trinkets, engineered combat pets, etc. There will always be some burden on the user to manage who is flagged a friend and who isn't. Right-click a name to toggle its friend status. If a groupmate charms a mob and it appears as a friendly combatant, this is not a bug. The mod cannot make distinctions like this. It does not scrutinize charms, possessions, etc. Remember the burden of picking your friends is on you. Right-click a name in the list to toggle its friend status. __ Fight Data Sets __ New in 2.0 is Fight Data Sets. These are designed to archive fight data that are no longer pertinent but you wish to save. You can save an unlimited number of sets. A scrollbar will appear when you get over five. For instance, if you've just finished a raid in UBRS and want to save the data for a future raid, you can go into options, enter UBRS or any name into the edit box and hit Save. At this point you can reset from the main window and start a new slate, or you can continue to accumulate totals. New data will not be saved until you save again. The information saved is only the "All Fights" totals for each combatant. It's saved in a format that should be easy on SavedVariables.lua. All data sets are available to all characters. If you're on an alt, you can pull up a data set created by another character. __ Memory Use __ As a data-gathering mod, this will use more memory than your usual addon. But it's not a large amount. My UI memory remains below 15mb and I've got Gatherer and a bunch of other mods loaded. Whenever possible, this mod attempts to keep memory impact to a minimum: tables are reused instead of recreated, string construction is kept to a minimum, everything that goes on in OnUpdate is mindful of its impact, changes that affect parsing such as the overheals are tested, and mostly the stowing away of character sessions into fight data sets has made an enormous reduction in memory use. But I'm not naive to think it's perfect or done nearly as well as it can be. While I work on that (and open to suggestions: email gello.biafra@gmail.com ), some things you can do to trim how much memory Recap uses: 1. Global settings: If you have a ton of alts, not only is the mod storing all 50-60 character options per character, but it's saving a compacted snapshot of each characters' last session. So that when you log in on your rogue alt you will see their last combatants view. With global settings enabled, all characters will share the same settings and combatants view and it will discard the rest. 2. Light data mode: The damage details and misses accumulate into separate tables. Like the normal data, these are stored into fight data sets also. Turning on Light Data Mode will discard the detailed tables and strip the details from that characters. Unlike Global Settings, this is a per-character setting. You can choose to accumulate details on your main and put all your alts on Light Data Mode. 3. Save to fight data sets: Each combatant exists in a table so it can be directly referenced while the game is running. When this table gets gargantuan (ie, a couple thousand combatants for letting the mod run without intervention for a month), it can take up a lot more space than it needs. Frequently saving to data sets and resetting will keep the operating memory use low. 4. Remove old data: I have data sets that are pretty old mostly for testing purposes. If you no longer need a data set, deleting it will free up the little memory it uses. If you want you can go to Report tab and Write to WOWChatLog.txt to create a copy to archive. 5. Reset: If you're not really attached to the data you've gathered, reset often will keep memory use very low. It will also make the mod much more usable since the data will be pertinent to the session you just finished. (tho there's very good reasons to let it run for a long time for testing) __ Future Plans __ - Syncronize data with other users - "LOD" for data: Self->Friendly->All->Incoming->Outgoing - Rebuild the list construction method - "Copy" effects ability, to compare effects - More optimizations (make functions local, etc) - Track total blocked and absorbed damage - Change fonts in 1.7 client (swoon) - More customization of details panel - Ability to go back multiple fights - Allow retroactively unmerging pets from owners - Fight data sets for individuals - "Quick save"/"Quick load" fight data sets - Options to create a format for log reports - Continually update list view __ FAQ: Personal Details __ Q: What's the different between the personal details and the detail panel information for me? A: The detail panel is tied to All Fights currently loaded. The personal details is independent of all fights, so you can reset often and not lose your own crit rate etc information. Q: How do I get the personal details? A: Click the left-most "sword" button along the top of the window. This will switch to Personal Details view with a blue titlebar. Q: The personal details button is missing. A: Either the window is minimized or you are in Light Data Mode. For now, personal details only accumulate when Light Data Mode is off. Q: I've stopped using Light Data Mode and I see personal details are still there. Has it been accumulating all this time? A: Not while you were in Light Data Mode. But the information didn't go away. This is a trivial amount of data so it's safe to carry around. In the near future, Recap will have several options on what to track and Personal Details will be one option independent of other detail logging. Q: I charmed a mob and now it's in my personal details. I don't want to reset my details. Is it stuck there forever? A: Nope. Right-click the effect and then "Reset Effect" will remove it without affecting the rest. __ FAQ: Pets __ Q: It's missing late raid members and it doesn't pick up pets at all. A: Unfortunately, the burden is on the user to make sure all friends are accounted for. The mod makes a fair attempt but it can't know the intended purpose of a name just by its name. The next content patch will make this a lot smoother but there will always be some work involved. Q: Are pets included in DPS? A: If you have 'Merge pets with owners' checked in options, then yes but only for friendly pets. Otherwise the only time a pet is included with a player is "Your DPS" in the minimized window. Q: When I merge pets, then later unmerge them, they're not separate. A: When you turn on the merge option, pets only exist as a pointer to their owner. When you turn off the merge option, pets will begin accumulating totals as if they just entered the fight. This will be changing in a future version. Q: In my raid we have two pets named Wolf. The mod is showing them as one pet under one hunter. A: Unfortunately this mod can't tell which Wolf is fighting from the combat spam. In raids with pets of the same name, merging pets won't work. Q: Do miss details include pets when I have pets merging? A: At this time they do not. __ FAQ: Healing __ Q: Healing is finally there, but why no HPS? A: Like Damage In, there is no separate timer for heals. So there cannot be an accurate HPS. Q: Is the Heal column the amount a player is healed or the amount that player heals others? A: It's the amount that player heals others. The Damage In column would mirror "Heals In" enough that I felt it wasn't needed. Q: Is there any way to turn overhealing tracking off? A: Not at this time. It does it in a very non-invasive manner and will give full credit for a heal when in doubt, so it seems safe to keep it on all the time. If there's any reason to make it an option let me know. Q: What are situations when overheal can kick in when it shouldn't? A: When someone takes environmental damage, like from firepots, lava, drowning or the small stealth hp loss when you get a stamina buff. Q: The mod is reporting 100% healing when it clearly shouldn't have. A: It will always credit full heals to someone who has just entered a fight. This part is being rewritten so it will change. Q: Overhealing in "Last Fight" view is wrong. A: This mod doesn't track details for each fight. The overhealing column reflects your 'All Fight' view. Q: This mod isn't showing me despite the fact that I spent every second of every fight healing. A: This mod is centered around damage. For now, you will need to do damage to show up. This will change to show the unfortunate healers who don't get to nuke. __ FAQ: WOWChatLog.txt and Clipboard __ Q: I hit Write to WOWChatLog.txt. It said it was written. So where is it? A: When you log out, in your World of Warcraft/Logs directory there should be a WOWChatLog.txt file. This writes up to 30 combatants at the moment, since this information goes through chats and excessive spamming will disconnect you. You can write multiple logs before logging out, and each report will append to the log. Q: The Write to WOWChatLog button is stuck in "Aquiring channel..." A: It means it requested to join a channel but you're not getting in. Generally if it gets stuck like this you won't be able to get in that channel until you reload the UI (log out/in or /script ReloadUI). Q: Can I pick a filename? A: No. Mods cannot make their own files. This uses a chat logging feature of the UI to create a file on the spot. Q: I wrote to Clipboard and some window with garbled text appeared. A: This is the text you copy to clipboard. Mods can't create files so this is an alternative to WOWChatLog.txt. Press CTRL+C to copy the highlighted text, then go to another window like Notepad and CTRL+V to paste the information there. Q: Can't you make the mod hit CTRL+C for me? A: Nope and likely no mod will ever be able to by design. Q: If I write in HTML format, can I post it on my guild's forum? A: If your guild's board supports HTML (most do) then you can. Even the WOWChatLog.txt you can copy/paste. Tho you may want to cut the first lines up until just before the