# Movement Scaler

## What is Movement Scaler?

Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things. This is the stat adjusted by the affixes you get on items. The formulae used in Diablo III are as follows:

## Calculating the Heroes Movement Rates

The forumulae used in Diablo III are as follows:

• MovementScalar (Fixed per Hero class)
• WalkingRate (Fixed per Hero class)
• StrafingRate (Fixed per Hero class)
• SprintingRate (Fixed per Hero class)
• RunningRate (Fixed per Hero class)
• MovementBonusTotal (Starts at 0)
• MovementScalarReductionPercent
• MovementScalarReductionResistance
• MovementScalarUncappedBonus

First step is to calculate the Movement Scalar Total which is done by the following formula:

```MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
```

This basically means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:

```MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
```

Basically this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.

Working out the MovementScalarSubtotal:

```MovementScalarSubtotal = Max(0.1, MovementScalar) * (1 + MovementBonusTotal) * (1 - MovementScalarReductionPercent * (1 - Min(1, MovementScalarReductionResistance)))
```

Breaking that down:

```Calc1 = 1 - Min(1, MovementScalarReductionResistance)
```

Min means take the lowest value, so the best Slow Resistance you can have is 1 (100%). This will be combined with the Reduction Percent Below:

```Calc2 = (1 - MovementScalarReductionPercent * Calc1 )
```

OK, so ReductionPercent (lets say a slow of 0.60 [caltrops]) multiplied by the Resistance will be your total slowed amount, again reversed. (example: 1-0.6 = 0.4 with no resistance).

```Calc3 = (1 + MovementBonusTotal)
```

MovementBonusTotal is unknown at present as the Scalar is used by affixes (items). Maybe skills will use this instead of the Scalar? So for now, we'll leave this at 1.

```Calc4 = Max(0.1, MovementScalar)
```

Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!

• (your bonus movement) * 1 * ( 1 - [slow %] * ( 1 - [Slow Resistance]))
• Default: 0.1 * 1 * 1 = 0.1; This would be full base speed.
• Slowed by Caltrops with no Resistance: [0.1] * 1 * ( 1 - [0.6] * (1 - ) ) = 0.04; You're slow!
• Affix Run1 on your Axe: [0.15] * 1 * ( 1 -  * (1 - ) ) = 0.15; 5% increase!
• Affix Run1 on your Axe but slowed with Caltrops: [0.15] * 1 * ( 1 - [0.6] * (1 - ) ) = 0.06; (you're 40% slower than someone who has no buffs or debuffs)
• Affix Run1 on your Axe but slowed with Caltrops but with 50% resistance: [0.15] * 1 * ( 1 - [0.6] * (1 - [0.5]) ) = 0.105; (Still faster than a normal character by 0.5%!)

Now back to the original formula:

```MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
```

So we now know the best bonus is 1.25 which is the same as 1150% in game bonus to run speed! No point going above that then guys and girls, 1150% is your limit from this source! Of course there is the UncappedBonus, but at the moment we've not figured out where this is used...

```MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
```

This is then used for the following Formulae:

• WalkingRateTotal = WalkingRate * MovementScalarTotal
• StrafingRateTotal = StrafingRate * MovementScalarTotal
• SprintingRateTotal = SprintingRate * MovementScalarTotal
• RunningRateTotal = RunningRate * MovementScalarTotal

Lets give WalkingRate a value of 100. Basic speed will be calculated as: 100*0.1 = 10; With Run1: 100*0.15 = 15; With Caltrops: 100*0.04 = 4;

So as you can see the MovementScalar is just as it says on the tin, a % movement speed increase with a cap of 1150% on the speed gains from affixes!