v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Gait

From Dwarf Fortress Wiki
Revision as of 15:41, 12 March 2020 by Jecowa (talk | contribs) (→‎Speed: wiki links)
Jump to navigation Jump to search
This article is about the current version of DF.
Note that some content may still need to be updated.

A gait is a mode of movement which a creature can use. In real life, the word only applies to movement on land; but in Dwarf Fortress, the term describes any mode of movement by a creature, including swimming, flying, and climbing.

Gait Types

There are 5 different types of gaits: walking, crawling, climbing, swimming, and flying.

  • Walking gaits are land-based gaits which require the creature to be standing up, and have more than half of their [STANCE] body parts, e.g. legs, intact and working. They can be used to move across flat ground, and go up and down ramps and stairs.
  • Crawling gaits are like walking gaits, except that they require neither standing up nor [STANCE] body parts. They are much slower than walking gaits. Please note that an uninjured, slithering snake is considered to be using a walking gait, not a crawling gait: its body is its [STANCE] body part. If a snake is injured in the body, it will revert to a crawling gait.
  • Climbing gaits are used for moving up and down vertical surfaces, such as trees or walls, as well as for moving horizontally while supporting oneself against a vertical surface. In order to climb, a creature needs intact body parts to climb with: [GRASP] body parts by default, or [STANCE] body parts if the creature has the [STANCE_CLIMBER] token. Stance climbers include cats and giant cave spiders.
  • Swimming gaits are used for moving in the water. In order to swim, a creature needs either the [SWIMS_INNATE] tag, or [SWIMS_LEARNED], [CAN_LEARN] and skill in swimming.
  • Flying gaits are used for moving in the air. In order to fly, a creature needs the [FLIER] tag, and for enough of its body parts tagged [FLIER] (e.g. wings) to be intact, if applicable. Flying does not require a minimum speed to stay airborne, and turning while flying is no more difficult than turning while walking.

Speed

Gait speeds are expressed in ticks/100 tiles. This means that "larger" speeds are slower than "smaller" speeds. Currently, the maximum allowed speed is 100 ticks/100 tiles, or 1 tick per tile.

The speeds of each gait are only a baseline for how fast a creature of that species will move. In practice, speed can also be affected by factors such as what a creature is wearing or carrying, as well as its skills, attributes, and even its personality[Verify].

Here are some speeds for reference.

Gait Speed kph mph Example
8775 1 0.6 average giant earthworm's top speed
6561 1.3 0.8 normal human/goblin climbing speed
5951 1.5 0.9 normal dwarven climbing speed
3512 2.5 1.5 normal kobold climbing speed
2206 4 2.5 normal elven climbing speed
1422 6.2 3.9 normal ogre walking speed
900 9.6 6 normal walking speed
488 18 11 average ogre's top speed
439 20 12 average troll's top speed
390 45 28 average beak dog's top speed
351 25 16 average dragon's top speed
293 30 19 average dwarf's top speed
293 30 19 average giant cave spider's top running and climbing speed
251 35 22 average kobold's top speed
225 39 24 average human's/goblin's top speed
219 40 25 average bronze colossus's top speed
214 41 25 average elf's top speed
183 48 30 average cat's top speed
176 50 31 average roc's top speed
157 56 35 average gibbon's top climbing speed
149 59 37 average dog's top speed
125 70 43 average horse's top speed
109 80 50 average gazelle's top speed
100 87 54 maximum allowed gait speed

Standard Gaits

The vast majority of standard DF creatures use predefined gait patterns. While their gaits vary in speed from type to type and from creature to creature, the gaits' relations to each other are mostly uniform.

Relative Gait Gait Names Gait Types Build-up Turning Speed Affected by Physique Slowed by Stealth Energy Drain
Fastest

Sprint

Gallop

Fastest Walk

Scramble

Maximum Swim Speed

Scramble

Maximum Flight Speed

Scramble

WALK (biped)

WALK (quadruped)

WALK (general)

CLIMB

SWIM

CRAWL

FLY

WALK (no legs)

10, from a start speed of Fast No Yes 50 50
Faster

Run

Canter

Faster Walk

Faster Climb

Faster Swim

Faster Crawl

Faster Flight

Faster Crawl

WALK (biped)

WALK (quadruped)

WALK (general)

CLIMB

SWIM

CRAWL

FLY

WALK (no legs)

5, from a start speed of Fast No Yes 20 10
Fast

Jog

Trot

Fast Walk

Fast Climb

Fast Swim

Fast Crawl

Fast Flight

Fast Crawl

WALK (biped)

WALK (quadruped)

WALK (general)

CLIMB

SWIM

CRAWL

FLY

WALK (no legs)

No Yes Yes 10 5
Normal

Walk

Walk

Walk

Climb

Swim

Crawl

Fly

Crawl

WALK (biped)

WALK (quadruped)

WALK (general)

CLIMB

SWIM

CRAWL

FLY

WALK (no legs)

No Yes No No 0
Slow

Stroll

Stroll

Slow Walk

Slow Climb

Slow Swim

Slow Crawl

Slow Fly

Slow Crawl

WALK (biped)

WALK (quadruped)

WALK (general)

CLIMB

SWIM

CRAWL

FLY

WALK (no legs)

No Yes No No 0
Slowest

Creep

Creep

Slowest Walk

Creep

Creeping Swim

Creep

Hover

Creep

WALK (biped)

WALK (quadruped)

WALK (general)

CLIMB

SWIM

CRAWL

FLY

WALK (no legs)

No Yes No No 0

Gaits and Modding

In the raw files, gaits are specified in c_variation_default. A better understanding of how creature gaits work can be found under [CREATURE_VARIATION:STANDARD_BIPED_GAITS] (in c_variation_default.txt), where brief information pertaining to their syntax is found.

To specify one of these predefined gaits,the tag [APPLY_CREATURE_VARIATION] should be used.

Example, taken from the dwarf:

[APPLY_CREATURE_VARIATION:STANDARD_BIPED_GAITS:900:711:521:293:1900:2900] 30 kph

where the speeds are: "walk:jog:run:sprint:stroll:creep". Sprint's and jog's starting speed is equal to jog's max, the rest have NO_BUILD_UP tag.