BDO PvE Damage

This information has been passed over by other mostly/very intelligent members of the game community, including but not limited to:

BigandShiny, you know who he is. His help with Awakening damage was instrumental as well as his contribution on how summons (don’t) work.

Phelsong, owner of Project Ynix and the dude that kicked off a lot of this testing. Initially kicked off this previously small project back in June of 2022 and has consistently kept an eye on it.

Honua_Mea, actual scientist that figured out most of the mechanics explained in this doc and started solo gathering grind spot data all the way back in August 2022 before expanding the research to including deriving the damage formulae the game uses

Mayitra, who wrote the original draft of this doc and repeatedly got Honua off their butt

Sundering, who helped with Character Dice testing and wrote the ‘StupidTally’ software to help visualize manual damage number collection

Members of the Project Ynix discord who watched all this information and associated documents and data come together since August 2022, including figuring out just how AP works, determining Monster DR and its functions, and helping pull together DR data for every grindspot in the game. Guys like Sulfur on the discord rock. Thanks for the tip about those rings!

Members of the Shai Discord in the #Numbers-Talk channel that also put in their two cents helping figure things out by red-teaming, playing opposite sides and just asking tons of questions all the way up until early June 2022 when this was a tiny li’l talk project. Note that this channel is archived at the moment, but you can still read the history by going to the Shai discord.

What’s with all the BOLD?

Portions of this document will be BOLDed. If you don’t have the time to read through the entire doc, reading only the bolded sections should give you a good feel for how things work.

Also, if you just want the damage formula outright, it’s on the outline, but here’s a link if you’re lazy: So, what’s the simplest PvE damage formula?

All links in this document stay within the doc unless explicitly noted.

How did we get this data?

Every formula in this document was determined via in-game testing. We do not support data-mining in any way, as it is against BDO ToS. In the interest of full disclosure, we do reference one very old, publicly available table that we believe was derived from an old server leak under ‘Character Base Stats’. This table is what led to us evaluating dice expressions for much of BDO’s RNG.

All Monster DRs, AP Caps, and AP Cap Multipliers were empirically derived using damage numbers on BDO Global Labs. Links to our original data supporting these derivations can be found under ‘Resources & References’, and test methodologies and formula derivations are included in Appendix 1.

We also cross-referenced many of our measured values with BDOCodex and actively designed formulas that match BDOCodex values (e.g. DR). However, most of our raw data and numbers were collected blindly prior to cross-referencing with BDOCodex.

To help illustrate our methodology, additional notes will be added to help testers that wish to replicate any of our work. These sections will be displayed in Italics and will often refer to our more detailed testing methodologies in the Appendix.

But Global Labs Damage is Different!

No, it isn’t. Gear and characters can differ, but at the same AP vs the same DP, damage is exactly the same.

  • Damage dealt to monsters is the same
  • Damage received from monsters is the same
  • PvP damage is the same

Don’t believe us? See ‘Global Labs vs Live Servers’ (first section in Appendix 1) for simple tests that confirm each of these points.

What the heck is AP?

AP is the baseline damage stat that everything scales off of in BDO. It’s the most tightly regulated form of damage but also the most effective in most cases.

AP comes in many forms, but no matter what, it always functions largely the same in calculations. But, AP may have conditions for it to apply (eg ‘Monster AP’).

How does AP work in the context of a class?

This document will only tackle the PvE damage formula in depth.

BDO uses multiple damage formulae, but let’s consider the most basic.

Skill %

Skill % is essentially a multiplier, with 100% being 1.0. Forward Slash in this example does 678%, so 6.78 times our base damage.

Every point of AP is considered +1 base damage to that skill per 100%. It’s literally, 100% of 1 AP.

If I was to have say, 50 total AP, then Forward Slash would be expected to deal 339 damage, before any randomness.

You can break every skill down like this, multiplying the total AP for your spec (all applicable AP from all sources) together with the skill’s % as a multiplier. 1000% Skills are 10.00 damage per AP, 500% are 5.00 damage per AP, so on and so forth.

For any readers with programming experience, yes, BDO appears to use integer calculations for damage, we discuss that much later in the doc. 

Damage Ticks

The x4 on the Forward Slash is how many times the skill will apply damage on a successful Hit (eg 4 ‘Damage Ticks’).

Building on that previous calculation with 50 AP, you could expect Forward Slash to deal 339 damage 4 times per hit, a total of 1356 damage.

This mechanic is about as simple as that.

Also, a side note (unimportant in most cases, but worth noting):

It is possible for attacks to lose ticks if your accuracy is incredibly low versus a given target, even if the attack passes accuracy, somewhere around under 50% hitrate. If you notice ticks going missing in testing, that’s probably why.

Hitbox Count

The previous “x4” Damage Ticks differ from “max y hits”.

For a skill with “x4, max 2 hits”, there are two hits, each of which can hit separately, and every Hit of the skill deals damage 4 times.

To illustrate this, let’s take a look at ‘Absolute: Valkyrie Slash’.

The first attack has ‘x2, max 3 hits’, the last attack is a simple x3 single hit. Visually, this skill is a series of 3 slashes, with a final slam.

This translates to having 3 hits from the slashes, each of which will deal damage 2 times on hit. The slam only has a single hitbox, but will deal damage 3 times on hit.  If the full skill lands, it would deal 11.11 (1111%) damage per point of AP up to 3*2 + 3 = 9 total times.

To summarize all of this info about skills, your % is a decimal with 100% meaning 1.00, your xN is the amount of damage ticks a hit will cause, and max Y hits is how many hits the skill has. This is all you really need to start reading skills with an educated eye. The rest of BDO’s systems revolve around how it judges your base damage: AP, damage bonuses, multipliers, and our most hated system in the entire game: the 70/30 split.

Is there any difference in types of AP?

There is no difference between types of AP.

AP is AP, no matter what.

AP is not Species Damage, nor is it Critical Hit damage, or Back Attack damage, or anything other than simple AP (1 point = 1 base damage). AP does not scale differently in whether it is Sheet, Hidden, Extra AP vs Monster, or AP from buffs / gear / crystals / lightstones / class. Sheet AP brackets obviously add additional AP, but that added AP is just more AP, same scaling.

AP can, however, be conditional. For example, Monster AP only applies when attacking a PvE mob.

Similarly, typed APs (Melee/Ranged/Magic AP) only apply to specific types of attacks: Melee AP to melee attacks, Ranged AP to ranged attacks, and Magic AP to magic attacks. All attacks for a class are considered to be of the same damage type, and the game tells you the damage type your class uses in the character pane. As such, usage of Typed APs usually won’t come up except for artifact choice and some consumables.

For testers, there is one exception: the unequipped weapon ‘Punch’ for every class uses Melee AP, even if the class is a Magic AP or Ranged AP class. We discuss it in more detail here. If you like to test crap, you can test type AP with that info.

However, PVE Mechanics can cause AP as a whole to scale differently per point via different damage formulas. This is where things like AP Softcaps in PvE come in, which we’ll explore soon. It is worth stressing, AP changing how it scales is not a function of AP itself, this is the reason testing in the past was so distorted when it came to AP past certain thresholds.

The ‘My Stats’ Window

Note that you are able to see your (mostly) true, actual AP in the newly-added ‘My Stats’ pane, pictured above and accessible from your equipment menu. This pane updates on the fly as you apply buffs, get debuffed, and change gear. Anything that’ll change the stats it shows, it will reflect, without fail.

You can also use this to spot if tooltips are wrong or bugged, since the pane will update with correct information. For a quick example of this, get on an awakened Warrior, use E buff, then use Q block, you’ll see something interesting.

For PvE, make sure to add together your total AP at the top right of the pane (applicable to either your choice of Succession or Awakening), and add it to your ‘Extra AP against Monsters’ to get your total PvE AP.  DO NOT add in Extra Damage against Humans, Demihumans, or Kamasylvians. Species Damage is something entirely different from AP.

In the above example, PvE AP for Mainhand would be 292 + 60 = 352 PvE AP. While you also use Mainhand AP for Succession, there’s an extra calculation (see ‘The 70/30 AP Split’).


What about Sheet AP though?

All Sheet AP does is determine your AP bracket. It doesn’t actually do anything else special.

Over time, sheet AP has become less reliable for determining your actual power due to the increased availability of Crystals, Lightstones, Consumables, Class Buffs, Class Passives, Accessory Reforms, Alchemy Stone boosts, and all other forms of non sheet AP boosts. It is not 2018/2019 anymore. Sheet AP is no longer an accurate, precise measure of one’s ability to do damage. It’s a nice general idea, but that’s it. This means you, too, Garmoth. Gearscore isn’t really an accurate measure either, as a result.

How do buffs stack?

By and large, most buffs to your AP stack (consumes, villa, church, etc) stack together fine following specific categories (Perfumes are exclusive with each other, Draughts exclude Elixirs, basic stuff), but things get a little complicated when it comes to buffs from your class.

BDO has a proprietary “Slotting” system for Buffs from classes. This is completely broken down, visualized, and organized in a spreadsheet.

https://docs.google.com/spreadsheets/d/1d8VIJkmWczw4ym_If4khX8pgwWz9LdLkoFWadraLwLw/edit?usp=sharing 

In general, a Slot 1 Buff of the same Type will never stack with another Slot 1 Buff of the same type. However, two buffs of the same type WILL stack if they are placed on separate slots, such as a +All DR Slot 1 Buff, and a +All DR Slot 2 or 3 buff. A great example of the slotting system is Succession Striker, his Prime: Discharge Energy gives 15 DR on Slot 1, while his E buff grants 50 DR on Slot 3. These are different slots, and thus, will stack. Valkyrie can additionally provide a Slot 2 DR Buff, meaning a well-prepared striker can gain three different DR buffs from class effects that will all stack, thanks to slotting.

Some classes also have “Typed” buff effects, a notable example of this is Sage, who has both an All-AP Buff, and Magic AP buff, both of which will stack because Magic AP is technically not the same type of effect as All-AP. This isn’t always the case, many typed effect classes don’t have an All-AP buff and appreciate ally AP buffs.

It is worth noting for testing, that a skill’s buff slotting is NOT per skill, a single skill can have multiple effects all on different slots. One can take a look at Striker’s E buff once more for this behavior; the DR portion sits in Slot 3, but the speed effects, Resists, and AP sit in Slot 1 and generally do not stack with the same type effects.

The 70/30 Split

The 70/30 AP split is one of the most annoying and overcomplicated systems in the game, but it exists, so we have to deal with it. We’ll keep it as simple as possible in this section and explain it more fully once we’ve covered more mechanics.

  • Awakening builds use 70% of Awakening Weapon AP and 30% of Mainhand Weapon AP.
  • Succession builds use 70% of Mainhand Weapon AP and 30% of Awakening Weapon AP.
  • Pre-awakening skills used by Awakened classes still use 100% of Mainhand Weapon AP.

The 70/30 split is not a split of your total AP or Sheet AP. It only applies to the tooltip APs listed on your Mainhand & Awakening weapons. AP gained through Caphras enhancement counts as Weapon AP.

The full formulas are as follows:

As an example, say you’re an Awakening Class and you equip a Main and Awakening weapon that both have 100 ~ 100 AP listed on both. For damage dealt by your active spec, that 100 AP does not come from a single weapon. It instead comes in the form of 30 AP from your Main weapon, and 70 AP from your Awakening weapon for a total of 100. Flip the two if you’re Succession and using Prime skills.

Now suppose you only have a 50 AP Mainhand weapon. You’d still get 70 AP from your Awakening weapon, but you’d only get 15 AP (30% of 50) from this weaker Mainhand weapon for a total of 85. You effectively lose 15 AP from Awakening skills for using a weaker Mainhand weapon.

This 70/30 effect does not apply to any other source of AP from gear, nor does it affect, or get affected by, anything else. It only affects your Mainhand and Awakening Weapon APs, not your total Awakening/Succession AP. It is an entirely self-contained phenomenon.

This is also the only situation in which your ‘My Stats’ window will actively lie to you about your Total AP, depending on the AP difference between your Mainhand & Awakening weapons. Be very careful about this if you’re running things like a Blackstar Awakening along with a Green/Ultimate Mainhand.

In addition, the Split only applies to Awakening and Prime (Succession) skills. Absolutes are spared this extra bit of math.

This is also admittedly one more way in which the 70/30 split applies, but it’d be difficult to explain without deep-diving into minutiae mechanics. This will be expanded on in the ‘Advanced Mechanics’ section here.


Approximating Awakening AP

Mainhand & Awakening Weapon APs are not visible in the ‘My Stats’ menu. Instead, you must mouse-over them in your equipment menu. This is painful, but absolutely required for exact damage calculations for Awakening & Prime skills. However, for casual calculations where ‘close’ is good enough, it is possible to easily estimate your Awakening/Succession AP from the ‘My Stats’ window. All you need is the difference between your Mainhand and Awakening Weapons. We’ll use the below example for an Awakening Sorc to explain.

First, look under the ‘Gear (Base)’ column, and calculate the difference between your Awakening & Succession AP (‘Awakening’ row - ‘AP’ row). In our example, these are the numbers in the red oval: 308 - 296 = 12.

Next, multiply this by 0.3. Round down to the nearest full integer. In our example, 0.3 * 12 = 3.6, then round to 3.

Finally, subtract this value from your Awakening AP. If (Awakening AP) - (Mainhand AP) is negative, add 0.3 times the difference (subtract the negative). In our example, we add ‘3’ (from the previous step) to the value in the blue rectangle: 561 - 3 = 558. Our actual Awakening AP is approximately 558. This method is not perfect, but it is always accurate within 1 AP.

Full approximation formula:

True Awk AP =

Or for Succession:

True Succ AP =

How does DR work?

DR is a really simple stat in PvE. Every point of DR reduces the AP of a given attack by 1. Note that DR does not reduce the damage of an attack by 1. It reduces the AP by 1. 

DR is the main stat-check for every single PvE mob in the entire game. It makes sure a player has enough AP equipped to handle a given monster type. Evasion is usually a secondary check, though not always (eg Crypt of Resting Thoughts).

Every DR for every mob type is hand-picked by the BDO developers, and for the most part, every mob at a given grind spot has the same DR, with some very, very specific exceptions. For example, Bloody Monastery’s Crimson Bell mobs have vastly lower DR than their usual counterparts, and some Boss-type monsters, such as The Butcher of Gyfin Rhasia, have significantly higher DR than their trash-mob counterparts.

However, DR has one big limitation. DR can never reduce the damage of any attack below 5% of its base damage (AP). We refer to this as ‘The 5% Rule’, and it becomes very important to understand this rule later.

This doc will not cover DR in PVP.

What is a DR Breakpoint?

DR breakpoints are a result of BDO having two different damage formulae for below and above DR. They essentially act as the minimum AP required for any given spot. Anything under the ‘DR Breakpoint’ only deals minimum damage, according to the 5% rule. Anything over the DR breakpoint scales normally (+1 AP = +1 base damage). You can see this clearly in a damage graph:

As AP goes up, damage goes up. This gain is very, very slow until ~255 AP, then damage scales up 1:1. This is a DR Breakpoint! There’s also a slight bend down at ~320 AP, but we’ll get to that.

DR Breakpoints are the amount of AP you must have before you begin to gain 1:1 damage from AP on any given target. If you aren’t meeting the DR breakpoint at a grindspot, you should not be there, period.

DR Breakpoints:

  1. Reinforce and ensure that a player should have enough AP for a given grindspot
  2. Make the transition from below DR to above DR damage smooth

The second point may seem odd, but it should make sense after an explanation. Did you see any big, jagged jumps in the graph? No! It was continuously increasing; damage never went down, even at the breakpoint. This continuous damage curve is essentially a direct result of the ‘5% Rule’ mentioned earlier.

What does ‘The 5% Rule’ actually mean?

BDO uses three different damage calculations in PvE:

  1. When you’re below a monster’s DR Breakpoint
  2. After you’re above a monster’s DR Breakpoint
  3. After you’re above a monster’s AP cap (the third segment in our graph, discussed later)

Like mentioned before, below a monster’s DR, you will always deal at least 5% of your base damage (0.05 * total AP * skill %) no matter what, regardless of the monster’s DR. Note that the slope of the line in the below graph is ~0.05 (5%). Basically, you can never do 0 damage on a successful hit unless you have less than total 20 AP (only achievable via debuffs).

After your AP is higher than a monster’s DR breakpoint, the game switches to formula #2. Above a monster’s DR breakpoint, base damage scales 1:1 with AP again, multiplied by skill %. Note that the slope of the line in the below graph is ~1.0 (100%).

‘But wait!’, you might say. ‘If my AP is only 1-2 over a monster’s DR, and I do at least 5% of my AP below DR, then I would actually lose damage vs formula #1’. That’s actually true all the way up to ~5% over the monster’s DR. To compensate and keep the damage curve continuous, the switch to formula #2 doesn’t happen at DR. It happens at ~5% over it.

The game simply uses the under-DR formula (formula #1) until the player would do more damage with the over-DR formula (formula #2). That’s the real 5% rule. Once a player’s AP is at (monster’s DR + ~5%), the above-DR formula always does more damage than (0.05*AP).

This means that the DR breakpoint is actually at

which simplifies to

Or

In short, the DR Breakpoint occurs at ~5.26% (1/.95) above a monster’s DR.

And to kill a myth immediately, DR shred is 1:1, but it’s obscured by the 5% Rule’s effect on the DR breakpoint. A 30 DR shred reduces DR by exactly 30, but the DR Breakpoint may shift by ~31.6 as a result. More on DR shred later. We also include a full derivation in the Appendix under ‘Proving that the DR Breakpoint isn’t at DR’.

What is an AP Softcap?

An AP softcap is a seemingly PvE-only mechanic that exists in addition to a monster’s DR and DR breakpoint. An AP softcap is the ceiling for AP’s 1:1 scaling. Above this ceiling, AP loses its effectiveness per point.

Take a look at the original graph from Basilisk Den again, and pay special attention to the downward bend on the right side. We blow up that bend as its own graph to the right, and you can clearly see that AP no longer applies at a 1:1 ratio, but rather at 3:5 (a 60% AP Cap Multiplier).

Like DR, both the AP Softcap and the effectiveness of AP above that cap (the ‘AP Cap Multiplier’) are hand-chosen for every grindspot in the entire game. AP caps apply to every monster at a given grindspot with only a single exception for a declared grindspot: Khalk Canyon in Dreighan.

If any Pearl Abyss employees happen to be reading, please don’t change Khalk Canyon. The absence of an AP Cap creates one of the best places in the game for players to compare actual damage, especially when combined with the Khalks’ low DR & high HP pools.

Other overworld wildlife (eg Gray Foxes) also don’t appear to have AP Caps, but we have not tested this exhaustively.

Every AP Cap Multiplier is a ratio from 0 to 1.0, representing how effective every 1 AP is past the softcap. A 0.7-ratio grindspot causes all AP past the softcap to be applied at 70% effectiveness. Only the amount of player AP over the cap receives this damage reduction. AP up to the cap always remains 1:1.

As an example, if you have 300 AP vs a 280 cap, only 20 AP will have reduced effectiveness. All 280 AP up to the cap will apply at full 1:1 effectiveness. Again, the damage is a continuous curve - it doesn’t suddenly decrease once you’re over the softcap.

As a rule of thumb, most spots operate on a 0.7 AP Cap Multiplier. Most Elvia grind spots operate on a 0.05 AP Cap Multiplier, meaning past AP softcap, AP is only 5% effective in Elvia, and you’d need 20 more AP to gain 1 more AP worth of damage:

Some spots also have unique or special ‘hardcaps’ and were historically known as ‘AP-capped’ spots. In these grindspots (Fadus, most of Mediah, etc), the AP Cap Multiplier is 0, so AP has no value past cap. There are also experimental spots having unique ratios, such as .03 (97% damage reduction over-cap) at Shultz or 0.5 (50% damage reduction over-cap) at Waragons.

There is no in-game way to find a given spot’s AP Softcap or AP Cap Multiplier. You’ll have to refer to outside resources to find it, such as our Spotbreaking document here (external doc, also available):

https://docs.google.com/spreadsheets/d/1mTPUGVLvp-yaZPSQMHEQ9kOY5DV-NlKsyvAvqtOktPM/edit?usp=sharing

This link is also available under ‘References & Resources’.


What is Effective AP (EAP) and how do you find it?

‘Effective AP’ or ‘EAP’ is a measure of the total base damage you have when attacking a specific target, and represents the actual value you get out of AP in terms of damage output. This term was originally coined by Phelsong, one of the Shai Discord owners, when he was first working on PvE damage calculations, and it has largely stuck.

EAP is calculated as:

  • 0 for every AP up to a monster’s DR
  • +1 for every AP above DR up to the AP Softcap
  • +(AP Cap Multiplier) for each AP over softcap
  • +randint(0.7*species_damage, species_damage) for Species Damage (more later)

The most basic way to get EAP is to gain AP above a monster’s DR but below the monster’s AP Softcap. Every AP in this range applies at a rate of 1:1 (100%). AP then loses effectiveness due to AP softcaps, which by design, make it harder to get more EAP.

EAP has no meaning below DR breakpoint, where a player always deals 5% * AP. Above the DR breakpoint, EAP is the number that scales with skill % and other modifiers (back attack, critical hit, etc).

Controlling a player’s EAP via a monster’s DR breakpoint (a flat reduction) and their AP softcap (a controlled reduction over cap) is essentially how PA regulates how much damage someone with a given gearset should be doing at a given grind spot. PA can use monster DR and AP caps to reduce, or sometimes absolutely lock down, the damage dealt by all types of players. They can ensure that regardless of gear, players usually won’t one-shot challenging mobs… most of the time.

So, with that all in mind, how does one deal more damage when they can no longer reasonably get more EAP? And can you get around the AP Softcap? Well…


DR shred

Keeping in mind how DR and Softcaps work, this means there is a finite amount of 1:1 EAP between the DR breakpoint and AP softcap of any monster. Basically, every spot has a hard-defined amount of damage that you are reasonably allowed to do to mobs before it gets significantly reduced.

Knowing this, if you could somehow increase the gap between the DR breakpoint and the AP Cap, you could easily get more damage, and it would scale. This means that the most important buff/debuff in the game is not AP buffs, nor is it attack speed, or AoE, or even crit/back/down multiplier increases, the most important effect you can tag most mobs with is DR shred.

By reducing a monster’s total DR, DR Shreds expand the range between the DR breakpoint and the AP Softcap. This increases the amount of available 1:1 EAP.

DR shreds function 1:1. ‘-20 DP’ on a skill reduces the enemy DR by exactly 20. However, due to the 5% Rule, the actual DR breakpoint will shift by slightly more than 20, opening up all of that range as 1:1 EAP. Basically, DR shred scales at ~1.0526:1, slightly better than even AP.

A small side note to consider is that when you use a skill that applies a DR shred, the skill will do damage first on its first tick, then apply the DR shred, then following damage ticks do more damage based on the shred. Keep this in mind for your addon setups. Shred before you use your nuke.

How does DR shred stack up?

The rules for stacking DR shred are pretty simple. Same types of DR shreds generally do not stack, but different type shreds do stack. Some shreds are special, like Shai’s “Misty Haze” (a minus percent DR shred). Basically, if it has a unique debuff icon, it can probably stack. Addons have their own space for shreds, too.

To summarize, you can apply:

  • Generic All DR Shred from Skill (Anywhere from 10 to 35)
  • All DR shred from Addon (10-20)
  • Magic DR shred from skill (15ish usually)
  • Ranged DR shred from skill (15ish)
  • Melee DR shred from skill (10ish)
  • A -%DR shred, eg Misty Haze (10-25%)

You can visually see how shreds from classes stack up in the following spreadsheet:

https://docs.google.com/spreadsheets/d/1d8VIJkmWczw4ym_If4khX8pgwWz9LdLkoFWadraLwLw/edit?usp=sharing 

Other quick note: “Defense Nullifying Damage” seen on Brutal Death Elixirs and Brutal Perforation Elixirs are flat damage increases, and, notably, the damage isn’t actually shown anywhere, even with damage numbers visible. This behavior was found when finding the min/max value of a given hit, then finding on Perforation, the min/max went up by exactly 10. There was a lot of punching people involved.

What is Species Damage?

Species damage is an entirely separate Damage Stat. It is not a direct form of AP, but it can be converted to EAP.

Species Types

Species damage works separately from AP in the damage calculation and has the most conditions attached to it when being applied to targets. The most obvious restriction is that Species Damage only applies to targets that match the Species Type. There are 4 known species types:

  • Human - Any player-character race (Human/Elf/Giant/etc)
  • Demihuman - Humanoid but not Human (Orcs/Trolls/Blood Wolves/etc)
  • Kamasylvian - Any monster in Kamasylvia or O'Dyllita, without exception
  • ‘Other’ - Any monster that doesn’t meet one of the above 3 types

‘Damage to All Species’ applies to all of these types, including ‘Other’. There is no overlap between species types. For example, Ahibs in O’Dyllita don’t also take Human damage, just Kama damage.

Other’ species damage is not found in the ‘My Stats’ window, but has been proven to exist. The only way to gain ‘Other’ species damage is through either ‘Extra Damage to All Species’ (commonly found on mainhand & awakening weapons) or ‘Damage to All Species Except X’ on VERY specific items, such as Manos Topaz Rings.

After some research into the KR wikis, we discovered that PA calls our ‘Other’ species type ‘Neutral’. This doc will still refer to it as “Other” because old habits die hard, but go figure.

With some exceptions, if a Species Type applies to one mob in a grind spot, it applies to every mob there. One known exception to this is Padix Island, where both Human & Demihuman mobs exist. Each only takes bonus damage from its respective damage type. Constructs within grindspots (eg towers or walls) are generally ‘Other’, rather than the spot’s species type.

If you’re unsure what Species Type a given Monster is, check their health bar. You should see one of four icons next to their name:

From: The BDO KR Wiki (external link):

https://www.kr.playblackdesert.com/ko-KR/Wiki?wikiNo=67

No, this page does not show up on the NA Wiki, but we have confirmed it in-game. More information and ranting about that in the ‘Resources & References’ section under ‘A Note on PA-Authored Resources’.

Rolling Species Damage

The most important thing to know about Species Damage is that Species Damage is not AP, even if it acts like it in a few situations. Whenever you attack an applicable target, the game randomly rolls between 0.7 to 1.0 and multiplies it by your species damage. That is, Species Damage rolls are a completely random roll from 0.7*species_damage to 1.0*species damage. Every value between these two values is equally likely to be rolled. The average species damage roll is 0.85*species_damage, but random rolls will vary widely.

Example: 30 Human Damage

And the average of 0.7 and 1 is 0.85, so

On each hit, BDO will roll a random number between 21 and 30. The average species damage across all hits will be 25.5.

Above the DR Breakpoint

Above the DR Breakpoint, the species damage roll is added to EAP. It scales similar to but slightly weaker than AP, at an average of 0.85:1.

Below the DR Breakpoint

Species Damage does not increase damage at all below the DR Breakpoint.

However, Species Damage does count toward reaching the DR breakpoint, though you really shouldn’t use it for that purpose. Remember that the DR breakpoint is the point at which you do more damage with the Above-DR formula. If the Above-DR calculation with your Species Damage roll would allow you to do more than 0.05*AP, BDO will use the Above-DR damage value.


Once Species Damage is introduced, the DR Breakpoint calculation actually changes again. It occurs at (warning, math incoming):

DR Breakpoint for a min roll:

DR Breakpoint for a max roll:

For any testers, the random nature of Species Damage and the fact that it does not contribute to damage below DR can make the DR Breakpoint very challenging to find, as high 1.0 rolls can suddenly proc much higher, above-DR damage values. It is much easier to find DR Breakpoints if you have 0 Species Damage. Azwell weapons are ideal for this, as they have 0 species damage and a small 5-damage range (1d5 die, more on that later).

Above AP Cap

Above AP Cap is where species damage shines. Species damage is completely unaffected by AP Caps. As long as you are above the DR Breakpoint, Species EAP is calculated the same regardless of your AP.

Since nearly every spot in the game has an AP Cap, and every AP Cap Multiplier is at most 0.7, this means that Species Damage scales better above AP Caps than regular AP. The lowest roll for Species Damage (0.7) is the same or better than the best possible AP Cap Multiplier (0.7). At Elvia spots (0.05 AP Cap Multiplier), Species Damage still applies at a worst-case rate of 0.7 above cap. Species Damage always scales at an average of 0.85 EAP per point, regardless of the AP Cap or AP Cap Multiplier. Once you have enough AP to meet a softcap, it is usually better to stack Species Damage if it is available.

The biggest weakness of Species Damage is its lack of availability. Given the comparatively high availability of AP, it often is still the correct choice to take AP at spots with an AP Cap Multiplier of 0.7 despite the better scaling of Species Damage. 33 AP still easily outscales 10 Species Damage, and most items specifically geared toward Species Damage simply don’t have enough Species Damage to justify the AP loss. As an example, equipping an Ultimate Ain Sword for Demihuman damage ends up losing so much AP vs Blackstar in PvE or even Kzarka in most scenarios, that you will often end up doing less total damage outside of very specific situations with the worst AP Cap Multipliers (eg Elvia’s 0.05 multiplier).


What are Special Attack Multipliers?

There are multiple types of ‘Special Attacks’ in BDO, all of which multiply damage instead of providing a base damage boost. These are the giant, bouncing, dopamine-boosting text that pops up above monsters whenever you hit them especially hard or under certain conditions. These ‘Special Attack Multipliers’ include Critical Hits, Back Attacks, Down Attacks, and Air Attacks.

Special Attacks apply a multiplicative boost to the total damage of an attack. Due to this, they essentially don’t care about DR Breakpoints or AP softcaps.

While AP and Species Damage are used to calculate the base damage for a given attack, Special Attack Multipliers multiply the total end result of all damage calculations, increasing damage without modifying anything else.

How do they add up?

Crit happens

Critical Hits start at +100% bonus damage. Same in PVP.

  • Procs at random based on your Critical Hit Rate.

Et tu, Brute?

Back Attacks start at +50% bonus damage. +20% in pvp.

  • Always procs when you attack a Standing target from behind.
  • Does not affect enemies in Down or Air states.
  • Stuns, Rigids/Stiffs, Knockbacks, and the first half of Freezing tend to keep a foe Standing.

I get knocked down! And don’t get up again!

Down Attacks start at +50% bonus damage. +20% in pvp.

  • Procs with a Down Attack skill being used against a target in Down state.
  • Basically stuff like Knockdowns, Bounds, last half of Freezing and Float.

Air Combo!

Air Attacks start at +100% bonus damage. +70% in pvp.

  • Procs with an Air Attack skill being used against a target in Air State.
  • Basically reserved only for things like the first half of Float and first half second of Knockdown.

That is bullshit blazing!

Counter Attacks start at +100% bonus damage. (PvE Only mod)

  • Counter Attacks are so hard to hit and the timing window is so short that they’re not worth using for most players. If you get them, consider it a nice bonus. Probably don’t wanna build gem sets for Counters though.
  • Procs when attacking a target that is in a specific, special ‘Counter state’, with a skill with Counter Attack listed on the skill.
  • The state seems VERY short lived as well. Like, 2-3 game ticks.
  • It also seems like you have to be in front of the mob.
  • Not all mobs have a Counter state (we think, anyway.)
  • What moves cause these states? Well, you’ll just have to find out for yourself.

 

Literally the only photo proof this modifier works!

Speed Attacks start at +50% bonus damage. (PvE Only mod)

  • Speed attack only procs on three (confirmed) sets of mobs in the entire game that appear to have a property that allows speed attack to occur. Fully ignore this modifier. It is beyond deprecated and unused. You can test it on stuff for sport, but don’t expect any results.

Some types of Special Attacks can be stacked for multiple multipliers. Critical Hits can stack with Back/Air/Down/Counter Attacks. Back/Air/Down (and seemingly Counter) Attacks cannot stack with each other. Only 1 of these bonuses can apply, depending on the state of the target (standing, grounded, in the air, in counter state). When multiple effects apply, both multipliers are applied to the total damage.

As an example, let’s consider an attack that would normally deal 100 damage. Now suppose we get a Critical Hit + Back Attack. Both the Critical Hit multiplier (+100%, or 2x) and the Back Attack multiplier (+50%, or 1.5x) will apply. This means our 100 damage attack first gets pushed up to 200 damage (2x) by the Critical Hit, then gets brought up to 300 damage (1.5x) by the Back Attack.

Side Note:

If your attack decision includes something like getting both Down Attack + Crit, Air Attack + Crit, or Counter + Crit, then the Down Attack, Air Attack, or Counter text will be smaller and gray (instead of the normal red/blue) and tends to show above your big red CRITICAL text. Back Attack still stacks with Crit but oddly does not do this.

What does “Critical Hit +10%” and such do?

Special Attack Damage increases of all forms apply additively to the multiplier. So if you get a +10% Critical Hit Damage bonus, your Critical Hit bonus goes from +100% to +110%. Similarly, Back Attack Damage +10% brings your +50% bonus to a +60% bonus.

In terms of raw damage, this makes Back/Down Attack bonuses more valuable than Critical Hit bonuses. Suppose a base damage of 100 and a +10% Special Attack bonus:

  • A Critical Hit would deal +110% damage = 210
  • Normally, this attack would only do 200 damage (+100%)
  • The +10% bonus nets +5% total damage
  • A Back or Down Attack would deal +60% damage = 160
  • Normally, this attack would only do 150 damage (+50%)
  • The +10% bonus nets ~6.67% total damage

In addition, any buff that says “+% to All Special Attacks” basically just increases ALL forms of multipliers: Critical Hits, Back Attacks, Down Attacks, and Air Attacks (and technically Counter/Speed Attacks though they’re rare & impossible/bugged respectively). Yes, Critical Hits count as a Special Attack, but don’t take our word for it. Check the KR Wiki (external link):

https://www.kr.playblackdesert.com/ko-KR/Wiki?wikiNo=76

Continuing the above example for 100 base damage with a ‘+10% Special Attack’ Bonus:

  • A Back Attack Crit would deal both +110% damage and +60% damage, as separate 2.1x & 1.6x multipliers
  • 100 * 2.1 * 1.6 = 336
  • Normally this attack would only do 300 damage (100 * 2 * 1.5)
  • The ‘+10% Special Attack’ bonus nets ~12% total damage

Is Awakening/Succession damage different?

Well yes, but actually no. A character’s Awakening/Succession state does not affect your pre-Awakening skill damage at all. It only triggers the 70/30 split for your Awakening & Prime skills. Every other damage mechanic we’ve discussed so far applies normally: AP, DR, and AP Caps all apply normally.

However, Awakening & Prime skill damage is far more random. There is extra randomness added by both your Mainhand and Awakening weapons that cause more possible values than usual. As a result, Awakening/Prime skills usually differ from pre-Awakening/Absolute skills by up to about +/- 15 damage above and below any normal rolls. We discuss the internal mechanisms behind this in the ‘Advanced Mechanics’ section.

As an example, consider an 1100% pre-Awakening (normal Mainhand) skill. For a particular player’s AP and monster’s DR, suppose these are all of the possible rolls:

256, 267, 278, 289, 300, 311, 322

For this pre-Awakening skill, you will only ever see these values.

Now, suppose an 1100% Prime skill on the same character vs the same mob. Assume that your Mainhand and Awakening weapon have the same Sheet AP (so the 70/30 split doesn’t matter). We should expect the same damage, and we mostly get it. However, you would suddenly see your damage numbers look like this:

243, 245, 246, … 332, 333, 335

Almost every value within the range from 243 (256-13) to 335 (322+13) would be visible, with some small gaps near the very top & bottom.

Why does this happen? Each weapon has a random die (the range of weapon damage in the tooltip), and Awakening/Prime skills include these dice in the 70/30 split. For the purposes of simple damage calculations, you can ignore this mechanic. In general, you can simply assume that:

  • Pre-awakening/Absolute skills will roll distinct damage values (eg 10, 20, 30)
  • Awakening/Prime skills will roll a slightly larger damage range as well as every value in between (eg every value from 10, 11, 12… up to …29, 30).

Everything you’ve already learned about damage still provides a good approximation for Awakening/Prime skills. You don’t need to worry about damage dice unless you want exact values. Again, we fully explain them in ‘Advanced Mechanics’ here.

What if you use Prime Skills without an Awakening Weapon?

If no Awakening Weapon is equipped, BDO will literally ignore the entire AP of your Mainhand Weapon when calculating damage, treating it as 0. Any brackets given by the weapon will still apply, but the Weapon’s AP will be completely subtracted from your Total AP. This behavior is not reflected in the ‘My Stats’ window.

By comparison, Awakening skills cannot be used at all without a Mainhand weapon equipped. PA simply didn’t put the opposite check in place for Succession, as you can still use pre-Awakening & Absolute skills normally with only a Mainhand weapon.

To illustrate this effect, let’s walk through the below example:

  • Consider a 400 Total AP (not Sheet AP) Succession Warrior
  • Exactly 100 of this AP comes from their Mainhand Weapon, a TRI c4 Azwell Longsword.
  • The Warrior does not have any Awakening weapon equipped (no Greatsword)
  • The Succ Warrior attacks a 200 DR monster with:
  • ‘Absolute: Slash’ (1330%)
  • ‘Prime: Heavy Strike’ (1407%).

Absolute: Slash will deal ~2660 damage ((400-200)*13.3), as expected. However, despite having a higher skill%, Prime: Heavy Strike will do substantially less damage: ~1407. This is because BDO ignores the 100 AP from the weapon entirely. All AP brackets obtained from the weapon still count; only the Weapon’s 100 AP is ignored. This gives us (300-200)*14.07 = ~1407 damage.

If the Warrior equips an Awakening Weapon with 100 AP, damage will immediately behave as expected again (~2214), though it will also have an added random roll again, just like Awakening Skills.

What about classes that don’t have an Awakening yet?

If you’re reading this in early 2023, your immediate reaction might have been ‘But I know my Maegu’s weapon increases my damage!’. That’s absolutely correct: it does.

If a class does not have an Awakening Weapon available yet, its Prime skills behave exactly like pre-Awakening skills. There is no 70/30 split and no extra random roll. As soon as the class gets an Awakening & Awakening weapon, the weird ‘ignore your Mainhand Weapon AP’ effect will kick in unless you equip an Awakening Weapon. Your damage will also start seeing the extra random roll on Prime skills.

If you don’t believe us, I don’t blame you. Still, give it a try while Woosa & Maegu are still Succession-only in labs, then try another Succ class without their Awakening Weapon. We can’t make this stuff up. BDO really appears to have entirely separate code blocks for Prime skill damage calculation depending on whether the class has an Awakening or not.


So, what’s the simplest PvE damage formula?

DISCLAIMER: This formula is meant to be used as a loose guide for your damage output. There are additional hidden factors that slightly influence the result by adding randomized rolls. These are covered in the ‘Advanced Mechanics’ section here.

For the average player, the simplified BDO PvE damage formula is:

Before (1), (2), or (3)

Adjust ‘Total AP’ based on the 70/30 rule, if using an Awakening or Prime skill. See ‘Approximating Awakening AP’ for more details.

Subtract 2 from your (Total AP). Just trust us (or read ‘Subweapons’).

(1) Below DR Breakpoint:

(2) Above DR Breakpoint but below AP Softcap:

(3) Above AP Softcap:

And finally,

After (1), (2), or (3)

Apply any Special Attack Multipliers

This formula should cover 99% of situations you’ll find yourself in.

For anyone performing detailed damage testing, please read through the ‘Advanced Mechanics’ sections. They explain how AP rolls (eg dice), that weird -2 Subweapon offset, Awakening/Prime damage, random ranges, and floor division work in much more detail. While there are no changes to the overall formula, ‘Total AP’ is actually a rolled value based on multiple other hidden dice values.

Example: Damage Calculation

Let’s do an example calculation for attacking a Kamasylvian type mob with an Awakening Skill (Barrage of Water). The mob has 150 DR, a 200 AP Cap, and an 0.7 * cap multiplier.

Character Stats:


Skill (Awakening):

Step 1 - Compute effective awakening AP:

255 Awk ‘Gear (Base)’ AP - 253 ‘Gear (Base)’ AP = 2

2 * 0.3 = 0.6

0.6 rounded down to nearest integer = 0 (no change!)

538 - 0 - 2 = 536 Awakening AP, + 221 Extra AP Against Monsters

= 757 Effective Awakening AP

Step 2 - Determining which formula to use

AP Cap of 200 versus effective AP of 757

Use the Above-Cap Formula (3)

Step 3 - Calculate Species AP

(74 Kamasylvian damage * 0.7) = 51.8

This means the min roll will be 51.8, and the max will be 74

The average will be fine for most purposes, so we can multiply by 0.85:

74 * 0.85 = 62.9

Species AP = 62.9

Step 4 - Calculate Overcap AP

Total AP = 757 - AP Cap of 200

= 557 Overcap AP

Step 5 - Calculate EAP

AP_Cap = 200

Enemy_DR = 150

Species_AP = 62.9

AP_Cap_Mult = 0.7

Overcap_AP = 557

200 - 150 + 62.9 + (0.7 * 557)

= 502.8 EAP

Step 6 - Calculate Damage

EAP = 502.8, Skill Damage = 1500%

Damage = (502.8 * 1500) / 100

= 7542

Step 7: Apply special attack modifiers

For simplicity, we will consider base Back Attack with no bonuses (1.5), and base Critical Hit with no bonuses (2.0), and calculate damage for a Back Attack + Crit of this ability.

7542 * (1.5 * 2.0)

= 22,626 Total Damage per hit (x8 hits)


Even More Mechanics!

How do Summon skills work?

It is worth noting that in BDO’s game engine, every attack has to be visually anchored to a player that is currently in the middle of some form of animation.

But you might ask “Wait, don’t some skills still work without me needing to be in an animation?”

Well yes…and no. In short, every hitbox that isn’t directly tied to your character animations and acts independently of you is a ‘Summon’. The animation is simply anchored to another character that has its own stats.

This is Gorr. He is objectively the best anchor/summon /s and a very round boi. You may recognize him if you play Witch. Gorr is the character that some of the Witch “Pet Flows” tie themselves to. If you m2m or move out of the pet flow, Gorr will still perform his attack where he started it, and end it on his terms. Not every summon has to be a pet you have around at all times though! Gorr is just one of the simplest examples.

If you can cancel it and go back into a jog and the skill is still going, then it’s probably a summon. There are some fun exceptions, but it’s a good rule of thumb to follow. This is further muddled by some skill animations making use of your summons as graphics, but they are tied to your animation, example being Striker’s 100% BSR.

It’s also worth noting that Projectiles aren’t necessarily summons, though you can fire off some and still immediately move while they’re traveling. Summons usually take the form of some kind of AoE on the ground or something that fires projectiles or attacks on its own.

 

Certain effects that apply to the player do not apply to summons. The most notable of these ignored effects are Elvia Weapons, Elvia Buff in Calpheon Elvia, and Gyfin Color Buffs. Rule of thumb worth following is most of your self applied buffs usually work out, but if a spot mechanic involves a buff that you yourself receive, your summons probably won’t get it.

Certain other stats simply don’t apply to summons, and it’s kinda a crapshoot on whether or not something applies. The most important stats like your AP contribution to your summons generally does work though.

As an example, Crit Rate will apply to your summons, but Special Attack Multipliers won’t.

Speed effects on you generally don’t apply, and there’s some weird interactions with Mage summon flows where their flow attacks will try to speed up with you, to varying success. They can, but mostly don’t.

This concept of ‘Summons’ applies to a surprising amount of things. A short (but not exhaustive) list of summons includes:

  • Awakening Mage’s Pet Flows, and Poison/Lava field.
  • Sorc’s Sinister Omen and Blades of Darkness
  • All of Tamer’s skills that Heilang performs
  • Kuno’s Lunar Explosion from Delighted Blast
  • All of Musa’s Blade Projections
  • All of the Nova Pawn and Axian skills
  • Realm of Anguish on Sage
  • All of Awakening Corsair’s Otters and their attacks
  • Hashashin’s tornadoes
  • Archer’s Sunfall
  • Awakening Striker’s ashura clones
  • Awakening Mystic’s Dragon
  • Awakening Valk’s Wave of Light
  • Woosa’s Clouds
  • Maegu’s Spirit Charm Explosion
  • Shai’s blue/green Rabam orbs

What causes variance in my damage?

Once again, astute observers might notice that even without any Species Damage, the damage numbers from each hit aren’t all the same. There is some additional randomness that determines the ‘Total AP’ used in the above formula:

  • Character dice (something largely out of your control)
  • Weapon dice (based largely on your weapon choice, but often not much you can do about it)
  • The 70/30 split, to a great degree

All will be discussed under ‘Advanced Mechanics’, but after accounting for Species Damage and any Prime/Awakening weirdness, they account for all remaining random damage fluctuations in PvE.

What about Knowledge?

Despite what the game suggests, Knowledge levels do not grant additional AP or Accuracy and do not in any way modify mob DR or Evasion. Based on all testing so far, Knowledge levels appear to do nothing beyond showing mob HP bars at C-rank. The drop rate bonus at S-rank has not been tested.

This is either a bug in NA documentation or a bug in the code for all clients (NA/KR/etc). It seems more likely that NA documentation is simply wrong as the KR wiki makes absolutely no mention of Knowledge doing anything except making HP visible and increasing droprate, and this behavior holds up in all versions of the game.

NA Wiki - erroneous (external link): https://www.naeu.playblackdesert.com/en-US/Wiki?wikiNo=10

KR Wiki - no mention of damage (external link): https://www.kr.playblackdesert.com/ko-KR/Wiki?wikiNo=28

I think my damage is lower than it should be. What gives?

Honestly? A lot of reasons. But some places to start might include:

  • Are you over the AP softcap and forgot to account for it (AP + Monster AP)?
  • If your TTK feels low, are you sure the mob just doesn’t have a ton of HP?
  • Are you sure you’re using the right kind of Species Damage?
  • Are you accounting for the randomness of Species Damage?
  • Did you make sure to account for the 70/30 split? Remember the split can cause your stats window to actively lie to you. Be sure to calculate the split yourself to ensure you’re getting the right numbers.
  • Did you remember to position for Back Attacks if you’re trying to max your damage out (or Down/Air at some spots)?

If you’ve done some basic due diligence and still can’t work it out, there are still some deeper combat mechanics beyond a casual level. However, these extra mechanics don’t significantly alter your total damage. Double-check that you didn’t miss something in the formula so far.


Damage Myths

This is just a dirty section to dispel a few many rumors, explain incorrect observations, help break meaningless past habits, and just generally correct bad information.

  • Global Labs and Live use the same combat and damage formulae. This was largely a myth borne out of the fact we simply didn’t really know how stats work and did our best to come up with solutions that made sense. But, with further testing with stats we can actually see, it’s pretty easy to see Labs and Live use the same damage calcs. This is also where the perception that different types of AP scale differently also came from.
  • The 70/30 Split is a real thing, though it’s REALLY confusing. Read the section above for the full skinny, and if you’re still curious about its deeper mechanics, consider the Advanced Mechanics section.
  • Rain doesn’t actually reduce your AP. It has been bugged for years and has apparently never actually reduced AP, neither from sheet nor your AP total.
  • What it DOES reduce… is your Punch damage. Your damage with no weapon equipped. That’s it. Nothing else. By about 50%.
  • Knowledge doesn’t actually boost your AP (or Accuracy) vs targets, no matter the rank. See ‘What about Knowledge?
  • There isn’t really any such thing as ‘Hidden’ AP outside of the 70/30 Split. The purpose of the term basically was just to refer to AP that wasn’t on your immediate sheet, and since all the information is now given to you in the ‘My Stats’ window, there’s no more use for it, excluding the (missing) visibility of the 70/30 split.
  • The previously ‘Hidden’ AP never scaled any differently from your normal AP. It did not scale 4:1, 2:1, 12:1 (what), or 10:1 with other forms of AP.
  • Extra AP vs Monsters does not ignore AP caps, soft or hard. We all wish it did, though. Only Species Damage actually does this.
  • Extra AP Vs Monsters is 1:1 with AP (it is PvE AP). It is not a fraction of an AP. It’s just AP with a requirement.
  • Sheet AP is not special in any way beyond determining what AP bracket you get. You do get sheet AP as AP in your stats, but it doesn’t scale any better or worse than any other form of AP.
  • Yes, Critical Hits are considered Special Attacks, and get bonus damage from “All Special Attack” accordingly.
  • DR is not DP; DP is not DR. They’re both entirely separate stats.
  • This is further confused by the fact that PA has a mistranslation where buffs that increase or decrease DR, say +/-DP instead. Every effect that says ‘-DP’ means ‘-DR’. Same for +DP, it means +DR.
  • DR does not cap at 400 or 450. DR doesn’t really cap, ever. It’s as valuable as the AP it is versed against.
  • No, DR doesn’t magically uncap for Forward Guard either. It is not capped in the first place. Forward Guard may scale partially better off of DR, but that is still under investigation.
  • The 5% rule is the game moving from one damage formula to another once you would start doing more damage at just over 5% (1/.95) above the Mob’s DR. Players are guaranteed to always do at least 5% of their AP in damage, but the damage formula ensures that damage doesn’t suddenly drop above mob DR when considering this 5%.
  • It is not the mobs having 5% more DR than they actually do and the game secretly making all the DR shreds 5% stronger than they say they are.
  • Species damage is not 1:1 with AP. It sometimes is (on a max roll), but not always, instead averaging out to 0.85:1. It also applies differently below DR (does not contribute to damage) and ignores AP caps.
  • Species damage is also not 1.5:1 or 2:1 with AP.
  • Hidden Species Damage is not a thing, except for the ‘Other’ species type. You can gain ‘Other’ damage only from ‘Extra Damage to All Species’, and is not shown in the ‘My Stats’ window.
  • Fun fact: PA’s official name for ‘Other’ species is ‘Neutral’
  • Species Damage is never outright better until you’ve reached the AP Softcap for a spot. Even then, at most spots, it’s not even much better than raw AP anyway unless you’re lucky, consistently, for an hour straight (0.85:1 avg vs 0.7:1 for AP).
  • Elvia spots are the exception, as Species Damage ignores the 95% damage reduction above AP Cap.
  • Debuff Resistance vs Monsters is a separate stat from your normal Resistances, and they roll entirely separately. If you have 50% normal resistance, and 40% Resistance Vs Monsters, and receive a CC, the game will check the 50% normal resistance, if that fails, it then checks the 40% resistance. They do not stack together additively. Yes, this means Resistance vs Monsters is largely a useless stat.
  • The biggest boost to your damage outside of AP and DR shreds is usually Special Attack Multipliers (Critical Hits and Back/Down/Air Attacks). The lack of Down Attack on some classes basically completely locks them out of some spots. No other stat has that kind of power.
  • Most shocking of all, BDOCodex is actually pretty right on the mark for most monster stats, though it has a lot of garbage and unused mobs, cutscene mobs, quest-only mobs, summon scroll mobs, testing mobs, and other trash that clogs up the list of mobs and NPCs.
  • BDOCodex can also be completely wrong about other things, because the source of much of their monster data is server data leaks (last updated ~late 2021).
  • The leaks that populate this data happen more frequently than you’d think. Global Labs will sometimes just have a patch pushed with server data left in the patch which then gets mined. This is where many Private Servers get their data and formulae from.
  • The listed APs for grind spots on the map often have little to nothing to do with the actual AP requirements and softcaps associated with the grind spot.
  • Skill % is uniform across every class. 100% is 100%, no matter the class.
  • Spot Mechanic buffs are neither Species Damage or AP. They’re actually just straight up multipliers.
  • Gyfin buff multiplies your end result damage by 2x for color buffs, 10x for butcher buff.
  • At solo spots, Elvia multiplies your end result by 6x for elemental weakness, 3x for elemental neutral, and 2x for elemental resistance. Group spots have reduced multipliers that you can find in these patch notes (external link).
  • Spot Mechanics do not apply to your summons, even if the summon is active when you receive the buff.
  • Every class uses its designed AP Type for all attacks in both Awakening & Succession. Dagger Stab on Witch/Wizard doesn’t use Melee AP; it’s still Magic AP. Ranger’s Kamasylvian Swords are still Ranged AP.


Resources & References

All links in this section are to external docs or sites.

Spotbreaking (Grindspot DRs & AP Caps):

https://docs.google.com/spreadsheets/d/1mTPUGVLvp-yaZPSQMHEQ9kOY5DV-NlKsyvAvqtOktPM/edit?usp=sharing

Raw data for spotbreaking:

https://github.com/honuamea/bdo_grindspot_data

Raw data for original derivations:

https://docs.google.com/spreadsheets/d/1AgWE7Z5hEislvjtFkJJRDp60cnZvYGFQRLZqe-7WXLQ/edit?usp=sharing

  • AP vs Damage: ‘Manshaums’ sheet
  • Species Damage: ‘Sausans (AP-capped Species Damage)’ sheet
  • Offhand penalty: See A42
  • Weapon dice: ‘Weapon Dice’ tab

Raw data for Awakening/Prime testing:

https://docs.google.com/spreadsheets/d/1NzRr1E9GNmAkfVG_MeCOvwTtT5nNyw3I5kIL8qGjU94/edit?usp=sharing

  • See ‘Awk/Succ’ A105 for the Fractional AP derivation explained in Appendix 1

Full Character Base Stat Breakdown: https://docs.google.com/spreadsheets/d/1hmYjvyzbXX2fiFTLI656uAqZSDMGUf--qCUp7Nld-9I/edit?usp=sharing

Other tools & research notes:

https://github.com/honuamea/bdo_testing_data

  • Includes the ‘StupidTally’ manual data collection tool under tools/StupidTally*.zip
  • README bundled with the software

Dice distribution simulator:

https://anydice.com/

Example usage: ‘output 10*1d5 + 7*(1d3) + 3*(1d12)’

  • This simulates the 70/30 split for a Succ Tamer with Krea, Blackstar, and no offhand

A Note on PA-Authored Resources

The Official BDO Wiki from PA: https://www.kr.playblackdesert.com/ko-KR/Wiki

Incoming Rant: When referring to Official BDO resources, DO NOT USE THE NA WIKI. The NA wiki has many, many pages either missing or with outright false information.

Examples:

  • The NA Wiki page says Knowledge boosts AP. The KR Wiki page has no listing at all, because Knowledge doesn’t affect AP.
  • NA’s page for Special Attacks claims Counter is 70% bonus. KR’s page claims Counter is 100% bonus, and this has been tested to be true. NA’s value is false.
  • NA wiki has no mention for determining species types. KR wiki has a table showing you icons that tell you the species type.

For the love of God, for your sanity and for everyone else’s sanity, do not use the BDO NA Wiki. If you want actual info, use the KR Wiki:

https://www.kr.playblackdesert.com/ko-KR/Wiki

Even Google Translate does a better job than the paid translators when it comes to moving data over to NA:

https://www-kr-playblackdesert-com.translate.goog/ko-KR/Wiki?_x_tr_sl=ko&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp

!!The casual BDO player

probably won’t need

information beyond this!!

It’s important to note that ‘casual’ in this context is not intended as an insult, reduction or implication that a curious reader isn’t ‘big brain’ enough for the information. Rather, the information past this point is very dry, likely inconsequential, and really won’t mess with your gameplay if you don’t know about it. Honestly there’s some mechanics you might be better off not knowing because they’ll likely just piss you off. Some are just that silly, strange, or even outright maddening in their implementation, and if the mechanics behind the 70/30 split has already infuriated you, then definitely stop here, as it shows up again with a vengeance. This is the last bold text. Beyond here be dragons.

If you don’t have a need or simply don’t care for the inner numerical workings of the game’s combat system, then you won’t really find anything interesting past this point. The rest of this document regards small details that, as a whole, should not affect general gameplay. This includes things that are completely uncontrollable by the player or the minutia required for exact, to-the-number, damage testing. It is intended primarily for people who wish to do deep testing on the game’s internal mechanics.

For those still with us…welcome to…Jurassic…wait, no…

Advanced Mechanics

Dice Rolls

The backend of the game operates on a dice roll system, following XdY+Z values. This harkens back to the time that BDO was in development as a more realistic, tabletop-like game with more reasonable stats, more damage spread, and tougher, sparse-density monsters. The slower combat that resulted cared a lot less about flair/appearance and a lot more about providing players a challenge.

Ultimately this dice roll system gets skipped over more often than not nowadays, but it still shows up in a few ways.

Character Base Stats

These aren’t super complicated and most people will probably know them off the top of their head, but it’s worth having these handy for reference.

Below are Base AP, AP from Passives, and total AP formatted as ‘AP (Passives) Total’ for each class at level 63:

  • 63 Archer: 53 (12) total 65
  • 63 Berserker: 53 (0) total 53
  • 63 Corsair: 53 (12, 17 in succ) total 65, 70
  • 63 Dark Knight: 53 (0, 9 in succ) total 53, 62
  • 63 Drakania: 53 (12) total 65
  • 63 Guardian: 53 (12) total 65
  • 63 Hashashin: 53 (20) total 73
  • 63 Kunoichi: 53 (12, 17 in succ) total 65, 70
  • 63 Lahn: 53 (0, 6 in succ) total 53, 59
  • 63 Maegu: 53 (12, 19 in succ) total 65, 72
  • 63 Maewah: 53 (12) total 65
  • 63 Musa: 53 (12) total 65
  • 63 Mystic: 53 (0) total 53
  • 63 Ninja: 53 (12, 17 in succ) total 65, 70
  • 63 Nova: 53 (0) total 53
  • 63 Ranger: 53 (6 in Awak, 13 in succ) total 59, 66
  • 63 Sage: 53 (20, 27 in succ) total 73, 80
  • 63 Shai: 47 (0) total 47 (Lowest in the game)
  • 63 Sorceress: 42 (5, 12 in succ) total 47, 54 (Tied with shai in awakening)
  • 63 Striker: 53 (0) total 53
  • 63 Tamer: 58 (5 in succ) total 58, 63
  • 63 Valkyrie: 53 (0) total 53
  • 63 Warrior: 53 (0) total 53
  • 63 Witch: 53 (32, 36 in succ) total 85, 89
  • 63 Wizard: 58 (32, 36 in succ) total 90, 94 (highest in the game at the moment)
  • 63 Woosa: 53 (12) total 65

One might initially think that some of these APs are really low or that AP is distributed unfairly, like Sorc having as much AP as Shai, or Wizard having more AP than Witch. However, these values often balance out with passives and when you consider the next section, Character Dice. For the above two examples, Shai has a vastly smaller Dice Roll than Sorc, and Wizard has a smaller Dice Roll for his higher AP. Witch has lower AP but a larger Dice Roll, equating to both higher & lower potential rolls than Wizard.

It’s worth noting most classes get some sort of sheet AP from level at 60, a hidden AP at 61, nothing for 62, and a hidden AP at 63. However, not every class follows that path. If your base stats differ from these, check your level, and if your base AP is lower, look at what level you get your next hidden AP. Garmoth seems to at least accurately simulate AP from levels. Regardless, this base AP will always show in your ‘My Stats’ window. None of this is ‘Hidden’ or will prevent you from calculating expected damage.

Character Dice Rolls

Every class has a basic dice roll that is completely independent of Weapon Dice and character AP. These dice create a small range of AP before all other AP calculations, even for your unarmed ‘Punch’ attack.

Character Dice are divided up by AP Types, and thus every character actually has Melee AP dice, Ranged AP dice, and Magic AP dice, even if their class does not actually use two of the three dice types. Post-reboot, all class skills use the class’s AP type, with one exception. The unarmed Punch always uses Melee dice, even on Magic & Ranged AP users.

You can test Melee dice for non-Melee classes by unequipping your weapon and using your basic unarmed ‘Punch’ skill. The basic punch has been consistently measured as 100% x1 for all classes tested so far and is the easiest way to determine any Melee character’s Character Dice. For Magic & Ranged characters, it is generally necessary to know all other Weapon Dice before the Character’s main Magic/Ranged Dice can be determined. Note that a non-Melee class’s Base Melee AP will usually be different from their Magic/Ranged AP but will not show in the ‘My Stats’ window. Non-dominant AP types are still hidden, as they are not expected to be used for any skill.

Most classes default to either their old, pre-reboot values (see below) or a 1d1-1 (ie 0) for their non-dominant damage types (eg Melee on a Sorc). This is a relic of pre-reboot classes and particularly classes before Archer, where a class might have used two or even all three types of AP in their skills.

Musa and Maewah are two of the easiest examples. On release, their sword skills used Melee AP, and their Bow skills used Ranged AP. On release, Dark Knights used Melee AP for any sword attacks that made contact with the enemy and Magic AP for skills like Lunacy and most of the Awakening kit. Again, this skill-specific split no longer applies. Musa & Maewah now use Melee AP for all skills, and DKs only use Magic AP.

Sometime in 2018, the character dice up through Mystic were revealed (pictured below), but the dice values have demonstrably changed since Class Reboots.

This chart is no longer accurate, but it provides valuable insight into the original, pre-reboot values. Some of the non-primary APs (eg Melee for Sorc) seem to still hold.

As part of the class reboot, most classes were normalized to a (1d9 - 5). Many of the original modifiers ended up becoming a character’s Base AP. Striker used to be 2d5+46 (52 base AP + (2d5 - 6)) but is now toned down to the same, more standardized (1d9 - 5).

All known Character Dice (through Maegu) are 1d9 - 5, except for the below classes:

  • Hashashin (Magic)*: 2d5 - 6
  • Shai (Melee): 1d5 - 3
  • Tamer (Magic): 1d5 - 3
  • Wizard (Magic): 1d5 - 3

* Note that Hashashin could still be 1d9 - 5, but based on extensive testing, his damage rolls still look like they were caused by 2 dice instead of 1. (1d9 - 5) and (2d5 - 6) generate the exact same damage range, but (1d9 - 5) is evenly distributed (all values are equally likely) and (2d5 - 6) observes more rolls clustered around the middle (much as 2d6 are most likely to roll a total of 7 in the board game ‘Monopoly’).

Weapon Dice Rolls

Overview

Most if not all weapons in the game also have Weapon Dice. This is actually visible to you on the weapon’s stat screen, and it’s usually fairly easy to tell what the ranges are, with some rare exceptions. Weapon Dice stack with Character Dice instead of replacing them. Both rolls and offsets are added together and the total applies directly to your AP Roll for each attack.

Example:

Total AP: 100

Character die (Striker): 1d9 - 5

Weapon die (Azwell): 1d5 - 3

Combined dice: 1d9 + 1d5 - 8

Min roll = 100 + 1 + 1 - 8 = 94

Max roll = 100 + 9 + 5 - 8 = 106

Every attack this character makes will vary between 94 & 106 AP.

Unlike your character dice, the weapon dice also have a Median (the middle number in a set of sorted numbers, for those out of practice). The Median AP of a Weapon is used for Sheet AP. Likewise, the listed AP stat on your My Stats pane uses the Median AP of your weapons, but damage calculations still roll the entire range. This means any given attack with a weapon can swing high OR low, depending on your luck.

Offsets are usually, but not always, half of the roll range (eg 1d10 - 5). For odd-valued dice, the offset is 1 higher. 1d4 - 2, 1d5 - 3, and 1d6 - 3 would all be fairly common die values.

Main Hand Weapons

Main hand weapons are among the lowest variance in your damage (often a 1d5 - 3 for +/- 2), and add a dice roll & offset whenever you use Succession or Main Kit skills. Mainhand Weapons generally provide dice that match their displayed damage range. The range does not change with enhancement level, but reforming the weapon (eg ‘Ultimate’ reform stones) can affect range and thus weapon dice. We list all verified weapon dice below in the format ‘Weapon (Tooltip range): Die - Offset’:

  • Azwell (eg 120-124): 1d5 - 3
  • Blackstar (eg 22-28) & Godr-Ayed* (eg 122-128): 1d7 - 4
  • Kalis (eg 13-27): 1d15 - 8
  • Krea (eg 17-19): 1d3 - 2
  • Kzarka        (eg 18-22): 1d5 - 3
  • Offin (eg 136-138): 1d3 - 2
  • Starter Weapons, ie Rusty/Old (eg 6-10): 1d5 - 3
  • Ultimate Ain (eg 116-124): 1d9 - 5
  • Ultimate Yuria (eg 122-131): 1d10 - 5

*Theorized but not explicitly tested

Additional contributions are welcome! See ‘Testing Weapon Dice’ for more info.

Note that ‘Ult’-ing green weapons tends to increase weapon dice, adding more randomness to the hit. Regular Azwell weapons are exceptional for testing due to no species damage, a small 1d5 range, and identical weapon dice to the ‘Old’ (starter) weapons for low damage testing. They also have immunity to the (non-existent) Rain debuff, if PA ever decides to actually implement it. For an even tighter range, Krea weapons are 1d3 for +/- 1, but you lose the ‘Old’ weapon die match for ultra-low AP testing.

Awakening Weapons

Awakening weapons comparatively have VERY high variance. Nearly all of them roll +/- 5 AP or +/- 6 AP above/below the Median AP, and some roll even wider ranges. These mainly roll when using Awakening skills, though Prime skills are also slightly impacted.

Blackstar, Godr-Ayed & Narchillan: 1d12 - 6

All other tested Awakening Weapons (including Dandelion): 1d10 - 5

The 70/30 split actually also applies to dice. This is every bit as complicated as it sounds and will have a dedicated section explaining how it works. This is why Prime skills also acquire a little bit (30%) of the Awakening Weapon die.

Subweapons

Subweapons actually have no variance at all, despite what their tooltip may say. Instead, they have a negative offset that remains completely static no matter what you do and invisibly reduce the Total AP roll by a small amount of AP without anything you can do about it. However, weapon offsets are also not uniform. They seem intentionally added and seem to act the way they do on purpose. Much like Weapon & Character dice offsets, Subweapon offsets are not indicated in the My Stats menu. It is entirely possible that the missing Subweapon dice are a bug.

  • No Subweapon (empty offhand) has no impact on your AP (+/- 0).
  • Kutum, Nouver, and Rosar cause a hidden -2 loss on your AP.
  • Oros causes a hidden -1 loss on your AP.

While the average of these ranges is treated as sheet AP, there is no corresponding ‘Offhand Die’. Rosar has 4 possible APs it can roll, Kutum and Nouver have 3, and Oros only has 1 possible AP. Instead of getting actual dice, we simply get negative AP offsets. Again, these offsets are not shown in the ‘My Stats’ window. They are true ‘Hidden’ (negative) AP.

Astute readers may note that offhand offsets still look very similar to the standard weapon die offset formula:

  • Look at the sheet AP range on the weapon
  • If even, the offset should be half the range (eg 1d4 --> a -2 offset)
  • If odd, add 1 to the even offset (eg 1d5 --> a -3 offset)

Most offhands still appear to follow this offset rule, further bolstering the idea that the missing ‘offhand die’ is just a bug. The lost AP is so low that nobody, including PA, should realistically notice it unless doing detailed weapon damage testing.

Known offhand offsets:

  • No subweapon: 0 (no change)
  • Accuracy Offhand (eg Saiyer, 1-3): -2
  • AP Offhand (eg Oros, 6-6): -1
  • Blackstar*(eg 5-7) / Godr-Ayed (eg 31-33): -2
  • DR Offhands (eg Theos, no AP): 0 (no change)
  • Kutum (eg 4-6): -2
  • Krea (eg 1-3): -2
  • Nouver (eg 6-8): -2
  • Rosar (eg 1-4): -2
  • Starter Weapons, ie Rusty/Old (eg 1-1): -1

*Theorized but not explicitly tested

The Incredibly Stupid, Confusing, and Needlessly Complex World of Awakening & Prime Skill Damage

So by now, you’re probably noticing we’ve danced around the topic of Awakening and Prime Skill damage. There is a very good reason for this.

When rolling Awakening Damage, the 70/30 split applies not only to both your weapon APs (which already aren’t listed alone on your My Stats page but rather are bundled into ‘Gear (Base)’) but also to the rolled dice value of your weapon, entirely separately from your weapon AP. We’ll start by giving the formula directly, then explaining the implications in more detail.

True Awakening AP =

True Succession AP =

Looking at these formulas at a surface level, they aren’t so terrible, but both introduce one specific, key difference from the damage formula for Absolute Skills: Fractional AP.

How do Fractional Dice Work?

For all below examples, consider the die on the left to be ‘Die A’ and the die on the right to be ‘Die B’.

Usually, combining two dice rolls is easy. We add the results together! Suppose you roll a 3 on Die ‘A’ and a 4 on Die ‘B’ for a total of 7:

Likewise, rolling a 4 on Die ‘A’ and a 3 on Die ‘B’ also gives a total of 7. We actually have many different ways to get a total of 7 (6+1, 5+2, 4+3, etc)!

But what if we weight the values of these dice 70/30, like in BDO? What happens to these two identical rolls?

4 + 3 (3.7) is no longer the same as 3 + 4 (3.3)! Rolls that were previously identical now produce new, fractional values. In fact, there are now no 2 combinations of Dies ‘A’ & ‘B’ that produce the same value. Originally, 2d6 only had 11 unique values. Now, all 36 combinations are unique!

For larger dice, there are some combinations that are still equal, eg (3, 7) and (7, 3). However, we see a much wider range of possible values.

Fractional AP

BDO doesn’t truncate fractional AP values until the final step of damage calculation. Until then, fractional AP is very possible, and the 70/30 split provides a way to generate quite a bit of it. When you roll damage for Pre-Awakening/Absolute skills, your dice/roll range is usually fairly comparable to your number of possible damage values. Prime/Awakening skills mix this up, opening up many more possible damage values via Fractional AP.

Just like our 2d6’s above, once you apply the 70/30 split, the possible values are increased by many times, so simple damage rolls with 6-8 values can suddenly start showing 50+ values.

As an example, let’s take a 100% Absolute vs Awakening Skill and a 1000% Absolute vs Awakening Skill. Suppose the smallest possible Weapon Dice combination: Krea mainhand (1d3) and Dandelion awakening (1d10). Let’s also assume the smallest character die of 1d5 (Tamer/Wizard/Shai).

For this example, our dice can roll 3-18. For our 100% Absolute Skill, damage at low AP might come out to 3, 4, 5, … all the way up to 18 damage. Simple as.

When you scale that up to the 1000% Absolute Skill, your roll range doesn’t change, only the final damage does. So you get 30, 40, 50, …, up to 180. Makes sense, right?

But now, if you read through the Awakening and Prime formula, you’ll probably notice that almost every value between 3, 4, 5, 6, and so on is possible for the base roll. Likewise, for our Awakening Absolute, almost every value between 30, 40, 50, and 60 is now possible because almost every combination of dice generates a unique value due to the 70/30 split.

Applying .7 and .3 modifiers to your weapon dice before adding them fills in most of the missing gaps in your final damage numbers. If you test our 1000% Awakening Skill, you’d immediately notice that your range of damage rolls is suddenly batshit crazy compared to the nice, tame 1000% Absolute.

At lower AP values and skill percents, this increased gap-filling between damage numbers manifests as a normally expected distribution (eg 3, 4, 5, 6, 7). It only consistently appears once you hit 10x multipliers and above, and you’ll even start to notice gaps in the numbers at ultra-high skill percents (eg 1500%+), especially at the very low & very high ends of the damage range.

The worst part is, this complexity doesn’t increase damage at all. It only fills in values between the normally-observable damage values. All of this work doesn’t result in any significant change to your Min or Max value, nor is there honestly a real good reason for all this extra math the game is doing. You still have almost the same exact range as before, it’s just more finely distributed.

Damage calculations, however, will be wildly off if you don’t account for this mechanic. Without calculating the fractional 70/30 AP values for both dice, the min & max damage values for a skill are almost impossible to estimate, because it’s not using your Awakening Die or your Mainhand Die. It’s using a strange mix of both that generates a shorter range for Awakening skills, a larger range for Prime skills, and way too many values in between to allow clean measurements. Averages, at least, are still reliable even without this mechanic.

Integer Mathematics

It may seem overly obvious to say, but BDO was written by software developers. This means that we can assume they generally think like software developers and follow well-established development practices for both code performance and scalability. While approaching this project, we actively kept in mind a concept of ‘How would most software developers have implemented this?’.

For anyone unfamiliar, ‘floating-point’ values refer to values with a decimal point, eg ‘1.1’ or ‘0.345’. With integers, there are a finite number of values between, say, 0 and 255. These can be represented with 8 bits (0’s or 1’s) in binary form, the machine’s native language. However for real numbers, there are infinitely many numbers just between 0 and 1, so computers are forced to adopt a new way of representing decimals. A fixed number of bits is used to approximate the decimal you want. Most ‘floats’ are 4 bytes, and there are double-precision ‘doubles’ that are 8 bytes, allowing for increased precision. Due to the special form this data takes, the normal CPU circuits for integer addition/subtraction/multiplication/division cannot be used. Dedicated floating point units in the CPU (‘FPUs’) are usually much slower for basic mathematical operations.

While modern CPUs have gotten much better at floating point operations, integer operations are historically much faster. Most software developers are trained to use integer math instead of floating point when performance is required. Thus from a pure performance perspective, we assumed that all calculations in BDO are likely done with 64-bit integers, the common word-size for modern machines and tailored our formulas to follow this. The results were excellent: we were able to exactly replicate BDO damage numbers via our own calculator, strongly supporting that BDO uses integer calculations internally. Calculations with floating point numbers can vary by 1-2 damage, depending on rounding/truncation error.

Additionally, integer division is the most expensive operation (consumes the most CPU cycles), so we assumed divisions were minimized. If possible, all values should be multiplied together with a single division at the end.

Eliminating Floating Point Values

Lots of BDO’s values are clearly decimals. We have skill percentages, AP cap multipliers, and even the 5% rule. So how can all of this be done with integers?

Let’s start by looking at BDO’s base damage (below DR) formula for Punch (100%x1):

Instead of multiplying AP (an integer value) by 0.05 (a floating point value), we can treat the float as a fraction: 1/20. A proper integer expression would be:

In this case, this is optimal, as we’ve exchanged one floating point multiplication for one integer division.

It gets more complicated for skill percents. Let’s consider a skill with 368% damage:

3.68 can’t be easily changed into a fraction like 0.05 could, but we can still represent it as a simple improper fraction: 368/100. With this, our formula becomes:

This is a clean integer operation, but we now have a problem. We’re doing two divisions, which is the most expensive operation. However, we can reduce this down to 1 by making a few assumptions:

  • There will be a skill percent in every calculation, so we’ll always need to divide by 100
  • We always divide by 20 below DR (0.05 is a constant)

Since we know these two things are always true, it’s safe to combine our two division into one within the code:

Again, this is a big improvement, since we’re back to one division. We can also simply pass in the straight skill percent, rather than converting it to ‘3.68’ first. This is both easy and very fast, but there’s still one more problem. As the formula gets more complicated, it can be difficult to keep track of all of your values. If your divisor is 230000 (eg 2 * 368 * 7 / 23000) and you have to change something (say, for a new mechanic), how do you keep the formula clean?

The easiest answer is to keep your denominator as a fixed power of some number: usually either 2 or 10. 2 is the most efficient because there are special operations called ‘shifts’ that the CPU can use for division and multiplication by 2. However, humans tend to learn base-10 growing up, so fixed powers of 10 are much easier for us to read. A clean and performant formula would look like this:

In this case, we converted 0.05 to 5 / 100 and 368% to 368/100. Since these are constants, we unify the denominator into 10000 (100*100). This creates a formula where we clearly see all of the input values, and we can easily check if the denominator is correct by combining all of our powers of 10 used for adjustment. The only cost is one additional integer multiplication, which is still pretty fast (much faster than division).

This might seem like overkill, but it becomes very important when dealing with complex formulas like the above-Cap formula in order to keep them readable but performant.

Using these higher powers of 10 also allows Fractional AP (for Awakening & Prime skills) to exist while still using integers, as 0.7 is just 7/10 and 0.3 is just 3/10. Fractional AP works just fine if we likewise boost up all AP by 10, then divide by 10 at the end. Alternatively, it’s completely possible that PA uses floating point numbers for AP. We’ve seen several rare truncation issues where a value is exactly one less than expected that would suggest floating point error.

Floor Division

We’ve already discussed that integer division is slow, but there’s one more quirk. In most programming languages, (integer) / (integer) does not give a float; it gives another integer. Integer division throws away the remainder (eg 10/3 = 3, not 3.333). This behavior is called ‘truncation’, and division that performs truncation is called ‘floor division’.

BDO probably uses floor division for its damage values rather than rounding. If we calculate our potential damage to be 248.6, BDO will always show a damage of 248. This is easiest to see when you are far below monster DR. While below DR, the damage for Punch (100%x1) will step up 1 for every 20 AP, but you won’t see any improvements in between.

Floor division is generally represented as ‘//’ rather than ‘/’, as some languages like Python 3.x actually auto-convert to float on division. ‘//’ explicitly states that floor division is intended.

Most BDO damage formulas are a chain of multiplications, followed by a single floor division at the end.

Random Rolls

It is actually a very challenging problem for computers to generate good ‘random’ numbers. Unlike true-random events like a coin flip or dice roll (which can still be biased), computers must generally use an algorithm to try and generate seemingly-random numbers. These generators are referred to as pseudo-random number generators, or PRNGs.

There are many different algorithms for PRNGs, and it is completely unknown which one BDO uses. Behavior of a program with random rolls can change drastically depending on the PRNG algorithm, especially a bad one. However, random rolls are very common in most game programming, so there are already some standardized libraries available. Regardless of whether BDO actually uses a specific library, these can let us simulate BDO’s random rolls. We use Python’s ‘random’ library for our testing, which uses an algorithm called the ‘Mersenne Twister’ underneath.

Most PRNG libraries contain at least these two methods:

  • rand() - returns a random double-precision float from 0-1
  • randint(min, max) - returns a random integer between min & max
  • Sometimes max is included in the return range, sometimes it’s not.
  • All of our examples assume that ‘max’ is a valid random roll

Example for 10 random rolls from 1-10 in Python:

>>> from random import randint

>>> for i in range(10):

...     print(randint(1, 10))

...

8

4

5

5

6

10

2

7

7

2

From our testing, BDO always appears to use random integer rolls (eg randint). This occurs for:

  • Character Dice
  • Weapon Dice
  • Species ‘AP’ (the AP equivalent resulting from a species damage roll)

Species AP is simply calculated as:

species_roll = randint(7 * species_damage // 10, species_damage)

This means Species AP will take an integer value between a floor-division 0.7*species_ap up to and including the full Species AP value.

Dice rolls (eg 1d5) are calculated as:

randint(1, 5)

For multiple dice rolls (eg 1d5 + 2d3), each die is rolled separately and then added together:

randint(1, 5) + randint(1, 3) + randint(1, 3)

Some useful Testing Grind spots:

Khalk Canyon in Dreighan:

Known to date, Khalk Canyon is the only grind spot in the entire game that does not appear to have any form of an AP softcap. The monsters have 35 DR, and Break at 37 AP.

For Any form of low to high testing on raw damage, Khalk is probably the best place to go, and if you just wanna see big, fat, fucking numbers.

Waragons:

Waragons have no DR. Like, at all.  0. Their AP softcap comes at around 250 AP, and the softcap ratio is a nice, even, 0.5. You can do reasonably good under softcap damage testing here, and it’s probably the best place to visibly see your damage gain per point shift, for those working on lower gear and optimizing for low AP testing. It’s also really great for finding out Character Dice, since pretty much everything will do full damage and you can get an easy grip on your variance.

Mirumoks:

Okay, so mirus doesn’t really offer any particularly special advantages, but there is a Voraro there, right next to Main Rotation, across the road from the far stump on the right, that we have named Finn. He is the best Voraro there ever was, and he helped figure a lot of early math out.

Some additional useful spots and their benefits are listed here.

Show me the REAL damage formulae

Let roll() be an expression to convert dice expressions (eg ‘2d5’) into proper randint() rolls.

a += b is a programming shorthand meaning ‘a = a + b’. Similarly, a -= b means ‘a = a - b’ and a*=b means ‘a = a * b’.

ap_roll = raw_ap  # start with our base AP (already includes monster_ap, if relevant)

ap_roll += roll(character_dice) - character_dice_offset  # apply character dice

ap_roll -= subweapon_dice_offset  # apply subweapon offset (no dice)

if awakening_skill:

    if mainhand_weapon is null:  # no mainhand weapon equipped

        raise SkillError(“This skill is currently unavailable”)

    ap_roll -= awakening_weapon_ap

    ap_roll += 0.7*(awakening_weapon_ap + roll(awakening_die) - awakening_die_offset)

    ap_roll += 0.3*(mainhand_weapon_ap + roll(mainhand_die) - mainhand_die_offset)

else if prime_skill and character_can_awaken:

    ap_roll -= mainhand_weapon_ap

    if awakening_weapon:  # no awakening weapon equipped

        ap_roll += 0.7*(mainhand_weapon_ap + roll(mainhand_die) - mainhand_die_offset)

        ap_roll += 0.3*(awakening_weapon_ap + roll(awakening_die) - awakening_die_offset)

else:

    ap_roll += roll(weapon_dice) - weapon_dice_offset  # apply weapon dice

species_ap_roll = randint(7 * species_damage // 10, species_damage)  # compute species ap

overcap_ap = ap_roll - ap_cap  # figure out how much AP is over the AP cap

if overcap_ap > 0:

    ap_roll = ap_cap  # reduce our AP roll by the amount over cap

else:

    overcap_ap = 0

special_atk_multiplier = 1.0

if critical_hit:

    # Assume ‘bonus_crit_dmg’ and other bonuses are already 0.03 for 3%, etc

    special_attack_multiplier *= 2.0 + bonus_crit_dmg + bonus_special_atk_dmg

if down_attack:

    special_atk_multiplier *= 1.5 + bonus_down_atk_dmg + bonus_special_atk_dmg

elif air_attack:

    special_atk_multiplier *= 2.0 + bonus_air_atk_dmg + bonus_special_atk_dmg

elif counter_attack:

    special_atk_multiplier *= 2.0 + bonus_ctr_atk_dmg + bonus_special_atk_dmg

elif speed_attack:

    special_atk_multiplier *= 1.5 + bonus_speed_atk_dmg + bonus_special_atk_dmg

elif back_attack:

    special_atk_multiplier *= 1.5 + bonus_back_atk_dmg + bonus_special_atk_dmg

eap_damage = ap_value - enemy_dr + species_ap_roll

# This check is equivalent to eap_damage < 0.05 * ap_value

# but is faster with no floating point issues

if 20 * eap_damage < ap_value:

    # Use the base damage formula and just end here

    final_damage = 5 * ap_roll * skill_percent * special_atk_multiplier // 10000

else:  # use the above-DR formula

    # There are ways to treat ap_cap_multiplier as an integer for use with a single final division

    # but there’s complexity that we won’t explain here. A float is nearly always good enough.

    unscaled_damage = eap_damage + ap_cap_multiplier * overcap_ap

    final_damage = unscaled_damage * skill_percent * special_atk_multiplier // 100

Appendix 1 - Testing Procedures

Global Labs vs Live Servers

There appears to be no significant difference between any damage on Global Labs and Live servers. We confirmed this on NA servers via a series of tests, 3 of which are documented below.

Killing a Senior Soldier on NA vs Global

We killed a Cron Castle Senior Soldier on both Global Labs and NA Servers with a 62 AP Shai. Gear and AP values were identical, with 0% critical hit rate. 10+ mobs were killed on each client.

The Cron Castle Senior Soldier (external link) has 264 HP. On Global Labs, observed damage with 62 AP ranged from 13-17 (avg 15). On average, a kill should happen in 17.6 hits.

Average Attacks to Kill

Expected average for 61 AP: 18.86

Expected average for 62 AP: 17.60

Expected average for 63 AP: 16.50

Global: 18.00

NA: 17.54

Both NA servers and Global Labs appear very similar for PvE damage, within 1 AP of accuracy.

Getting hit by a Centaurus Seeker on NA vs Global

Centaurus Seekers seem to have less damage variance than other mobs and are ideal for EvP damage testing. We recorded damage dealt by a Centaurus Seeker vs a 30 DR Shai on both Global Labs & NA Servers. 20-30 hits were recorded on each client for the Centaur’s Swipe Attack and 5-10 hits were recorded for its Stab Attack.

Average Damage Taken

Attack

Global Labs

NA Server

Swipe

333.3

331.3

Stab

550.5

556.0

Observed Damage Ranges

Attack

Global Labs

NA Server

Swipe

314-368

318-345

Stab

530-575

530-570

Damage varied by ~40-45 points but averages varied by only 2-6 points, with neither Global nor NA clearly higher or lower across both mob skills. This data strongly suggests that mobs do the same damage on Global vs Live servers vs the same DR.

Basic PvP Damage Test on NA vs Global

To test PvP damage, we had two Trial Shais punch each other on both Global Labs and NA Servers. A 157 AP Attacker (no Human damage) hit a 25 DR defender. 50+ hits were recorded on each client.

Average Damage

Global: 3.70 damage per hit

NA: 3.79 damage per hit

Only 3 & 4 damage hits were observed. This test is not conclusive without:

  • Also evaluating the impact of +/- 1 AP
  • Higher damage number testing (eg properly-scaled skills)

However, at glance, PvP Damage appears to be very similar, if not exactly the same on NA vs Global Labs.

Enabling Damage Numbers

Global labs offers the ability to view damage numbers (much like other conventional MMOs/RPGs). This feature is not available in the vanilla game (live servers), but to enable them in Global Labs, go to:

  • General Settings
  • Show/Hide
  • Show Damage Stats

To actually see damage numbers, you must have at least C-Rank Knowledge on any monster:

Testing Checklist

We strongly recommend doing the following when testing:

  • Only test damage with Punch or Mainhand skills (never Awakening/Prime unless you’re testing Awakening/Succession damage)
  • Awakening/Prime skills add a complicated random roll
  • Avoid species damage entirely (especially All-Species). Zero-Species Weapons are your friends.
  • Kzarka/Blackstar/Offin/Dande are not your friends
  • Base Dande & Blackstar Awakening weapons do not have Species Damage.
  • Katan/Ultimate Katan weapons from the Valencia questline are ideal for your Awakening weapon. Global Labs also has Kydict weapons available.
  • It can still be useful to use gear with inapplicable Species Damage (eg Narcs against Humans or Blue Awakening Weapons vs Kama mobs).
  • Use a low-dice Mainhand Weapon (unless testing weapon dice)
  • Krea weapons (1d3, no species) are available from Tulem in Altinova
  • Azwell weapons (1d5, no species) are available from Alfredo in Velia
  • Be very careful of your choice of offhand. It can change your AP.
  • Try to never test both with and without an offhand in the same data set.
  • If you use an offhand, be sure to apply the negative offset for any values collected with it.
  • Consider testing on Shai/Wizard/Tamer for a lower 1d5 Character Die
  • Shai is the only Melee user of these 3, enabling reliable use of Punch
  • Do not use skill addons when testing unless absolutely required for your testing
  • Put AP buff addons on dedicated skills to avoid accidentally using them
  • Be careful about any meals/buffs/alch stones running. Always check your ‘My Stats’ menu for AP!
  • Consider recording your testing sessions (eg with OBS or ShadowPlay) so you can play them back.
  • Sometimes damage numbers overlap in weird ways. Frame-by-frame playback is a lifesaver.
  • If you can’t read a number and/or aren’t 100% sure, don’t record it.
  • There are lots of sources of stackable AP when doing ultra-high AP testing. Don’t forget:
  • Addons, Meals, Elixirs, Perfumes, Villa Buff, Church Buff, Alch Stone, Krogdalo Buff, Typed AP Enhancers (Melee/Ranged/Magic), Crystals, Artifacts/Lightstones, Furniture Buffs (eg Kamel Statue), etc

Unarmed Combat: The Surprisingly Useful ‘Punch’

We heavily leverage the unarmed ‘Punch’ skill for both spotbreaking and character dice testing. To use it, remove your mainhand weapon and simply perform the only attack left to you (LMB on PC). Your character will throw out a basic punch.

We have validated this ‘Punch’ to be a 100% x1 skill, even if there is no tooltip. It allows:

  • Reaching much lower APs, by avoiding a weapon entirely
  • Much lower damage variance, due to avoiding a Character Die

However, Punch uses Melee AP even for Magic & Ranged characters. Be careful to use a Melee character if you’re testing Punch. The Melee AP of Magic & Ranged characters may differ from their primary AP, and only their primary AP type shows in the ‘My Stats’ window.

Some characters have their punch overridden to another skill (Ranger’s unarmed attack is actually her ‘Round Kick’ skill). Some characters also have a 10-15% Critical Hit Rate added on their punch (eg Warrior).

Is it safe to use Punch for testing?

Yes, Punch has proven very reliable for Melee characters across a wide variety of tests.

If you’d like to confirm for yourself that Punch is 100%x1, follow these steps:

  • Select a Melee character
  • Reminder: Magic/Ranged characters may have different base Melee AP when using Punch from what is shown under ‘My Stats’!
  • Select a testing spot with known DR
  • Equip yourself with AP over monsters’ DR but under AP Cap. If you don’t have DR/Cap info handy, try one of our recommended no-cap spots (Gray Foxes or Khalks)
  • Select one fixed AP
  • Select 2-3 other Mainhand (Pre-Awakening) skills
  • Evaluate damage for each skill against a monster with your fixed AP
  • For Punch, you will need to add additional gear to match the same Total AP you had with a weapon
  • Divide observed damage by the skill%
  • Use 100% as the percent for Punch
  • Unscaled damage (once you remove the skill percent) should be the same for all skills
  • If not, 1+ of the selected skills is not the percent it claims.
  • We have repeatedly validated punch as 100%

WARNING: Punch is the only skill in the game still affected by the Rain debuff. During and for ~10 min after Rain, Punch will only deal 50% damage, regardless of your AP. Be careful when testing with Punch!

Spotbreaking (AP/DR/AP Cap)

‘Spotbreaking’ is the process of identifying the DR, AP Cap, AP Cap Multiplier, and Species Type for monsters in a grindspot in order to build ideal gearsets that min-max damage.

Based on the damage formulas presented in this doc, we can break damage down into 3 ranges:

  • Below DR (damage = 5% of AP times skill%)
  • Above DR but below AP Cap (damage = (AP - DR) * skill%)
  • Above AP Cap (all additional AP is reduced by some multiplier)

These can be reduced to finding 3 lines in observed damage:

  • A (0.05*skill%) slope line below DR
  • A (skill%) slope line above DR, where AP counts 1:1
  • A lower slope line (usually ~0.7*skill%) above AP Cap

These 3 lines can be visualized like this:

To ‘spotbreak’, all we’re really doing is finding these 3 lines, the points where they intersect, and the slope of the final ‘AP Cap’ line. At a bare minimum, we need:

  • 2 measurements that are definitely below DR
  • 2 measurements that are definitely above AP Cap
  • 2 measurements that are above DR but below AP Cap
  • More measurements are recommended as they will lead to more accurate final values.

Recording Min/Max Damage

If you’re in a hurry, you can always record all values and compute an average. You’ll get decent numbers. However, the rolls from character & weapon dice obviously cause some variance in damage. We can completely remove this if we know the dice!

We do this by recording only the highest & lowest damage values observed for each AP. As an example:

  • Suppose we are testing with 100 AP vs a mob with unknown DR
  • Suppose that we don’t know this, but the mob has 50 DR
  • Suppose we’re testing with a Shai using a Krea Florang
  • (1d5 - 3) character die + (1d3 - 2) weapon die
  • Min roll 1 - 3 + 1 - 2 = AP - 3
  • Max roll = 5 - 3 + 3 - 2 = AP + 3
  • We know we should see 7 possible values, since the dice can roll AP +/- 3
  • Suppose we see these exact 7 values for a (theoretical) 500% skill:
  • 235, 240, 245, 250, 255, 260, 265

Regardless of how often any value shows up (and min/max will be rarer), we would only record:

Min = 235

Max = 265

We then know that a minimum roll of our Character & Weapon dice gives 234 damage, and a maximum roll gives 254. Instead of recording a value for our 100 AP, we would record two values:

97 AP = 235 damage

103 AP = 265 damage

If desired, you could work out the other dice values, but we’ve found min/max is nearly always enough. This completely removes the effects of dice! These values can be graphed together on the same chart.

Finding the DR

Damage below DR will be noticeably low: often just a few consecutive values (like 65, 66, 67). Gather 2-3 of these values, starting very low and moving upward.

When you find the DR breakpoint, your values will immediately jump up to be much higher. Right at the DR breakpoint, you will often see low rolls still showing below-DR damage. This makes it very clear that you’re close. By using the min-max method, you can still get valid data points from these split rolls (1 will be above DR, and 1 will be below).

You can home in on this DR breakpoint more exactly, but Character/Weapon die rolls can make this difficult to measure. Even the lowest die combination (1d5 char + 1d3 weapon), can roll 7 different damage values! To get a more exact damage value, we’ll calculate the intersection of 2 lines.

Collect a few measurements above DR. You should see your damage go up by exactly your skill% for each point of AP (eg 1 point of AP for a 500% skill should show as a 5-damage increase). If it goes up by less than this, you may be above the AP cap. Set aside this measurement for now, and decrease your AP a little.

You now have enough to plot your 2 lines (below DR & above DR). Their intersection is the DR Breakpoint (it is NOT the DR). We recommend using computer software (eg Excel or any number of statistics programs) to compute the least-squares line for Above-DR and Below-DR. 2 points can be slightly inaccurate due to rounding errors. If writing your own software, a Theil-Sen estimator is exceedingly good for this too.

You should have 2 lines:

Below DR Damage = slope_below * AP + offset_below

Above DR Damage = slope_above * AP + offset_above

Notice that slope_below should be 0.05*skill_percent (eg 0.25 for our 500% example). If not, check your measurements. Likewise, slope_above should be skill_percent (eg 5.0 for our 500% example).

Your DR Breakpoint is the AP at which these lines intersect. We don’t have to adjust for your skill percent:

This AP is the DR Breakpoint. We can get the actual DR via the formula from this doc:

DR = (DR Breakpoint) / 0.95


Finding the AP Cap

AP Caps are less pronounced. Keep increasing your AP until you observe a lower-than expected damage and/or a reduced range of rolls. The difference between observed min & max rolls should reduce above the AP Cap.

We’ll assume a standard 70% AP Cap Multiplier (the most common, eg 30% damage reduction above cap) along with our 500% skill. Assume that at 250 AP, we see these damage values:

910, 915, 920, 925, 930, 935

We should already know the DR from an earlier step, so we should notice two things:

  • Damage should be around 1000. These values are lower, so probably over-cap
  • We only see 6 unique values instead of 7, no matter how hard we try.

Once you’re 100% sure you’re over cap (if in doubt, just ook harder and stack more AP), collect a few data points. The slope of this line will be (AP Cap Multiplier)*skill%.

Just like DR, we can find the exact AP Cap by setting the Above-Cap line equal to the Above-DR line to find the intersection:

No additional modifications are necessary. This AP is the AP Cap. ‘slope_above_cap’ is your AP Cap Multiplier.

As a reminder:

  • Most normal grindspots will have an AP Cap Multiplier of 70% (0.7)
  • Most Elvia grindspots will have an AP Cap Multiplier of 5% (0.05)
  • Hardcap spots will have an AP Cap Multiplier of 0

Special Testing Spots

Any spot can be a viable testing location for most things if you can easily get:

  • Above monsters’ DR
  • Below monsters’ AP cap

However, you may not always have DR & AP Cap info, and some spots are more convenient by design. Below are some of our favorite testing for general game mechanics. More details on Khalks/Waragons/Mirumoks can be found here.

  • Gray Foxes (27 DR) or Gray Wolves (31 DR)
  • Just outside of the Ancient Stone Chamber
  • No observed AP Caps
  • Ideal for testing freshly-created character dies without having to gear up
  • Sausans (190 DR) & Fadus (160 DR)
  • Highest-DR hardcap spots. Ideal for testing species damage.
  • Hardcaps can be useful for all sorts of damage/die testing too.
  • Khalk Canyon (35 DR)
  • No AP Cap + Massive HP pool.
  • Best test of raw DPS we’ve found in the game, regardless of AP
  • Waragons (0/1 DR)
  • Waragons effectively have no DR (the only mob we’ve found with this distinction)
  • Beware of the unusual 0.5 AP Cap
  • Elvia Nagas/Fogans (453 DR)
  •  One of the few mid/high end spots near(ish) Velia
  • Mirumoks (333 DR)
  • A very reliable mid-tier spot for all forms of testing with an easy-to-remember DR
  • Easy to pull & reset Finn, our favorite Voraro, for single-target testing

Dice Testing

Determining Character Dice

The best way to determine character dice varies by the character’s AP type. It is easier to find the dice of Melee characters and slightly more complicated for Magic/Ranged characters.

For Melee Characters

When testing character dice, Punch is by far the most effective method of testing, as it is a 100% x1 skill and avoids dealing with a weapon die entirely.

  • Select a mob with known DR & AP Cap
  • We recommend Gray Foxes (27 DR, no cap)
  • Set your AP ~20 points above monsters’ DR
  • All dice rolls must be above DR and under AP Cap
  • Punch the enemy monster & record all observed rolls
  • The number of unique values is the character die!
  • 9 unique values would be a 1d9
  • Multiple dice can be derived from the distribution of values
  • Hashashin is the only character that still appears to use multiple character dice (vs 1d9 or 1d5), but this needs additional validation.

The distribution of possible values for a Punch allow us to determine the exact number of dice. 1d5 - 3 & 2d3 - 4 have identical ranges (+/-2). However the distribution of numbers over a large sample can tell you which set of dice a character runs. For a 1d5, all observed values will be equally likely (eg you would see similar counts of 10, 11, 12, 13, & 14 damage). For a 2d3, values will be grouped around the middle values (eg 12 will be the most common value, and 11/13 will be more common than 10/14).

For Magic/Ranged Characters

The Punch method is not viable for non-Melee characters, as their non-Melee AP & dice can differ (proven on Sorc). It’s far better to determine Weapon Dice on a Melee character (and/or use a known weapon), then evaluate the range difference with the same weapon type for Magic/Ranged AP users.

Use a low-roll weapon like Krea (1d3) and otherwise follow the same instructions for Melee Dice. The character die will be the number of observed values minus the Weapon Die (-3 for Krea). If you observe 12 possible values with Krea, you have a 1d9. It may take some time to observe the min/max values, as both dice must roll min/max respectively.

When dealing with weapon dice for Magic/Ranged AP users, very large sample sizes may be needed to tell the difference in number of dice (eg 1d5 vs 2d3), but even if you measure incorrectly, the max/min damage calculations will work. Only average values will differ slightly between something like (1d5 - 3) & (2d3 - 4).

You can figure out the exact dice by comparing the distribution of observed values to the theoretical distribution. We strongly recommend using a tool like https://anydice.com/ (external link) to visualize dice distributions.

If you test a 1d5 character with Krea (1d3), the distribution of possible roll combinations should look like this:

By comparison, if the character is 2d3 (same range), the distribution would instead look like:

Notice that with more dice, the middle of the distribution becomes more common, and your min/max values become less common. It may take very large sample sizes to see these distributions emerge clearly.


Testing Weapon Dice

The die itself is already roughly visible on the weapon. 10-14 is 5 values, or 1d5. However, we don’t know:

  • The exact dice (eg 1d5 vs 2d3)
  • Most weapons will be 1dX, but there could easily be surprises
  • The exact offset (though we have a good guess)
  • Usually:

For testing Weapon Dice, we recommend using a 1d5 character (Wizard/Tamer/Shai) to reduce the number of possible rolls. Much like Magic/Ranged Character Dice, we start with a known Character Die and use the number and distribution of observed values to determine the dice.

  • Select a mob with known DR & AP Cap
  • For base weapons, we recommend Gray Foxes (27 DR, no cap)
  • For higher-end weapons, you may want to choose a higher-DR Spot, but be careful of the AP Cap
  • Set your AP ~30-50 points above monsters’ DR
  • All dice rolls must be above DR and under AP Cap
  • Select a simple Pre-Awakening skill (eg LMB)
  • Hit the enemy monster & record all observed rolls
  • Subtract the max character die roll from your number of observed values
  • 9 unique values would be a 1d9
  • Multiple dice can be derived from the distribution of values
  • See Melee/Ranged Dice for an example of determining distributions
  • Again, we recommend https://anydice.com/ (external link) or another similar tool for this


Testing Subweapon Offsets

We discovered Subweapon offsets while testing at Sausans. Halfway through the testing, we equipped a base Kutum, but our observed damage dropped below what we had observed before for the same value. We quickly noticed that:

  • Offhands don’t roll any value. They don’t increase the number of observed values at all.
  • Instead, they actually reduce the total AP.
  • This reduction is not shown in the ‘My Stats’ pane.

Likewise, the best way to test a subweapon offset is:

  • Select a grindspot, equip the Subweapon, and make sure your AP is well above DR
  • Select a Pre-Awakening skill
  • Unarmed Punch is ideal for Melee classes
  • Make sure the skill does not require the offhand (eg don’t choose Wizard’s Dagger Stab)
  • Normal LMB is ideal
  • Measure damage with the offhand
  • We strongly recommend Shai for her 1d5 and ability to accurately test with Punch
  • Alternatively, use any Melee class for reliable Punch or Wizard/Tamer with a Krea weapon (1d3)
  • Remove the offhand
  • Replace it with identical AP, keeping your Total AP the same in the ‘My Stats’ pane
  • You can use +5 and +1 AP Crystals to fine-tune the Total AP
  • Measure damage again without the offhand
  • All rolls without an offhand should be 1-3 above the rolls with an offhand
  • This offset is your offhand penalty
  • If you wish to confirm the offset, equip AP without the offset equal to: (Total AP with offhand) - (offhand penalty)
  • You should now observe the same damage as when using the offhand at ‘Total AP’

To elaborate, if you equip an offhand with a -2 penalty (eg Kutum/Nouver), your observed damage at 100 AP will match the damage rolls for 98 AP without an offhand.

Against a mob with known DR, damage is just skill%*(AP-DR). If you’re using Punch, this simplifies to (AP-DR), so all damage values (including your min & max rolls) will simply be some offset X above the same roll with an offhand equipped.

Testing Species Damage

As noted in the doc, Species Damage is a random roll, and this roll’s range gets bigger as you increase your species damage. As a result, it is not something easy to measure. We need to remove as many confounding variables as possible.

To do this, we recommend testing at an AP-Capped spot: either Sausans for Human Damage (slightly easier to get) or Fadus for Kamasylvian Damage.

This removes all other random rolls. Only the species damage roll remains, which we’ve experimentally determined to be (0.7*species, 1.0*species).

To replicate this experiment:

  • Obtain Green Carnage Crystals (+1 Human Damage) from Tarif
  • Go to Sausans (or Fadus, if doing Kama testing)
  • Equip a large amount of AP (well above AP-cap), but 0 Human Damage
  • Confirm that you have 0 Human Damage in the ‘My Stats’ pane
  • Measure your damage with any skill. We strongly recommend Punch for 100%.
  • Any Melee character will work. Above-cap, your Character/Weapon dice no longer matter.
  • Be sure to measure the lowest & highest damage values observed, as we would for spotbreaking. These should be the same with 0 Human Damage.
  • Use Carnage Crystals to increment your Human Damage by 1
  • Measure the lowest & highest values observed over many hits
  • Continue incrementing your Human Damage by 1 via Carnage Crystals
  • You should only need ~5-10 Carnage Crystals. When you get enough for another crystal or gear piece, remove your Carnages, swap to the larger crystal, and continue incrementing by 1 Human Damage via Crystals.
  • Plot your Species Damage (x-axis) against both min & max Damage (y-axis) on the same graph


You should see something like this:

We can clearly see that:

  • The damage continues to increase above AP-Cap. Species Damage is not AP.
  • The lines are diverging (range is getting wider) as we increase Species Damage. This indicates a random roll.

Plotting just minimum rolls and maximum rolls on their own can allow you to determine the exact random range, based on the slopes of the lines:

From these graphs, we very clearly see that Minimum Damage scales with 0.7*(Species Damage) and Maximum Damage scales at 1.0*(Species Damage).

This means that our random roll is between (0.7*species_damage, species_damage). To check if this is a continuous random range, we can record all observed values. Every value should be possible to roll. For example, at 30 Species Damage, we should be able to observe rolls of (AP Cap Damage) + 21, 22, 23, 24, 25, 26, 27, 28, 29, & 30. We have confirmed that this is the case.

From here, it is trivial to confirm that species damage behaves exactly the same at all AP values above DR, not just above AP Cap. It adds a random roll to the AP before scaling by skill%.

Species Damage Below DR

To check how Species Damage behaves below DR, we need to perform a similar check. We recommend Mirumok (333 DR), though Kama damage can be harder to get. If you’re already at Sausans, Shultz (240 DR) isn’t a bad option. Elvia Bhiragi Den (390 DR) is also valid but much more dangerous.

Start with a known value just below DR (max roll cannot reach DR), and increment Species Damage. You should observe that your damage does not increase at all. If you add enough species damage such that the max roll of 1.0*(Species Damage) would push you over the DR Breakpoint, you will start seeing a single much higher roll that breaks DR. Incrementing Species Damage from here will start pushing all of your rolls over DR.

To understand this behavior, it is essential to understand exactly how damage is calculated below and above the DR Breakpoint (0.05*AP below or (AP-DR) above, all multiplied by skill%). While Species Damage is not applied at all below DR, the formula switches over to the Above-DR formula, when the Above-DR formula would do more damage. Since the Above-DR formula does include Species Damage, we can cross the DR Breakpoint using only Species Damage. We simply won’t see any damage increase until we suddenly break DR earlier than expected.

Regardless of your choice of AP, you should observe that Species Damage does not increase damage below DR but does shift the DR breakpoint downward. This shift will differ for min vs max rolls (not shown below):

Testing DR Shred

Unlike AP/DR, where we had a big toolkit, DR Shred can only really be tested with skill effects and add-ons.

  • We strongly recommend selecting a character with multiple skills with different DR shreds.
  • Kuno is an excellent choice due to her ‘Assassin’s Mark’ debuff (from Shadow Brand), which stacks with other DR debuffs.
  • Higher-DR grindspots with fewer, more-predictable (and easier to debuff) mobs provide better results. We recommend Turos (380 DR).
  • Use the same skill to do the actual damage testing, even if you use other skills to apply the debuff
  • The skill used for damage testing should not apply DR debuffs
  • Pay close attention to the debuff icons currently on the mob’s bar
  • Be sure all applied debuffs stack. Each active debuff will have a unique icon
  • Also pay close attention to the observed damage. Above DR, you will do more damage with a DR debuff.
  • Waragons is a very interesting case for testing DR debuffs, as they have no DR.
  • Regardless of how many DR debuffs you stack, they will not increase damage vs Waragons.
  • Do not use Species Damage, as it complicates the DR Breakpoint

DR Shred in Theory

As established in this doc, DR Shred is pretty simple: it just reduces DR by a flat value in most cases. There’s no extra 5% modifier. So what should we expect to see when testing DR Shred?

  • More damage, obviously (excepting Waragons)
  • No damage increase below DR
  • DR is not AP. It doesn’t increase damage directly
  • A lower DR breakpoint
  • This will not be lower by the exact DR.
  • Remember that the DR Breakpoint = DR / 0.95
  • More damage before the AP Cap
  • In fact at hardcapped spots, we should see a higher max damage

DR Shred in Practice

We include a figure from our DR Shred testing at Turos to illustrate:

The first major takeaway is that the DR Breakpoint has shifted considerably, as expected. On measurement, this shift is more than 35 AP though! If the exact mechanics behind DR and DR Breakpoints aren’t known, this can easily lead one to believe that DR Shred is more effective than it is (~1.05% effect). This is simply a result of the 5% rule (calculation of DR Breakpoints), but honestly, we had trouble digesting it too. It took a tabulated breakdown to convince us that something else was going on, and this eventually led to discovery of how actual DR relates to breakpoints.

The other major takeaway from this testing is that the AP Cap doesn’t change. We see the same damage reduction at the same AP. However, we were able to break DR earlier, so we gain 1:1 damage from AP for an additional 35 points in this case. This is the magic of DR Shred!

Proving that the DR Breakpoint isn’t at DR

Now, let’s return to the DR Breakpoint shift being more than 35 DR. It’s natural to assume that DR Shred simply applies more than listed on the tooltip, but this runs into a major problem when we start looking at damage differences:

AP

0 Shred

-35 Shred

Damage Diff

Unscaled Diff

324

267.5

268

0.5

0.0

343

283

283

0

0.0

365

301.5

323.5

22

1.3

366

302

340.5

38.5

2.3

390

322.5

723

400.5

24.1

402

364

914.5

550.5

33.1

407

423.5

997.5

574

34.5

469

1446.5

2028.5

582

35.0

486

1729

2311.5

582.5

35.0

488

1762.5

2344.5

582

35.0

489

1776

2358

582

35.0

491

1805

2387

582

35.0

492

1813

2400.5

587.5

35.3

493

1833

2415

582

35.0

494

1841.5

2423.5

582

35.0

497

1887

2469

582

35.0

526

2224.5

2806.5

582

35.0

584

2899.5

3481.5

582

35.0

618

3295.5

3877.5

582

35.0

668

3877.5

4459.5

582

35.0

This table shows, from left to right:

  • AP value used for testing
  • Average damage at that AP with 0 DR Shred
  • Average damage at that AP with -35 DR Shred
  • The difference in damage between 0 Shred & -35 Shred at the same AP
  • The observed difference in the AP that would cause the observed damage difference
  • At 1663% (and over DR, under cap), +35 AP would do an additional 35*16.62 = 582 damage.
  • All of these values are kept as decimal for now. We didn’t worry about integer calculations or truncation.

We immediately see that there is no difference in damage when both tests (with & without shred) are below the DR Breakpoint. A damage difference starts building once the -35 DR Shred hits its Breakpoint, but as soon as the 0 DR Shred testing also hits the DR Breakpoint, this damage increase stops. We see a flat damage difference between 0 Shred and -35 Shred from there on, and that difference…equates to 35 AP. Since we know that damage over DR is very clearly & measurably (AP-DR)*skill%, this makes sense. -35 DR Shred just reduces DR by 35, and this is identical to increasing AP by 35 in our formula.

This led us to question why the DR Breakpoint didn’t also shift by exactly 35. DR clearly functioned as expected for damage. The only solution we could come up with was that the DR Breakpoint was not at DR. As soon as we looked at the difference, we discovered that DR was always off by the same amount - a specific percentage close to 5%. So we solved for this unknown value, knowing that DR shred clearly applied correctly in the Above-DR formula.

Assumptions & Data:

  • We think our DR is at ~400, based on 0 DR testing, but we don’t know that for sure.
  • At this point, we didn’t know that the DR Breakpoint wasn’t at DR
  • DR needs to remain an unknown variable
  • We are observing that the DR Breakpoint shifts down by more than -35. We will model this additional shift with an unknown multiplier ‘X’ that scales the -35 for AP.
  • We observed a -37 DR Breakpoint reduction instead of the expected -35
  • We’re expecting X to resolve to ~5.7%, just looking at the breakpoint shift
  • We’ll have 2 APs in this series of equations:
  • AP0 where we observed the DR Breakpoint for 0 DR Shred (~400)
  • AP35 where we observed the DR Breakpoint for -35 DR Shred (~363)

For 0 DR:

Subbing in our known AP0, we find that DR should be ~380:

This is a little surprising. It would mean that DR is different from the DR Breakpoint. It gets especially interesting once we realize that BDOCodex shows the same DR Value!:

https://bdocodex.com/us/npc/21912/ (external link)

Now, let’s take a look at the -35 DR shred case, which has our X:

Subbing in our observed breakpoint (AP35 = 363), we get:

Finally, we sub in the DR we just derived from our 0-shred case (380):

This… is probably 1.0. Our AP0 and AP35 values were measured. They could easily have small errors in them. We also know that BDO uses floor division in damage calculations. Any truncation could have easily led to this small error. Regardless, this means that our ‘mystery’ variable was 1 all along!

Now that we know ‘X’, let’s take another look at a ‘DR Shred’ formula, subbing in X = 1:

And there we have it. DR Shred applies naturally to the DR (no special multiplier), but it gets scaled by the same 0.95 from our 5% rule after the shred. This is what shifts our breakpoint down by ~5%:

Using BDOCodex as a Reference

Since it’s fresh in the head, it’s also worth mentioning that using BDOCodex as a reference guide for data/information and verification is a wholly worthwhile process.

Like the previous Turo Berserker, almost every mob in the entire game that is actually present in game tends to sit around the listed value on BDOCodex!  Exceptions generally are monsters added after the latest data seeding from the side of BDOCodex. Paying attention to patch notes and changes to mobs helps in this case.

As an example, let’s look at the Firewood Orc from Elvia Red Orcs:

https://bdocodex.com/us/npc/24411/ (external link)

Unlike the Turo Berserker, this mob is off from what we measured (600 DR). However, this mob received changes after the latest codex seeding, so when we combine BDOCodex with BDO Patch Notes, the result is still fairly reliable (external link):

https://www.naeu.playblackdesert.com/en-US/News/Detail?groupContentNo=3052&countryType=en-US

Keeping in mind that NA versions of the game mistranslate DR as DP (waiting on a fix, PA), and based on the bottom item in the change log, let’s try increasing BDOCodex DR by 10% (1.1):

550 * 1.1 = 605

This isn’t perfect, but it’s really close to our measured 600! Maybe we just measured a few DR off, or maybe PA was lazy in giving the exact % change. Regardless, it takes a useless outdated DR value and gives us a very good estimate of Red Orcs without ever needing to test there. Of course, we still strongly encourage manual validation of all spotbreaking values.

It is also worth exercising caution and ensuring you have the right mob. There’s a lot of trash mobs and unused variants, and many, many shared names across different mobs.

You can generally verify you’ve got the right mob if:

  • There is a map marker that shows its location underneath the mob information.
  • The mob stats aren’t default or low digit values. Keep in mind where the mob is placed and its stat requirements, BDO often has HP for mobs in the millions toward the endgame.
  • Likewise, check that the mob has a DR that actually makes sense. If you see 35 DR for an Elvia spot, you have the wrong entry!
  • The mob has an actual drop table that doesn't solely consist of the global rare drops like Pure Black Stones and Shimmering Pieces of Old Moon.
  • Mobs with <Titles> will have the title listed in their BDOCodex Entry.
  • The mob has a “Used to Obtain Title” section. This refers to the kill count of that monster for a title.

Testing Awakening/Prime Damage

Testing Awakening Damage is infuriating at best. We strongly recommend against it unless you’re ready for hours of testing and multiple new analytical mechanics for very little gain. While the normal Mainhand/Pre-Awakening damage formula gives a good estimate of Awakening/Prime damage, there is an additional fractional AP roll that creates literally hundreds of unique damage rolls (~30 unique damage values for each roll of your character die). For the smallest weapon & character dice, this is ~5*3*10 = up to 150 values. For the largest dice, this can be up to 9*19*12 = up to 2052 values. You can probably guess how much fun it is to wait for a min or max roll out of 1000’s of possible values…

Still with us? If you insist on testing this, be sure to carefully control every applicable variable:

  • Mainhand Weapon
  • Use a Krea Mainhand for the smallest possible die (1d3)
  • You can buy Krea weapons from the Arms Vendor in Altinova
  • Awakening Weapon
  • Use a weapon with no Species Damage
  • Species rolls make this even harder and void one of our testing methods.
  • Use either a base Dandelion (1d10) or base Blackstar (1d12)
  • Both Dande & Blackstar have 0 Species damage until +6
  • You can get base boxes from Eiorah in Velia
  • We actually recommend Blackstar if testing Prime skills, as the increased range makes the 0.3 fractional AP patterns much clearer, and there are some nice AP matches with Krea
  • We recommend Dandelion or Ultimate Katan if testing Awakening Skills for the reduced range.
  • You can also use Blue Awakening weapons at a non-human spot for higher-end Awakening/Prime testing.
  • You can get 1 free Blue Awakening box via a (one-time) Family Quest chain from ‘Narava Rakum’ at Sarma Outpost (‘Scout ambushed by the Sausans’).
  • Choose carefully! You only get one, ever.
  • The only other place to get these on Global Labs is field boss drops
  • Katan & Ultimate Katan Weapons have no species damage and are available from the Valencia main questline
  • You must complete Mediah (or Mountain, but don’t do this) to unlock Valencia
  • Mountain of Eternal Winter is bugged on Global Labs. You will get permanently stuck in Erethea’s Limbo. Serendia/Balenos/Calpheon/Mediah is your only path to Valencia…

  • Character
  • Start with Succession
  • Binding the ‘0.7’ multiplier to a 1d3 (Krea) makes things much more manageable
  • We recommend Tamer for a lower 1d5 die and a 0-cooldown Prime Skill (Whiplash)
  • Bring Mana Pots for spamming Whiplash infinitely
  • Wizard (1d5) is also fine for Awakening Testing, but his Primes all have fairly high cooldowns, and some of the damage percents are incorrect on the tooltip
  • Shai has no real Awakening/Succ and should be avoided entirely, despite 1d5 Melee
  • All other 1d9 characters make this very challenging
  • Miscellaneous
  • You must have both Mainhand & Awakening weapons equipped to see the 70/30 split in action
  • Unequipping your Awakening Weapon will result in all Weapon AP being ignored for Prime skills (even Mainhand)
  • Classes without Awakenings don’t have the 70/30 split at all. Primes & Absolutes behave the same, using 100% of your Mainhand Weapon AP.
  • Try to keep your Mainhand and Awakening Weapon AP similar or identical to minimize the impact of the 70/30 split
  • These weapon loadouts have 0 Species but identical Total APs in the ‘My Stats’ window
  • +4 Krea, +1 Blackstar
  • +6 Krea, +3 Blackstar

Leveraging AP Hardcaps

We can use AP Hardcaps to reduce the range of possible rolls and make our lives easier. Unfortunately, this doesn’t make the lowest values any more common. Only smaller dice will help with that (eg Tamer w/Krea).

We recommend Sausans (190 DR, 280 AP Cap, Human) for a reliable AP Hardcap spot.

To get started:

  • Identify the Hardcap damage for your skill
  • Just start with a high AP and spam your skill a few times (eg 300+ Total AP for Sausans, as per the ‘My Stats’ window)
  • Identify the first AP where values below the Hardcap appear
  • Modify your AP to be just below the Hardcap (eg 275-278)
  • Attack until you see damage values below the cap
  • Increase AP by 1 using +1 AP Crystals
  • Repeat until you no longer see any rolls below the cap
  • Record the last AP at which you saw any roll below cap
  • Step down by 1 AP until you can see 5+ unique values
  • Remove some of those +1 AP crystals
  • If you can’t get any lower, pop an Armor elixir and crystal up by +5 or +1 instead

We know that Blackstar (our recommended Awakening Weapon) has a 1d12 - 6 die, so we ideally want to see enough values below cap to be interesting (allow us to identify patterns). We probably need 5-6 values to be safe.

In our Sausans testing, we throw out 284 AP, because it only shows 1 value (1010) below our damage cap (1012). There simply aren’t enough values to be interesting. Instead, we focus on 283 AP, where we observe 7 unique damage values - something very manageable compared to 100’s or 1000’s!


Inferring Fractional AP Values

While testing Succession damage at Sausans, we noticed two things:

  • The wide range of numbers obviously didn’t align to the normally-scaled AP values
  • The normal values were there, but there’s a lot of variance in between
  • Critical hits didn’t exactly align to a 2x multiplier…and they were only ever off by 1
  • A 1010 hit might see a 2021 crit, rather than 2020

Both of these things suggested something nasty: unlike everything so far, the underlying AP might not be integer values! Unfortunately, the BDO UI only shows integer AP values (in ‘My Stats’) and integer damage values. So how can we find out the actual fractional AP internal to the game?

The answer is that we can’t find the internal values exactly, but we can narrow them down to a range with math!

We know that:

  • Above DR, damage is just EAP*Skill%
  • If final damage calculation is not an integer, it will be truncated to the nearest integer
  • DR and dice rolls are always integers, so we can still easily get the original AP from EAP

This means that, in the absence of any other mechanics like Species Damage or DR shred, we can estimate the EAP just by dividing our damage by Skill%. Furthermore, we can establish bounds for the possible EAP based on integer truncation. The final value can only vary by up to (but strictly less than) +1, or we would have seen a higher value!

Our observed damage must always be less than or equal to the actual, internal EAP times the skill percent:

(Observed Damage) <= EAP * Skill%

Likewise, our observed damage plus one must always be strictly greater than EAP * Skill%. Otherwise, we would have observed a different damage number on screen!

(Observed Damage) + 1 > EAP * Skill%

These simplify to (1) our usual damage formula and (2) an interesting upper bound:


Rearranging (2) as above, we see that our underlying AP can only vary by up to  

This is a simple but very powerful relation. This means that:

  • We can establish a clear upper-bound on the internal AP value
  • That bound can be tightened by higher Skill% values.

We can also use this range to determine if a value is a real AP Roll or must have resulted from a fractional AP. If a full, integer AP value does not exist between the unscaled EAP (ie (Observed Damage)/Skill%) and the same value plus (1/Skill%), then it either:

  • Must have some extra random roll added after damage scaling
  • Must be the result of a fractional AP roll

If there is a fractional AP roll, we should see every possible damage value. We actually do see this for most Awakening/Prime skills in the middle of their damage range (near the average). However at the low end of our possible rolls (eg the numbers we see below a hardcap), we clearly see gaps. This means that fractional AP is the most likely explanation.

Now that we’re expecting fractional AP, let’s look at an example for an 1156% skill:

Observed Dmg

Min EAP (Dmg / Skill%)

Max EAP (+1/Skill%)

Exact EAP?

3080

266.4359862

266.5224913

No

3084

266.7820069

266.8685121

No

3086

266.9550173

267.0415225

Yes: 267

3087

267.0415225

267.1280277

No

We see that one of the values was probably a straight-up ‘267’ EAP roll, but the others were almost certainly Fractional EAP. Still, using this technique, we can already narrow down the possible internal EAP values to a resolution of ~0.10. Unfortunately, this isn’t enough to make any really good deductions. We need a way to narrow down this range even further!


Using Critical Hits to Improve the Fractional AP Range

So how can we narrow down the possible EAP range even more? Well, we could consider using different skills at the same EAP, but:

  • At the time, we still didn’t have an exact Awk/Succ damage formula where this would be super reliable
  • There could have been something we were still missing
  • Most Prime/Awakening skills have high cooldowns
  • Testing is slow, and the highest and lowest values are really hard to see
  • We’re looking exclusively at the lowest possible rolls if we use the AP Hardcap method, which will be some of the hardest to roll.
  • Many skills have incorrect % values in the tooltip. Catching these can be tough.
  • Seriously, think about how many patches from PA you’ve seen that say ‘corrected the tooltip to match the actual value’.

So varying Skill% is possible, but it has a lot of problems and will be very slow. Instead, we know that some critical hits have that weird +1 behavior. Can we leverage this somehow?

As it turns out, yes! Critical Hits are a reliable 2.0 damage multiplier, but we can also very the damage multiplier very easily:

  • Garmoth/Karanda hearts add +3% Critical Hit Damage to your Awakening Weapon
  • Create one Awk Weapon with Garmoth & 1 without
  • Starlit Rings add +3% Critical Hit Damage each
  • Create two sets of identical rings - regular & Starlit
  • Magical Crystal of Infinity: Critical Hit can add +10% Critical Hit Damage each without raising AP at all
  • Even if your crystal preset is full of +1’s, you can get 2 more slots for these crystals from your Garmoth-heart’d weapon
  • We don’t use Mainhand Weapons with +Crit Damage (eg Kzarka/Offin/Blackstar) because they have Species Damage

With these hearts, cups, and crystals pretty freely available on Global Labs, it becomes possible to very easily create and very quickly switch between many different Critical Hit Multipliers:

2.0, 2.03, 2.06, 2.09, 2.10, 2.13, 2.16, 2.19, 2.20, 2.23, 2.26, & 2.29.


We recorded all observed damage values for most of these Critical Hit Multipliers on a Succession Tamer with 283 AP (after adjusting for a Kutum offhand penalty) at Sausan Garrison:

Crit Multipliers:

Base Damage

1

2.03

2.06

2.09

2.13

2.16

2.19

2.23

2.26

2.29

1012

1012

2055

2085

2116

2156

2187

2217

2257

2288

2318

1010

1010

2050

2081

2111

2151

2182

2212

2252

2283

2313

1009

1009

2048

2078

2109

2149

2179

2209

2250

2280

2310

1006

1006

2043

2074

2104

2144

2174

2205

2245

2275

2305

1005

1005

2041

2071

2102

2142

2172

2202

2242

2272

2303

1002

1002

2034

2064

2094

2135

2165

2195

2235

2265

2295

998

998

2027

2057

2087

2127

2157

2187

2227

2257

2287

So how can we get internal fractional EAP values from this critical hit data? Honestly, the exact same way we got them for base damage! Unscale them and look at the min & max possible EAP value:

This has the added benefit of amplifying the resolution even further by double (or better) the skill percent, since they’re both in the denominator! And just like before, we can bound this:


Now, let’s take a look at these values just for our ‘1012’ base damage value:

Crit Multiplier:

Crit Damage:

Min EAP:

Max EAP:

1

1012

89.95555556

90.04444444

2.03

2055

89.98357964

90.02736727

2.06

2085

89.96763754

90.01078749

2.09

2116

89.99468368

90.03721425

2.13

2156

89.97391758

90.01564945

2.16

2187

90

90.04115226

2.19

2217

89.9847793

90.02536783

2.29

2318

89.97573993

90.01455604

But now we have 1 more cool trick we can do. Every one of these ‘Min EAP’ values is a true minimum (the actual value cannot be below it), so we can take the max of the mins. Likewise, every one of these ‘Max EAP’ values is a true maximum (the actual value can’t be above it), so we can take the min of the maxes.

This gives us an observed possible EAP range of: 90 - 90.00498256. This is accurate within 0.005 EAP!

Doing these steps for all observed values in our critical damage chart, we get:

Base Dmg:

Min EAP

Max EAP

Resolution (Max - Min)

Estimated EAP

1012

90

90.00498256

0.004982561036

90.00 EAP

1010

89.79503776

89.80568012

0.01064236338

89.80 EAP

1009

89.6969697

89.70065956

0.003689866704

89.70 EAP

1006

89.49771689

89.50191571

0.004198813835

89.50 EAP

1005

89.39925572

89.40019666

0.0009409417887

89.40 EAP

1002

89.09754825

89.10154173

0.003993480643

89.10 EAP

998

88.77244056

88.8

0.02755943717

88.80 EAP

These min & max possible values are so close that we can see a clear pattern emerge (shown under ‘Estimated EAP’). We see that 0.10 AP appears to be the underlying resolution.

In hindsight, we probably could have improved the resolution even further by using Back Attacks for a higher total multiplier.


Finding a Pattern

We see gaps of 0.30 appearing between most of our lowest measured EAP values:

88.8, 89.1, 89.4, 89.7, 90

This number already means something to us, since we know that the 70/30 split exists! 0.3 is simply 30% of 1 Awakening Weapon AP in Succession (or 1 Mainhand AP in Awakening). But if so, shouldn’t we also see 0.7 AP intervals? As it turns out, we do:

88.8, 89.5

89.1, 89.8

Between these two 0.3 & 0.7 gaps, we’ve already explained all observed values! From here, it’s just a matter of (1) deriving the final formula and (2) confirming for other test-cases.

You can read/re-read ‘The Incredibly Stupid, Confusing, and Needlessly Complex World of Awakening & Prime Skill Damage’ for more details on the exact damage formulas, but we proceeded to confirm that these formulas hold for all Awakening & Prime skills.