Morrowind
0 of 0

File information

Last updated

Original upload

Created by

OwenFromCanada

Uploaded by

WilowenWallace

Virus scan

Safe to use

About this mod

Tweaks the running mechanics, such that the running speed and fatigue usage are more balanced. Provides convenience while maintaining the integrity of the game.

Permissions and credits
Changelogs
Like many, I find myself frustrated with the running mechanics in Morrowind. I'm constantly toggling between walking and running to maintain a "net zero" fatigue usage. This mod tweaks the underlying game settings such that the running speed is reduced to conserve fatigue.

With this mod enabled, fatigue should remain fairly constant while running, but running speed is reduced for characters with a low Athletics skill. A character carrying a lot with low Endurance will still see some fatigue loss, while a character with high Endurance and no load will see it restore slowly.

Note: I've only tested this with OpenMW, but assuming the formulae are similar, it should be effective with the vanilla engine as well.


The full math is below for those interested. Items in italics are variables used for the purpose of showing the math here. Items in CAPS refer to player attributes and skills.


Walking speed relies on the player's Speed stat:
  WalkSpeed = fMinWalkSpeed + ( SPEED * 0.01 * ( fMaxWalkSpeed – fMinWalkSpeed ) )

Running speed is based on walking speed as well as Athletics:
  RunSpeed
= WalkSpeed * ( fBaseRunMultiplier + ( ATHLETICS * 0.01 * fAthleticsRunBonus ) )


By default,
  fBaseRunMultiplier = 1.75
  fAthleticsRunBonus = 1.00


This means that, by default, running is between 75% and 175% faster than walking, depending on Athletics.


Fatigue caused by running is calculated as:
  RunFatigue
= fFatigueRunBase + ( fFatigueRunMult * ( 
CurrentCarryWeight / MaxCarryWeight ) )

By default,
  fFatigueRunBase = 5.00
  fFatigueRunMult = 2.00


This means that running causes between 5 and 7 fatigue depending on Encumbrance.


Fatigue is restored at the following rate (even while running):
  FatigueReturn
= fFatigueReturnBase + ( ENDURANCE * fFatigueReturnMult )


By default,
  fFatigueReturnBase = 2.50
  fFatigueReturnMult = 0.02


This means that fatigue is restored between 2.5 and 4.5, depending on Endurance.


The goal mathematically is to lower the amount of fatigue caused by running to match the base restore rates:
  set fFatigueRunBase to 3.10
  set fFatigueRunMult to 1.40


This means that running now causes between 3.1 and 4.5 fatigue depending on encumbrance. The value of 3.1 is based on the lowest possible starting value for endurance, which is 30. This effectively means that a character with minimum endurance could run indefinitely while carrying nothing at all, while a character with maximum endurance could run indefinitely while at full capacity.

To make things fair, we should reduce the movement speed while running to compensate:
  set fBaseRunMultiplier to 1.465
  set fAthleticsRunBonus to 1.285


This means that running is now between 46% and 175% faster than walking, depending on Athletics. The value of 1.465 is based on taking 62% of 75 (the change in fFatigueRunBase is 62% of the original value). The value of 1.285 is set such that the maximum running speed still reaches 175% with maxed Athletics. This effectively slows the running speed while increasing the impact of Athletics on running speed.


But wait! Our running speed is effectively slower now, and that affects our fast swim speed:
  SwimRunSpeed
= RunSpeed * ( fSwimRunBase + ( ATHLETICS * fSwimRunAthleticsMult ) )


And fatigue while swimming is calculated as:
  FastSwimFatigue = fFatigueSwimRunBase


And by default,
  fFatigueSwimRunBase = 7.00


Since we're potentially moving a bit slower, we shouldn't have to waste so much fatigue while swimming:
  set fFatigueSwimRunBase = 5.29


This reduces the fatigue cost of swimming by 62%, same as for running (5.29 is calculated as 62% of the difference between the fatigue cost for swimming fast and slow, 7.0 and 2.5, respectively).


So this mod only changes the values of five game settings:
  fAthleticsRunBonus
  fBaseRunMultiplier
  fFatigueRunBase
  fFatigueRunMult
  fFatigueSwimRunBase