creaturespeed.2da defines the speed creature objects move.

You can retrieve a creatures assigned movement with GetMovementRate. It can be altered with NWNX commands or changing appearance (eg; polymorph, SetCreatureAppearanceType).

Why are monsters always being kited?

The simplest answer is their base movement speed is always 0.5 meters/second slower by default. In fact it can never match the player.

The best solution? Provide an altered creaturespeed.2da that increases it to 2.0 and 4.0 for the walk and run rate. This means they can better keep up with running players (or close the gap properly).

Oddly the game - for whatever reason (this can be checked with GetMovementRate) changes associates of a player (ie; when the master of a creature is a PC) movement speed to the PLAYER line speed if it is below it (which is kept if they are removed as an associate). This doesn't mean they always "keep up" since there is usually a delay before they start following a PC.

Hardcoded Line Notes

PC_Movement / PLAYER row

The players when they are created - at least for appearance.2da lines 0 through 7 (the default player races) - have the "PLAYER" or "PC_Movement" line applied, line 0, which is by default slightly faster than the NPC default "NORM" movement.

Since you might want to set the PC appearance to other things - either with new races or other reasons (ie; SetCreatureAppearanceType) you can up the NORM speed to be 2.00 and 4.00 to match to save effort, or use the "PLAYER" movement speed on the appearance.2da line. For instance you could have a "Player_Vampire" appearance line which has the movement speed "PLAYER" while the usual "Vampire" appearance still uses "NORM".

Immobile / NOMOVE row

This seems to apply some additional restrictions to moving - it acts like EffectEntangle and means the creature won't be bumped around or move around if in melee. It really keeps them immobile.

Default / DEFAULT row

This is a special line which is only used in the toolset - if used then the appearance of the creature is used to find the creaturespeed.2da line to use. By itself it does nothing - if you used DEFAULT in the appearance.2da MOVERATE column it probably wouldn't do well, since it'd be circular logic!

DM_Fast / DFAST row

DMs who are not possessing a creature have the line 8 assigned - so a run speed of 11.0 by default. It's probably not a great idea to use this level of speed on monsters or players (see notes below on maximum move speed).

Adding New Movement Speeds

The default lines should likely be retained - the DM movement and Player movement lines at least are used by the engine directly and are hardcoded, and "DEFAULT" is used in the toolset. The "Immobile" line seems to have additional engine usage (don't bother altering that line).

The other default ones also probably should be kept and only the WALKRATE and RUNRATE changed due to the references in appearance.2da - if any are changed name wise in the 2DAName column it could lead to a crash or issue.

Maximum Movement Speed

Going over 29.0 (or a combined 29.0 if you have movement speed changes - eg; if you have 20.0 as a value, but get 50% bonus meaning 30.0) seems to...upset the game and crash it frequently. Avoid or test a lot. Movement at fast levels also tends to skip over triggers/encounters, warp through doors and other...rather interesting things (in fact as a monk you can bug out some of this).

2da Columns


ColumnExample ContentsValid ValuesDescription and Notes
LabelNormalAny textThis is just a label. It won't replace the Name column so is unused in game and toolset.
Name2322TLK reference

This is only required for it to appear correctly in the toolset - it likely still can be used for the appearance.2da reference without it (needs testing!).

If blank it won't appear in the toolset which may be a benefit.

2DANameNORMText and numbers without spaces

This is used in appearance.2da column "MOVERATE". Therefore it can't have spaces, or at least this wouldn't be recommended.

WALKRATE1.75Float value

The usual unmodified walk rate - usually when in stealth, detect mode or if forced to move by an effect in most cases. NPCs use this while walking with ActionMoveXXX commands. Players can slow down walking with close range dragging.

The value is distance in meters/second. eg; 2.0 means moving 2 meters every 1 second. Each tile in the game is 10 meters on a side.

RUNRATE3.50Float value

The usual unmodified run rate - used when moving at full speed.

The value is distance in meters/second. eg; 4.0 means moving 4 meters every 1 second. Each tile in the game is 10 meters on a side.

2da Contents

2DA V2.0
     Label       Name   2DAName  WALKRATE RUNRATE
0    PC_Movement ****   PLAYER     2.00      4.00
1    Immobile    2319   NOMOVE     0.00      0.00
2    Very_Slow   2320   VSLOW      0.75      1.50
3    Slow        2321   SLOW       1.25      2.50
4    Normal      2322   NORM       1.75      3.50
5    Fast        2323   FAST       2.25      4.50
6    Very_Fast   2324   VFAST      2.75      5.50
7    Default     6614   DEFAULT    0.00      0.00
8    DM_Fast     6893   DFAST      5.50     11.00
  • No labels