Weapon Damage Formula

Revision as of 17:33, 24 December 2008 by imported>SnakeChomp (Improved formatting)
Gun Damage = PerkModifiers(DamageMultiplier * GunConditionFactor * (WeaponDamageFactor + SkillFactor)) + CriticalDamageFactor
Melee Damage = PerkModifiers(StrengthFactor + DamageMultiplier * MeleeConditionFactor * (WeaponDamageFactor + SkillFactor)) + CriticalDamageFactor
Unarmed Damage = Formula unknown at this time

PerkModifiers is a function that modifies the input value using any perks active on the actor that have a "Calculate Weapon Damage" Entry Point and returns the result. Note: consumables which increase damage, such as Yao Guai Meat, are implemented by adding a perk to the actor which has a "Calculate Weapon Damage" entry point for the duration of the effect.

DamageMultiplier = fDamageWeaponMult

  • fDamageWeaponMult = 1

StrengthFactor = fAVDMeleeDamageStrengthMult * (ActorStrengthValue + fAVDMeleeDamageStrengthOffset)

  • fAVDMeleeDamageStrengthMult = 0.5
  • fAVDMeleeDamageStrengthOffset = 0
  • ActorStrengthValue is the actor's strength value

GunConditionFactor = fDamageGunWeapCondBase + (fDamageGunWeapCondMult * WeaponCondition)

  • fDamageGunWeapCondMult = 0.34
  • fDamageGunWeapCondBase = 0.66
  • WeaponCondition is 1 at 100% condition, 0.5 at 50% condition, and etc

MeleeConditionFactor = fDamageMeleeWeapCondBase + (fDamageMeleeWeapCondMult * WeaponCondition)

  • fDamageMeleeWeapCondMult = 0.5
  • fDamageMeleeWeapCondBase = 0.5
  • WeaponCondition is 1 at 100% condition, 0.5 at 50% condition, and etc

SkillFactor = ActorSkillValue * fDamageSkillMult

  • fDamageSkillMult = 0.5
  • ActorSkillValue is the actor's skill value with the weapon divided by 10. The value is 10 with 100 skill, 5 with 50 skill, etc.

WeaponDamageFactor = WeaponDamage * fDamageSkillBase

  • WeaponDamage is specified on the weapon form
  • fDamageSkillBase = 0.5

CriticalDamageFactor = IsCriticalHit * PerkCritModifiers(CritDamage)

  • IsCriticalHit is 1 if the attack was critical, 0 otherwise
  • PerkCritModifiers is a function that modifies the input value using any perks active on the actor that have a "Calculate My Critical Hit Damage" Entry Point and returns the result.
  • CritDamage is the "Crit Dmg" value on the weapon form

Notes

If the value returned by PerkModifiers is 0, the game engine considers the attack to have missed. No blood spatter is made, no hit sound effect is played, and the attack cannot critically hit, even if the critical hit chance is 100% or more.

Sneak attack damage

It is currently unknown how sneak damage modifiers are applied to the damage formula. Further research is needed. The variables involved appear to be: