RaraProjects / metrics

11 stars 0 forks source link

Introduction

Metrics is a DPS parsing tool at it's core, but it can take you much deeper into the data than the typical parser. There are views to keep things simple if that's all you want, but for those hungry for the most specific of data I try to provide that in the most aesthetically pleasing and usable way possible.

Each of the modules described below can be displayed in either a single window with each module contained within its own tab or you can enable multi window mode to show multiple modules at once and house them in different areas of the screen simultaneously. If you use multi window mode just use the hub bar to toggle certain windows on and off.

Join the Discord
Ask questions, discuss feature requests, and report bugs. I will also be using the Discord to post occassional progress updates.

Installation

I have two branches you can download from 1) Release and 2) Testing. The Testing branch is where I push my changes the most frequently. The TL;DR is that if you want more frequent changes or the newest content that are tested or mostly tested then you should try downloading from the Testing branch. If you want slower / larger changes that have more field testing then you should use the Release branch. I test the changes myself to the best of my ability and I work a couple others who also do some testing for things like alliance content. Once I feel sufficient testing has been completed I will push the changes on the Testing branch to the Release branch. My number one priority is to prevent crashes because if you crash you lose your data and that's a bad feeling.

Click to see installation instructions.
Within your HorizonXI install location (mine is ~/HorizonXI/Game) you should see several folders. There is one called /addons and another called /config/addons. The plain (non config) /addons folder is the one that houses the base addons. This is the folder you want to put your addon folders. 1. Download Metrics using the green Code button near the top of Metrics Github page. 2. Unzip the folder. This will create a folder with metrics in the name. The rest of the name depends on which branch you're downloading (Release or Testing). 3. Inside the folder you just created, there will be another folder with the same name. Put that folder in your /addons folder. 4. Remove the "-Release" or "-Testing" from the folder name. The folder should just be called "metrics". 5. Load the addon from inside the game by typing "/addon load metrics" in the game chat. 6. If you get an error saying "No such file or directory" when loading, then you may have forgotten to remove the branch tag in step #4.

Module Overview

  1. Parse
  2. Focus
  3. Battle Log
  4. XP
  5. Report
  6. Settings

Parse

This screen resembles your typical parser. It shows things like DPS, total damage, accuracy, and various other damage breakdown columns. There are three different modes to view the parser depending on how much detail you want to see at the time (and how much screen space you are willing to commit to that data).

General Highlights

  1. Members are ranked and displayed in decending order. You will always be shown even if you aren't in the visible ranks.
  2. The parser can be configured to show up to 18 members.
  3. Track your total and running accuracy. Running accuracy is your accuracy as of the last {X} amount of hits. It's beneficial to know this because you will be able to see sudden dips in accuracy (blind, food loss, etc.) much faster with the smaller lookback window. This amount of hits to look back, {X}, is configurable. The running accuracy column is called A-{X}.
  4. Various columns can be toggled in and out to show a breakdown of where your damage is coming from. This includes pet damage, healing, deaths, etc.
  5. The duration timer tracks how long actions have been actively taking place. If 5 seconds pass with no one affiliated with you taking an action then the duration timer will pause and restart automatically upon the next action. Data collection is not affected by this timer.
  6. A mob filter allows you to pick a mob and only see the damage that everyone did to that specific mob. The filter acts on mob name and not individual mobs. So, if you set it to "Pugil" you will see the damage that all players in the parse did to any mob named "Pugil" even if that was several individual mobs.

Tidbits

Click to see available column descriptions. | Column | Description | |----------|----------| | Job | Player's main job level and sub job level. The jobs are color coded with job colors. | | Name | The player's name. The name is color coded with job colors. | | Total | The total damage the player has done. | | %T | The percent of total party damage the player has done. | | Speed | The average amount of seconds between each melee attack. The speed of your last three melee attacks is averaged together. Times longer than 15 seconds are discarded. | | DPS | Damage per Second. See DPS explanation for more details. | | %A-# | Accuracy for the last # of melee/range attempts. This | | %A-T | Total accuracy of melee/range attempts since the parse has been running. | | Melee | Total melee damage. | | Crit Rate | Critical hit rate for both melee and ranged combined. | | Avg WS | Average weaponskill damage across all weaponskills used. | | WS | Total weaponskill damage. | | SC | Total skillchain damage. This is only available if skillchain damage is enabled. | | Ranged | Total ranged attack damage. | | Magic | Total magic damage. | | JA | Total job ability damage. | | Acc (P) | Pet melee accuracy. | | Melee (P) | Total pet melee damage. | | Ranged (P) | Total pet ranged damage. | | WS (P) | Total pet weaponskill damage. This would be BST pet TP moves. | | Ability (P) | Total pet ability damage. This would be SMN rage blood pacts. | | Healing | Total healing done. | | Deaths | Total amount of deaths for this player. |
Click to see DPS calculation explanation. * Your DPS window is comprised of {Y} amount of buckets. * Every {X} amount of seconds a snapshot is taken of the damage you've done in that time and stored in a bucket. * The damage from each bucket is summed and averaged over the total DPS window (X * Y seconds). * Example: * Snapshot taken every X = 3 seconds. * A DPS window with Y = 3 buckets. * Total DPS window = 9 seconds. * The damage you do (or don't do) will affect your DPS every 3 seconds. If you do nothing your DPS will drop to zero in 9 seconds.

Full Mode

image
Sample data for the Parse tab. Additional columns are available in the settings menu.

This is the standard mode that allows the most columns options.

Mini Mode

image
Sample data for the Parse Mini Mode (with pet data expanded).

Mini mode is just like the full mode, but it's designed to be small. You can't really add any columns here with the exception of a couple pet columns. This is the mode to use if you want to just cruise in parse mode without a large investment in screen space.

Nano Mode

image
Sample data for the Parse Nano Mode.

Nano mode is as concise as it gets. If you really only care about what you're doing then this is the mode for you. Other players will not show up here.

Focus

Set your attention to a specific player in the parser--including yourself--and then drill down into the various aspects of your actions such as Melee, Weaponskills, Skillchains, Magic, Abilities, Pets, Defense, etc.

Melee

This tab should show you most of the melee information you would be interested in. Note how you can get a main-hand and off-hand breakdown. Information only populates as it is performed so this screen usually won't be as busy as it is in the sample data pictured above. Not pictured in the image above is melee damage that heals the mob or attacks absorbed by a shadow. Those are tracked too.

image
Sample data for the Melee tab.

Ranged

Pretty much the same deal as melee, though there are less ranged stats to pull that I'm aware of. Ninja's Daken trait is included in this tab.

image
Sample data for the Ranged tab. The endamage and endebuff effects come from the ammunition procs.

Weaponskills and Skillchains

This tab breaks down your weaponskill and skillchain damage both in total and by individual weaponskill and skillchain.

image
Sample data for the Weaponskills tab. Usually it won't look this busy. I just did a lot of weaponskills to set up other tabs.

Magic

The Magic tab works about as you would expect after reading through the other tabs. It gives an overall breakdown of not only damage, but also MP spent for various categories of spells and then provides the same stats for each individual spell.

Click to see additional notes about terms used. | Term | Description | |----------|----------| | Efficacy | Capturing the damage and MP spent on a spell allows for the calculation of damage per MP. I call this Efficacy. This stat allows you gauge how much damage you're getting for your MP. Higher efficiancy isn't _always_ better though. For example, lower tier spells may give you higher efficacy, but come at the cost of needing to cast multiple times in order to achieve the same damage (which takes up time that you could be casting other more damaging spells). | | Overcure | This stat attempts to gauge how often you are using healing spells that are of higher tier than necessary. If another player is missing 100 HP and you cast a healing spell that can heal up to 400 HP then you overcured by 300 HP. Maybe it would have been better to cast a lower tier spell. The way this is calculated isn't straightforward as it can't be measured directly. The gist is that Metrics will keep track of the max amount of HP you have healed for using any given spell. If you heal over that amount with the same spell then the overcure will be (Max Heal Registered - HP Healed). Divine Seal cures can really boost your max so I have some limits in place to try and make sure that Divine Seal doesn't ruin the calculation. | | Magic Bursts | If you magic burst you will be shown how much MB damage you have done, what percent of your total damage is MB damage, and what percent of your magic damage is MB damage. Additionally, a count of magic bursts is recorded for each nuking spell. | | Resist Rates | Each enfeeble spell has a "Land Rate" column. This is essentially the resist rate. If your land rate is 82% then your resist rate will be 18%. | | Enspell | Enspell has a column called "Hits." That is how many times you struck the mob with your enspell i.e. how many times your enspell procced. | | MP Drain | This isn't counted toward total damage. Instead, this is a measure of how much MP you've drained from mobs using spells like Aspir. | | Spikes | This is how much damage you've caused by a mob hitting you and proccing a spike effect. |

image
Sample data for the Magic tab. Not pictured are counts of various enhancements spells like Refresh, Haste, etc. These can be toggled in with a setting.

Abilities

Shows how much damage you've done through the use of offensive abilities as well how many times you've used non-offensive abilities.

image
Sample data for the Abilities tab. Not pictured are various utility abilities like Holy Circle, Footwork, Call Wyvern, etc. These can be toggled in with a setting.

Pets

Similar to other tabs. Here are some interesting points:

  1. Captures actions taken BST pets, avatars, and wyverns. Each pet gets its own tab.
  2. Provides a breakdown of each ability used by the pet.
  3. Handles wyvern breaths including healing breaths (which are counted toward player healing).

image
Sample data for the Pets tab.

Defense

This tab is going show how much damage you and/or your pet has taken with a breakdown of what types of damage that total damage is comprised of. Additionally, it can show you how often mobs are hitting you with critical strikes and how often you are mitigating their attacks with evasion, parry, shield, etc. A list of the mobs TP moves performed against you is shown at the bottom along with relevant stats.

Note: I had to manually go through a couple thousand mob TP moves and pick out which ones deal damage. I used a wiki to help with this, but sometimes the wiki isn't great. If you find that there is a mob TP move that should do damage--but isn't--or a mob that shouldn't do damage--that is--then please let me know and I can update my filter list.

image
Sample data for the Defense tab.

Battle Log

Maintain line of sight on the more important pieces of the battle without dealing with the game chat. Some neat features here are that you can see the TP at which a player used a weaponskill, how many mobs were hit by an AOE spell, if a nuke was a magic burst etc. The jobs are color coded. The battle log can hold up to 100,000 items before starting to overwrite the old data. You can adjust the length of the battle log and filter various actions at will.

Click to see available actions/filters. * Melee * Ranged * Weapsonskills * Skillchains * Magic * Abilities * Pet Melee * Pet TP * Pet Healing * Healing * Player Deaths * Mob TP * Mob Deaths

image
Sample data for the Battle Log.

XP

The XP module tracks various experience/limit point related things. Aside from the basics, here are some unique things the XP module can do:

  1. The XP rate calculation is more immediate (isn't affected as much by old XP gained) and spools up within a couple kills.
  2. Gives you an estimated time remaining until you level up.
  3. Tracks dedication (XP boost). You can see how far along you are in your dedication buff. This saves between sessions and across characters.
  4. Can show you the base XP rate of your party even if you have dedication on.
  5. Tracks some unique metrics like time per kill, XP per kill, and maximum chain achieved.
  6. Progress bars are available and optional. They come in full size and compact forms.
Click to see how the XP/hr is calculated. 1. Calculate average XP. This is the average of the XP gained over the last 6 mobs defeated. 2. Calculate average kill time. This is the average amount of seconds it took to defeat the last 6 mobs. 3. XP/hr = (Average XP / Average Kill Time) * 3600
Click to see available columns. | Column | Description | |----------|----------| | Job | Displays the player's main and sub job with levels and color coding. | | Chain | Current chain and how much time is left in the current chain. | | *XP/hr | XP per hour rate is--including dedication. | | XP/hr | XP per hour rate minus dedication. | | Time/Kill | Average amount of time it takes to kill an XP mob. | | XP/Kill | The average amount of XP you're getting per mob. | | ~TTL | Approximate time remaining until you level. | | TNL | How many experience points remain until you level. | | Total | How much XP you've gained this session. This can be split into base and dedication XP. | | Max Chain | The maximum chain you were able to achieve this session. | | Zone Time | How long you've been in the current zone. | | Bonus | The currently active dedication item. | | Bonus % | The currently active dedication rate. | | Bonus Max | How much bonus XP you've gained out of the total allotment. |

image
Sample data for the XP module. The yellow bar is progress through the level. The red bar is progress through the dedication buff.

Report

You can use the chat report quick buttons to output some reports to the chat. You can pick the chat mode. Please be courteous to your neighbors when you use anything other than party. You can also output the database and Battle Log to a CSV for your own analysis. Currently I just output a the raw data, but I'm thinking about creating a Google doc or Excel template that can be used to build higher level summaries like in the Focus tab. The CSV will contain only the data nodes that have non-zero values keep creating files as quick as possible.

The Monsters Defeated is just something I wanted to try and didn't really have a better spot for it for now. Sometimes it's nice to see how many crabs you've killed after grinding them out for a couple hours.

image
Example of the Report tab.

Settings

There are a few settings that need their own spot. One of the biggest is controlling how the window looks. The Help tab contains some chat commands and the current version number. I tend to update frequently so it's always good to know which version you're on compared to the latest version.

Multi Window mode let's you have multiple modules open at the same time in their own window and the Show Mouse option forces your mouse to be visible if your mouse often turns invisible when hovering over an ImGUI based component.

image
Example of the Settings tab.