File information
Created by
A Sphincter Says WhatUploaded by
ASphincterSaysWhatVirus scan
About this mod
Difficulty settings and tweaks to combat formula to increase skill's contribution to hit chance and adding critical strike damage. Combat messages. More class creation choices without a radical redesign of the class maker. Settings to scale player damage, enemy damage, enemy skills, class enemy max health, monster critical hits, and always hit.
- Permissions and credits
- Changelogs
Tweaks to combat formula to increase skill's contribution to hit chance and adding critical strike damage. Inverse scaling of materials for hit chance. Also includes combat messages to show attack effectiveness and evasion. Armor now absorbs damage, and evasion more effective with less armor. Difficulty settings allow the player to choose how much damage is given and received, as well as enemy skill and total health of class enemies. Can toggle whether monsters do critical hits. Settings to always do maximum damage on a critical hit, and also a toggle for all attacks to always hit, with missed and dodged attacks only doing 1 damage.
Settings menu allows the player to choose how to scale player and enemy damage, from x0.3 damage to x3.0. This can help if one feels they are doing too little or too much damage at their level.
Settings also allows the player to adjust the enemy's skill - one chooses the level where the enemy has 100% skill. Vanilla is level 14, this mod defaults to 18. The lower the level in this setting, the more difficult the enemy is regarding to their skill success (higher accuracy, higher dodge, higher success rolls, etc.) This mod sets it to 18 so that the player's dodge skill stays more relevant longer, along with agility.
Another setting sets the maximum level to scale class enemy health, Vanilla is unbound, while this mod defaults to level 18. If you feel class enemies get too much health at higher levels, this can make it more manageable.
A setting that allows monsters to critical hit. By default it is off, as this can cause some huge damage spikes with higher level enemies that already have their damage set high.
A setting to always roll maximum damage on a critical hit, this is on by default to match the description of critical hits doing explosive damage on hit. However, this also applies for enemies too!
A setting to turn off higher materials decreasing accuracy - this makes higher than silver neutral to accuracy rather than decreasing with better weapons. Default is off.
A setting to change how Endurance affects health on level up - this makes endurance apply to minimum health rolls to reduce the reliance on increasing endurance for health. Setting is off by default.
A setting to turn on always hit on attack - missed attacks in the calculation will do 1 damage instead of miss. A requested a feature, however it does make it easier to beat down opponents, unless the damage is adjusted that is. By default, this is off.
A setting for Skilled Poison - poison attacks are based on attacker's backstabbing skill, a percent chance on a hit to apply the poison. Affects both enemies and players. Default is on.
Critical Strike now applies damage to a successful critical hit along with hit chance, as per the Daggerfall Chronicles:
Critical Damage = 1 + (.50 + critical strike/200) x damage
Critical strike will now always roll maximum weapon damage roll when successful with the setting. Critical Strikes now show a message. Players and class enemies use critical strike as default, with an option to allow monsters to land critical hits according to their skill. Critical strike is half effective with two-hand weapons, except for bows. Short blades have double the chance to critical strike, and do 100% more damage on a backstab. Critical strike gains a bonus from agility and luck up to +5% each.
How a skill is assigned will impact its effectiveness. Minor skills are 10% more effective per skill point, Major skills are 20% more effective per skill point, and Primary skills are 30% more effective per skill point. This means that primary skills will be 30% more effective, be it a combat skill for hit chance, backstabbing, dodging, or critical strike. This makes default classes even more unique in playstyle, and gives greater weight to custom classes on skill choices.
Characters now have a Combat Prowess, where the total skill invested in combat skills helps in overall accuracy and damage. Characters that have multiple weapon skills in primary and major/minor skill will have an overall increase in combat effectiveness compared to characters only focusing on a single weapon skill. Prowess is (combat skills (6) / 15) for accuracy, and (combat skills (6) / 100) for max damage bonus.
Forbidden weapon traits give a small bonus-to-hit to your allowed weapons (+3 to hit per disadvantage). Forbidden shield traits give a small increase to attack speed per each type, along with increasing critical strike chance.
forbidden buckler +2 to swing speed, +1% critical chance
forbidden round shield +3 to swing speed, +2% critical chance
forbidden kite shield +4 to swing speed, +3% critical chance
forbidden tower shield +5 to swing speed, +4% critical chance
cumulative for each forbidden trait
This gives a good bonus to the default classes and also to the Class enemies. Assassins, archers, monks will have very high chance to critical hit and fast attack with their forbidden shields traits.
Skilled Poison makes successfully using a poisoned weapon depend on the attacker's backstabbing skill and weapon type. This affects both enemies and players. The chance is based close on the critical strike chances, where short blades have twice the chance to inflict poison, while two-handers and blunt weapons have half the chance. Forbidden shield traits also increase poisoning chance like critical strike. Default chance to poison is 20% + (Backstabbing/4)%. AGI and LUC both can increase poison chance by 5% each.
Failing to poison on a strike has a chance of removing the poison from the weapon by 25%. Players also get notified when poisoning is successful or poison wears off. Successful poisoning can increase your backstabbing skill.
Conversely, materials to hit has been inverted, so that iron and steel contribute to accuracy, while higher level materials reduce accuracy. This makes iron and steel more useful in the early game where hunting for points of accuracy matter. This also gives agility and luck more use to counter accuracy penalties of materials. Damage bonuses, and other material bonuses remain the same.
iron +5 to hit
steel/silver +2 to hit
elven 0 to hit
dwarven -2 to hit
mithril/adamantium -4 to hit
ebony -6 to hit
orcish -8 to hit
daedric -10 to hit
This gives more choice whether to stay with a lower material to maintain a higher hit chance, or use a stronger material with more chance to miss, but hit harder. Using a weapon with material that's ineffective on a monster will result in less damage scaling from how much lower in material. This also will boost class enemies that spawn with lesser materials.
Hand-to-Hand minimum damage decreased to skill/20 rather than skill/10. This is balanced by the fact the increased skill accuracy also applied to hand-to-hand, and with critical hits, increases your damage threshold. A master of hand-to-hand essentially hits like a mithril warhammer with their fists, with a +25 bonus to hit over original accuracy from skill alone.
Strength bonus is reduced to half as shown for one-hand weapons, so 70 STR is +2 max damage instead of +4. Two-hand weapons and hand-to-hand has full bonus.
Weapons classes are distinct with their governing attributes:
Bows, long blades, and short blades gain accuracy and damage from Agility - up to +10 to hit, and +5 to max damage. Low Agility does penalize accuracy.
Axes gain a large max damage bonus from strength, up to +10 max damage. Axes do not have an accuracy bonus, hitting less than other weapons comparatively.
Blunt weapons gain up to a +5 max damage bonus from strength. Blunt weapons inherently have a +5 bonus to hit regardless of attributes, and armor is a quarter-effective vs blunt weapons. However blunt weapons are only half effective for critical damage and poisoning.
Hand to Hand receives a bonus to accuracy up to +10 from Agility.
Bladed weapons receive increased damage from skill level, up to +5 max damage at 100% skill.
Swing modifiers that increase accuracy but decrease damage will decrease maximum damage rather than overall damage to prevent attacks with weapons being ineffective (as this made iron/steel/silver weapons hit less often rolling zero damage). Swings that increase damage but decrease accuracy still increase overall damage.
Expertise bonus gives a flat +4 damage to your minimum damage rolls, ensuring your character delivers much better average damage, along with a flat +20 to-hit with your attack of expertise.
Racial bonuses are modified to a bonus to the races without a proficiency of +1 damage and +1 to-hit per every 5 levels. The Redguard, Dark Elf, and Wood Elf will start with +1 to their proficiency bonuses at level 1. This mirrors how weapon proficiency bonus is applied at level 1.
Phobias are modified to use the target's level rather than player's level, which makes higher level foes have a greater effect on your phobia. Effect is level + 4 of damage reduction.
Adrenaline rush now triggers at 25% health rather than 12%, increasing odds to +10 to hit. The improved trait furthers this to +15.
Dodge is modified to primarily affect the player and NPCs, as monsters have AR to set their overall defense. Agility's effect is doubled, and speed is factored into accuracy and evasion. Dodge is affected by equipped armor per slot, the heavier the armor the greater the reduction:
Leather = 90% effective
Chain = 80% effective
Plate = 50% effective
Forbidden armor traits greatly increase dodge effectiveness for each trait active, giving a good advantage to the default classes and Class enemies:
no armor disadvantages = Dodging skill/4 (same as default/vanilla)
plate disadvantage = Dodging skill/2 (twice as effective)
plate & chain disadvantage = Dodging skill/1.25 (thrice as effective)
all armor disadvantages = Dodging skill (four times effective)
This gives default classes and Class enemies a much-needed boost in defense, as well as a plausible reason for classes having forbidden traits. It also gives more weight to class maker choices.
Armor also now can absorb some of the damage received, up to the displayed armor rating on the paperdoll. There is a randomness to the damage absorption between half of the AR to full AR. Armor also absorbs a percentage of total damage after mitigation: leather absorbs 10% damage, chain absorbs 20%, and plate absorbs 30%. NPCs also take advantage of this mechanic. Shields also provide additional damage absorption for the body parts protected, and the material of the shield now accounts for how much damage is absorbed. Boots are given an extra chance as a struck body part.
Endurance will now shirk some damage, up to 5 damage at 100 END. This gives the fortify enchantment some utility, as well as some protection for endurance classes that don't use plate. Draining endurance can increase damage to foes, or yourself.
Armor (and clothing) now takes extra durability damage from damage absorption (full damage amount to x2 full damage amount) and also take damage from non-weapon attacks. Melee weapons take damage/10 hit to durability, short blades wear down twice as slow. Bows only lose 1 durability per hit. Shields receive double damage in durability compared to armor as their hit is prioritized. Weapon wear no longer includes critical strike damage or backstab damage multipliers.
Magical concealment increases evasion chances, and acute hearing can counter most of that bonus.
Attack speed range is tightened so that lower speed isn't as punitive. Two-handed weapons will have a slower attack speed than other attacks but have a slight to-hit bonus over one-hand attacks to account for increased length of weapon. Using a shield will lower swing speed depending on shield type, bucklers the least, tower shield the most. One-handed weapons swing faster with off-hand empty, or dual wielding.
The damage range of a weapon effects attack speed - the higher the overall damage, the slower the swing. This makes heavy weapons feel heavier for the damage they do, while light weapons are quicker. A broadsword will swing faster than a katana, just as a staff swings faster than a flail.
Now all undead are vulnerable to silver damage, along with werebeasts. Silver armor and shields are also more effective against these. Silver is as strong as adamantium vs the undead.
Spriggans are now resistant to weapons like described in-game, but are vulnerable to axes.
This won't be compatible with other mods that affect the same combat formulas. At worst they just overwrite each other and prioritize whichever is loaded last.
This should be loaded after Roleplay and Realism and before Roleplay and Realism: Items, if using these mods.
The armors added by R&R:I are fully supported - the leather and chain armors that have metal materials are treated as plate for calculations to balance the absorption with the increased dodge from restrictions.
*Optional file that changes the damage range of the short bow to 2-14 from 4-16. This increases the attack speed of the short bow by 20%. Recommended to use the Durable Bows mod so bows aren't as fragile. If Roleplay & Realism: Items is loaded, there is a setting to use it's weapon balancing with the short bow modified to 2-14.
*Optional file that changes shields to protect the same across shield types, but each covers progressively more of the body:
Recommended to turn on shield materials in options to identify leather and chain shields!
Buckler covers hand and left arms (2 areas covered)
Round shield covers hands, left arm, and body (3 areas covered)
Kite shield covers hands, left arm, body, and legs (4 areas covered)
Tower shield covers hands, left arm, body, legs, and head (5 areas covered)
Materials increase the displayed AR which matches the protection afforded by the shield.
Available on Android.
Credit to RedRoryOTheGlen for Vanilla Combat Event Handler support!
Formula Override Declaration for main mod:
FormulaHelper.RegisterOverride(mod, "DamageModifier"
FormulaHelper.RegisterOverride(mod, "ToHitModifier"
FormulaHelper.RegisterOverride(mod, "CalculateWeaponToHit"
FormulaHelper.RegisterOverride(mod, "CalculateAttackDamage"
FormulaHelper.RegisterOverride(mod, "CalculateBackstabChance"
FormulaHelper.RegisterOverride(mod, "CalculateBackstabDamage"
FormulaHelper.RegisterOverride(mod, "CalculateRacialModifiers"
FormulaHelper.RegisterOverride(mod, "CalculateHandToHandMinDamage"
FormulaHelper.RegisterOverride(mod, "CalculateHandToHandMaxDamage"
FormulaHelper.RegisterOverride(mod, "CalculateSkillsToHit"
FormulaHelper.RegisterOverride(mod, "CalculateStatsToHit"
FormulaHelper.RegisterOverride(mod, "CalculateSuccessfulHit"
FormulaHelper.RegisterOverride(mod, "CalculateSwingModifiers"
FormulaHelper.RegisterOverride(mod, "CalculateHandToHandAttackDamage"
FormulaHelper.RegisterOverride(mod, "CalculateWeaponAttackDamage"
FormulaHelper.RegisterOverride(mod, "GetBonusOrPenaltyByEnemyType"
FormulaHelper.RegisterOverride(mod, "CalculateProficiencyModifiers"
FormulaHelper.RegisterOverride(mod, "GetMeleeWeaponAnimTime"
FormulaHelper.RegisterOverride(mod, "GetBowCooldownTime"
FormulaHelper.RegisterOverride(mod, "CalculateAdrenalineRushToHit"
FormulaHelper.RegisterOverride(mod, "CalculateAdjustmentsToHit"
FormulaHelper.RegisterOverride(mod, "CalculateStruckBodyPart"
FormulaHelper.RegisterOverride(mod, "CalculateArmorToHit"
FormulaHelper.RegisterOverride(mod, "DamageEquipment"
FormulaHelper.RegisterOverride(mod, "ApplyConditionDamageThroughPhysicalHit"
FormulaHelper.RegisterOverride(mod, "RollEnemyClassMaxHealth"
FormulaHelper.RegisterOverride(mod, "CalculateHitPointsPerLevelUp"
FormulaHelper.RegisterOverride(mod, "InflictPoison"
Overrides for optional files:
Short Bow
FormulaHelper.RegisterOverride(mod, "CalculateWeaponMinDamage"
FormulaHelper.RegisterOverride(mod, "CalculateWeaponMaxDamage"
Improved Shields
public override int GetShieldArmorValue()
public override BodyParts[] GetShieldProtectedBodyParts()