- 0* Baseline chance = 100% at Block skill 100 when timer is at 2 seconds, using a shield, at full fatigue
1* Skill: multiply chance by (skill/100). Modify skill based on Luck per usual formula.
2* Fatigue: multiply chance by (.5 + (Current fatigue / Base fatigue)), i.e. 50% effectiveness at fatigue zero
3* Timing: 3x chance at 0 seconds, down to 2x at 1 second, to 1x at 2 seconds, to a minimum of .5x at 3 seconds or more
4* Shield/weapon/hands: multiply chance by .75 if using a weapon, or by .5 if using bare hands
x* Minimum chance: after doing the math above, final block chance is always at least 20%
For what is shown here all 4 factors (1-4) will have a value about or mostly below 1, so I expect that value would be checked against 1 instead of making a percent check (unless you'd want to multiply that value for 100, wich seems pointless). On that department my suggestion is that you choose one value in form of %, and then let the other factors be multipliers of that percent, ranging from 0 to 1 or whatever their max values are. I don't know if that's what you was thinking to do regarding the formula, but one of the things that makes it a bit unclear for me is that you talk about "multiply chance by...", but hasn't been defined a "chance" itself, or I'm not able to see it. So let me comment this factors.
0 - This isn't a value affecting the formula but it's rather a result of applying it, so we should leave this out.
1 - Skill: I'd suggest making this one the "base percent" value in the formula. So instead of skill/100 you retain directly the skill level, perhaps with a cap about 125 or so. The reason to do this is
simply because it's easier to talk about percentile chances than talking about multipliers, rates and too-much-math-related looking stuff, and so if we speak of % of success why don't have that value itself in the formula? well that's just my point of view.
But as this would be the base chance we should avoid it being too low. Adding a min value here (like 20) would make no difference at all in that skill levels below the min, so instead you can make the skill factor counts a 80% towards the base chance and get the other 20% for free. It'd look like (skill*0.8 + 20) because we're seeking a percentile value.
2 - Fatigue: I think we agree on this. According to my procedure this would act as a multiplier to that percent. Just let me notice that current value ranges from 0.5 to 1.5 at full stamina and I guess that was not intended but this makes me think of a small bonus for being at full stamina, but not that big. To make it range from 0.5 to 1 it should be 0.5 + (Current fatigue / Base fatigue)/2, and to make it ranges from 0.5 to 1.1 could be like 0.5 + 1.2*(Current fatigue / Base fatigue) / 2.
3 - Timing: As I see this, that one is another factor that will multiply the base chance (skill). In your settings this multiplier ranges and descends from 3 to 0.5 in 3 seconds. I see the point of giving a decent chance of success for well timmed blocks at novice level, so I retreat what I said about making the max value 1, but perhaps 2 is better so you only have one second with "bonus" to time your block. Oh wait, maybe it's only half second, considering it has to perform yet before the block anim... perhaps that's why you made it starting from 3. Anyway, 3 seems too much, at least for me. A fair value could be 2 + the time it takes to perform the anim (0.4~0.6?), so in the end you have exactly one second with increased chance of success.
4 - Shield/Weapon/H2H: this one is clear, it's either 1, 0.75 or 0.5, respectively. My suggestion on that department was to modify this value according to the item's weight, assuming that big and robust stuff is better for blocking: it will cover a bigger area and won't make you recoil as easily. My first suggestion was to make it absolutely proportional to the weight but that could lead to some very low values, and considering the big difference between those weights is quite difficult to find a fair and balanced way to make it. An easy one would be adding (weight/100), so for example for a fur shield this value would be 1.02, for a daedric shield 1.24. This is meant to be compensated by the bigger fatigue lost by heavier equipment. The major problem I see is for weapons as some could end up being more useful than shields (daedric warhammer - 1.93). Perhaps this could be applyed only to shields.
5 - Minimum chance: Even it has been set some kind of min chance on skill it would still having to be checked once again.
So in conclusion my idea is:
Base Chance = SkillPercent * FatigueMultiplier * TimingMultiplier * EquipmentMultiplier
SkillPercent = (skill min 125) * 0.8 + 20
- (skill min 125) means we always get the smaller one of both, just in case the skill level would be greater. It's a shame neither bethesda or the obse team hasn't made min and max functions.
This now ranges from 20 to 120
FatigueMultiplier = 0.5 + 1.2*(Current fatigue / Base fatigue) / 2
- ranges from 0.5 to 1.1
TimingMultiplier = 2.5 - (timer min 2)
- ranges from 2.5 to 0.5, in 2 seconds
Or either: TM = 2.5 - (timer*0.66 min 2) to make it last 3 seconds
So in all it's:
Base Chance = ( ((skill min 125) * 0.8 + 20) * (0.5 + (Current fatigue / Base fatigue)/2) * (2.5 - (timer*0.66 min 2)) ) max 20
Anyway, the exact values maybe it's not the most important thing here, that's just my personal preferences, but rather it is to have a clear idea of exactly wich parameters tracks the success chance formula, wich magnitudes they are (1, 100?), etc, because I think it has lead to some misunderstanding. Man, you started with a very good project, and as you've said , the structure it's ok and it seems that now it's all about adjusting values, so consider this both as my suggestions for that values and my contribution to make this discussion more productive, if this might help. It's a dumb thing, but giving things a name makes them easier to refer to If you don't like the name I gave them just rename them, re-order them, and we all will refer them as such
grmblf