Scripted forces to move the avatar (llApplyImpulse and llSetTarget) fails when avatar is flying, but not when walking.
Repro:
1: Create an object with the follow script.
default
{
attach(key attached)
{
if (attached != NULL_KEY)
{
llSetForce(llGetMass() * <0.0, 0.0, 9.8>, FALSE);
llMoveToTarget(llGetPos() + <10.0, 0.0, 0.0>, 2.0);
}
}
}
2) Take the object into inventory and wear it (say, on HUD).
Observe: The avatar walks 10 meters (as expected).
3) Detach object.
4) Click "Fly" button to let the avatar hover in the air.
5) Attach object again.
Observe: The avatar does not move.
6) Click "Fly" button again to cancel flight mode.
Observe: The avatar now begins to move towards the target.
It is not 100% reproducible this way, but almost. The llSetForce line is not strictly necessary to see the behavior, but without it, it appears much more sporadic.
I have seen similar behaviour when using llApplyImpulse rather than llMoveToTarget, but the llMoveToTarget is a good case because it so obviously shows the avatar starting to move once flight is toggled off, indicating that everything is registered and working; the avatar is merely held in place while flight is engaged.
I suspect whatever stabilizes an avatar in flight under Havok4 is a bit too good about it, negating scripted forces as well.