From NWN Lexicon
Jump to: navigation, search


Create a Movement Speed Decrease effect to slow target.

effect EffectMovementSpeedDecrease(
    int nPercentChange




Returns a new effect object that when applied to a target will slow their movement by nPercentChange percent.

As defined by Bioware, nPercentChange:

0 = no change in speed
50 = 50% slower
99 = almost immobile

Also note that EffectCutsceneImmobilize() is a better way of stopping the creature moving at all.

The target this effect is applied to must be a creature for it to work. This effect should not be applied instantly, only temporarily or permanently.


This effect is stopped with immunity to movement speed decreases.

This will stack and hinder people more with Slow and other movement speed decreases - the movement speed increases and haste will merely cancel each other out (thus you walk/run at normal speed with both haste and slow on you)

A quick note is that all PC movement rates are 2.00, as defined in CreatureSpeed.2da. That is their walkrate, their runrate is 4.00. This is the amount of distance, in meters, they can cover in 1 second.

There is no way to directly change a PC's movement speed (say, to 5.00 meters a round). You can make them up to almost immobile, to 99% faster.

The base speed for Monks are miscalculated. If an EffectMovementSpeedDecrese is used on a monk with a 0% change the monk shall move faster than he would normally. This is not the case for other characters (Barbarians not tested)




// Sample code for applying a 50% movement speed decrease
// penalty to a target
void main()
    // This is the Object to apply the effect to.
    object oTarget = OBJECT_SELF;
    // Create the effect to apply
    effect eSlowDown = EffectMovementSpeedDecrease(50);
    // Create the visual portion of the effect. This is instantly
    // applied and not persistent with whether or not we have the
    // above effect.
    effect eVis = EffectVisualEffect(VFX_IMP_SLOW);
    // Apply the visual effect to the target
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
    // Apply the effect to the object
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSlowDown, oTarget);

See Also



 author: John Shuell, editors: Jasperre, Mistress, additional contributor: Jasperre