Page 1 of 2
25/5: A comparison of options
Posted: Tue Nov 01, 2022 6:01 pm
by Rowlind Salem
I was curious if the conventional wisdom that falchion/scimitar were the best options for a 25/5 fighter/weaponmaster, so I put together a script to explore whether or not that's the case. I used python to put this together.
imports
Code: Select all
from turtle import color
from matplotlib.colors import hex2color
import numpy
from numpy import random
import statistics
import pandas as pd
import matplotlib.pyplot as plt
functions
Code: Select all
def dice_roll(num):
dice_roll = random.randint(num) + 1
return int(dice_roll)
def crit_calc(damage_in, crit_range, crit_multiplier ):
crit_roll=dice_roll(20)
if crit_roll >= crit_range :
damage_out = damage_in * crit_multiplier
else:
damage_out = damage_in
return damage_out
def round_calc(damage_in, crit_range, crit_mult):
a1 = crit_calc(damage_in, crit_range, crit_mult )
a2 = crit_calc(damage_in, crit_range, crit_mult )
a3 = crit_calc(damage_in, crit_range, crit_mult )
a4 = crit_calc(damage_in, crit_range, crit_mult )
damage_out = a1+a2+a3+a4
return damage_out
def round_calc_dualweild(damage_in, crit_range, crit_mult):
a1 = crit_calc(damage_in, crit_range, crit_mult )
a2 = crit_calc(damage_in, crit_range, crit_mult )
a3 = crit_calc(damage_in, crit_range, crit_mult )
a4 = crit_calc(damage_in, crit_range, crit_mult )
a5 = crit_calc(damage_in, crit_range, crit_mult )
a6 = crit_calc(damage_in, crit_range, crit_mult )
damage_out = a1+a2+a3+a4+a5+a6
return damage_out
processing
Code: Select all
axe_hits=list()
flail_hits=list()
falch_hits=list()
great_sword_hits=list()
maul_hits=list()
pike_hits=list()
bastard_hits=list()
quarterstaff_hits=list()
double_axe_hits=list()
double_sword_hits=list()
mistreater_hits=list()
trident_hits=list()
for i in range(1000):
axe_hits.append(round_calc(dice_roll([4]) + dice_roll([4]) + dice_roll([4]), 18, 4))
flail_hits.append(round_calc(dice_roll([12]), 15, 3))
falch_hits.append(round_calc(dice_roll([4]) + dice_roll([4]), 12, 3))
great_sword_hits.append(round_calc(dice_roll([6]) + dice_roll([6]), 15, 3))
maul_hits.append(round_calc(dice_roll([6]) + dice_roll([6]), 18, 4))
pike_hits.append(round_calc(dice_roll([8]), 18, 4))
bastard_hits.append(round_calc(dice_roll([10]), 15, 3))
quarterstaff_hits.append(round_calc_dualweild(dice_roll([6]), 15, 3))
double_axe_hits.append(round_calc_dualweild(dice_roll([4]) + dice_roll([4]) + dice_roll([4]), 18, 4))
double_sword_hits.append(round_calc_dualweild(dice_roll([8]), 12, 3))
mistreater_hits.append(round_calc_dualweild(dice_roll([12]), 18, 4))
trident_hits.append(round_calc(dice_roll([10]), 18, 4))
axe_stats = pd.Series(axe_hits)
flail_stats = pd.Series(flail_hits)
falch_stats = pd.Series(falch_hits)
greatsword_stats = pd.Series(great_sword_hits)
maul_stats = pd.Series(maul_hits)
pike_stats = pd.Series(pike_hits)
bastard_stats = pd.Series(bastard_hits)
quarterstaff_stats = pd.Series(quarterstaff_hits)
double_axe_stats = pd.Series(double_axe_hits)
double_sword_stats = pd.Series(double_sword_hits)
mistreater_stats = pd.Series(mistreater_hits)
trident_stats = pd.Series(trident_hits)
plotting
Code: Select all
df = pd.DataFrame
stats_all = [falch_stats, axe_stats, flail_stats, maul_stats, greatsword_stats, pike_stats, trident_stats, bastard_stats, quarterstaff_stats, double_axe_stats, double_sword_stats, mistreater_stats]
labels = ["Falcn\n2d4\n12-20x3 ", "GrtAxe\n3d4\n18-20x4", "HvyFlail\n1d12\n15-20x3", "Maul\n2d6\n18-20x4", "GrtSwrd\n2d6\n15-20x3", "Pike\n1d8\n18-20x4", "Trdnt\n1d0\n18-20x4","BstrdSwrd\n1d10\n15-20x3", "QStaff\n1d6\n6apr\n15-20x3", "DblAxe\n3d4@6apr\n18-20x4", "DblSwrd\n1d8@6apr\n12-20x3", "Mstreatr\n1d12@6apr\n18-20x4"]
fig, axs = plt.subplots()
axs.boxplot(stats_all, labels=labels, notch=True)
plt.legend()
plt.tight_layout()
plt.title("25/5 Base Weapon Damage over 1000 rounds")
plt.ylabel("Damage/Round @ 4 APR")
plt.savefig("Damage Distribution")
plt.show()
plt.close()

Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 6:12 pm
by Rowlind Salem
A couple assumptions that were made:
keened weapons
improved critical feat
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 10:19 pm
by Barkoneus
Oh darn, I was hoping this thread was alternatives to Weapon Master for those 5 levels!
That said I don't see AB, AC or crit confirmation anywhere in the calculation, am I missing something? I don't think this is as simple as simply rolling a d20 and comparing to crit range...
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 10:24 pm
by TurningLeaf
Curious if I understand your process here. Is it only using base weapon damage with the multipliers?
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 10:26 pm
by Rowlind Salem
this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.
AB across weapons is mostly a wash, except for specialized weapons that hit +4.
What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.
Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.
The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 10:30 pm
by Rowlind Salem
So, this is all idealized. Assuming every hit lands, what would the damage look like? The conventional wisdom is that the increased crit range of the falchion/scimi make it the ideal weapon for 5wm, but I wanted to test that hypothesis.
From what I can see, it's sort of not. The other big two handers are all pretty comparable, though falchion does have the least amount of variability, albeit a lower overall mean.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:14 pm
by Rowlind Salem
Here's the data for 23/7. So, just adjusted the crit ranges by 2 each.

Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:22 pm
by Rowlind Salem
so what I'm seeing here is that pike is objectively the worst and polearms in general underperform. Though I didn't include halberds on here for some reason, whoops. They would look similar to greataxe and maul though, albeit with greater variability due to the 1d12 instead of the 3d4/2d6.
From this I would say that spear/pike should have scimi ranges instead of being a 20 x3 weapon, trident should probably have greatsword ranges and falchion maybe shouldn't have an exotic weapon feat tax since it really doesn't outperform the standard martial options.
In fact, the damage totals over the long term lag behind greatsword.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:24 pm
by Quidix
I might have missed it, but have you adjusted for lower / higher AB from two-hand weapons vs dual-wielding?
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:32 pm
by Rowlind Salem
no, I didn't actually. This is simply an evaluation of the variability of several different weapons making the following assumptions:
1) every attack hits (idealized obviously, but this is a baseline evaluation)
2) PC has improved critical feat
3) weapon is keened
damage modifiers such as essences, twohanded bonuses, damage bonus from weapon (MDamask) are all ignored.
Think of these numbers as keened bronze weapons hitting bobo for 1000 rounds.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:35 pm
by TurningLeaf
Rowlind Salem wrote: Tue Nov 01, 2022 10:26 pm
this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.
AB across weapons is mostly a wash, except for specialized weapons that hit +4.
What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.
Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.
The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Multiple points of correction are needed then, you need to adjust for 2h str bonus as well as including essences and damask. Not trying to turn this into a math lesson but you'll get different results.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:39 pm
by Rowlind Salem
A robust examination of weapon effectiveness would have to account for AB/AC/DR/etc.
Now, given an agreed upon standard AB and AC maybe that could be done. I'd have to get an AB schedule for two handed, 1 handed (bastard sword and spear), and dual wield and then model that against something like, 50 AC.
Doable I think, but I'd need people better versed than I in what the right numbers should be for that examination. The point about lower ab for the dual wield weapons is interesting and I think there's something to it.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:40 pm
by Rowlind Salem
TurningLeaf wrote: Tue Nov 01, 2022 11:35 pm
Rowlind Salem wrote: Tue Nov 01, 2022 10:26 pm
this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.
AB across weapons is mostly a wash, except for specialized weapons that hit +4.
What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.
Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.
The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Multiple points of correction are needed then, you need to adjust for 2h str bonus as well as including essences and damask. Not trying to turn this into a math lesson but you'll get different results.
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
Re: 25/5: A comparison of options
Posted: Tue Nov 01, 2022 11:48 pm
by Mattamue
I love python and I love charts.
I thought this was dead, but it is back:
http://www.afterlifeguild.org/Thott/nwn/
Lets you compare things and include extra damage, and plot out damage VS AC.
Example:

Re: 25/5: A comparison of options
Posted: Wed Nov 02, 2022 12:07 am
by Rowlind Salem
Mattamue wrote: Tue Nov 01, 2022 11:48 pm
I love python and I love charts.
I thought this was dead, but it is back:
http://www.afterlifeguild.org/Thott/nwn/
Lets you compare things and include extra damage, and plot out damage VS AC.
Example:
this is amazing
Re: 25/5: A comparison of options
Posted: Wed Nov 02, 2022 12:07 am
by Rowlind Salem
23/7 adjusted for MDamask.

Re: 25/5: A comparison of options
Posted: Wed Nov 02, 2022 12:13 am
by TurningLeaf
Rowlind Salem wrote: Tue Nov 01, 2022 11:40 pm
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
Ahem. Am I forgetting my NwN fundamentals, or does the 2h STR bonus not apply to double weapons, and the STR bonus in general counts half on the off-hand attacks? This may explain some of the skewed results for the double weapons.
Re: 25/5: A comparison of options
Posted: Wed Nov 02, 2022 12:25 am
by Rowlind Salem
23/7 with Mdamask, +4 perm, 1d6 temp
25/5 with Mdamask, +4 perm, 1d6 temp.
I stand corrected, including the damage did change how the spreads looked. Shout out to the poster that corrected me. My math has always been a little suspect lol, glad to get it fixed.
Re: 25/5: A comparison of options
Posted: Wed Nov 02, 2022 12:26 am
by Rowlind Salem
TurningLeaf wrote: Wed Nov 02, 2022 12:13 am
Rowlind Salem wrote: Tue Nov 01, 2022 11:40 pm
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
Ahem. Am I forgetting my NwN fundamentals, or does the 2h STR bonus not apply to double weapons, and the STR bonus in general counts half on the off-hand attacks? This may explain some of the skewed results for the double weapons.
I trust your fundamentals more than I do mine. This is more of a learning experience for me than anything.
Re: 25/5: A comparison of options
Posted: Wed Nov 02, 2022 3:53 pm
by TurningLeaf
Rowlind Salem wrote: Wed Nov 02, 2022 12:26 am
I trust your fundamentals more than I do mine. This is more of a learning experience for me than anything.
Still missing the STR. Also while I'm not a programmer the syntax looks pretty straightforward, so apologies if being dense here but I also wanted to ask, it seems like you never defined "damage_in". Is this correct?
Re: 25/5: A comparison of options
Posted: Thu Nov 03, 2022 11:54 am
by AllPizzasArePersonal
Rowlind Salem wrote: Tue Nov 01, 2022 11:40 pm
TurningLeaf wrote: Tue Nov 01, 2022 11:35 pm
Rowlind Salem wrote: Tue Nov 01, 2022 10:26 pm
this is just the baseline damage of the weapons, assuming they're keened and the user has improved crit.
AB across weapons is mostly a wash, except for specialized weapons that hit +4.
What I did was simulate 1000 rounds with each weapon. So, 4 attacks in a round, each attack with a crit roll. Those attacks were summed up and appended to a list. That list contains 1000 rounds of simulated damage and is what is used to produce the boxplots containing the damage spread.
Since MDamask and essences can be applied equally, I simply ignored those. Same with STR scores for damage modifiers. This is just variability of the base damage simulated over 1000 rounds.
The dual-wield weapons underwent a different simulation where they got 6 attacks per round.
Multiple points of correction are needed then, you need to adjust for 2h str bonus as well as including essences and damask. Not trying to turn this into a math lesson but you'll get different results.
2h str bonus would apply equally across all weapons and wouldn't be a variable in this experiment. Just a constant and the only effect it would have would be to move the damage numbers up across the board. I wanted to reduce this down to the strictly variable components.
This is incorrect, and it's what accounts for why your analysis is so wrong. Using your idealized scenario, a mdamask falchion crits 40% of the time while e.g., a scythe crits 15% of the time. So for 40% of the falchion's hits, you deal an extra ~60 damage (15 str mod × 1.5 × 3). You can't just say that modifiers apply evenly across the board when they're effected by a crit multiplier a different percentage of the time due to threat range.
Re: 25/5: A comparison of options
Posted: Thu Nov 03, 2022 12:25 pm
by stoneheart-
don't use bastard sword as an example. use CAVALRY sword. same thing, much better sword lol (also looks cooler: hidden bonus)
Re: 25/5: A comparison of options
Posted: Fri Nov 04, 2022 1:28 pm
by malcolm_mountainslayer
yeah using base weapon damage only and not adding full modifiers like str seems realy really jank.
I am sure others can do the literal math, but conceptually it should be obvious. The damage advantage if large die weapon vs a large crit range weapon diminishes the more bonuse damages you add. Like a long sword for example does an avg damage of 1 more than scimitar. That 1 becomes nothing when you add a thousand bonus damage and the increased crit range becomes everything.
It's well known that if you are always hitting, then high crit range weapon always perform better, and if you only crit when rolling high, then low crit range weapons with bigger multipliers perform better. Your math showing otherwise just shows how crucial it is factor in modifiers like strength and epic weapon specialization.
*EDIT*
I also noticed in your second chart that supposeldy had the corrections, that your crit range was for 23 fifghter and 7 weaponmaster, not 25 fighter and 5 weaponmaster. 7 weaponmater is what increases the crit range more. 25/5 is onyl viable because the threat range is so large to begin with on high crit range weapons. When using a high crit multiplier, you got for 7 wm and some plus 4 variant to have roughly the same ab.
Re: 25/5: A comparison of options
Posted: Fri Nov 11, 2022 3:31 pm
by WanderingPoet
Mattamue wrote: Tue Nov 01, 2022 11:48 pm
I love python and I love charts.
I thought this was dead, but it is back:
http://www.afterlifeguild.org/Thott/nwn/
Lets you compare things and include extra damage, and plot out damage VS AC.
Example:
How did you get the graph to show? I've only gotten a blank page for a long while.
Re: 25/5: A comparison of options
Posted: Fri Nov 11, 2022 4:58 pm
by Mattamue
WanderingPoet wrote: Fri Nov 11, 2022 3:31 pm
How did you get the graph to show? I've only gotten a blank page for a long while.
Sorry, guess it is broken again.