I've waited a long time to post this to make sure it wasn't something in my script, so here goes.

In my project, I need to pick up an object which is under the control of the PE. Now, when the object is still (v=0), I can disengage the PE and use ent_move to attach it to me and thus carry it around. I can then issue a THROW command, which re-engages the PE and applies a set force for a set time. Perfect.

HOWEVER, if the object still has a velocity component to it (ie. not still) when I want to pick it up, the PE dis-engages fine, I can ent_move it fine, BUT WHEN I THROW (RE-ENGAGE THE PE) THE OBJECT HAS IT'S VELOCITY FROM WHEN THE ENGINE WAS PREVIOUSLY ON!!!

I first thought that it was because of the skills, since my entities move in response to a net_force skill vector. But that is absolutely not the case, as in that case it would accelerate, not veloci-rate upon re-engagement of the PE.

So it seems to me that while you can turn off the PE, you don't unregister the object and somewhere, it's velocity is stored and thus when the engine is re-engaged, it loads up these old values for velocity and goes from there. This is the same behaiviour if I use phent_settype to "unregister" the entity from the PE or if I use phent_enable to "temp disable" the PE.

Personally, if I'm turning off the engine, I would like at least the option to zero out the velocity, since I have no direct control over it. Otherwise, I'm missing something critical here...