What is this?

This is a tool to calculate more optimal targets for Astrologian cards in Final Fantasy XIV. This is broken down into two different searches. The first looking for the optimal target with each window where a card was actually played in the fight ('Card Play' window). The second search looks at possible times between each Draw cast where players were doing the most damage during a 15s window ('Card Draw' window).

Important note: This tool is now updated for Endwalker patch 6.0 and will no longer handle previous logs correctly given the changes to Minor Arcana, Divination, and the removal of Sleeve Draw.

Does it account for...

Generally, yes. Specifically it accounts for these commonly asked things:

How it works

This is the methodology used by the script for each 'Card Play' window

  1. Get all of the non-tick, direct damage inside the card window (typically 15s) for each player
  2. Find the start of all tick application or reapplication events that occur during the card window and then sum the associated damage events (even if those occur outside of the card window)
  3. Take out the appropriate bonus to the player that actually received the card based on what card was played and the job of the receiving player

After doing all of that, the result is a fairly accurate representation of the total amount of damage that would have been buffed by the card, if that player were its target at the time it was originally played.

Separately for each 'Card Draw' window the script uses the following methodology:

  1. Get all of the non-tick, direct damage inside the card window (typically 15s) for each player
  2. For every tick application or reapplication the damage events associated with that event are summed up and listed as a new damage event at the application time with a total amount associated with the summed damage value
  3. The damage bonus associated with every card played throughout the fight is removed
  4. Starting at the time of the initial event:
    • The damage for each player is summed up as if a card was played at this time lasting for 15s
    • The starting time is incremented in 1s time steps while checking that it is still before the time of final event for the window
    • The ranged and melee results are checked separately and reported in different tabs.
    • A number of maximal damage values are selected from this collection based on the size of the window
    • Duration Count Reported
      0s - 4s 2
      4s - 10s 4
      10s - 20s 6
      20s+ 8
    • The same character will not be listed again within 4s of a previously listed damage window with higher total damage

This output should help to accurately predict where it might have been possible to play a card on a player while they are doing the maximum amount. However, it does have some limitations discussed below

Current limitations

Some notes on the current analysis with regards to the optimal target for each 'Card Play' window:

While searching for the maximum damage output possible to cover with a card play during each potential 'Card Draw' window the following considerations are not taken into account:

Who made this?

This projected was adapted from the tethercalc project made by Platinum Xephera on the Ultros server who graciously let me use their code as a starting point. It's currently managed by Marielle Kaidafaux on Adamantoise. I made it because I wanted a tool to examine optimal targets for cards while playing Astrologian. I hope the 6928 analyzed reports have been useful.

If you notice any issues, feel free to DM me through Discord (Melody ♫#3761), or open issues and pull requests on the GitHub repo for this site.

Also, additional thanks to the tooltips which are provided through the Vue-XIVTooltips library.


2022-01-17: Fixed an issue where P3S logs were not handled properly as a result of the Darkened Fire debuff. This was fixed in git commit 7156160

2021-12-14: Updates for Endwalker compatibility. With this update this tool is no longer capable of handling older logs properly as it will no longer handle Sleeve Draw, Minor Arcana, or Divination. It now also properly considers Sage as a ranged job and Reaper as a melee job. This was fixed in git commit e68c7b1

2021-09-29: Fixed an issue where the name for direct hits changed on the FFlogs API so damage attribution to DH% and CDH% was incorrect. This was fixed in git commit 27a7129

2021-05-08: Fixed the handling of damage snapshots to properly use the prepare event timestamp. This was fixed in git commit 8ea9ee3

2021-03-20: Added detailed information tab which contains information about remaining card duration as well as a breakdown of the critical and direct hit rate as well as the percentage of damage from DoTs. This was implemented in git commit 2b7ed07

2021-02-25: Fixed issues where card bonuses were being removed twice in certain cases, cases where future cards bonuses weren't handled correctly, and cases where damage event occurring at the same time as buff events would result in improper handling of the card bonus. These were fixed in git commit 45ff176 and fcfbc33

2021-02-25: Fixed an issue where if the same card was refreshed on someone before it expired the second play was ignored. This was fixed in git commit 19c80ca

2021-02-25: Fixed an issue where play casts with no corresponding buff event would cause the analysis to crash. This was fixed in git commit 2da6701

2021-02-24: Fixed an issue where card play buff windows could be at the same time or after the next draw event which would result in the card play being ignored or potentially overwriting the next card play. This was fixed in git commit e474954.

2021-01-26: Added 'Card Draw' windows for studying better times to play cards given the times when Draw/Sleeve Draw/Divination was used. This was added in git commit 243713a.

2021-01-15: Fixed pet tick damage (such as SMN Ifrit Enkindle DoT) not being correctly included in the damage total for that player. Fixed in git commit 1eafff2.