Talk:Weapon Damage Formula

From GECK
Jump to: navigation, search

Damage Resistance

Shouldn't damage resistance be added to this formula, particularly since it does not effect critical damage and thus could not be merely applied to the result?

Mannon 16:13, 1 June 2009 (UTC)

Melee formula possibly incomplete

The fVATSAutomaticMeleeDamageMult game setting probably impacts melee damage dealt when in VATS mode, but it isn't so easy to determine how much damage is done when hitting things in VATS, especially because the target actor damage resist values are taken into account. If anyone experiments with fVATSAutomaticMeleeDamageMult to see what it does, and shows that it does impact melee damage in vats, can you please update the formula with what you learn. --SnakeChomp 05:19, 20 December 2008 (UTC)

Unarmed formula

I don't know how to make the UI tell me how much unarmed damage my character would do, so I can't effectively tweak the unarmed settings to come up with a formula for unarmed damage. If anyone knows a way to get the UI to display the calculated unarmed damage value like it will for weapons, please share. --SnakeChomp 05:19, 20 December 2008 (UTC)

Isn't the value displayed for weapons that use the Unarmed skill such as brass knuckles and power fist? (Sadly "Unarmed" was a bit of a poor name choice for this skill and probably should have been called "Hand to Hand" or something, but it's a carryover from the original game.)
Mannon 02:51, 1 June 2009 (UTC)

Sneak damage

If anyone knows how sneak damage is calculated, please share. See the sneak damage section of the page for some comments.--SnakeChomp 21:37, 24 December 2008 (UTC)

I would also like to know how headshot bonus damage fits in. Particularly, whether or not it stacks with the sneak critical and how each are affected (or not) by damage resistance.
Mannon 11:42, 1 June 2009 (UTC)

Formula was incorrect. but updated now

The formula was found to be incorrect, but the discussion about it is currently contained on the Talk:Gun Spread Formula page. It should be moved here so it can be easily found in the future. In the mean time this page has been corrected with the new formula.
--SnakeChomp 07:45, 29 December 2008 (UTC)

Here I go again...
From what I know, the fAVDMeleeDamageStrengthMult is not directly applied to weapon damage, but is actually applied to the MeleeDamage AND UnarmedDamage actor values (see Stats_List#Derived_Statistics. This is something you can easily test in game, by simply typing:
player.getavinfo MeleeDamage
player.getavinfo UnarmedDamage
player.modav strength 1
player.getavinfo MeleeDamage
player.getavinfo UnarmedDamage
Then, simply set fAVDMeleeDamageStrengthMult to something like 2, and repeat. The theoretical formula, which I will test later if you don't test it first, would be:
(BaseWeaponDmg * DmgMult * ConditionFACTOR * SkillFACTOR) + MeleeDamageAV
And then stick that inside the PerkModifiers() and add the critical damage bonus.
In the case of Unarmed combat, MeleeDamageAV is actually UnarmedDamageAV
Remember that many things can modify the Melee/UnarmedDamageAV besides just the strength bonus, such as chems,perks,armor,whatever. Also, the formula for how strength affects both AVs is:
AV + fAVDMeleeDamageStrengthOffset + (ActorStrengthValue * fAVDMeleeDamageStrengthMult)
Your formula listed under StrengthBonus multiplies the StrengthValue by the Offset, which isn't correct (and that much I have tested).
--Quetzilla 08:06, 29 December 2008 (UTC)
I think you misread the formula. The strength bonus is actually fAVDMeleeDamageStrengthMult * (ActorStrengthValue + fAVDMeleeDamageStrengthOffset), so the offset is not being multiplied with the strength actor value as you said. Here is what I did to test this.
player.forceav strength 1
setgamesetting fAVDMeleeDamageStrengthMult 1
player.getav meleedamage (returns 1)
setgamesetting favdmeleedamagestrengthmult 2
player.getav meleedamage (returns 2)
setgamesetting favdmeleedamagestrengthoffset 1
player.getav meleedamage (returns 4)
If the formula was as you suggested, I would expect that the third getav command would return 1 + 1 * 2 = 3, but the value returned is 2 * (1 + 1) = 4.
I have not personally seen any items that increase melee damage directly, but I found two in the GECK using the "Increase Melee Damage" base effect. I believe that the melee damage actor value is calculated as the strength bonus + melee damage actor value bonuses. It is likely that these melee ddmage actor value bonuses are simply added to the strength bonus to result in the final meleedamage actor value. A similar situation happens in the Critical Hit Chance Formula in how it handles luck and "increased critical hit chance" effects.
--SnakeChomp 16:28, 29 December 2008 (UTC)
Here is another test you can do for this.
player.forceav strength 1
setgamesetting fAVDMeleeDamageStrengthMult 10
player.getav meleedamage (returns 10)
setgamesetting fAVDMeleeDamageStrengthOffset -1
player.getav meleedamage (returns 0)
setgamesetting fAVDMeleeDamageStrengthOffset 1
player.getav meleedamage (returns 20)
--SnakeChomp 17:41, 29 December 2008 (UTC)
Er, yes I did misread the formula there and what you have is correct. Offset/Mults work differently than Base/Mults. However my main point is that you are using the right pieces in the wrong places. You have:
  • Melee Damage = PerkModifiers(BaseWeaponDamage * DamageMultiplier * MeleeConditionPenalty * SkillBonus + StrengthBonus) + CriticalDamageBonus
But it should be:
  • Melee Damage = PerkModifiers(BaseWeaponDamage * DamageMultiplier * MeleeConditionPenalty * SkillBonus + MeleeDamageAV) + CriticalDamageBonus
Some Actor Values are Derived Actor Values (this is what the AVD stands for in fAVDMeleeDamageStrengthOffset/Mult, as well as all the other AVDs). If you type in:
player.getavinfo MeleeDamage
it will print out some info, with the first line saying what the 'base' value is. This is the 'derived' portion of the AV, and this is calculated using the formula:
  • baseMeleeDamageAV = fAVDMeleeDamageStrengthMult * (ActorStrength + fAVDMeleeDamageStrengthOffset)
which is the same formula you are using for StrengthBonus. The problem is that your formula doesn't take into account the boosts to the MeleeDamageAV, and though there aren't many if any in the vanilla game, this is a value that is often adjusted with perks and rebalance mods etc, so your formula should probably just use MeleeDamageAV (which is the actual value used by the game), and have the description of that part in the formula simply point to a Derived Settings page where ALL of the Derived Actor Values (and thus all of the fAVDblahblahblah) settings would be listed, as it makes more sense to put derived statistics on one page rather than define them willy nilly wherever they fit into another formula.
--Quetzilla 23:26, 29 December 2008 (UTC)
The meleedamage actor value is likely not used anywhere else by the game engine except when calculating melee weapon damage. Therefore it would not make sense to remove that information from the weapon damage formula page because the descriptions and default values would then be out of context. Nothing would be gained by placing the definitions of several unrelated actor values onto a single page. If anything, the page which describes the fact that a meleedamage actor value exists should link to this page when describing the actor value with a note saying "this actor value influences melee weapon damage, see the Weapon Damage Formula for exactly how it does this."
And I already acknowledged that the strength bonus component (which will become the actor value component) was incomplete, I just hadn't fixed it yet.
--SnakeChomp 23:50, 29 December 2008 (UTC)

Headshot

The headshot adds additional 50% of the damage to the total damage. So if the final damage (after all calculation is done, including criticals and sneak bonuses) is 100, if the hit was done to the head it would be 150. --gozolo 22:07, 25 July 2009 (UTC)

This isn't entirely true - damage isn't multiplied by 1.5 when a "headshot" occurs, but instead it is multiplied by a value determined in the appropriate BodyPartData. For NPCs, which are hard-coded to use DefaultBodyPartData, this value is 1.5 by default for the head.
-- Cipscis 09:57, 26 July 2009 (UTC)

That's merely my humble observation. There might be some mistakes and inaccuracies. I made some more testing and I think I was wrong about 1.5 multiplier. I thought that it was half of the initial damage which is not affected by the Damage Resistance of the target. The multiplier is actually 2. And it's applied after the critical hit occurs, but before the sneak attack critical and before the Damage Resistance reduction.

Here's some information: I made an NPC with 1000 HP, my weapon has 100 base damage and 50 crit damage, 100% condition, skill is 100, damage multiplier is 1, sneak critical damage multiplier is 2.

NPC with 0 DR gets 200 damage; 300 (damage + critical); 600 sneak critical damage;

NPC with 50 DR gets 100 damage; 150 (damage + critical); 300 sneak critical damage;

NPC with 75 DR gets 50 damage; 75 (damage + critical); 150 sneak critical damage.

Hope it helps. Best regards

--gozolo 11:05, 28 July 2009 (UTC)

Really doubt about the "DamageAbsorbedByArmor"

I guess the real amount of DamageAbsorbedByArmor would be:

DamageAbsorbedByArmor = Damage * (fArmorRatingBase + ArmorRatingValue * fArmorRatingMult) * (ArmorRatingConditionBase + ArmorCondition * fArmorRatingConditionMult)

and I don't really get how fArmorRatingBase and ArmorRatingValue work in this equation, 'cause fArmorRatingBase= 0.2 but ArmorRating can reach as high as 85.--Dr.Xen 09:03, 4 June 2010 (UTC)

Melee Damage Formula unprecise about MeleeConditionPenalty

Did anyone try to set values of fDamageMeleeWeapCondBase and fDamageMeleeWeapCondMult to 0 ?


According to formula if set both to 0 - whole expression of (fDamageMeleeWeapCondBase + fDamageMeleeWeapCondMult * WeaponCondition ) which in short you called MeleeConditionPenalty should also state 0 [ 0 + 0 * X = 0 + 0 = 0 ; obviously, regardless of WeaponCondition factor].


Furthermore whole expression of : (BaseWeaponDamage * DamageMultiplier * MeleeConditionPenalty * SkillBonus) should also state 0 [X * Y * 0 * Z = 0 ; regardless of BaseWeaponDamage, DamageMultiplier and SkillBonus obviously as its all multiplied].

Therefore in such situation we have expression : PerkModifiers(MeleeDamageActorValue + MeleeArmConditionPenalty) + CriticalDamageBonus and only above are dependent how damage is inflicted upon target (before any DT or other modifiers of target).


Well, it's not like it. When I change i.e. DamageMultiplier which should be obsolete by now - as long as fDamageMeleeWeapCondBase and fDamageMeleeWeapCondMult are equal to zero - it result in different damage inflicted upon target.

Therefore there cannot be a multiplication operation between DamageMultiplier and MeleeConditionPenalty and this formula is wrong. Can anyone check this out and prove I am wrong (I could be wrong very likely as I am not 100% of my testing environment - i.e. I see no number values of damage inflicted on target , but observe HP bar in normal gameplay ).

Thank you for any suggestions!

--Razlo 13:04, 18 February 2011 (UTC)