About this mod
All-or-nothing blocking based on skill, fatigue, and timing
- Permissions and credits
- Mirrors
by Picador
Version 3
September 16, 2010
* REQUIRES OBSE - http://obse.silverlock.org/ *
= Official Forum Thread =
http://www.bethsoft.com/bgsforums/index.php?showtopic=1052407
= Features =
* Blocking is now all-or-nothing: an actor's chance to block an attack is based on several factors:
* Block skill
* Fatigue level
* Timing (blocking just before the strike is much more likely to succeed)
* Whether the actor is using a shield, a weapon, or bare hands
* Blocking now drains fatigue:
* holding a block drains fatigue every second, based in part on the weight of your weapon or shield relative to your strength
* successfully blocking an attack damages your fatigue based on the amount of damage blocked
* Shields and weapons used to block can now be shattered by strong blows:
* successfully blocking an attack has a chance of shattering the item used to block based on the damage of the attack and the health of the item
* to compensate for this, normal weapon and shield degradation from blocking is greatly reduced
= Installation / Uninstallation =
Install by placing the files "BetterBlocking.esp" and "BetterBlocking.ini" in your Oblivion/Data folder and activating the ESP file under Data Files in the Oblivion launcher menu.
You can adjust many of the values used by the mod in the .ini file: fatigue drain from blocking, effect of timing and fatigue on chance to successfully block, and so on.
Uninstall by removing the .esp file.
= Rationale =
* Vanilla blocking is useless at low levels. Now even an unskilled fighter has a reason to block.
* Combat is now more exciting, since you have to time your blocks to make them more effective and to avoid draining your fatigue; you also have to time your attacks on blocking NPCs more carefully!
* Weapon and shield choices are more strategic now: item weight and health are much more important considerations
* Wizards and martial artists now have better reasons for training their Block skill
* Shattered equipment means you may have to carry a backup weapon or shield, and you'll either have to replace broken equipment or carry a lot of repair hammers
* Deadly Reflexes' "Timed Block" is a good idea, but it only makes very minor changes. This would serve as a replacement for that file (but would be compatible with the rest of DR)
= Implementation =
* Game settings: blockMax = 1.00, weaponmult = 1.00, hthmult = 1.00, skillbase = 0.00, skillmult = 1.00
* Quest script ref-walks every 1 second, places a token on every NPC and every creature with a weapon equipped (the PC also gets one at the start)
* Token script runs every frame:
* if actor.isBlocking ==0 and actor.getSoundPlaying (block) == 0, return
* each frame the actor is blocking:
* run a timer (resets when actor stops blocking)
* calculate a block chance based on: skill, timer, weapon/shield/HtH, fatigue
* randomly determine if block would be successful this frame
* success --> mod actor's block skill to 100 (i.e. 100% damage blocked)
* failure --> mod actor's block skill to 0 (i.e. no damage blocked)
* apply fatigue damage based on timer:
* fatigue damage per second = 2 + (weight of weapon/shield) * (100 / strength) * .2
* if getSoundPlaying (block), i.e. actor just blocked an attack:
* determine damage from attack by tracking health of weapon/shield used to block
* calculate chance of weapon or shield shattering: chance = (damage from attack / health of weapon or shield) - .02
* if weapon shatters, set health to 0
* if weapon does not shatter, restore some of its health so total damage done = (original damage) * .2
* acter's fatigue is also damaged by a successful block: fatigue damage = (strike damage) * .3
* The formula used to determine the chance of blocking successfully will look something like this:
* Baseline chance = 100% at Block skill 100 when timer is at 2 seconds, using a shield, at full fatigue
* Skill: multiply chance by (skill/100). Modify skill based on Luck per usual formula.
* Fatigue: multiply chance by (.5 + (Current fatigue / Base fatigue)), i.e. 50% effectiveness at fatigue zero
* Timing: 3x chance at 0 seconds, down to 2x at 1 second, to 1x at 2 seconds, to a minimum of .75x at 3 seconds or more
* Shield/weapon/hands: multiply chance by .75 if using a weapon, or by .5 if using bare hands
* Minimum chance: after doing the math above, final block chance is always at least 20%
= Compatibility =
* This mod REQUIRES Oblivion Script Extender (OBSE) version 0017 or later. You can download OBSE here:
http://obse.silverlock.org/
* This mod only adds a couple of scripts and runs a few scripts while actors are blocking. It should be compatible with most mods.
* Compatible with "Deadly Reflexes - Combat Moves", but NOT compatible with "Deadly Reflexes - Timed Block". It is intended as an alternative to DR's Timed Block feature.
* I haven't yet tested compatibility with the special moves of Adrenaline-Fueled Combat, or with Unnecessary Violence. If you run into compatibility problems with them, please let me know.
= Changelog =
Version 3
* Fixed the INI code so the INI file actually works
* Moved the INI file to the base DATA directory
* Lowered the fatigue drain for lifting an item even further
* Raised the floor multiplier for a late block
* Fixed bug that made NPCs pass out from blocking
Version 2
* Cleaned up the debugging output
* INI default settings: Lowered the fatigue drain from lifting a shield and blocking a blow; lowered weapon degradation
= Attribution and License Information =
Contact Picador through the Bethesda Forums or by emailing [lucaspicador at gmail dot com].
Feel free to use this mod and all its contents in any way you like. Some attribution to Picador in your README would be appreciated if you think it's due.
If you want to start your own variant mod using this as a baseline, please name it something different so as to avoid confusion.
Many thanks to all the Oblivion mod community members for encouraging my work on mods.