Hello everyone, Nemekh here writing about a recent hot topic that’s been on the minds of numerous raiders in Savage:

Grace of Light from E8S

Grace of Light: Placebo or Real?

Grace of Light is a minute long damage buff that the party receives as a reward upon successfully preventing any aether from reaching the Mother Crystals during the Eden’s Verse: Refulgence Normal and Savage add phase.

If the aether peaks out the party wipes, however, if only a partial amount of aether is let through then the party receives no buff but survives.

During the world race in Week 1 of 5.20, Team SyLink achieved world first with a seemingly unexpected raid comp citing that the DPS check was very, very difficult.

They achieved this finish without the Grace of Light buff, followed by the world second group team SLEIPNIR, who also cleared without the buff.

This lead people to further question just how much of a % damage increase was it, and was it even worth ensuring all the adds were dead to obtain it?

As players tried to compare and obsere the differences with and without the buff, here are some of the more common assumptions that were stated:

  • 10% “from datamines”
  • 5%
  • 1-3%
  • 0% (placebo buff)

Having gone over the data from E8S, I can confirm that the people who quoted the damage range between 1-3% pretty much correct. From my math and comparisons it’s exactly 2%.

Now I’ll go over the method of how this was resolved.

Confirming Grace of Light Is Real

After the recent concerns with Ruby Weapon’s i485 weapons potentially having bugged weapon damage (this was proven false), I recognised the value of firstly trying to confirm whether the buff was in fact doing anything as the first step before tackling figuring out what the % was.

At Allagan Studies we have grown familiar with the game’s calculations over the years and know that when trying to prove if something is happening, or not, set up some test conditions or data points that would verify this one way or another.

To this end, these were the following methods that could have been employed assuming all other buff and gear factors are equal:

  • Provoking with and without Grace and tracking the Enmity difference
  • Observing enough direct damage events of a specific action with and without Grace
  • DoT snapshots with and without Grace

Provoking carries with it some risks and restricts itself to only tank players who also have to have a means of tracking enmity such as with hojoring.

Observing enough direct damage events would require thousands and thousands of data points to try and get the true normal spread, or a sufficient amount of the spread before and after to be able to properly tell what the buff % was. No one is going to be running Shiva that often nor long enough for there to be ample sampling for accuracy which is why when players were attempting to eyeball some felt there was no gain, while others were pretty close to the mark.

This leaves my favourite quick and efficient method of DoT snapshots because it requires only 3 data points that are very easy to acquire. Again, assuming all other factors are equal and the DoT in question is the same action each time:

  • A DoT snapshot without Grace
  • A DoT snapshot with Grace
  • A DoT snapshot with a known buff e.g. Trick Attack/Devotion (5%) but not Grace

For this first step the two important ones are the ones with Grace and without Grace. If a DoT is ever buffed enough to make a change in the damage calculation, the DoT snapshot’s number will change from its unbuffed state.

Thanks to Fueisu/Xiu Yue and Pimoh Orinx for supplying me with good data I was able to take the first steps of analysing their netlog from ACT/XIV plugin ultimately solving it with Orinx’s data.

Here is a screenshot of the table summary of Orinx’s Biolysis DoT with all 3 of these data points present:

Orinx's Biolysis DoT Data in ACT

Orinx's Biolysis DoT Data in ACT

The highlighted data represents the DoT ticks that had Grace of Light. The data below is the unbuffed Biolysis and the data above are 5% buffed Biolysis ticks.

Due to there being a change between the highlighted Grace buffed numbers and the unbuffed numbers below, we can confirm:

Grace of Light is real and not placebo

Understanding The DoT Numbers

These numbers represent the DoT low byte data that FFXIV sends to the client. It is sent in net packets in a message containing the values in hexadecimal.

This low byte data represents our DoT’s normal damage median, or 100% value, and is used by ACT’s XIVplugin and FFLogs to simulate our DoT damage due to the game not sending out individual player DoT damage tick numbers. It is also data that to us players is incomplete, as it is missing its high byte data to give us the exact median.

The ACT table converts the data from hex to decimal, so the values in the above image are as follows, in order:

  • 5% buffed Biolysis: 0xAA, or 170 in decimal
  • Grace buffed Biolysis: 0x30, or 48 in decimal
  • Unbuffed Biolysis: 0xDF, or 223 in decimal

Orinx informed me that in the instance with his full party his Biolysis ticks would hit for around 4k unbuffed. That’s a far way away from 223. This is where the process of solving for high byte data comes in, something that FFLogs and ACT does in the DoT simulations.

With a low byte pair, the max number that can be sent is 0xFF, or 255. If 1 is added to this to make it 256, instead of 0x100 we instead receive 0x00. Where does that 1 go? Nobody knows but Square Enix!

Figuring Out The DoT Median

Knowing that multiples of 256 can be added to the DoT low byte value and knowing that Orinx’s DoTs occur somewhere in the 4k range unbuffed, we can safely say that his DoT median value lies within the highlighted range.

Step 1 in figuring out Grace of Light's %

Step 1 in figuring out Grace of Light's %

The range is quite large from (15 * 256 + 223) to (18 * 256 + 223).

Short of observing only his ticks in floating text for long enough how can we deduce which of these 4 possible values is the correct one?

This is where the known buff % snapshot comes into play.

In XIV the majority of the math functions use integers which leads to step functions and truncated values - just like our beloved stat tiers. The same applies to DoT snapshots with buffs.

From the years of playing with them we know that a buffed DoTs median is calculated as follows (in simple spreadsheet terms):

=int(unbuffedDoTMedian * 1.buff%)

If I have a DoT with an unbuffed median of 4357 and apply a 5% buff, my new buffed DoT median would be 4574 instead of 4574.85.

We have a 5% buffed value snapshot with 0xAA, or 170. With this we can apply the above equation to the 4 values in the range and see if one high byte value satisfies both low byte snapshots.

Sure enough, one does!

Step 2 in figuring out Grace of Light's %

Step 2 in figuring out Grace of Light's %

We can say with confidence that Orinx’s unbuffed Biolysis has a median snapshot of 4063, or 0xFDF, which when multiplied with the presence of a 5% buff, becomes 4266 or 0x10AA.

Respectively, the low byte data for each are 0xDF and 0xAA as listed earlier.

Knowing his snapshot we can then move on to:

Confirming Grace Of Light’s %

Our third lowbyte data point is 0x30, or 48 for the DoT snapshot with Grace of Light.

Knowing this and how DoT calculations in XIV work with the network data, we can multiply Orinx’s unbuffed DoT median by a range of potential buff values and see if any of the resulting new low byte values match the 0x30.

This is the result:

Final Step in figuring out Grace of Light's % and Result

Final Step in figuring out Grace of Light's % and Result

The only TRUE value is 2. From this we can confidently say:

Grace of Light is a 2% damage buff

Closing Thoughts

Writing this took many times longer than actually looking at the data, doing the sheet work and arriving to the solution!

I was honestly relieved that there was a solution, or else I’d have had to revise my entire understanding of DoTs in XIV. It would have left us with Enmity differences as the only viable exact method of learning how much Grace of Light provided.

I hope this post sheds some insight for anyone keen on the theory side of XIV’s underlying mechanics and that if this situation comes up again you can use the method described here to solve it.

Thanks for reading!

~ Nemekh