Hey everyone, I am big into researching monster stats on FFXI research discords, and wanted to present a bigish survey I did that you might find interesting:
Operation Bluffalo (Monster PDIF)
Top line: The purpose of this project was to identify what monster pdif curves actually are to a reasonable level of mathematical confidence.
SUMMARY
We've known since at least Kegsay's avatar testing in 2010 that monster pdif curves have significant differences from player pdif curves, but mapping out such a project has to my knowledge never really been undertaken. Parenthetically I believe this is because of a lack of both tools and knowledge in the 75 cap era, and disinterest in the 99 cap era, where capping pdif is the primary focus and thus lower bounds are typically not especially relevant. Regardless, I was interested in pursuing this project to further our understanding of the game, and present my findings here.
RECAP OF PDIF (skippable if familiar with the concepts of UL, LL, secondary randomizer, and Spike)
Melee damage in FFXI in very simple terms is calculated by the formula D x PDIF, where D = Base Damage + fstr + any other sources of bonus base damage, and PDIF is a range of possible multipliers the game generates using a ratio comparing your attack to the opponents defense, or ATT/DEF ("ratio"). The number of possible damage values you could roll varies with what the precise ratio you currently have is, and we measure that variation with formulae. Typically people refer to these as "Upper Limit", or UL for the highest possible multiplier, and "Lower Limit", or LL for the lowest possible multiplier. The game calculates this lower and upper limit, then multiplies your base damage by a number somewhere in between them (for the experts I am simplifying here, it is not meant to be exhaustive).
Once you have your calculated damage value from D x PDIF, the game will then multiply that value by 1.00~1.05. We refer to this as a secondary randomizer, or "secondary". That's why you don't hit the same damage value every time you swing if your attack is much greater than your opponents defense.
I will skip discussing crits here because for the purposes of simplicity I did not rely on them for this study, but I did necessarily rely on the final notable property of PDIF which we can call the "spike".
In simple terms: If PDIF can = 1 for your given ratio (say, your range is .9~1.1, or .6 ~ 1, or 1 ~ 1.25, and so forth) the game will arbitrarily set your final pdif to = 1 a given % of the time. Think of it like a Resist Trait. If a monster tries to sleep a Paladin, that Paladin's Resist Sleep trait will fire x% of the time and prevent sleep. If the trait doesn't fire, the Paladin could still resist by normally evading the sleep, but they still have that extra chance. Spike is very similar, with the only difference being that it starts very weak and gets stronger as your ratio gets closer to 1 (when your attack is nearly equal to your opponent's defense) up to a cap.
METHODOLOGY
To find monster pdif curves (LL, UL and spike) I needed to find a good candidate and simply parse it for many thousands of hits at a wide range of ratios. Motenten had previously used a level 99 Bluffalo in Abyssea-Uleguerand and identified its Attack Value as roughly 486, so that seemed appropriate. It is beyond the scope of this project to discuss in depth, but Monstrosity testing allowed us to identify Bluffalo STR ranking and monster attack formulae, and monster fSTR curves were identified by Eiyuu wiki (links in resources below), and thus I could know and control the Bluffalo with sufficient precision. In this context, I ended up using the following stats:
DT% = 0
My job = BLU/DNC, and BLU/RDM for High defense scenarios
Trusts used: Brygid, Moogle, Sakura (Defense * 9.7%, Regen, Refresh) https://www.bg-wiki.com/ffxi/Cipher:_Brygid , https://www.bg-wiki.com/ffxi/Cipher:_Sakura , https://www.bg-wiki.com/ffxi/Cipher:_Moogle
Food used: Boiled Barnacles, Senroh Skewers, Nashmau Stew (Bonus Defense either positive or negative)
Atma Used: Mounted Champion, Adamantine, Sea Daughter, Impenetrable, Stronghold (VIT, DEF, Regen) https://www.bg-wiki.com/ffxi/Category:Abyssea_Atma
My Level: 99
Bluffalo level: 99
My VIT = 153
Bluffalo ATT = 486
Bluffalo STR = 109
Bluffalo base D = 110 (Level + 11)
D value for tests = 100, or Base + FLOOR((109 - 153 + 5)/4)
I avoided any and all forms of damage reduction beyond defense and Vitality, including Phalanx on the off chance it made a difference. My blue mage has no job points, and I did not equip job traits beyond Defense Bonus for ratio manipulation. The only Buff spells I used were Cocoon, Regeneration and occasionally Battery Charge. Equipment was used only for defense value, evasion and vitality manipulation, with any extraneous stats kept to a minimum.
Aside from this setup, the testing procedure itself was very simple: go to Abyssea-Uleguerand, level the Bluffalo up till one hits 99, double confirm gearset, ranged attack the bluffalo and sit in a corner getting hit until time wore off. A handful of retests were done, largely limited by Nashmau stew supply on the upper end.
RESULTS
Detailed results are best left to viewing the "Project Bluffalo" google sheet, linked here: https://docs.google.com/spreadsheets/d/1i-Z4A4GLfhvKg_3QFQDA9WZ-M8Gb-g1v_KyHNa24G7s/edit?usp=sharing, specifically the Monster pdif/acc info (sadly a work in progress in terms of formatting), and the minpdifworksheet tab. The formula summary however are as follows:
Ratio UL equation
1.5 ≤ ratio 1803/1024+(1070/1024)*(ratio-1.5)
1.2 ≤ ratio < 1.5 1474/1024+1105/1024*(ratio-1235/1024)
.8 < ratio < 1.2 1+1127/1024*(ratio-0.8)
.55 ≤ ratio ≤ .8 1
ratio < .55 0.6+760/1024*ratio
Ratio LL equation
ratio ≤ .4 0.25
.4 < ratio < 1.35 0.25+(827/1024)*(ratio-0.4)
1.35 ≤ ratio ≤ 1.6 1
1.6 < ratio 1+(1120/1024)*(ratio-1.59)
Ratio Spike equation
ratio < 0.75 -5/9+(10/9)*ratio
.75 ≤ ratio ≤ 1.3 0.3
1.3 < ratio 5/3-(270/256)*ratio
All the relevant caveats: the individual ratios sampled are only at sample sizes of around 1500 hits each or so, which was sufficient to find the slope but not necessarily enough to completely rule out that there was some sort of sampling error. However, for the purposes of an initial survey hoping to identify the general parameters of the differences between player and monster pdif I am currently satisfied. Separately, the curves suggest some values (particularly on the low end) that mathematically could be produced but which I did not personally empirically observe; however, the shape of the curve (particularly the LL curve) is so static that I am confident that these hits would be observable in a survey of many thousands of hits. To number of these unobserved results is 3 out of a series of 30 or so parses, and the missing integer one below or above observed. I do welcome additional examinations of the data, and I've done my best in the individual sheets to provide as much information as possible for formal critique.
Conclusion
I would not be so arrogant as to suggest these are the actual formulae used in the back end of the game, but I do think they largely correspond to the damage values players should see when fighting monsters. Hopefully this proves of use when understanding the value of defensive equipment and so forth, as the ratios are dramatically different from player ratios and thus have different implications. Please don't hesitate to reach out to me with questions and comments, I would love to have as precise a series of formulae as possible from this survey and I am no expert on the mathematics at all. Thank you for reading.
Links:
Project Bluffalo google sheet: https://docs.google.com/spreadsheets/d/1i-Z4A4GLfhvKg_3QFQDA9WZ-M8Gb-g1v_KyHNa24G7s/edit?usp=sharing
PDIF wiki pages, detailing useful info and spike ratios: https://www.bg-wiki.com/ffxi/PDIF , https://ffxiclopedia.fandom.com/wiki/Level_Correction_Function_and_pDIF
https://x.com/long_horned/status/1300306250878521344 - probable floors of monsters. These can be identified by parsing monsters in ronfaure (D=2, can roll 1 when floored, D =4, can't roll 0 when floored), with more information on this on the "monster pdif/acc info" tab of the google sheet above
https://x.com/long_horned/status/1234558545930022913 - LL cap of monsters, which coincides with the observed LL values in testing. UL cap is more speculative, but is also beyond my ability to reasonably test for in the near future.
https://x.com/long_horned/status/1300299101154680833 monster fstr scaling. A more granular breakdown is available here: https://w.atwiki.jp/bartlett3/pages/329.html ( " SV関数 " ), and the formalized versions of this data are available to view under the "monster pdif/acc info" tab on the Project Bluffalo google sheet