Warhammer: Vermintide 2

Warhammer: Vermintide 2

105 ratings
In-depth Movement Guide
By mr_chen
This guide solely focuses on movement speed and movement types and provides a few tables related to that.
4
2
   
Award
Favorite
Favorited
Unfavorite
Basics of movement
Preparation
Before starting with the movement types make sure you have setup your keybinds correctly. Most important make sure that jump and dodge are not on the same key. To change that go to Options > Keyboard Settings and bind jump and dodge to 2 different keys.

Movement through directional keys
As simple as the controls in Vermintide 2 are it is always amazing how small mechanics can improve your skills in this game. This guide here is for movement. The default way of movement consists of pressing a single button [W, A, S, D]. All speeds are same while midair e.g. after jumping.

(In the following the numbers will refer to ingame units and 1 ingame unit length is roughly 2 medical supplies long. I will abbreviate the double medical supply length with U.)
  • The base movement speed is 4 U/s. This applies to forward and sideway movement. Moving backwards has a multiplier of 0.65, thus 0.65 * 4 = 2.6 U/s for going backwards.
  • If you hold [alt] for walking, your movement speed decreases to 1.9 U/s.
  • If you hold [ctrl] for crouching your movement speed decreases to 1.4 U/s.
Movement speed by testing
Most of the movement speed in this guide are from the sourcecode. Some of it doesn't match up with the actual situation. Trying to include everything (especially the movement speed gain from weapon attacks) would be too much.

To measure your movement speed in-game you can use this mod:
https://steamcommunity.com/sharedfiles/filedetails/?id=2215863369

Usage in mod description or just type "/ms" or "/ms help" in the chat to see usage information.
Movement by dodging
Asides from pressing the direction buttons, your dodge is also a form of movement.
  • The dodge has a base distance of 2 U.
  • The dodge has a cooldown of 0.15 s.
  • The dodge has varying speed depending on time passed since start of your dodge. This means at the start of the dodge you move slow, but build up speed during the dodge, which will fall of at the end of the dodge. The following lists the speed depending on how much time has passed since start of the dodge. Once you have exceeded your dodge distance, your dodge speed drops to 0.
    • 0 s -> 1 U/s
    • 0.05 s -> 4 U/s
    • 0.1 s -> 7 U/s
    • 0.25 s -> 5 U/s
    • 0.4 s -> 2 U/s
    • 0.5 s -> 1 U/s
  • The dodge count decides how often you can dodge consecutively. Dodging above that count causes the 1st to be ~50% of your effective dodge distance and the following ~10% of your original dodge distance.
  • Not dodging for 0.5s regenerates your dodge count fully.
  • The dodge distance, speed and count are depending on weapon choice.
The list above shows a slowdown at the end of the dodge. To avoid that we can jump at the speed falloff during the dodge. This technique called dodge-jumping is often used during kiting.

Why not just walk forward while holding block?
This seems to be easiest approach to kiting, but there are many problems. Your movement speed is lower than the enemies. This means enemies will attack you and you will lose stamina from your block. On top of that enemies are attacking you from behind, which causes you to lose more stamina than blocking an attack from an effective angle. So you will lose stamina faster and once your block is broken your movement speed will decrease and you are open for attacks.

Dodge-jumping
This one on the other hand allows you, to dodge attacks, but also look at the enemy direction during the dodge. This way you will be able to block with an effective angle, thus less block cost. Adding the jump into the dodge allows you to overcome the slowdown at the end of the dodge and by facing the movement direction also increases your midair speed. With the jump you will also be able to regenerate your dodge count, since the jump time is usually longer than the dodge count regeneration time of 0.5s.

(1) Additionally dodge-jumping while crouching allows you to retain the crouching pose. This way players can fit into tight spaces requiring a jump but also crouched state. Example[www.twitch.tv]
Tables of dodge modifiers
Dodge Count: Number of effective dodges
Dodge Distance: Multiplier of dodge distance
Dodge Speed: Multiplier of dodge speed

Markus Kruber
Melee Weapon
Dodge Count
Dodge Distance
Dodge Speed
Sword
3
1.2
1.2
Mace
3
1.2
1.2
Bret. Longsword
3
1.2
1.2
Sword&Shield
2
1
1
Mace&Shield
2
1
1
Bret. Sword&Shield
4
1
1
Mace&Sword
3
1.15
1.15
2h Sword
3
1.1
1.1
Executioner Sword
2
1
1
2h Hammer
2
1
1
Halberd
3
1
1
Tuskgor Spear
3
1
1
Spear&Shield
3
1.05
1.05

Ranged Weapon
Dodge Count
Dodge Distance
Dodge Speed
Blunderbuss
3
1
1
Repeater Handgun
1
1
1
Handgun
1
1
1
Longbow
3
1
1

Bardin Goreksson
Melee Weapon
Dodge Count
Dodge Distance
Dodge Speed
Axe
6
1.2
1.2
Hammer
3
1.2
1.2
Axe&Shield
2
1
1
Hammer&Shield
2
1
1
Dual Axes
6
1.25
1.25
Dual Hammers
3
1.15
1.15
2h Axe
2
1
1
2h Hammer
2
1
1
2h Pick
2
1
1

Ranged Weapon
Dodge Count
Dodge Distance
Dodge Speed
Grudge Raker
3
1
1
Crossbow
1
1
1
Handgun
1
1
1
Drakefire Pistols
2
1
1
Drakegun
1
0.85
0.85
Throwing Axes
6
1.2
1.2
Trollhammer Torpedo
1
1
1

Kerillian
Melee Weapon
Dodge Count
Dodge Distance
Dodge Speed
Sword
100
1.25
1.25
Axe
100
1.2
1.2
Spear&Shield
3
1.05
1.05
Dual Dagger
6
1.35
1.35
Sword&Dagger
6
1.25
1.25
Dual Sword
6
1.25
1.25
2h Sword
6
1.1
1.1
Glaive
3
1
1
Spear
3
1.15
1.15

Ranged Weapon
Dodge Count
Dodge Distance
Dodge Speed
Swiftbow
6
1.25
1.25
Hagbane Shortbow
6
1.25
1.25
Longbow
3
1
1
Volley Crossbow
1
1
1
Moonfire Bow
3
1
1
Deepwood Staff
1
1
1
Briar Javelins
6
1.2
1.2

Victor Saltzpyre
Melee Weapon
Dodge Count
Dodge Distance
Dodge Speed
Rapier&Pistol
6
1.25
1.25
Axe
6
1.2
1.2
Falchion
4
1.25
1.25
Flail
4
1.15
1.15
Axe&Falchion
4
1.2
1.2
2h Sword
3
1.1
1.1
Billhook
3
1.15
1.15

Ranged Weapon
Dodge Count
Dodge Distance
Dodge Speed
Brace of Pistols
100
1.25
1.25
Repeating Pistols
3
1
1
Volley Crossbow
3
1
1
Crossbow
1
1
1
Griffinfoot Pistols
100
1.25
1.25

Sienna Fugonasus
Melee Weapon
Dodge Count
Dodge Distance
Dodge Speed
Dagger
6
1.2
1.2
Sword
3
1.2
1.2
Mace
4
1.2
1.2
Flaming Sword
3
1.2
1.2
Flaming Flail
4
1.15
1.15
Crowbill
3
1.25
1.25

Ranged Weapon
Dodge Count
Dodge Distance
Dodge Speed
Beam Staff
1
1
1
Fireball Staff
1
1
1
Conflagaration Staff
1
1
1
Bolt Staff
1
1
1
Flamestorm Staff
1
1
1
Coruscation Staff
1
1
1

Career Skills
Career Skills
Dodge Count
Dodge Distance
Dodge Speed
Grail Knight
2
1
1
Ranger Veteran
3
1
1
Outcast Engineer
1
1.1
1.1
Waystalker
3
1
1
Bounty Hunter
3
1.1
1.1
Pyromancer
1
1
1
Tables of dodge modifiers (pt. 2)
Other
In-game Items
Dodge Count
Dodge Distance
Dodge Speed
Healing Draught
1
1
1
Medical Supply
3
1.2
1.2
Jade Censer
4
1
1
Speed Potion
1
1
1
Strength Potion
1
1
1
Concentration Potion
1
1
1
Fire Bomb
3
1
1
Bomb
3
1
1
Morgrim's Bomb
3
1
1
Tome
3
1.2
1.2
Grimoire
3
1.2
1.2
Torch
1
1
1
Explosive Barrel
1
1
1
Lamp Oil
1
1
1
Essence Barrel
1
1
1
Beer Bottle
1
1
1
Cannon Ball
1
0.45
0.65
Gargoyle Head
1
0.45
0.65
Essence Chunk
1
0.45
0.65
Training Dummy
1
0.45
0.65
Mutator Statue
1
0.45
0.65
Movement by overcharged
Being critically overcharged causes you to loose 25% movement speed as well as 25% dodge distance and dodge distance.
Movement by potions
Speed potions
The speed potion increases your movement speed instantly by 50% for 10s. Using "Decanter" trait on your charm allows you to extend the duration to 15s. Using "Concoction" trait on your charm allows you to gain 5s of speed potion effect from all potions. Speed potions (and potion effects in general) do not stack.
Movement by trinkets
5% from trinket
The simplest way to affect your movement speed is by using a trinket with the movement speed property. On blue and orange rarity trinkets the movement speed bonus varies from 3-5% and on red rarity trinkets you will always have 5% movement speed bonus.

Movement by career abilities
Career abilities
Another way of increasing movement speed can be achieved through the chosen career. Careers have perks, talents and career skills that increase your movement speed as well. The career skills that affect movement speed are a bit more than a static speed boost that just dissappears.
Handmaiden, Shade and Zealot have the same type of dash, that propels them right away with a high speed for a certain duration. During this duration the speed falls off depending on given falloff speed.
The Foot Knight has a more complicated speed calculation. The base idea is that the player has a negative speed during the windup duration that will then grow to a max speed, which will then fall off again. End speed marks the peak speed of the charge, but the speed fall off is calculated in timesteps, which is affected by diverse variables. (If you want to know it exactly you can check it here[github.com])

Markus Kruber
  • Mercenary
    • Talent: Stand Clear -> 20% dodge distance and speed
  • Huntsman
    • Talent: Longhsanks -> 10% movement speed
    • Skill: Hunter's Prowl -> -5% dodge distance and speed, -10% movement speed
  • Foot Knight
    • Skill: Valiant Charge -> duration: 1.5s; windup duration: 0.25s - windup speed: -3 U/s; hold duration: 0.03s; end duration: 0.25s - end speed 20 U/s
  • Grail Knight
    • Perk: Thirst for Glory -> 10% movement speed
    • Talent: Virtue of the Impetuous Knight -> 35% movement speed for 15s after killing enemy with Blessed Blade

Bardin Goreksson
  • Ranger Veteran
    • Talent: No Dawdling! -> 10% Movement Speed
  • Slayer
    • Skill: Leap -> Movement speed 13.5 U/s; jump speed 6.5 U/s; slam speed 18 U/s
    • Talent: Impatience -> 10% movement speed per stack
    • Talent: No Escape -> 25% movement speed for 10s after Leap

Kerillian
  • Waystalker
    • Talent: Fervent Huntress -> 15% movement speed for 10s after killing special or elite
  • Handmaiden
    • Passive: The Dance of Seasons -> 15% dodge distance and speed
    • Skill: Dash -> duration: 0.65s; speed: 25 U/s; falloff speed: 5 U/s
    • Talent: Shifting Seasons -> 20.1% dodge distance and speed while blocking
  • Shade
    • Talent: Spring-Heeled Assassin -> 20% movement speed for 5s after critical hit
    • Talent: Gladerunner -> 10% movement speed
    • Talent: Shadowstep -> duration: 0.65s; speed: 25 U/s; falloff speed: 5 U/s

Victor Saltzpyre
  • Witch Hunter Captain
    • Talent: Charmed Life: 20% dodge distance and speed
  • Bounty Hunter
    • Talent: Rile the Mob: 10% movement speed for 10s for party after critical hit
  • Zealot
    • Skill: Holy Fervour -> duration: 0.75s; speed: 25 U/s; falloff speed: 8 U/s
    • Talent: Crusade -> 5% movement speed per fiery faith stack (max: 30%)
    • Talent: Devotion -> 30% movement speed for 2s after taking damage; no slow down from getting attacked

Sienna Fuegonasus
  • Battle Wizard
    • Skill: Fire Walk -> Movement speed 60 U/s; jump speed 12 U/s; Note: Fire Walk is technically a very fast Leap
    • Talent: Burnout -> Allows second Fire Walk within 10s of first Fire Walk
  • Pyromancer
    • Talent: Fleetflame -> 5% movement speed for 10s per stack from critical hit (max 15%)
Movement by using Weapons
Weapons can be used as well to increase your movement speed and dodge speed and dodge distance. To find out how it can be roughly calculated from the source code see Appendix A-D. Those sections serve no practical use and can severely deviate from the actual values in the game. This section will instead provide tested values.

A reference spreadsheet by Novality can be found here (I highly recommend checking it out):
https://docs.google.com/spreadsheets/d/1y7CSzMPlliMTsTjSoxdg4UhOQtu3lRd_E2ju8Tn7zqQ/edit#gid=1772327800

Mod used for finding out movement speed:
https://steamcommunity.com/sharedfiles/filedetails/?id=2215863369
Sourcecode of mod: https://github.com/exquilibrium/vermintide-stuff/tree/master/mods/movespeed

Tested values of selected weapons
The following table presents weapons that have movement bonus by using certain attack patterns. Movement speed bonus was estimated with the mod mentioned above. The movement speed bonus is in relative to a character with base movement speed of 4 U/s and no attack speed properties on itmes. This bonus is in relative to base movement spedd also for career restricted weapons (escpecially Grail Knight with +10% movement speed passive). Having attack speed properties leads to increase of movement speed bonus through the weapons.

Note 1: It is recommended to use the mod for some attack patterns since they require specific timing to max out movement speed bonus.

Note 2: The following values are estimated values!

Notes on used abbreviations
  • l - light attack
  • h - heavy attack
  • p - push attack
  • s - weapon special
  • b - block (cancel)
  • q - quickswitch weapon (cancel)

Markus Kruber
Weapon
Action Chain
Movement Bonus
Sword
h-h-l
5%
Bret. Longsword
h-h-h
h-q-q
5%
8%
Sword&Shield
p-h
10%
Mace&Shield
p
4%
Bret. Sword&Shield
p-h
20%
Mace&Sword
l-b
p
10%
17%
2xMace&Sword
l-q
35%
2h Sword
h-q-q
4%
Executioner Sword
h-q-q
4%
Tuskgor Spear
hold h
10%

Bardin Goreksson
Weapon
Action Chain
Movement Bonus
Hammer&Shield
p
4%
Dual Axes
l-b
p-l-b-l
p
10%
15%
20%
2xDual Axes
l-q
20%
Dual Hammers
l-b
p-l-b-l
10%
15%


Kerillian
Weapon
Action Chain
Movement Bonus
Sword
l-l-l
13%
Spear&Shield
p-h
h-h-h
l-l-l-l
p-l
h-l
10%
12%
15%
18%
23%
Dual Daggers
l-l-l-l
p-h
10%
10%
Sword&Dagger
p-h
17%
Dual Swords
l-b
8%
2h Sword
l-l
h-b
10%
20%
Spear
h-h
10%

Victor Saltzpyre
Weapon
Action Chain
Movement Bonus
Axe&Falchion
p-l-l-b
5%
2h Sword
h-q-q
4%
Billhook
s
l-l
l-s-l
5%
10%
14%

Sienna Fuegonasus
Weapon
Action Chain
Movement Bonus
Dagger
l-l-l-l
p
p-l-l-l
10%
20%
20%
Sword
h-h-l
5%
Flaming Flail
h-q-q
3%
Tables of block (and aim) modifiers
The following tables tell you how much your movement speed is decreased, when blocking or aiming with certain weapons.

Used tags:
<no tag> - on all shots
(normal) - normal shot
(charging) - charging the weapon, but not shooting
(charged) - charged shot

Markus Kruber
Melee Weapon
Block multiplier
Ranged Weapon
Aim multiplier (duration)
Sword
0.85
Blunderbuss
1
Mace
0.8
Repeater Handgun (charging/charged)
0.4
Bret. Longsword
0.5
Handgun (charged)
0.25
Sword&Shield
0.6
Longbow (normal)
0.5 (0.3s)
Mace&Shield
0.6
Longbow (charging)
0.25
Bret. Sword&Shield
0.6
Longbow (charged)
0.25
Mace&Sword
0.85
2h Sword
0.5
Executioner Sword
0.5
2h Hammer
0.6
Halberd
0.6
Tuskgor Spear
0.8
Spea&Shield
0.6

Bardin Goreksson
Melee Weapon
Block multiplier
Ranged Weapon
Aim multiplier (duration)
Axe
0.8
Grudge Raker
1
Hammer
0.8
Crossbow (charged)
0.25
Axe&Shield
0.6
Handgun (charged)
0.25
Hammer&Shield
0.6
Drakefire Pistols (normal)
0.9 (0.75s)
Dual Axes
0.85
Drakefire Pistols (charged)
0.75
Dual Hammers
0.85
Drakegun (normal)
0.5 (0.25s)
2h Axe
0.5
Drakegun (charged)
0.25
2h Hammer
0.6
Drakegun (charging 1)
0.9 (0.3s)
2h Pick
0.6
Drakegun (charging 2)
0.8 (0.4s)
Trollhammer Torpedo (block)
0.8

Kerillian
Melee Weapon
Block multiplier
Ranged Weapon
Aim multiplier (duration)
Sword
0.9
Swiftbow
1
Axe
0.8
Hagbane Shortbow (normal)
0.75 (0.3s)
Spear&Shield
0.6
Hagbane Shortbow (charged)
0.8
Dual Dagger
0.9
Longbow (normal)
0.5 (0.3s)
Sword&Dagger
0.85
Longbow (charged)
0.25
Dual Sword
0.85
Volley Crossbow (charged)
0.9
2h Sword
0.75
Briar Javelin
0.25
Glaive
0.75
Deepwood Staff
0.25
Spear
0.8
Moonfire Bow
0.25

Victor Saltzpyre
Melee Weapon
Block multiplier
Ranged Weapon
Aim multiplier (duration)
Rapier&Pistol
0.9
Brace of Pistols (charged)
0.85
Rapier&Pistol (special attack)
0.85
Repeating Pistols (charged)
0.4
Axe
0.8
Volley Corssbow (charged)
0.25
Falchion
0.75
Crossbow (charged)
0.25
Flail
0.8
Axe&Falchion
0.85
2h Sword
0.5
Billhook
0.6

Sienna Fugonasus
Venting overcharge has a multiplier of 0.8.
Melee Weapon
Block multiplier
Ranged Weapon
Aim multiplier (duration)
Dagger
0.85
Beam Staff (normal)
0.25
Sword
0.8
Beam Staff (charged)
0.75 (0.3s)
Mace
0.8
Beam Staff (charging 1)
0.9 (0.3s)
Flaming Sword
0.8
Beam Staff (charging 2)
0.8 (0.4s)
Flaming Flail
0.8
Fireball Staff
1
Crowbill
0.8
Conflagaration Staff (charged)
0.1
Bolt Staff (normal)
0.5 (0.2s)
Bolt Staff (charged)
0.25
Flamethrower Staff (normal)
0.5 (0.25s)
Flamethrower Staff (normal)
0.5 (0.25s)
Flamethrower Staff (charged)
0.5
Flamethrower Staff (charging 1)
0.9 (0.3s)
Flamethrower Staff (charging 2)
0.8 (0.4s)
Coruscation (charged)
0.1
Movement of enemies
This section has tables of all enemy movement speed in U/s. The players base movement speed is 4 U/s.

Skaven
breed_skaven_
walk_speed
run_speed
other
clan_rat
2.75
4.75
passive_walk_speed = 2
clan_rat_with_shield
2.75
4.75
passive_walk_speed = 2
explosive_loot_rat
3
5
grey_seer
5
5
gutter_runner
3
9
jump_speed = 25
loot_rat
3
5
pack_master
2.4
5
plague_monk
3.25
5.5
passive_walk_speed = 2
poison_wind_globadier
2.5
5
rat_ogre
5
7
patrol_walk_speed = 2.5
catch_up_speed = 12
ratling_gunner
1.9
4
skaven_slave
2.5
4.25
passive_walk_speed = 2
storm_vermin
2.75
4.8
storm_vermin_champion
2
6.109090909090908
angry_run_speed = 6
storm_vermin_warlord
2.545454545454545
6.109090909090908
angry_run_speed = 6
storm_vermin_with_shield
2
4.8
skaven_stormfiend
5
5
catch_up_speed = 10
skaven_stormfiend_boss
5
5
skaven_warpfire_flamethrower
2
4.5

Chaos
breed_chaos_
walk_speed
run_speed
other
berzerker
2.25
6
corruptor_sorcerer
0.65
0.65
projectile_speed = 25
exalted_champion
2
6.109090909090908
throw_weapon:
throw_speed = 25
return_speed = 45
exalted_sorcerer
0.65
0.65
exalted_sorcerer_drachenfels
6.5
6.5
fanatic
2.3
4.8
passive_walk_speed = 2
marauder
2.3
4.8
passive_walk_speed = 2
marauder_with_shield
2.3
4.8
passive_walk_speed = 2
mutator_sorcerer
2.3
4.8
raider
2.2
4.8
spawn
3.5
7
catch_up_speed = 12
troll
4
5.25
catch_up_speed = 10
follow.override_move_speed = 4.25
follow_crouching.override_move_speed = 4
vortex
1.75
vortex_sorcerer
0.65
0.65
missile_speed = 20
chaos_warrior
2.4
4.2

Beastmen
breed_beastmen_
walk_speed
run_speed
other
bestigor
2.75
4.8
charge_speed_min = 8
charge_speed_max = 10
gor
2.75
4.8
minotaur
5
6
patrol_walk_speed = 2.5
catch_up_speed = 12
charge_speed_min = 9
charge_speed_min = 9
beastmen_standard_bearer
2.75
4.8
ungor
2.75
4.8
dodge_back.dodge_distance = 2.5
dodge_back.move_speed = 6
ungor_archer
2.75
4.8
dodge_back.dodge_distance = 2.5
dodge_back.move_speed = 6
Appendix A: Movement by using weapons
For practical use I recommend skipping this and instead test the speed by using the mod from the earlier section.

Note: This section touches the surface of the implementation and shows how to approximately calculate movement speed by using weapons. Not every buff and attack chain will be explained.

Weapons have movement speed modifiers, that will increase or decrease your movement speed. Blocking and aiming will always decrease your movement speed. Attacking, pushing, push-attacks and special attacks can affect your speed differently. Some specific weapons and weapon combinations allow you to move even faster by utilising the movement speed bonus during the attacks.

In the first part I am going to explain how to approximately calculate the effective movement speed multiplier when performing a certain chain of attacks. Since most attack chains causes you to slow down I will only present notable weapons that increase your movement speed.

Background info on weapon templates
Every weapon in this game has a weapon template (You can check them out here[github.com]). These templates contain the information when attacks start, when you can chain into next attack and what attack chains are allowed. If you open one of those weapon templates, our needed information is under
weapon_template.actions = { ... }
The actions we will need are
action_one = { ... }, action_two = { ... }, action_three = { ... }
"action_one", "action_two" and "action_three" are respectively for your Left Mouse Button (LMB), Right Mouse Button (RMB) and Special Attack Button (SAB)(on default controls). In each of these actions so called "subactions" are specified. The most common naming prefixes are
default_ heavy_ light_
The "heavy_" and "light_" prefixes obvisouly stand for a certain heavy or light attack of given weapon. The "default_" prefix stands for a state between the attacks. The "default" subaction itself is the start state, where you hold the weapon or start your first attack from.

To visualize this at the start you are in subaction "default". If you click LMB once, you will land in a "light_" attack, while holding LMB you go into the subaction "heavy_" for heavy attacks. The same applies to default_" which is the state you reach after performing an attack. In this state you can once again chain into different attacks. Depending on your previous attack you will land in different "default" states that allow you to chain into a different set of attacks. All attacks there use generic namings used to describe the different attacks (e.g. light_attack_left, heavy_attack_down, etc.).

Asides there is the "push" subaction for pushing, push-attack subactions though can appear as either "light_attack_bopp" or "push_attack". "action_two" only has subaction "default" for RMB click, which is by default just blocking. "action_three" only appears on a few weapons and is activated via the SAB.
(Note to "action_one": some light attacks can appear twice in the subaction list. For example the billhook has a light attack chain: stab -> sweep -> stab2 -> sweep -> stab2. The stab and stab2 have the same damage profile, but their movement speed profile is different, thus 2 different subactions.)

To calculate the effective movement speed (multiplier) we need a look at the "buff_data" and "allowed_chain_action" within the subaction:
weapon_template.actions = { action_one = { default = { --<-- subaction ... buff_data = { ... }, allowed_chain_action = { ... } }, ... }, ... }
Here we calculate for a single subaction from its start to the start of the next allowed chain action how much our movement speed is affected. The calculation is simple, but we need to roughly differentiate between 2 kinds of speed buffs: "planted_decrease_movement" and "planted_fast_decrease_movement". The movement speed effect is linear interpolated, so with
  • default movement speed a
  • buffed movement speed b
  • current point of interpolation c (0 <= c <= 1)

  • the interpolated speed is: lerp(a, b, c) = a - c*(b - a)
Since our speed varies between start and end of the interpolation we can use the average interpolated speed for the duration of the movement speed buff.
  • avg_speed = lerp(a, b, c/2)
We will use avg_speed for "planted_decrease_movement" (and "planted_charging_decrease_movement"). For "planted_fast_decrease_movement" we approximate by using the buffed speed b directly, since the interpolation uses a factor of 10, which leads to a faster interpolation.
Appendix B: Calculate movespeed of weapons
A small example
buff_data = { { -- a -- start_time = 0, external_multiplier = 0.8, end_time = 0.2, buff_name = "planted_decrease_movement" }, { -- b -- start_time = 0.2, external_multiplier = 1.4, end_time = 0.7, buff_name = "planted_fast_decrease_movement" }, { -- c -- start_time = 0.45, external_multiplier = 0.7, end_time = 0.7, buff_name = "planted_fast_decrease_movement" } }, allowed_chain_actions = { { --d -- sub_action = "default_left", start_time = 0.5, action = "action_one", input = "action_one" }, { -- e -- sub_action = "default", start_time = 0.8, action = "action_three", input = "action_three" } }
  • a: From "start_time" and "end_time" we calculate the timeframe 0.2. "external_multiplier" is the movement speed multiplier. Because of "buff_name = "planted_decrease_movement"" we calculate our movement speed multiplier as:
    0.98 = lerp(1, 0.8, 0.2/2) = (1 - (1 - 0.8) * 0.2) -> The "1" comes from the implementation[github.com]
  • b: Here the timeframe is 0.25 and not 0.5, because in c the timeframe already starts at 0.45. Since we have "planted_fast_decrease_movement" our movement speed multiplier is:
    1.4
  • c: For overlapping this overlapping timeframe of 0.25 we take the average multiplier of both timeframes, so:
    (1.4 + 0.7)/2 = 1.05
  • d: This is now the next chain action. This one starts at 0.5, thus in c our overlapping timeframe goes down to 0.05
  • e: In this chain action starting at 0.8, we will have a timeframe of 0.1 with no movement speed modifier, thus a movement speed multiplier of:
    1
With this we can calcuate the average movement speed multiplier for this subaction chaining into a certain action. To do that we multiply every movement speed multiplier with its timeframe and sum that up. Then we divide this by the sum of timeframes.
  • a-b-c-d: (0.2*0.98 + 0.25*1.4 + 0.05*1.05) / (0.2 + 0.25 + 0.05)
  • a-b-c-e: (0.2*0.98 + 0.25*1.4 + 0.25*1.05 + 0.1*1) / (0.2 + 0.25 + 0.25 + 0.1)

General Calculation
To do this for a whole attack chain we will sum up all timeframes*speed_multipliers and then divide it by the sum of speed_multipliers. From here on the general calculation is as follows:
  • 1.)
    • a.) "planted_decrease_movement" -> x = timeframe *(1 - timeframe * (1 - external_multiplier))
    • b.) "planted_fast_decrease_movement" -> x = timeframe * external_multiplier
  • 2.) sum_of_all(x) -> calculate sum of all movement speed multipliers on a timeframe for the whole attack chain
  • 3.) sum_of_all(timeframe) -> calculate sum of all timeframes for the whole attack chain
  • 4.) avg_multiplier = sum_of_all(x) / sum_of_all(timeframe)
Congratulations if you made it here, now you have the average movement speed multiplier for your attack chain. To calculate the movement you will gain: 4 * avg_multiplier

Example: Billhook - light attack chain vs. special attack chain
The light attack chain: light1 -> light2 (->repeat)
The special attack chain: special_attack (->repeat)

Light attack chain
(light1) 0.3 * 1.75 + 0.2 * 0.75 + (light2) 0.3 * 0.9625 = 0.3 * lerp(1, 0.75, 0.3/2) = 0.3 * (1 - 0.3/2 * (1 - 0.75)) + 0.2 * 1.2 + 0.1 * 0.9875 = 0.1 * lerp(1, 0.75, 0.1/2) = 0.3 * (1 - 0.1/2 * (1 - 0.75)) = sum_of_all(x) = 1.3025 0.3 + 0.2 + 0.3 + 0.2 + 0.1 = sum_of_all(timeframe) = 1.1 => avg_multiplier = 1.3025/1.1 = 1.184(09)

Special attack chain
(special attack) 0.2 * 0.98 = 0.2 * lerp(1, 0.75, 0.2/2) = 0.2 * (1 - 0.2/2 * (1 - 0.75) + 0.25 * 1.4 + 0.25 * 1.05 + 0.1 * 1 = sum_of_all(x) = 0.9085 0.2 + 0.25 + 0.25 + 0.1 = sum_of_all_(timeframe) = 0.8 => avg_multiplier = 1.135625
Conclusion: The light attack chain gives you 18.4% increased movement speed, while the special attack only gives 13.6% movement speed. Note that the calculation is an approximation of the implemented movement speed buff.
Appendix C: Tables of selected weapon movement modifiers
Used terms:
l = light attack
h = heavy attack
p = push attack
b = block cancel
-> = attack chain

Markus Kruber
Bretonnian Longsword:
(h1->h2->-h3) => 6.4%
0.3 * (1 - 0.3/2 * (1 - 0.2)) + 0.35 * (1 - 0.35/2 * (1 - 0.4)) + 0.45 * 1.5 + 0.15 * 1 + 0.65 * (1 - 0.65/2 * (1 - 0.2)) + 0.45 * 1.5 + 0.35 * 1 + 0.65 * (1 - 0.65/2 * (1 - 0.2)) + 0.45 * 1.5 + 0.35 * 1 = 4.41425 = a 0.3 + 0.35 + 0.45 + 0.15 + 0.65 + 0.45 + 0.35 + 0.65 + 0.45 + 0.35 = 4.15 = b a/b = 1.0636746988
Sword&Shield and Bret. Sword&Shield:
(b->p) => 15.8%
0.2 * (1 - 0.2/2 * (1 - 0.6)) + 0.2 * 1.25 + 0.3 * 1.5 + 0.2 * 0.75 = 0.85 = a 0.2 + 0.2 + 0.3 + 0.2 = 0.7 = b a/b = 1.15(7)
Mace&Sword
(b->p) => 11%
0.2 * (1 - 0.2/2 * (1 - 0.85)) + 0.2 * 1.25 + 0.025 * 1 + 0.3 * 1.25 + 0.2 * 0.9 = 1.027 = a 0.2 + 0.2 + 0.025 + 0.3 + 0.2 = 0.925 = b a/b = 1.11027027027
(l->b) => 14.4%
0.3 * 1.25 + 0.2 * (1 - 0.2/2 * (1 - 0.85)) = 0.572 = a 0.3 + 0.2 = 0.5 = b a/b = 1.144
Tuskgor Spear
(holding h1) => 10% at charged heavy
(charging h1) => -3% during charge heavy
(1 - 0.4/2 * (1 - 0.85)) = 0.97 for 0.4s

Bardin Goreksson
Dual Hammer
(b->p->l) => 15.8%
0.2 * (1 - 0.2/2 * (1 - 0.85)) + 0.2 * 1.25 + 0.3 * 1.25 + 0.15 * 0.9 + 0.3 * 1.25 = 1.332 = a 0.2 + 0.2 + 0.3 + 0.15 + 0.3 = 1.15 = b a/b = 1.15826086957
(l->b) => 14.4%
0.3 * 1.25 + 0.2 * (1 - 0.2/2 * (1 - 0.85)) = 0.572 = a 0.2 + 0.3 = 0.5 = b a/b = 1.144
Dual Axes
(b->p) => 11.3%
0.2 * (1 - 0.2/2 * (1 - 0.85)) + 0.2 * 1.25 + 0.3 * 1.25 + 0.2 * 0.9 = 1.002 = a 0.2 + 0.2 + 0.3 + 0.2 = 0.9 = b a/b = 1.11(3)

Kerillian
Spear&Shield
(b->p) => 14.6%
0.2 * (1 - 0.2/2 * (1 - 0.6)) + 0.2 * 1.1 + 0.3 * 1.5 + 0.15* 0.75 = 0.9745 = a 0.2 + 0.2 + 0.3 + 0.15 = 0.85 = b a/b = 1.14647058824
Dual Daggers
(l1->l2->l3->l4) => 4.1%
0.2 * 1.25 + 0.22 * 0.85 + 0.2 * 1.3 + 0.25 * 0.85 + 0.2 * 1.25 + 0.17 * 0.85 + 0.2 * 1.3 + 0.3 * 0.85 + 0.17 * 1 = 1.989 = a 0.2 + 0.22 + 0.2 + 0.25 + 0.2 + 0.17 + 0.2 + 0.3 + 0.17 = 1.91 = b a/b = 1.04136125654
Sword&Dagger
(b->p->h) => 13.1%
0.2 * (1 - 0.2/2 * (1 - 0.85)) + 0.3 * 1.25 + 0.2 * 1.25 + 0.45 * 1 + 0.25 * 1.25 = 1.5845 = a 0.2 + 0.3 + 0.2 + 0.45 + 0.25 = 1.4 = b a/b = 1.13178571429
2h Sword
(h1->h1) => 7.5%
0.6 * (1 - 0.6/2 * (1 - 0.85)) + 0.4 * 1.75 + 0.2 * 0.25 + 0.45 * 1 = 1.773 = a 0.6 + 0.4 + 0.2 + 0.45 = 1.65 = b a/b = 1.07454545455
Spear
(h1->h2) => 9.4%
0.4 * (1 - 0.4/2 * (1 - 0.85)) + 0.2 * 1.1 + 0.3 * 1.85 + 0.35 * 0.5 + 0.4 * (1 - 0.4/2 * (1 - 0.85)) + 0.2 * 1.1 + 0.3 * 1.75 + 0.2 * 0.5 = 2.571 = a 0.4 + 0.2 + 0.3 + 0.35 + 0.4 + 0.2 + 0.3 + 0.2 = 2.35 = b a/b = 1.09404255319

Victor Saltzpyre
Billhook
(see previous section "Example: Billhook - light attack chain vs. special attack chain")

Sienna Fuegonasus
Dagger
(b->p) => 21.1%
0.2 * (1 - 0.2/2 * (1 - 0.85)) + 0.2 * 1.25 + 0.25 * 1.45 + 0.1 * (1 - 0.1/2 * (1 - 0.7)) = 0.908 = a 0.2 + 0.2 + 0.25 + 0.1 = 0.75 = b a/b = 1.21066666667
(l1->l2->l3->l4) => 12.6%
0.25 * 1.25 + 0.15 * (1 - 0.15/2 * (1 - 0.7)) + 0.25 * 1.25 + 0.2 * (1 - 0.2/2 * (1 - 0.7)) + 0.25 * 1.25 + 0.15 * (1 - 0.15/2 * (1 - 0.7)) + 0.25 * 1.25 + 0.25 * (1 - 0.25/2 * (1 - 0.7)) + 0.05 * 1 = 2.027875 0.25 + 0.15 + 0.25 + 0.2 + 0.25 + 0.15 + 0.25 + 0.25 + 0.05 = 1.8 a/b = 1.12659722222
Appendix D: Tables of selected charged melee attack modifiers
In this section I will present how movement speed is affected when using the charged attack of these selected weapons: Executioner Sword, Warpick

Executioner Sword - heavy attack
(h1->b) => 1.3%
0.8 * (1 - 0.8/2 * (1 - 0.2)) + 0.15 * 1.2 + 0.05 * 1.6 + 0.25 * 2 + 0.05 * 0.5 + 0.2 * (1 - 0.2/2 * (1 - 0.5)) = 1.519 = a 0.8 + 0.15 + 0.05 + 0.25 + 0.05 + 0.2 = 1.5 = b a/b = 1.01266666667
(h1 only) => 57%
0.15 * 1.2 + 0.05 * 1.6 + 0.25 * 2 + 0.05 * 0.5 = 0.785 0.15 + 0.05 + 0.25 + 0.05 = 0.5 a/b = 1.57

2h Pick - heavy attack
(h1 charged) => 6%
0.35 * (1 - 0.35/2 * (1 - 0.5)) + 0.1 * 0.6 + 0.3 * 1 + 0.8 * 1.5 + 0.2 * (1 - 0.2/2 * (1 - 0.4)) + 0.15 * 1.4 + 0.4 * 0.4 = 2.437375 = a 0.35 + 0.1 + 0.3 + 0.8 + 0.2 + 0.15 + 0.4 = 2.3 = b a/b = 1.05972826087
(h1 charging) => 21.3%
0.35 * (1 - 0.35/2 * (1 - 0.5)) + 0.1 * 0.6 + 0.3 * 1 + 0.8 * 1.5 = 1.879375 0.35 + 0.1 + 0.3 + 0.8 = 1.55 a/b = 1.2125
11 Comments
Lain Dec 20, 2020 @ 4:51am 
just discovered this. This is brilliant
thanks
Flemlius Dec 13, 2020 @ 2:26am 
Looks like I'll be using different combos to move around now! ^^
I've been looking around for such a clear list of "which combos make you go faster" for a while. Now I know where to look!
powder! go away Aug 31, 2020 @ 7:23pm 
very good guide
attacking to increase move speed is very underutilized and hopefully will be more common
mr_chen  [author] Aug 31, 2020 @ 4:12pm 
Made a mod to print it :praisesun:
mr_chen  [author] Aug 31, 2020 @ 4:46am 
Yep. Tested it, it makes you around 2.5% slower xP
Novality Aug 30, 2020 @ 9:29pm 
A solid write-up, but movetech and how movement bonuses are calculated are much too complex to boil down into a single number. Many numbers are close to what they're trying to represent, but some in particular, like rapier are far from empirically tested results.
Fanta Aug 26, 2020 @ 2:58pm 
Amazing guide, don't even want to think about how long this must have taken to research and write up. I can imagine QQ cancelling updates would be even worse as in my experience quite a few weapons have QQ cancel movement techniques.
VernonKun Aug 26, 2020 @ 2:25am 
Cool. I actually want to make the same guide for V1.
TengriBless, Aug 23, 2020 @ 2:55am 
So E=mc squared?
mr_chen  [author] Aug 22, 2020 @ 9:17am 
Thought about adding qqcancel, or qcancel mace&sword. I am looking into it where the delay for quickswitching is. That is why I haven't added it yet.