Oblivion:Movement Formulas

''Throughout this page, references will be made to various in-game variables.  These variables can be modified in the Oblivion.ini file, though they're not normally found there.  Variables will be listed at the beginning of each subsection, along with their default values.  After that, default values will generally be assumed.  Also note that the formulas follow the standard Order of Operations rules, so multiplication and division are always calculated before addition and subtraction.

Summary
To move as fast as possible in the game you have to:
Increase the Speed Attribute
Increase Athletics Skill
Wear no armor (or increase Light / Heavy Armor skill to Expert)
Stay out of combat mode.

Basic Movement Speed
The basic movement speed formula is a fairly simple linear increase, based on your Speed attribute.  This is then modified based on several factors, such as your encumbrance and weapon state (unequipped, sheathed, drawn).

Base Speed
Variables:'''
fMoveCharWalkMin  
fMoveCharWalkMax  
In its simplest form, your movement speed is your Speed attribute taken as a percent, on a scale of 90 - 130.  So a Speed of 0 would produce a movement rate of 90, and a Speed of 100 would produce a movement rate of 130.  Speeds above 100 will continue upwards linearly.  Specifically, the formula is:

 BaseSpeed = fMoveCharWalkMin + (fMoveCharWalkMax - fMoveCharWalkMin) * Speed / 100

The base movement is multiplied by several modifiers. A modifier of 1, therefore, means there's no change to the base speed for that modifier. Specifically, the formula used by Oblivion is:

 LandSpeed = EncumbranceModifier * WeaponModifier * BaseSpeed * SneakModifier * MoveTypeModifier

Encumbrance Modifier
Variables:
fMoveWeightMin  
fMoveWeightMax  
fMoveEncumEffect  
fMoveEncumEffectNoWea  
The EncumbranceMultiplier formula has been determined by experimenting with changing settings and seems to be very accurate, but there are some small deviations that suggest some minor extra influences are missing.  The full formula, as has been determined to this point is:

 EncumbranceMultiplier = 1 - EncumEffectMultiplier * (fMoveWeightMin + WornWeight) / (fMoveWeightMax - fMoveWeightMin)
By default, however, fMoveWeightMin is 0.0 which makes the formula significantly simpler:
 EncumbranceMultiplier = 1 - EncumEffectMultiplier * WornWeight / fMoveWeightMax

EncumEffectMultiplier is conceptually determined by the following table:


WornWeight is the sum of all equipped weapons (excluding arrows), armor/shields, and jewelry using the real weight values shown on the Weapons and Armor pages, not the rounded ones displayed in-game.  WornWeight is capped at the value of fMoveWeightMax - any weight exceeding this will not count towards encumbrance.  This is then modified by perks from Expert/Master skills (see perks, below).

Perk variables:
fPerkHeavyArmorExpertSpeedMult   - At Expert, only half your Heavy Armor's weight counts towards WornWeight
fPerkHeavyArmorMasterSpeedMult  - At Master, none of your Heavy Armor's weight counts towards WornWeight (absurdly, this actually means you run faster than in cloth!)
fPerkHeavyArmorSinkGravityMult  
fPerkLightArmorExpertSpeedMult   - At Expert, none of your Light Armor's weight counts towards WornWeight

Weapon Modifier
Variables:
fMoveNoWeaponMult  

WeaponMultiplier can be determined by the following table:

In other words, by default, you move 10% faster when your weapon is sheathed.
Unlike fMoveEncumEffect(NoWea) changing this value does change the game's behavior: setting it to 1.0 will give you a consistent speed whether your weapon is drawn or not.

Sneak Modifier
Variables:
fMoveSneakMult  
Sneaking is a straight-forward modifier, reducing your movement speed to 60% of normal.  So:

 SneakModifier = fMoveSneakMult

Move Type Modifier
Variables:
fMoveRunMult  
fMoveRunAthleticsMult  
fMoveSwimRunAthleticsMult  
fMoveSwimRunBase  
fMoveSwimWalkAthleticsMult  
fMoveSwimWalkBase  
There are four different types of movement, each with their own formula.  In all cases except walking, they are a base number plus an increment based on your Athletics.  So for example, by default, your run speed is 3 times your base speed.  Each point of Athletics adds 0.01 to that, for an effective running speed of up to 4 times your base speed.  Altering fMoveRunAthleticsMult will cause your Athletics to be more or less effective, as appropriate.  The formulas are:

Walking
 MoveTypeModifier = 1

Running
 MoveTypeModifier = fMoveRunMult + fMoveRunAthleticsMult * Athletics / 100

Swimming ("Walking")
 MoveTypeModifier = fMoveSwimWalkBase + fMoveSwimWalkAthleticsMult * Athletics / 100

Swimming ("Running")
 MoveTypeModifier = fMoveSwimRunBase + fMoveSwimRunAthleticsMult * Athletics / 100

Other Movement Types

Creatures
A creature's movement speed is based on the same formulas as above, but BaseSpeed is changed to use creature-specific speeds.  Also, creatures are always considered to have a weapon drawn when it comes to encumbrance calculations. 

Variables:
fMoveCreatureWalkMin  
fMoveCreatureWalkMax  

 Creature BaseSpeed = fMoveCreatureWalkMin + (fMoveCreatureWalkMax - fMoveCreatureWalkMin) * Speed / 100

Flying
It is unknown what flying speed is used for, but like Creature speeds, it's based on the Base Speed formulas with different variables.  It does not affect the movement rate of flying creatures.

Variables:
fMoveMaxFlySpeed  
fMoveMinFlySpeed  

 FlySpeed = fMoveMinFlySpeed + (fMoveMaxFlySpeed - fMoveMinFlySpeed) * Speed / 100

Other Mysteries
fSubmergedMaxSpeed  

Notes
Fatigue and encumbrance do not appear to have any effect on movement speed. The EncumbranceMultiplier is only affected by worn armor and carried weapons, and Strength does not help compensate in any way for equipped heavy armor and weapons.
There doesn't seem to be a way to easily introduce fatigue and/or encumbrance based movement penalties by just tweaking game settings values. This means that it is not possible to have NPC and creatures "slow down when fatigued or burdened" without adding scripting to every single NPC/creature. This makes Burden-based poisons pretty much useless unless they are strong enough to overburden and pin them down. Anything less than 100% encumbrance doesn't slow them down at all, but the final straw that overburdens them suddenly pins them to the spot. Draining Fatigue does help reduce the damage they deal, but it doesn't slow them down when they are chasing you.

See Also
The Complete Damage Formula
Speed
Athletics